001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.softwarecatalog.service.impl;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.exception.SystemException;
019    import com.liferay.portal.kernel.util.Validator;
020    import com.liferay.portal.model.User;
021    import com.liferay.portal.service.ServiceContext;
022    import com.liferay.portlet.softwarecatalog.FrameworkVersionNameException;
023    import com.liferay.portlet.softwarecatalog.model.SCFrameworkVersion;
024    import com.liferay.portlet.softwarecatalog.service.base.SCFrameworkVersionLocalServiceBaseImpl;
025    
026    import java.util.Date;
027    import java.util.List;
028    
029    /**
030     * @author Jorge Ferrer
031     * @author Brian Wing Shun Chan
032     */
033    public class SCFrameworkVersionLocalServiceImpl
034            extends SCFrameworkVersionLocalServiceBaseImpl {
035    
036            @Override
037            public SCFrameworkVersion addFrameworkVersion(
038                            long userId, String name, String url, boolean active, int priority,
039                            ServiceContext serviceContext)
040                    throws PortalException, SystemException {
041    
042                    // Framework version
043    
044                    User user = userPersistence.findByPrimaryKey(userId);
045                    long groupId = serviceContext.getScopeGroupId();
046                    Date now = new Date();
047    
048                    validate(name);
049    
050                    long frameworkVersionId = counterLocalService.increment();
051    
052                    SCFrameworkVersion frameworkVersion =
053                            scFrameworkVersionPersistence.create(frameworkVersionId);
054    
055                    frameworkVersion.setGroupId(groupId);
056                    frameworkVersion.setCompanyId(user.getCompanyId());
057                    frameworkVersion.setUserId(user.getUserId());
058                    frameworkVersion.setUserName(user.getFullName());
059                    frameworkVersion.setCreateDate(now);
060                    frameworkVersion.setModifiedDate(now);
061                    frameworkVersion.setName(name);
062                    frameworkVersion.setUrl(url);
063                    frameworkVersion.setActive(active);
064                    frameworkVersion.setPriority(priority);
065    
066                    scFrameworkVersionPersistence.update(frameworkVersion);
067    
068                    // Resources
069    
070                    if (serviceContext.isAddGroupPermissions() ||
071                            serviceContext.isAddGuestPermissions()) {
072    
073                            addFrameworkVersionResources(
074                                    frameworkVersion, serviceContext.isAddGroupPermissions(),
075                                    serviceContext.isAddGuestPermissions());
076                    }
077                    else {
078                            addFrameworkVersionResources(
079                                    frameworkVersion, serviceContext.getGroupPermissions(),
080                                    serviceContext.getGuestPermissions());
081                    }
082    
083                    return frameworkVersion;
084            }
085    
086            @Override
087            public void addFrameworkVersionResources(
088                            long frameworkVersionId, boolean addGroupPermissions,
089                            boolean addGuestPermissions)
090                    throws PortalException, SystemException {
091    
092                    SCFrameworkVersion frameworkVersion =
093                            scFrameworkVersionPersistence.findByPrimaryKey(frameworkVersionId);
094    
095                    addFrameworkVersionResources(
096                            frameworkVersion, addGroupPermissions, addGuestPermissions);
097            }
098    
099            @Override
100            public void addFrameworkVersionResources(
101                            long frameworkVersionId, String[] groupPermissions,
102                            String[] guestPermissions)
103                    throws PortalException, SystemException {
104    
105                    SCFrameworkVersion frameworkVersion =
106                            scFrameworkVersionPersistence.findByPrimaryKey(frameworkVersionId);
107    
108                    addFrameworkVersionResources(
109                            frameworkVersion, groupPermissions, guestPermissions);
110            }
111    
112            @Override
113            public void addFrameworkVersionResources(
114                            SCFrameworkVersion frameworkVersion, boolean addGroupPermissions,
115                            boolean addGuestPermissions)
116                    throws PortalException, SystemException {
117    
118                    resourceLocalService.addResources(
119                            frameworkVersion.getCompanyId(), frameworkVersion.getGroupId(),
120                            frameworkVersion.getUserId(), SCFrameworkVersion.class.getName(),
121                            frameworkVersion.getFrameworkVersionId(), false,
122                            addGroupPermissions, addGuestPermissions);
123            }
124    
125            @Override
126            public void addFrameworkVersionResources(
127                            SCFrameworkVersion frameworkVersion, String[] groupPermissions,
128                            String[] guestPermissions)
129                    throws PortalException, SystemException {
130    
131                    resourceLocalService.addModelResources(
132                            frameworkVersion.getCompanyId(), frameworkVersion.getGroupId(),
133                            frameworkVersion.getUserId(), SCFrameworkVersion.class.getName(),
134                            frameworkVersion.getFrameworkVersionId(), groupPermissions,
135                            guestPermissions);
136            }
137    
138            @Override
139            public void deleteFrameworkVersion(long frameworkVersionId)
140                    throws PortalException, SystemException {
141    
142                    SCFrameworkVersion frameworkVersion =
143                            scFrameworkVersionPersistence.findByPrimaryKey(frameworkVersionId);
144    
145                    deleteFrameworkVersion(frameworkVersion);
146            }
147    
148            @Override
149            public void deleteFrameworkVersion(SCFrameworkVersion frameworkVersion)
150                    throws SystemException {
151    
152                    scFrameworkVersionPersistence.remove(frameworkVersion);
153            }
154    
155            @Override
156            public void deleteFrameworkVersions(long groupId) throws SystemException {
157                    List<SCFrameworkVersion> frameworkVersions =
158                            scFrameworkVersionPersistence.findByGroupId(groupId);
159    
160                    for (SCFrameworkVersion frameworkVersion : frameworkVersions) {
161                            deleteFrameworkVersion(frameworkVersion);
162                    }
163            }
164    
165            @Override
166            public SCFrameworkVersion getFrameworkVersion(long frameworkVersionId)
167                    throws PortalException, SystemException {
168    
169                    return scFrameworkVersionPersistence.findByPrimaryKey(
170                            frameworkVersionId);
171            }
172    
173            @Override
174            public List<SCFrameworkVersion> getFrameworkVersions(
175                            long groupId, boolean active)
176                    throws SystemException {
177    
178                    return scFrameworkVersionPersistence.findByG_A(groupId, active);
179            }
180    
181            @Override
182            public List<SCFrameworkVersion> getFrameworkVersions(
183                            long groupId, boolean active, int start, int end)
184                    throws SystemException {
185    
186                    return scFrameworkVersionPersistence.findByG_A(
187                            groupId, active, start, end);
188            }
189    
190            @Override
191            public List<SCFrameworkVersion> getFrameworkVersions(
192                            long groupId, int start, int end)
193                    throws SystemException {
194    
195                    return scFrameworkVersionPersistence.findByGroupId(groupId, start, end);
196            }
197    
198            @Override
199            public int getFrameworkVersionsCount(long groupId) throws SystemException {
200                    return scFrameworkVersionPersistence.countByGroupId(groupId);
201            }
202    
203            @Override
204            public int getFrameworkVersionsCount(long groupId, boolean active)
205                    throws SystemException {
206    
207                    return scFrameworkVersionPersistence.countByG_A(groupId, active);
208            }
209    
210            @Override
211            public List<SCFrameworkVersion> getProductVersionFrameworkVersions(
212                            long productVersionId)
213                    throws SystemException {
214    
215                    return scProductVersionPersistence.getSCFrameworkVersions(
216                            productVersionId);
217            }
218    
219            @Override
220            public SCFrameworkVersion updateFrameworkVersion(
221                            long frameworkVersionId, String name, String url, boolean active,
222                            int priority)
223                    throws PortalException, SystemException {
224    
225                    validate(name);
226    
227                    SCFrameworkVersion frameworkVersion =
228                            scFrameworkVersionPersistence.findByPrimaryKey(frameworkVersionId);
229    
230                    frameworkVersion.setName(name);
231                    frameworkVersion.setUrl(url);
232                    frameworkVersion.setActive(active);
233                    frameworkVersion.setPriority(priority);
234    
235                    scFrameworkVersionPersistence.update(frameworkVersion);
236    
237                    return frameworkVersion;
238            }
239    
240            protected void validate(String name) throws PortalException {
241                    if (Validator.isNull(name)) {
242                            throw new FrameworkVersionNameException();
243                    }
244            }
245    
246    }