001    /**
002     * Copyright (c) 2000-present 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.portal.kernel.service;
016    
017    import aQute.bnd.annotation.ProviderType;
018    
019    import com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery;
020    import com.liferay.portal.kernel.dao.orm.DynamicQuery;
021    import com.liferay.portal.kernel.dao.orm.IndexableActionableDynamicQuery;
022    import com.liferay.portal.kernel.dao.orm.Projection;
023    import com.liferay.portal.kernel.exception.PortalException;
024    import com.liferay.portal.kernel.exception.SystemException;
025    import com.liferay.portal.kernel.model.PersistedModel;
026    import com.liferay.portal.kernel.model.UserGroupGroupRole;
027    import com.liferay.portal.kernel.search.Indexable;
028    import com.liferay.portal.kernel.search.IndexableType;
029    import com.liferay.portal.kernel.service.persistence.UserGroupGroupRolePK;
030    import com.liferay.portal.kernel.transaction.Isolation;
031    import com.liferay.portal.kernel.transaction.Propagation;
032    import com.liferay.portal.kernel.transaction.Transactional;
033    import com.liferay.portal.kernel.util.OrderByComparator;
034    
035    import java.io.Serializable;
036    
037    import java.util.List;
038    
039    /**
040     * Provides the local service interface for UserGroupGroupRole. Methods of this
041     * service will not have security checks based on the propagated JAAS
042     * credentials because this service can only be accessed from within the same
043     * VM.
044     *
045     * @author Brian Wing Shun Chan
046     * @see UserGroupGroupRoleLocalServiceUtil
047     * @see com.liferay.portal.service.base.UserGroupGroupRoleLocalServiceBaseImpl
048     * @see com.liferay.portal.service.impl.UserGroupGroupRoleLocalServiceImpl
049     * @generated
050     */
051    @ProviderType
052    @Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
053            PortalException.class, SystemException.class})
054    public interface UserGroupGroupRoleLocalService extends BaseLocalService,
055            PersistedModelLocalService {
056            /*
057             * NOTE FOR DEVELOPERS:
058             *
059             * Never modify or reference this interface directly. Always use {@link UserGroupGroupRoleLocalServiceUtil} to access the user group group role local service. Add custom service methods to {@link com.liferay.portal.service.impl.UserGroupGroupRoleLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
060             */
061            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
062            public boolean hasUserGroupGroupRole(long userGroupId, long groupId,
063                    java.lang.String roleName) throws PortalException;
064    
065            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
066            public boolean hasUserGroupGroupRole(long userGroupId, long groupId,
067                    long roleId);
068    
069            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
070            public ActionableDynamicQuery getActionableDynamicQuery();
071    
072            public DynamicQuery dynamicQuery();
073    
074            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
075            public IndexableActionableDynamicQuery getIndexableActionableDynamicQuery();
076    
077            /**
078            * @throws PortalException
079            */
080            @Override
081            public PersistedModel deletePersistedModel(PersistedModel persistedModel)
082                    throws PortalException;
083    
084            @Override
085            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
086            public PersistedModel getPersistedModel(Serializable primaryKeyObj)
087                    throws PortalException;
088    
089            /**
090            * Adds the user group group role to the database. Also notifies the appropriate model listeners.
091            *
092            * @param userGroupGroupRole the user group group role
093            * @return the user group group role that was added
094            */
095            @Indexable(type = IndexableType.REINDEX)
096            public UserGroupGroupRole addUserGroupGroupRole(
097                    UserGroupGroupRole userGroupGroupRole);
098    
099            /**
100            * Creates a new user group group role with the primary key. Does not add the user group group role to the database.
101            *
102            * @param userGroupGroupRolePK the primary key for the new user group group role
103            * @return the new user group group role
104            */
105            public UserGroupGroupRole createUserGroupGroupRole(
106                    UserGroupGroupRolePK userGroupGroupRolePK);
107    
108            /**
109            * Deletes the user group group role from the database. Also notifies the appropriate model listeners.
110            *
111            * @param userGroupGroupRole the user group group role
112            * @return the user group group role that was removed
113            */
114            @Indexable(type = IndexableType.DELETE)
115            public UserGroupGroupRole deleteUserGroupGroupRole(
116                    UserGroupGroupRole userGroupGroupRole);
117    
118            /**
119            * Deletes the user group group role with the primary key from the database. Also notifies the appropriate model listeners.
120            *
121            * @param userGroupGroupRolePK the primary key of the user group group role
122            * @return the user group group role that was removed
123            * @throws PortalException if a user group group role with the primary key could not be found
124            */
125            @Indexable(type = IndexableType.DELETE)
126            public UserGroupGroupRole deleteUserGroupGroupRole(
127                    UserGroupGroupRolePK userGroupGroupRolePK) throws PortalException;
128    
129            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
130            public UserGroupGroupRole fetchUserGroupGroupRole(
131                    UserGroupGroupRolePK userGroupGroupRolePK);
132    
133            /**
134            * Returns the user group group role with the primary key.
135            *
136            * @param userGroupGroupRolePK the primary key of the user group group role
137            * @return the user group group role
138            * @throws PortalException if a user group group role with the primary key could not be found
139            */
140            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
141            public UserGroupGroupRole getUserGroupGroupRole(
142                    UserGroupGroupRolePK userGroupGroupRolePK) throws PortalException;
143    
144            /**
145            * Updates the user group group role in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
146            *
147            * @param userGroupGroupRole the user group group role
148            * @return the user group group role that was updated
149            */
150            @Indexable(type = IndexableType.REINDEX)
151            public UserGroupGroupRole updateUserGroupGroupRole(
152                    UserGroupGroupRole userGroupGroupRole);
153    
154            /**
155            * Returns the number of user group group roles.
156            *
157            * @return the number of user group group roles
158            */
159            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
160            public int getUserGroupGroupRolesCount();
161    
162            /**
163            * Returns the OSGi service identifier.
164            *
165            * @return the OSGi service identifier
166            */
167            public java.lang.String getOSGiServiceIdentifier();
168    
169            /**
170            * Performs a dynamic query on the database and returns the matching rows.
171            *
172            * @param dynamicQuery the dynamic query
173            * @return the matching rows
174            */
175            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery);
176    
177            /**
178            * Performs a dynamic query on the database and returns a range of the matching rows.
179            *
180            * <p>
181            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.UserGroupGroupRoleModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
182            * </p>
183            *
184            * @param dynamicQuery the dynamic query
185            * @param start the lower bound of the range of model instances
186            * @param end the upper bound of the range of model instances (not inclusive)
187            * @return the range of matching rows
188            */
189            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start,
190                    int end);
191    
192            /**
193            * Performs a dynamic query on the database and returns an ordered range of the matching rows.
194            *
195            * <p>
196            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.UserGroupGroupRoleModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
197            * </p>
198            *
199            * @param dynamicQuery the dynamic query
200            * @param start the lower bound of the range of model instances
201            * @param end the upper bound of the range of model instances (not inclusive)
202            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
203            * @return the ordered range of matching rows
204            */
205            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start,
206                    int end, OrderByComparator<T> orderByComparator);
207    
208            /**
209            * Returns a range of all the user group group roles.
210            *
211            * <p>
212            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.UserGroupGroupRoleModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
213            * </p>
214            *
215            * @param start the lower bound of the range of user group group roles
216            * @param end the upper bound of the range of user group group roles (not inclusive)
217            * @return the range of user group group roles
218            */
219            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
220            public List<UserGroupGroupRole> getUserGroupGroupRoles(int start, int end);
221    
222            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
223            public List<UserGroupGroupRole> getUserGroupGroupRoles(long userGroupId);
224    
225            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
226            public List<UserGroupGroupRole> getUserGroupGroupRoles(long userGroupId,
227                    long groupId);
228    
229            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
230            public List<UserGroupGroupRole> getUserGroupGroupRolesByGroupAndRole(
231                    long groupId, long roleId);
232    
233            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
234            public List<UserGroupGroupRole> getUserGroupGroupRolesByUser(long userId);
235    
236            /**
237            * Returns the number of rows matching the dynamic query.
238            *
239            * @param dynamicQuery the dynamic query
240            * @return the number of rows matching the dynamic query
241            */
242            public long dynamicQueryCount(DynamicQuery dynamicQuery);
243    
244            /**
245            * Returns the number of rows matching the dynamic query.
246            *
247            * @param dynamicQuery the dynamic query
248            * @param projection the projection to apply to the query
249            * @return the number of rows matching the dynamic query
250            */
251            public long dynamicQueryCount(DynamicQuery dynamicQuery,
252                    Projection projection);
253    
254            public void addUserGroupGroupRoles(long userGroupId, long groupId,
255                    long[] roleIds);
256    
257            public void addUserGroupGroupRoles(long[] userGroupIds, long groupId,
258                    long roleId);
259    
260            public void deleteUserGroupGroupRoles(long groupId, int roleType);
261    
262            public void deleteUserGroupGroupRoles(long userGroupId, long groupId,
263                    long[] roleIds);
264    
265            public void deleteUserGroupGroupRoles(long userGroupId, long[] groupIds);
266    
267            public void deleteUserGroupGroupRoles(long[] userGroupIds, long groupId);
268    
269            public void deleteUserGroupGroupRoles(long[] userGroupIds, long groupId,
270                    long roleId);
271    
272            public void deleteUserGroupGroupRolesByGroupId(long groupId);
273    
274            public void deleteUserGroupGroupRolesByRoleId(long roleId);
275    
276            public void deleteUserGroupGroupRolesByUserGroupId(long userGroupId);
277    }