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.service;
016    
017    import aQute.bnd.annotation.ProviderType;
018    
019    import com.liferay.portal.kernel.exception.PortalException;
020    import com.liferay.portal.kernel.exception.SystemException;
021    import com.liferay.portal.kernel.search.IndexableType;
022    import com.liferay.portal.kernel.transaction.Isolation;
023    import com.liferay.portal.kernel.transaction.Propagation;
024    import com.liferay.portal.kernel.transaction.Transactional;
025    
026    /**
027     * Provides the local service interface for Group. Methods of this
028     * service will not have security checks based on the propagated JAAS
029     * credentials because this service can only be accessed from within the same
030     * VM.
031     *
032     * @author Brian Wing Shun Chan
033     * @see GroupLocalServiceUtil
034     * @see com.liferay.portal.service.base.GroupLocalServiceBaseImpl
035     * @see com.liferay.portal.service.impl.GroupLocalServiceImpl
036     * @generated
037     */
038    @ProviderType
039    @Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
040            PortalException.class, SystemException.class})
041    public interface GroupLocalService extends BaseLocalService,
042            PersistedModelLocalService {
043            /*
044             * NOTE FOR DEVELOPERS:
045             *
046             * Never modify or reference this interface directly. Always use {@link GroupLocalServiceUtil} to access the group local service. Add custom service methods to {@link com.liferay.portal.service.impl.GroupLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
047             */
048    
049            /**
050            * Adds the group to the database. Also notifies the appropriate model listeners.
051            *
052            * @param group the group
053            * @return the group that was added
054            */
055            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.REINDEX)
056            public com.liferay.portal.model.Group addGroup(
057                    com.liferay.portal.model.Group group);
058    
059            /**
060            * Adds a group.
061            *
062            * @param userId the primary key of the group's creator/owner
063            * @param className the entity's class name
064            * @param classPK the primary key of the entity's instance
065            * @param liveGroupId the primary key of the live group
066            * @param name the entity's name
067            * @param description the group's description (optionally
068            <code>null</code>)
069            * @param type the group's type. For more information see {@link
070            GroupConstants}.
071            * @param friendlyURL the group's friendlyURL (optionally
072            <code>null</code>)
073            * @param site whether the group is to be associated with a main site
074            * @param active whether the group is active
075            * @param serviceContext the service context to be applied (optionally
076            <code>null</code>). Can set asset category IDs and asset tag
077            names for the group, and whether the group is for staging.
078            * @return the group
079            * @throws PortalException if a creator could not be found, if the
080            group's information was invalid, if a layout could not be
081            found, or if a valid friendly URL could not be created for
082            the group
083            * @deprecated As of 6.2.0, replaced by {@link #addGroup(long, long, String,
084            long, long, Map, Map, int, boolean, int, String, boolean,
085            boolean, ServiceContext)}
086            */
087            @java.lang.Deprecated
088            public com.liferay.portal.model.Group addGroup(long userId,
089                    java.lang.String className, long classPK, long liveGroupId,
090                    java.lang.String name, java.lang.String description, int type,
091                    java.lang.String friendlyURL, boolean site, boolean active,
092                    com.liferay.portal.service.ServiceContext serviceContext)
093                    throws PortalException;
094    
095            /**
096            * Adds the group using the default live group.
097            *
098            * @param userId the primary key of the group's creator/owner
099            * @param className the entity's class name
100            * @param classPK the primary key of the entity's instance
101            * @param name the entity's name
102            * @param description the group's description (optionally
103            <code>null</code>)
104            * @param type the group's type. For more information see {@link
105            GroupConstants}.
106            * @param friendlyURL the group's friendlyURL
107            * @param site whether the group is to be associated with a main site
108            * @param active whether the group is active
109            * @param serviceContext the service context to be applied (optionally
110            <code>null</code>). Can set asset category IDs and asset tag
111            names for the group, and whether the group is for staging.
112            * @return the group
113            * @throws PortalException if a creator could not be found, if the
114            group's information was invalid, if a layout could not be
115            found, or if a valid friendly URL could not be created for
116            the group
117            * @deprecated As of 6.2.0, replaced by {@link #addGroup(long, long, String,
118            long, long, Map, Map, int, boolean, int, String, boolean,
119            boolean, ServiceContext)}
120            */
121            @java.lang.Deprecated
122            public com.liferay.portal.model.Group addGroup(long userId,
123                    java.lang.String className, long classPK, java.lang.String name,
124                    java.lang.String description, int type, java.lang.String friendlyURL,
125                    boolean site, boolean active,
126                    com.liferay.portal.service.ServiceContext serviceContext)
127                    throws PortalException;
128    
129            /**
130            * Adds a group.
131            *
132            * @param userId the primary key of the group's creator/owner
133            * @param parentGroupId the primary key of the parent group
134            * @param className the entity's class name
135            * @param classPK the primary key of the entity's instance
136            * @param liveGroupId the primary key of the live group
137            * @param name the entity's name
138            * @param description the group's description (optionally
139            <code>null</code>)
140            * @param type the group's type. For more information see {@link
141            GroupConstants}.
142            * @param manualMembership whether manual membership is allowed for the
143            group
144            * @param membershipRestriction the group's membership restriction. For
145            more information see {@link GroupConstants}.
146            * @param friendlyURL the group's friendlyURL (optionally
147            <code>null</code>)
148            * @param site whether the group is to be associated with a main site
149            * @param active whether the group is active
150            * @param serviceContext the service context to be applied (optionally
151            <code>null</code>). Can set asset category IDs and asset tag
152            names for the group, and whether the group is for staging.
153            * @return the group
154            * @throws PortalException if a creator could not be found, if the
155            group's information was invalid, if a layout could not be
156            found, or if a valid friendly URL could not be created for
157            the group
158            * @deprecated As of 7.0.0, replaced by {@link #addGroup(long, long, String,
159            long, long, Map, Map, int, boolean, int, String, boolean,
160            boolean, ServiceContext)}
161            */
162            @java.lang.Deprecated
163            public com.liferay.portal.model.Group addGroup(long userId,
164                    long parentGroupId, java.lang.String className, long classPK,
165                    long liveGroupId, java.lang.String name, java.lang.String description,
166                    int type, boolean manualMembership, int membershipRestriction,
167                    java.lang.String friendlyURL, boolean site, boolean active,
168                    com.liferay.portal.service.ServiceContext serviceContext)
169                    throws PortalException;
170    
171            public com.liferay.portal.model.Group addGroup(long userId,
172                    long parentGroupId, java.lang.String className, long classPK,
173                    long liveGroupId,
174                    java.util.Map<java.util.Locale, java.lang.String> nameMap,
175                    java.util.Map<java.util.Locale, java.lang.String> descriptionMap,
176                    int type, boolean manualMembership, int membershipRestriction,
177                    java.lang.String friendlyURL, boolean site, boolean active,
178                    com.liferay.portal.service.ServiceContext serviceContext)
179                    throws PortalException;
180    
181            public com.liferay.portal.model.Group addGroup(long userId,
182                    long parentGroupId, java.lang.String className, long classPK,
183                    long liveGroupId,
184                    java.util.Map<java.util.Locale, java.lang.String> nameMap,
185                    java.util.Map<java.util.Locale, java.lang.String> descriptionMap,
186                    int type, boolean manualMembership, int membershipRestriction,
187                    java.lang.String friendlyURL, boolean site, boolean inheritContent,
188                    boolean active, com.liferay.portal.service.ServiceContext serviceContext)
189                    throws PortalException;
190    
191            /**
192            * Adds the group using the default live group.
193            *
194            * @param userId the primary key of the group's creator/owner
195            * @param parentGroupId the primary key of the parent group
196            * @param className the entity's class name
197            * @param classPK the primary key of the entity's instance
198            * @param name the entity's name
199            * @param description the group's description (optionally
200            <code>null</code>)
201            * @param type the group's type. For more information see {@link
202            GroupConstants}.
203            * @param friendlyURL the group's friendlyURL
204            * @param site whether the group is to be associated with a main site
205            * @param active whether the group is active
206            * @param serviceContext the service context to be applied (optionally
207            <code>null</code>). Can set asset category IDs and asset tag
208            names for the group, and whether the group is for staging.
209            * @return the group
210            * @throws PortalException if a creator could not be found, if the
211            group's information was invalid, if a layout could not be
212            found, or if a valid friendly URL could not be created for
213            the group
214            * @deprecated As of 6.2.0, replaced by {@link #addGroup(long, long, String,
215            long, long, Map, Map, int, boolean, int, String, boolean,
216            boolean, ServiceContext)}
217            */
218            @java.lang.Deprecated
219            public com.liferay.portal.model.Group addGroup(long userId,
220                    long parentGroupId, java.lang.String className, long classPK,
221                    java.lang.String name, java.lang.String description, int type,
222                    java.lang.String friendlyURL, boolean site, boolean active,
223                    com.liferay.portal.service.ServiceContext serviceContext)
224                    throws PortalException;
225    
226            public void addOrganizationGroup(long organizationId,
227                    com.liferay.portal.model.Group group);
228    
229            public void addOrganizationGroup(long organizationId, long groupId);
230    
231            public void addOrganizationGroups(long organizationId,
232                    java.util.List<com.liferay.portal.model.Group> Groups);
233    
234            public void addOrganizationGroups(long organizationId, long[] groupIds);
235    
236            public void addRoleGroup(long roleId, com.liferay.portal.model.Group group);
237    
238            public void addRoleGroup(long roleId, long groupId);
239    
240            public void addRoleGroups(long roleId,
241                    java.util.List<com.liferay.portal.model.Group> Groups);
242    
243            public void addRoleGroups(long roleId, long[] groupIds);
244    
245            public void addUserGroup(long userId, com.liferay.portal.model.Group group);
246    
247            public void addUserGroup(long userId, long groupId);
248    
249            public void addUserGroupGroup(long userGroupId,
250                    com.liferay.portal.model.Group group);
251    
252            public void addUserGroupGroup(long userGroupId, long groupId);
253    
254            public void addUserGroupGroups(long userGroupId,
255                    java.util.List<com.liferay.portal.model.Group> Groups);
256    
257            public void addUserGroupGroups(long userGroupId, long[] groupIds);
258    
259            public void addUserGroups(long userId,
260                    java.util.List<com.liferay.portal.model.Group> Groups);
261    
262            public void addUserGroups(long userId, long[] groupIds);
263    
264            /**
265            * Adds a company group if it does not exist. This method is typically used
266            * when a virtual host is added.
267            *
268            * @param companyId the primary key of the company
269            * @throws PortalException if a default user for the company could not be
270            found, if the group's information was invalid, if a layout could
271            not be found, or if a valid friendly URL could not be created for
272            the group
273            */
274            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
275            public void checkCompanyGroup(long companyId) throws PortalException;
276    
277            /**
278            * Creates systems groups and other related data needed by the system on the
279            * very first startup. Also takes care of creating the Control Panel groups
280            * and layouts.
281            *
282            * @param companyId the primary key of the company
283            * @throws PortalException if a new system group could not be created
284            */
285            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
286            public void checkSystemGroups(long companyId) throws PortalException;
287    
288            public void clearOrganizationGroups(long organizationId);
289    
290            public void clearRoleGroups(long roleId);
291    
292            public void clearUserGroupGroups(long userGroupId);
293    
294            public void clearUserGroups(long userId);
295    
296            /**
297            * Creates a new group with the primary key. Does not add the group to the database.
298            *
299            * @param groupId the primary key for the new group
300            * @return the new group
301            */
302            public com.liferay.portal.model.Group createGroup(long groupId);
303    
304            /**
305            * Deletes the group from the database. Also notifies the appropriate model listeners.
306            *
307            * @param group the group
308            * @return the group that was removed
309            * @throws PortalException
310            */
311            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.DELETE)
312            public com.liferay.portal.model.Group deleteGroup(
313                    com.liferay.portal.model.Group group) throws PortalException;
314    
315            /**
316            * Deletes the group with the primary key from the database. Also notifies the appropriate model listeners.
317            *
318            * @param groupId the primary key of the group
319            * @return the group that was removed
320            * @throws PortalException if a group with the primary key could not be found
321            */
322            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.DELETE)
323            public com.liferay.portal.model.Group deleteGroup(long groupId)
324                    throws PortalException;
325    
326            public void deleteOrganizationGroup(long organizationId,
327                    com.liferay.portal.model.Group group);
328    
329            public void deleteOrganizationGroup(long organizationId, long groupId);
330    
331            public void deleteOrganizationGroups(long organizationId,
332                    java.util.List<com.liferay.portal.model.Group> Groups);
333    
334            public void deleteOrganizationGroups(long organizationId, long[] groupIds);
335    
336            /**
337            * @throws PortalException
338            */
339            @Override
340            public com.liferay.portal.model.PersistedModel deletePersistedModel(
341                    com.liferay.portal.model.PersistedModel persistedModel)
342                    throws PortalException;
343    
344            public void deleteRoleGroup(long roleId,
345                    com.liferay.portal.model.Group group);
346    
347            public void deleteRoleGroup(long roleId, long groupId);
348    
349            public void deleteRoleGroups(long roleId,
350                    java.util.List<com.liferay.portal.model.Group> Groups);
351    
352            public void deleteRoleGroups(long roleId, long[] groupIds);
353    
354            public void deleteUserGroup(long userId,
355                    com.liferay.portal.model.Group group);
356    
357            public void deleteUserGroup(long userId, long groupId);
358    
359            public void deleteUserGroupGroup(long userGroupId,
360                    com.liferay.portal.model.Group group);
361    
362            public void deleteUserGroupGroup(long userGroupId, long groupId);
363    
364            public void deleteUserGroupGroups(long userGroupId,
365                    java.util.List<com.liferay.portal.model.Group> Groups);
366    
367            public void deleteUserGroupGroups(long userGroupId, long[] groupIds);
368    
369            public void deleteUserGroups(long userId,
370                    java.util.List<com.liferay.portal.model.Group> Groups);
371    
372            public void deleteUserGroups(long userId, long[] groupIds);
373    
374            public void disableStaging(long groupId) throws PortalException;
375    
376            public com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery();
377    
378            /**
379            * Performs a dynamic query on the database and returns the matching rows.
380            *
381            * @param dynamicQuery the dynamic query
382            * @return the matching rows
383            */
384            public <T> java.util.List<T> dynamicQuery(
385                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery);
386    
387            /**
388            * Performs a dynamic query on the database and returns a range of the matching rows.
389            *
390            * <p>
391            * 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.GroupModelImpl}. 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.
392            * </p>
393            *
394            * @param dynamicQuery the dynamic query
395            * @param start the lower bound of the range of model instances
396            * @param end the upper bound of the range of model instances (not inclusive)
397            * @return the range of matching rows
398            */
399            public <T> java.util.List<T> dynamicQuery(
400                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
401                    int end);
402    
403            /**
404            * Performs a dynamic query on the database and returns an ordered range of the matching rows.
405            *
406            * <p>
407            * 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.GroupModelImpl}. 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.
408            * </p>
409            *
410            * @param dynamicQuery the dynamic query
411            * @param start the lower bound of the range of model instances
412            * @param end the upper bound of the range of model instances (not inclusive)
413            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
414            * @return the ordered range of matching rows
415            */
416            public <T> java.util.List<T> dynamicQuery(
417                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
418                    int end,
419                    com.liferay.portal.kernel.util.OrderByComparator<T> orderByComparator);
420    
421            /**
422            * Returns the number of rows matching the dynamic query.
423            *
424            * @param dynamicQuery the dynamic query
425            * @return the number of rows matching the dynamic query
426            */
427            public long dynamicQueryCount(
428                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery);
429    
430            /**
431            * Returns the number of rows matching the dynamic query.
432            *
433            * @param dynamicQuery the dynamic query
434            * @param projection the projection to apply to the query
435            * @return the number of rows matching the dynamic query
436            */
437            public long dynamicQueryCount(
438                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery,
439                    com.liferay.portal.kernel.dao.orm.Projection projection);
440    
441            public void enableStaging(long groupId) throws PortalException;
442    
443            /**
444            * Returns the company's group.
445            *
446            * @param companyId the primary key of the company
447            * @return the company's group, or <code>null</code> if a matching group
448            could not be found
449            */
450            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
451            public com.liferay.portal.model.Group fetchCompanyGroup(long companyId);
452    
453            /**
454            * Returns the group with the matching friendly URL.
455            *
456            * @param companyId the primary key of the company
457            * @param friendlyURL the friendly URL
458            * @return the group with the friendly URL, or <code>null</code> if a
459            matching group could not be found
460            */
461            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
462            public com.liferay.portal.model.Group fetchFriendlyURLGroup(
463                    long companyId, java.lang.String friendlyURL);
464    
465            /**
466            * Returns the group with the matching group key by first searching the
467            * system groups and then using the finder cache.
468            *
469            * @param companyId the primary key of the company
470            * @param groupKey the group key
471            * @return the group with the group key and associated company, or
472            <code>null</code> if a matching group could not be found
473            */
474            @com.liferay.portal.kernel.spring.aop.Skip
475            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
476            public com.liferay.portal.model.Group fetchGroup(long companyId,
477                    java.lang.String groupKey);
478    
479            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
480            public com.liferay.portal.model.Group fetchGroup(long groupId);
481    
482            /**
483            * Returns the group with the matching UUID and company.
484            *
485            * @param uuid the group's UUID
486            * @param companyId the primary key of the company
487            * @return the matching group, or <code>null</code> if a matching group could not be found
488            */
489            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
490            public com.liferay.portal.model.Group fetchGroupByUuidAndCompanyId(
491                    java.lang.String uuid, long companyId);
492    
493            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
494            public com.liferay.portal.model.Group fetchUserGroup(long companyId,
495                    long userId);
496    
497            /**
498            * Returns the default user's personal site group.
499            *
500            * @param companyId the primary key of the company
501            * @return the default user's personal site group, or <code>null</code> if a
502            matching group could not be found
503            * @throws PortalException if a default user for the company could not be
504            found
505            */
506            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
507            public com.liferay.portal.model.Group fetchUserPersonalSiteGroup(
508                    long companyId) throws PortalException;
509    
510            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
511            public com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery getActionableDynamicQuery();
512    
513            /**
514            * Returns the Spring bean ID for this bean.
515            *
516            * @return the Spring bean ID for this bean
517            */
518            public java.lang.String getBeanIdentifier();
519    
520            /**
521            * Returns the company group.
522            *
523            * @param companyId the primary key of the company
524            * @return the group associated with the company
525            * @throws PortalException if a matching group could not be found
526            */
527            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
528            public com.liferay.portal.model.Group getCompanyGroup(long companyId)
529                    throws PortalException;
530    
531            /**
532            * Returns a range of all the groups associated with the company.
533            *
534            * <p>
535            * Useful when paginating results. Returns a maximum of <code>end -
536            * start</code> instances. <code>start</code> and <code>end</code> are not
537            * primary keys, they are indexes in the result set. Thus, <code>0</code>
538            * refers to the first result in the set. Setting both <code>start</code>
539            * and <code>end</code> to {@link
540            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
541            * result set.
542            * </p>
543            *
544            * @param companyId the primary key of the company
545            * @param start the lower bound of the range of groups to return
546            * @param end the upper bound of the range of groups to return (not
547            inclusive)
548            * @return the range of groups associated with the company
549            */
550            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
551            public java.util.List<com.liferay.portal.model.Group> getCompanyGroups(
552                    long companyId, int start, int end);
553    
554            /**
555            * Returns the number of groups associated with the company.
556            *
557            * @param companyId the primary key of the company
558            * @return the number of groups associated with the company
559            */
560            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
561            public int getCompanyGroupsCount(long companyId);
562    
563            /**
564            * Returns the group with the matching friendly URL.
565            *
566            * @param companyId the primary key of the company
567            * @param friendlyURL the group's friendlyURL
568            * @return the group with the friendly URL
569            * @throws PortalException if a matching group could not be found, or if the
570            friendly URL was invalid
571            */
572            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
573            public com.liferay.portal.model.Group getFriendlyURLGroup(long companyId,
574                    java.lang.String friendlyURL) throws PortalException;
575    
576            /**
577            * Returns the group with the matching group key.
578            *
579            * @param companyId the primary key of the company
580            * @param groupKey the group key
581            * @return the group with the group key
582            * @throws PortalException if a matching group could not be found
583            */
584            @com.liferay.portal.kernel.spring.aop.Skip
585            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
586            public com.liferay.portal.model.Group getGroup(long companyId,
587                    java.lang.String groupKey) throws PortalException;
588    
589            /**
590            * Returns the group with the primary key.
591            *
592            * @param groupId the primary key of the group
593            * @return the group
594            * @throws PortalException if a group with the primary key could not be found
595            */
596            @com.liferay.portal.kernel.cache.ThreadLocalCachable
597            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
598            public com.liferay.portal.model.Group getGroup(long groupId)
599                    throws PortalException;
600    
601            /**
602            * Returns the group with the matching UUID and company.
603            *
604            * @param uuid the group's UUID
605            * @param companyId the primary key of the company
606            * @return the matching group
607            * @throws PortalException if a matching group could not be found
608            */
609            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
610            public com.liferay.portal.model.Group getGroupByUuidAndCompanyId(
611                    java.lang.String uuid, long companyId) throws PortalException;
612    
613            /**
614            * @deprecated As of 7.0.0, replaced by {@link
615            Group#getDescriptiveName(Locale)}
616            */
617            @java.lang.Deprecated
618            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
619            public java.lang.String getGroupDescriptiveName(
620                    com.liferay.portal.model.Group group, java.util.Locale locale)
621                    throws PortalException;
622    
623            /**
624            * @deprecated As of 7.0.0, replaced by {@link
625            Group#getDescriptiveName(Locale)}
626            */
627            @java.lang.Deprecated
628            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
629            public java.lang.String getGroupDescriptiveName(long groupId,
630                    java.util.Locale locale) throws PortalException;
631    
632            /**
633            * Returns all the groups that are direct children of the parent group with
634            * the matching className.
635            *
636            * @param companyId the primary key of the company
637            * @param className the class name of the group
638            * @param parentGroupId the primary key of the parent group
639            * @return the matching groups, or <code>null</code> if no matches were
640            found
641            */
642            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
643            public java.util.List<com.liferay.portal.model.Group> getGroups(
644                    long companyId, java.lang.String className, long parentGroupId);
645    
646            /**
647            * Returns a range of all the groups that are direct children of the parent
648            * group with the matching className.
649            *
650            * @param companyId the primary key of the company
651            * @param className the class name of the group
652            * @param parentGroupId the primary key of the parent group
653            * @param start the lower bound of the range of results
654            * @param end the upper bound of the range of results (not inclusive)
655            * @return the range of matching groups
656            */
657            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
658            public java.util.List<com.liferay.portal.model.Group> getGroups(
659                    long companyId, java.lang.String className, long parentGroupId,
660                    int start, int end);
661    
662            /**
663            * Returns all the groups that are direct children of the parent group.
664            *
665            * @param companyId the primary key of the company
666            * @param parentGroupId the primary key of the parent group
667            * @param site whether the group is to be associated with a main site
668            * @return the matching groups, or <code>null</code> if no matches were
669            found
670            */
671            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
672            public java.util.List<com.liferay.portal.model.Group> getGroups(
673                    long companyId, long parentGroupId, boolean site);
674    
675            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
676            public java.util.List<com.liferay.portal.model.Group> getGroups(
677                    long companyId, long parentGroupId, boolean site, boolean inheritContent);
678    
679            /**
680            * Returns the groups with the matching primary keys.
681            *
682            * @param groupIds the primary keys of the groups
683            * @return the groups with the primary keys
684            * @throws PortalException if any one of the groups could not be found
685            */
686            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
687            public java.util.List<com.liferay.portal.model.Group> getGroups(
688                    long[] groupIds) throws PortalException;
689    
690            /**
691            * Returns a range of all the groups.
692            *
693            * <p>
694            * 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.GroupModelImpl}. 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.
695            * </p>
696            *
697            * @param start the lower bound of the range of groups
698            * @param end the upper bound of the range of groups (not inclusive)
699            * @return the range of groups
700            */
701            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
702            public java.util.List<com.liferay.portal.model.Group> getGroups(int start,
703                    int end);
704    
705            /**
706            * Returns the number of groups.
707            *
708            * @return the number of groups
709            */
710            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
711            public int getGroupsCount();
712    
713            /**
714            * Returns the number of groups that are direct children of the parent group
715            * with the matching className.
716            *
717            * @param companyId the primary key of the company
718            * @param className the class name of the group
719            * @param parentGroupId the primary key of the parent group
720            * @return the number of matching groups
721            */
722            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
723            public int getGroupsCount(long companyId, java.lang.String className,
724                    long parentGroupId);
725    
726            /**
727            * Returns the number of groups that are direct children of the parent
728            * group.
729            *
730            * @param companyId the primary key of the company
731            * @param parentGroupId the primary key of the parent group
732            * @param site whether the group is to be associated with a main site
733            * @return the number of matching groups
734            */
735            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
736            public int getGroupsCount(long companyId, long parentGroupId, boolean site);
737    
738            /**
739            * Returns the group associated with the layout.
740            *
741            * @param companyId the primary key of the company
742            * @param plid the primary key of the layout
743            * @return the group associated with the layout
744            * @throws PortalException if a matching group could not be found
745            */
746            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
747            public com.liferay.portal.model.Group getLayoutGroup(long companyId,
748                    long plid) throws PortalException;
749    
750            /**
751            * Returns the group associated with the layout prototype.
752            *
753            * @param companyId the primary key of the company
754            * @param layoutPrototypeId the primary key of the layout prototype
755            * @return the group associated with the layout prototype
756            * @throws PortalException if a matching group could not be found
757            */
758            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
759            public com.liferay.portal.model.Group getLayoutPrototypeGroup(
760                    long companyId, long layoutPrototypeId) throws PortalException;
761    
762            /**
763            * Returns the group associated with the layout set prototype.
764            *
765            * @param companyId the primary key of the company
766            * @param layoutSetPrototypeId the primary key of the layout set prototype
767            * @return the group associated with the layout set prototype
768            * @throws PortalException if a matching group could not be found
769            */
770            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
771            public com.liferay.portal.model.Group getLayoutSetPrototypeGroup(
772                    long companyId, long layoutSetPrototypeId) throws PortalException;
773    
774            /**
775            * Returns a range of all groups that are children of the parent group and
776            * that have at least one layout.
777            *
778            * <p>
779            * Useful when paginating results. Returns a maximum of <code>end -
780            * start</code> instances. <code>start</code> and <code>end</code> are not
781            * primary keys, they are indexes in the result set. Thus, <code>0</code>
782            * refers to the first result in the set. Setting both <code>start</code>
783            * and <code>end</code> to {@link
784            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
785            * result set.
786            * </p>
787            *
788            * @param companyId the primary key of the company
789            * @param parentGroupId the primary key of the parent group
790            * @param site whether the group is to be associated with a main site
791            * @param start the lower bound of the range of groups to return
792            * @param end the upper bound of the range of groups to return (not
793            inclusive)
794            * @return the range of matching groups
795            * @deprecated As of 6.2.0, replaced by {@link #getLayoutsGroups(long, long,
796            boolean, int, int, OrderByComparator)}
797            */
798            @java.lang.Deprecated
799            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
800            public java.util.List<com.liferay.portal.model.Group> getLayoutsGroups(
801                    long companyId, long parentGroupId, boolean site, int start, int end);
802    
803            /**
804            * Returns a range of all groups that are children of the parent group and
805            * that have at least one layout.
806            *
807            * <p>
808            * Useful when paginating results. Returns a maximum of <code>end -
809            * start</code> instances. <code>start</code> and <code>end</code> are not
810            * primary keys, they are indexes in the result set. Thus, <code>0</code>
811            * refers to the first result in the set. Setting both <code>start</code>
812            * and <code>end</code> to {@link
813            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
814            * result set.
815            * </p>
816            *
817            * @param companyId the primary key of the company
818            * @param parentGroupId the primary key of the parent group
819            * @param site whether the group is to be associated with a main site
820            * @param start the lower bound of the range of groups to return
821            * @param end the upper bound of the range of groups to return (not
822            inclusive)
823            * @param obc the comparator to order the groups (optionally
824            <code>null</code>)
825            * @return the range of matching groups ordered by comparator
826            <code>obc</code>
827            */
828            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
829            public java.util.List<com.liferay.portal.model.Group> getLayoutsGroups(
830                    long companyId, long parentGroupId, boolean site, int start, int end,
831                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> obc);
832    
833            /**
834            * Returns the number of groups that are children or the parent group and
835            * that have at least one layout
836            *
837            * @param companyId the primary key of the company
838            * @param parentGroupId the primary key of the parent group
839            * @param site whether the group is to be associated with a main site
840            * @return the number of matching groups
841            */
842            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
843            public int getLayoutsGroupsCount(long companyId, long parentGroupId,
844                    boolean site);
845    
846            /**
847            * Returns all live groups.
848            *
849            * @return all live groups
850            */
851            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
852            public java.util.List<com.liferay.portal.model.Group> getLiveGroups();
853    
854            /**
855            * Returns a range of all non-system groups of a specified type (className)
856            * that have no layouts.
857            *
858            * <p>
859            * Useful when paginating results. Returns a maximum of <code>end -
860            * start</code> instances. <code>start</code> and <code>end</code> are not
861            * primary keys, they are indexes in the result set. Thus, <code>0</code>
862            * refers to the first result in the set. Setting both <code>start</code>
863            * and <code>end</code> to {@link
864            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
865            * result set.
866            * </p>
867            *
868            * @param className the entity's class name
869            * @param privateLayout whether to include groups with private layout sets
870            or non-private layout sets
871            * @param start the lower bound of the range of groups to return
872            * @param end the upper bound of the range of groups to return (not
873            inclusive)
874            * @return the range of matching groups
875            */
876            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
877            public java.util.List<com.liferay.portal.model.Group> getNoLayoutsGroups(
878                    java.lang.String className, boolean privateLayout, int start, int end);
879    
880            /**
881            * Returns all non-system groups having <code>null</code> or empty friendly
882            * URLs.
883            *
884            * @return the non-system groups having <code>null</code> or empty friendly
885            URLs
886            */
887            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
888            public java.util.List<com.liferay.portal.model.Group> getNullFriendlyURLGroups();
889    
890            /**
891            * Returns the specified organization group.
892            *
893            * @param companyId the primary key of the company
894            * @param organizationId the primary key of the organization
895            * @return the group associated with the organization
896            * @throws PortalException if a matching group could not be found
897            */
898            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
899            public com.liferay.portal.model.Group getOrganizationGroup(long companyId,
900                    long organizationId) throws PortalException;
901    
902            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
903            public java.util.List<com.liferay.portal.model.Group> getOrganizationGroups(
904                    long organizationId);
905    
906            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
907            public java.util.List<com.liferay.portal.model.Group> getOrganizationGroups(
908                    long organizationId, int start, int end);
909    
910            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
911            public java.util.List<com.liferay.portal.model.Group> getOrganizationGroups(
912                    long organizationId, int start, int end,
913                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> orderByComparator);
914    
915            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
916            public int getOrganizationGroupsCount(long organizationId);
917    
918            /**
919            * Returns the organizationIds of the organizations associated with the group.
920            *
921            * @param groupId the groupId of the group
922            * @return long[] the organizationIds of organizations associated with the group
923            */
924            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
925            public long[] getOrganizationPrimaryKeys(long groupId);
926    
927            /**
928            * Returns the specified organization groups.
929            *
930            * @param organizations the organizations
931            * @return the groups associated with the organizations
932            */
933            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
934            public java.util.List<com.liferay.portal.model.Group> getOrganizationsGroups(
935                    java.util.List<com.liferay.portal.model.Organization> organizations);
936    
937            /**
938            * Returns all the groups related to the organizations.
939            *
940            * @param organizations the organizations
941            * @return the groups related to the organizations
942            */
943            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
944            public java.util.List<com.liferay.portal.model.Group> getOrganizationsRelatedGroups(
945                    java.util.List<com.liferay.portal.model.Organization> organizations);
946    
947            /**
948            * Returns the group followed by all its parent groups ordered by closest
949            * ancestor.
950            *
951            * @param groupId the primary key of the group
952            * @return the group followed by all its parent groups ordered by closest
953            ancestor
954            * @throws PortalException if a group with the primary key could not be
955            found
956            */
957            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
958            public java.util.List<com.liferay.portal.model.Group> getParentGroups(
959                    long groupId) throws PortalException;
960    
961            @Override
962            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
963            public com.liferay.portal.model.PersistedModel getPersistedModel(
964                    java.io.Serializable primaryKeyObj) throws PortalException;
965    
966            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
967            public java.util.List<com.liferay.portal.model.Group> getRoleGroups(
968                    long roleId);
969    
970            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
971            public java.util.List<com.liferay.portal.model.Group> getRoleGroups(
972                    long roleId, int start, int end);
973    
974            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
975            public java.util.List<com.liferay.portal.model.Group> getRoleGroups(
976                    long roleId, int start, int end,
977                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> orderByComparator);
978    
979            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
980            public int getRoleGroupsCount(long roleId);
981    
982            /**
983            * Returns the roleIds of the roles associated with the group.
984            *
985            * @param groupId the groupId of the group
986            * @return long[] the roleIds of roles associated with the group
987            */
988            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
989            public long[] getRolePrimaryKeys(long groupId);
990    
991            /**
992            * Returns the staging group.
993            *
994            * @param liveGroupId the primary key of the live group
995            * @return the staging group
996            * @throws PortalException if a matching staging group could not be found
997            */
998            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
999            public com.liferay.portal.model.Group getStagingGroup(long liveGroupId)
1000                    throws PortalException;
1001    
1002            /**
1003            * Returns the group directly associated with the user.
1004            *
1005            * @param companyId the primary key of the company
1006            * @param userId the primary key of the user
1007            * @return the group directly associated with the user
1008            * @throws PortalException if a matching group could not be found
1009            */
1010            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1011            public com.liferay.portal.model.Group getUserGroup(long companyId,
1012                    long userId) throws PortalException;
1013    
1014            /**
1015            * Returns the specified "user group" group. That is, the group that
1016            * represents the {@link com.liferay.portal.model.UserGroup} entity.
1017            *
1018            * @param companyId the primary key of the company
1019            * @param userGroupId the primary key of the user group
1020            * @return the group associated with the user group
1021            * @throws PortalException if a matching group could not be found
1022            */
1023            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1024            public com.liferay.portal.model.Group getUserGroupGroup(long companyId,
1025                    long userGroupId) throws PortalException;
1026    
1027            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1028            public java.util.List<com.liferay.portal.model.Group> getUserGroupGroups(
1029                    long userGroupId);
1030    
1031            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1032            public java.util.List<com.liferay.portal.model.Group> getUserGroupGroups(
1033                    long userGroupId, int start, int end);
1034    
1035            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1036            public java.util.List<com.liferay.portal.model.Group> getUserGroupGroups(
1037                    long userGroupId, int start, int end,
1038                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> orderByComparator);
1039    
1040            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1041            public int getUserGroupGroupsCount(long userGroupId);
1042    
1043            /**
1044            * Returns the userGroupIds of the user groups associated with the group.
1045            *
1046            * @param groupId the groupId of the group
1047            * @return long[] the userGroupIds of user groups associated with the group
1048            */
1049            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1050            public long[] getUserGroupPrimaryKeys(long groupId);
1051    
1052            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1053            public java.util.List<com.liferay.portal.model.Group> getUserGroups(
1054                    long userId);
1055    
1056            /**
1057            * Returns all the user's site groups and immediate organization groups,
1058            * optionally including the user's inherited organization groups and user
1059            * groups. System and staged groups are not included.
1060            *
1061            * @param userId the primary key of the user
1062            * @param inherit whether to include the user's inherited organization
1063            groups and user groups
1064            * @return the user's groups and immediate organization groups
1065            * @throws PortalException if a user with the primary key could not be found
1066            */
1067            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1068            public java.util.List<com.liferay.portal.model.Group> getUserGroups(
1069                    long userId, boolean inherit) throws PortalException;
1070    
1071            /**
1072            * Returns an ordered range of all the user's site groups and immediate
1073            * organization groups, optionally including the user's inherited
1074            * organization groups and user groups. System and staged groups are not
1075            * included.
1076            *
1077            * <p>
1078            * Useful when paginating results. Returns a maximum of <code>end -
1079            * start</code> instances. <code>start</code> and <code>end</code> are not
1080            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1081            * refers to the first result in the set. Setting both <code>start</code>
1082            * and <code>end</code> to {@link
1083            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1084            * result set.
1085            * </p>
1086            *
1087            * @param userId the primary key of the user
1088            * @param inherit whether to include the user's inherited organization
1089            groups and user groups
1090            * @param start the lower bound of the range of groups to return
1091            * @param end the upper bound of the range of groups to return (not
1092            inclusive)
1093            * @return the range of the user's groups and immediate organization groups
1094            ordered by name
1095            * @throws PortalException if a user with the primary key could not be found
1096            */
1097            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1098            public java.util.List<com.liferay.portal.model.Group> getUserGroups(
1099                    long userId, boolean inherit, int start, int end)
1100                    throws PortalException;
1101    
1102            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1103            public java.util.List<com.liferay.portal.model.Group> getUserGroups(
1104                    long userId, int start, int end);
1105    
1106            /**
1107            * @throws PortalException
1108            */
1109            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1110            public java.util.List<com.liferay.portal.model.Group> getUserGroups(
1111                    long userId, int start, int end,
1112                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> orderByComparator)
1113                    throws PortalException;
1114    
1115            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1116            public int getUserGroupsCount(long userId);
1117    
1118            /**
1119            * Returns the groups associated with the user groups.
1120            *
1121            * @param userGroups the user groups
1122            * @return the groups associated with the user groups
1123            * @throws PortalException if any one of the user group's group could not be
1124            found
1125            */
1126            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1127            public java.util.List<com.liferay.portal.model.Group> getUserGroupsGroups(
1128                    java.util.List<com.liferay.portal.model.UserGroup> userGroups)
1129                    throws PortalException;
1130    
1131            /**
1132            * Returns all the groups related to the user groups.
1133            *
1134            * @param userGroups the user groups
1135            * @return the groups related to the user groups
1136            */
1137            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1138            public java.util.List<com.liferay.portal.model.Group> getUserGroupsRelatedGroups(
1139                    java.util.List<com.liferay.portal.model.UserGroup> userGroups);
1140    
1141            /**
1142            * Returns the range of all groups associated with the user's organization
1143            * groups, including the ancestors of the organization groups, unless portal
1144            * property <code>organizations.membership.strict</code> is set to
1145            * <code>true</code>.
1146            *
1147            * <p>
1148            * Useful when paginating results. Returns a maximum of <code>end -
1149            * start</code> instances. <code>start</code> and <code>end</code> are not
1150            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1151            * refers to the first result in the set. Setting both <code>start</code>
1152            * and <code>end</code> to {@link
1153            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1154            * result set.
1155            * </p>
1156            *
1157            * @param userId the primary key of the user
1158            * @param start the lower bound of the range of groups to consider
1159            * @param end the upper bound of the range of groups to consider (not
1160            inclusive)
1161            * @return the range of groups associated with the user's organization
1162            groups
1163            * @throws PortalException if a user with the primary key could not be found
1164            or if another portal exception occurred
1165            */
1166            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1167            public java.util.List<com.liferay.portal.model.Group> getUserOrganizationsGroups(
1168                    long userId, int start, int end) throws PortalException;
1169    
1170            /**
1171            * Returns the default user's personal site group.
1172            *
1173            * @param companyId the primary key of the company
1174            * @return the default user's personal site group
1175            * @throws PortalException if a matching group or default user for the
1176            company could not be found
1177            */
1178            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1179            public com.liferay.portal.model.Group getUserPersonalSiteGroup(
1180                    long companyId) throws PortalException;
1181    
1182            /**
1183            * Returns the userIds of the users associated with the group.
1184            *
1185            * @param groupId the groupId of the group
1186            * @return long[] the userIds of users associated with the group
1187            */
1188            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1189            public long[] getUserPrimaryKeys(long groupId);
1190    
1191            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1192            public java.util.List<com.liferay.portal.model.Group> getUserSitesGroups(
1193                    long userId) throws PortalException;
1194    
1195            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1196            public java.util.List<com.liferay.portal.model.Group> getUserSitesGroups(
1197                    long userId, boolean includeAdministrative) throws PortalException;
1198    
1199            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1200            public boolean hasOrganizationGroup(long organizationId, long groupId);
1201    
1202            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1203            public boolean hasOrganizationGroups(long organizationId);
1204    
1205            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1206            public boolean hasRoleGroup(long roleId, long groupId);
1207    
1208            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1209            public boolean hasRoleGroups(long roleId);
1210    
1211            /**
1212            * Returns <code>true</code> if the live group has a staging group.
1213            *
1214            * @param liveGroupId the primary key of the live group
1215            * @return <code>true</code> if the live group has a staging group;
1216            <code>false</code> otherwise
1217            */
1218            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1219            public boolean hasStagingGroup(long liveGroupId);
1220    
1221            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1222            public boolean hasUserGroup(long userId, long groupId);
1223    
1224            /**
1225            * Returns <code>true</code> if the user is immediately associated with the
1226            * group, or optionally if the user is associated with the group via the
1227            * user's organizations, inherited organizations, or user groups.
1228            *
1229            * @param userId the primary key of the user
1230            * @param groupId the primary key of the group
1231            * @param inherit whether to include organization groups and user groups to
1232            which the user belongs in the determination
1233            * @return <code>true</code> if the user is associated with the group;
1234            <code>false</code> otherwise
1235            */
1236            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1237            public boolean hasUserGroup(long userId, long groupId, boolean inherit);
1238    
1239            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1240            public boolean hasUserGroupGroup(long userGroupId, long groupId);
1241    
1242            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1243            public boolean hasUserGroupGroups(long userGroupId);
1244    
1245            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1246            public boolean hasUserGroups(long userId);
1247    
1248            /**
1249            * Returns the group with the matching group key by first searching the
1250            * system groups and then using the finder cache.
1251            *
1252            * @param companyId the primary key of the company
1253            * @param groupKey the group key
1254            * @return the group with the group key and associated company, or
1255            <code>null</code> if a matching group could not be found
1256            */
1257            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1258            public com.liferay.portal.model.Group loadFetchGroup(long companyId,
1259                    java.lang.String groupKey);
1260    
1261            /**
1262            * Returns the group with the matching group key.
1263            *
1264            * @param companyId the primary key of the company
1265            * @param groupKey the group key
1266            * @return the group with the group key and associated company
1267            * @throws PortalException if a matching group could not be found
1268            */
1269            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1270            public com.liferay.portal.model.Group loadGetGroup(long companyId,
1271                    java.lang.String groupKey) throws PortalException;
1272    
1273            /**
1274            * Rebuilds the group tree.
1275            *
1276            * <p>
1277            * Only call this method if the tree has become stale through operations
1278            * other than normal CRUD. Under normal circumstances the tree is
1279            * automatically rebuilt whenever necessary.
1280            * </p>
1281            *
1282            * @param companyId the primary key of the group's company
1283            * @throws PortalException if a group with the primary key could not be
1284            found
1285            */
1286            public void rebuildTree(long companyId) throws PortalException;
1287    
1288            /**
1289            * Returns an ordered range of all the groups that match the class name IDs
1290            * and keywords, optionally including the user's inherited organization
1291            * groups and user groups. System and staged groups are not included.
1292            *
1293            * <p>
1294            * Useful when paginating results. Returns a maximum of <code>end -
1295            * start</code> instances. <code>start</code> and <code>end</code> are not
1296            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1297            * refers to the first result in the set. Setting both <code>start</code>
1298            * and <code>end</code> to {@link
1299            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1300            * result set.
1301            * </p>
1302            *
1303            * @param companyId the primary key of the company
1304            * @param classNameIds the primary keys of the class names of the entities
1305            the groups are related to (optionally <code>null</code>)
1306            * @param keywords the keywords (space separated), which may occur in the
1307            sites's name, or description (optionally <code>null</code>)
1308            * @param params the finder params (optionally <code>null</code>). To
1309            include a user's organizations, inherited organizations, and user
1310            groups in the search, add an entry with key
1311            &quot;usersGroups&quot; mapped to the user's ID and an entry with
1312            key &quot;inherit&quot; mapped to a non-<code>null</code> object.
1313            For more information see {@link
1314            com.liferay.portal.service.persistence.GroupFinder}.
1315            * @param start the lower bound of the range of groups to return
1316            * @param end the upper bound of the range of groups to return (not
1317            inclusive)
1318            * @return the matching groups ordered by name
1319            */
1320            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1321            public java.util.List<com.liferay.portal.model.Group> search(
1322                    long companyId, long[] classNameIds, java.lang.String keywords,
1323                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1324                    int start, int end);
1325    
1326            /**
1327            * Returns an ordered range of all the groups that match the class name IDs
1328            * and keywords, optionally including the user's inherited organization
1329            * groups and user groups. System and staged groups are not included.
1330            *
1331            * <p>
1332            * Useful when paginating results. Returns a maximum of <code>end -
1333            * start</code> instances. <code>start</code> and <code>end</code> are not
1334            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1335            * refers to the first result in the set. Setting both <code>start</code>
1336            * and <code>end</code> to {@link
1337            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1338            * result set.
1339            * </p>
1340            *
1341            * @param companyId the primary key of the company
1342            * @param classNameIds the primary keys of the class names of the entities
1343            the groups are related to (optionally <code>null</code>)
1344            * @param keywords the keywords (space separated), which may occur in the
1345            sites's name, or description (optionally <code>null</code>)
1346            * @param params the finder params (optionally <code>null</code>). To
1347            include a user's organizations, inherited organizations, and user
1348            groups in the search, add an entry with key
1349            &quot;usersGroups&quot; mapped to the user's ID and an entry with
1350            key &quot;inherit&quot; mapped to a non-<code>null</code> object.
1351            For more information see {@link
1352            com.liferay.portal.service.persistence.GroupFinder}.
1353            * @param start the lower bound of the range of groups to return
1354            * @param end the upper bound of the range of groups to return (not
1355            inclusive)
1356            * @param obc the comparator to order the groups (optionally
1357            <code>null</code>)
1358            * @return the matching groups ordered by comparator <code>obc</code>
1359            */
1360            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1361            public java.util.List<com.liferay.portal.model.Group> search(
1362                    long companyId, long[] classNameIds, java.lang.String keywords,
1363                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1364                    int start, int end,
1365                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> obc);
1366    
1367            /**
1368            * Returns an ordered range of all the groups that match the class name IDs,
1369            * name, and description, optionally including the user's inherited
1370            * organization groups and user groups. System and staged groups are not
1371            * included.
1372            *
1373            * <p>
1374            * Useful when paginating results. Returns a maximum of <code>end -
1375            * start</code> instances. <code>start</code> and <code>end</code> are not
1376            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1377            * refers to the first result in the set. Setting both <code>start</code>
1378            * and <code>end</code> to {@link
1379            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1380            * result set.
1381            * </p>
1382            *
1383            * @param companyId the primary key of the company
1384            * @param classNameIds the primary keys of the class names of the entities
1385            the groups are related to (optionally <code>null</code>)
1386            * @param name the group's name (optionally <code>null</code>)
1387            * @param description the group's description (optionally
1388            <code>null</code>)
1389            * @param params the finder params (optionally <code>null</code>). To
1390            include a user's organizations, inherited organizations, and user
1391            groups in the search, add an entry with key
1392            &quot;usersGroups&quot; mapped to the user's ID and an entry with
1393            key &quot;inherit&quot; mapped to a non-<code>null</code> object.
1394            For more information see {@link
1395            com.liferay.portal.service.persistence.GroupFinder}.
1396            * @param andOperator whether every field must match its keywords, or just
1397            one field.
1398            * @param start the lower bound of the range of groups to return
1399            * @param end the upper bound of the range of groups to return (not
1400            inclusive)
1401            * @return the matching groups ordered by name
1402            */
1403            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1404            public java.util.List<com.liferay.portal.model.Group> search(
1405                    long companyId, long[] classNameIds, java.lang.String name,
1406                    java.lang.String description,
1407                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1408                    boolean andOperator, int start, int end);
1409    
1410            /**
1411            * Returns an ordered range of all the groups that match the class name IDs,
1412            * name, and description, optionally including the user's inherited
1413            * organization groups and user groups. System and staged groups are not
1414            * included.
1415            *
1416            * <p>
1417            * Useful when paginating results. Returns a maximum of <code>end -
1418            * start</code> instances. <code>start</code> and <code>end</code> are not
1419            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1420            * refers to the first result in the set. Setting both <code>start</code>
1421            * and <code>end</code> to {@link
1422            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1423            * result set.
1424            * </p>
1425            *
1426            * @param companyId the primary key of the company
1427            * @param classNameIds the primary keys of the class names of the entities
1428            the groups are related to (optionally <code>null</code>)
1429            * @param name the group's name (optionally <code>null</code>)
1430            * @param description the group's description (optionally
1431            <code>null</code>)
1432            * @param params the finder params (optionally <code>null</code>). To
1433            include a user's organizations, inherited organizations, and user
1434            groups in the search, add an entry with key
1435            &quot;usersGroups&quot; mapped to the user's ID and an entry with
1436            key &quot;inherit&quot; mapped to a non-<code>null</code> object.
1437            For more information see {@link
1438            com.liferay.portal.service.persistence.GroupFinder}.
1439            * @param andOperator whether every field must match its keywords, or just
1440            one field.
1441            * @param start the lower bound of the range of groups to return
1442            * @param end the upper bound of the range of groups to return (not
1443            inclusive)
1444            * @param obc the comparator to order the groups (optionally
1445            <code>null</code>)
1446            * @return the matching groups ordered by comparator <code>obc</code>
1447            */
1448            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1449            public java.util.List<com.liferay.portal.model.Group> search(
1450                    long companyId, long[] classNameIds, java.lang.String name,
1451                    java.lang.String description,
1452                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1453                    boolean andOperator, int start, int end,
1454                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> obc);
1455    
1456            /**
1457            * Returns an ordered range of all the groups belonging to the parent group
1458            * that match the class name IDs and keywords, optionally including the
1459            * user's inherited organization groups and user groups. System and staged
1460            * groups are not included.
1461            *
1462            * <p>
1463            * Useful when paginating results. Returns a maximum of <code>end -
1464            * start</code> instances. <code>start</code> and <code>end</code> are not
1465            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1466            * refers to the first result in the set. Setting both <code>start</code>
1467            * and <code>end</code> to {@link
1468            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1469            * result set.
1470            * </p>
1471            *
1472            * @param companyId the primary key of the company
1473            * @param classNameIds the primary keys of the class names of the entities
1474            the groups are related to (optionally <code>null</code>)
1475            * @param parentGroupId the primary key of the parent group
1476            * @param keywords the keywords (space separated), which may occur in the
1477            sites's name, or description (optionally <code>null</code>)
1478            * @param params the finder params (optionally <code>null</code>). To
1479            include a user's organizations, inherited organizations, and user
1480            groups in the search, add an entry with key
1481            &quot;usersGroups&quot; mapped to the user's ID and an entry with
1482            key &quot;inherit&quot; mapped to a non-<code>null</code> object.
1483            For more information see {@link
1484            com.liferay.portal.service.persistence.GroupFinder}.
1485            * @param start the lower bound of the range of groups to return
1486            * @param end the upper bound of the range of groups to return (not
1487            inclusive)
1488            * @return the matching groups ordered by name
1489            */
1490            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1491            public java.util.List<com.liferay.portal.model.Group> search(
1492                    long companyId, long[] classNameIds, long parentGroupId,
1493                    java.lang.String keywords,
1494                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1495                    int start, int end);
1496    
1497            /**
1498            * Returns an ordered range of all the groups belonging to the parent group
1499            * that match the class name IDs and keywords, optionally including the
1500            * user's inherited organization groups and user groups. System and staged
1501            * groups are not included.
1502            *
1503            * <p>
1504            * Useful when paginating results. Returns a maximum of <code>end -
1505            * start</code> instances. <code>start</code> and <code>end</code> are not
1506            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1507            * refers to the first result in the set. Setting both <code>start</code>
1508            * and <code>end</code> to {@link
1509            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1510            * result set.
1511            * </p>
1512            *
1513            * @param companyId the primary key of the company
1514            * @param classNameIds the primary keys of the class names of the entities
1515            the groups are related to (optionally <code>null</code>)
1516            * @param parentGroupId the primary key of the parent group
1517            * @param keywords the keywords (space separated), which may occur in the
1518            sites's name, or description (optionally <code>null</code>)
1519            * @param params the finder params (optionally <code>null</code>). To
1520            include a user's organizations, inherited organizations, and user
1521            groups in the search, add an entry with key
1522            &quot;usersGroups&quot; mapped to the user's ID and an entry with
1523            key &quot;inherit&quot; mapped to a non-<code>null</code> object.
1524            For more information see {@link
1525            com.liferay.portal.service.persistence.GroupFinder}.
1526            * @param start the lower bound of the range of groups to return
1527            * @param end the upper bound of the range of groups to return (not
1528            inclusive)
1529            * @param obc the comparator to order the groups (optionally
1530            <code>null</code>)
1531            * @return the matching groups ordered by comparator <code>obc</code>
1532            */
1533            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1534            public java.util.List<com.liferay.portal.model.Group> search(
1535                    long companyId, long[] classNameIds, long parentGroupId,
1536                    java.lang.String keywords,
1537                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1538                    int start, int end,
1539                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> obc);
1540    
1541            /**
1542            * Returns an ordered range of all the groups belonging to the parent group
1543            * that match the class name IDs, name, and description, optionally
1544            * including the user's inherited organization groups and user groups.
1545            * System and staged groups are not included.
1546            *
1547            * <p>
1548            * Useful when paginating results. Returns a maximum of <code>end -
1549            * start</code> instances. <code>start</code> and <code>end</code> are not
1550            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1551            * refers to the first result in the set. Setting both <code>start</code>
1552            * and <code>end</code> to {@link
1553            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1554            * result set.
1555            * </p>
1556            *
1557            * @param companyId the primary key of the company
1558            * @param classNameIds the primary keys of the class names of the entities
1559            the groups are related to (optionally <code>null</code>)
1560            * @param parentGroupId the primary key of the parent group
1561            * @param name the group's name (optionally <code>null</code>)
1562            * @param description the group's description (optionally
1563            <code>null</code>)
1564            * @param params the finder params (optionally <code>null</code>). To
1565            include a user's organizations, inherited organizations, and user
1566            groups in the search, add an entry with key
1567            &quot;usersGroups&quot; mapped to the user's ID and an entry with
1568            key &quot;inherit&quot; mapped to a non-<code>null</code> object.
1569            For more information see {@link
1570            com.liferay.portal.service.persistence.GroupFinder}.
1571            * @param andOperator whether every field must match its keywords, or just
1572            one field.
1573            * @param start the lower bound of the range of groups to return
1574            * @param end the upper bound of the range of groups to return (not
1575            inclusive)
1576            * @return the matching groups ordered by name
1577            */
1578            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1579            public java.util.List<com.liferay.portal.model.Group> search(
1580                    long companyId, long[] classNameIds, long parentGroupId,
1581                    java.lang.String name, java.lang.String description,
1582                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1583                    boolean andOperator, int start, int end);
1584    
1585            /**
1586            * Returns an ordered range of all the groups belonging to the parent group
1587            * that match the class name IDs, name, and description, optionally
1588            * including the user's inherited organization groups and user groups.
1589            * System and staged groups are not included.
1590            *
1591            * <p>
1592            * Useful when paginating results. Returns a maximum of <code>end -
1593            * start</code> instances. <code>start</code> and <code>end</code> are not
1594            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1595            * refers to the first result in the set. Setting both <code>start</code>
1596            * and <code>end</code> to {@link
1597            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1598            * result set.
1599            * </p>
1600            *
1601            * @param companyId the primary key of the company
1602            * @param classNameIds the primary keys of the class names of the entities
1603            the groups are related to (optionally <code>null</code>)
1604            * @param parentGroupId the primary key of the parent group
1605            * @param name the group's name (optionally <code>null</code>)
1606            * @param description the group's description (optionally
1607            <code>null</code>)
1608            * @param params the finder params (optionally <code>null</code>). To
1609            include a user's organizations, inherited organizations, and user
1610            groups in the search, add an entry with key
1611            &quot;usersGroups&quot; mapped to the user's ID and an entry with
1612            key &quot;inherit&quot; mapped to a non-<code>null</code> object.
1613            For more information see {@link
1614            com.liferay.portal.service.persistence.GroupFinder}.
1615            * @param andOperator whether every field must match its keywords, or just
1616            one field.
1617            * @param start the lower bound of the range of groups to return
1618            * @param end the upper bound of the range of groups to return (not
1619            inclusive)
1620            * @param obc the comparator to order the groups (optionally
1621            <code>null</code>)
1622            * @return the matching groups ordered by comparator <code>obc</code>
1623            */
1624            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1625            public java.util.List<com.liferay.portal.model.Group> search(
1626                    long companyId, long[] classNameIds, long parentGroupId,
1627                    java.lang.String name, java.lang.String description,
1628                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1629                    boolean andOperator, int start, int end,
1630                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> obc);
1631    
1632            /**
1633            * Returns an ordered range of all the groups that match the keywords,
1634            * optionally including the user's inherited organization groups and user
1635            * groups. System and staged groups are not included.
1636            *
1637            * <p>
1638            * Useful when paginating results. Returns a maximum of <code>end -
1639            * start</code> instances. <code>start</code> and <code>end</code> are not
1640            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1641            * refers to the first result in the set. Setting both <code>start</code>
1642            * and <code>end</code> to {@link
1643            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1644            * result set.
1645            * </p>
1646            *
1647            * @param companyId the primary key of the company
1648            * @param keywords the keywords (space separated), which may occur in the
1649            sites's name, or description (optionally <code>null</code>)
1650            * @param params the finder params (optionally <code>null</code>). To
1651            include the user's inherited organizations and user groups in the
1652            search, add entries having &quot;usersGroups&quot; and
1653            &quot;inherit&quot; as keys mapped to the the user's ID. For more
1654            information see {@link
1655            com.liferay.portal.service.persistence.GroupFinder}.
1656            * @param start the lower bound of the range of groups to return
1657            * @param end the upper bound of the range of groups to return (not
1658            inclusive)
1659            * @return the matching groups ordered by name
1660            */
1661            @com.liferay.portal.kernel.cache.ThreadLocalCachable
1662            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1663            public java.util.List<com.liferay.portal.model.Group> search(
1664                    long companyId, java.lang.String keywords,
1665                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1666                    int start, int end);
1667    
1668            /**
1669            * Returns an ordered range of all the groups that match the keywords,
1670            * optionally including the user's inherited organization groups and user
1671            * groups. System and staged groups are not included.
1672            *
1673            * <p>
1674            * Useful when paginating results. Returns a maximum of <code>end -
1675            * start</code> instances. <code>start</code> and <code>end</code> are not
1676            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1677            * refers to the first result in the set. Setting both <code>start</code>
1678            * and <code>end</code> to {@link
1679            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1680            * result set.
1681            * </p>
1682            *
1683            * @param companyId the primary key of the company
1684            * @param keywords the keywords (space separated), which may occur in the
1685            sites's name, or description (optionally <code>null</code>)
1686            * @param params the finder params (optionally <code>null</code>). To
1687            include the user's inherited organizations and user groups in the
1688            search, add entries having &quot;usersGroups&quot; and
1689            &quot;inherit&quot; as keys mapped to the the user's ID. For more
1690            information see {@link
1691            com.liferay.portal.service.persistence.GroupFinder}.
1692            * @param start the lower bound of the range of groups to return
1693            * @param end the upper bound of the range of groups to return (not
1694            inclusive)
1695            * @param obc the comparator to order the groups (optionally
1696            <code>null</code>)
1697            * @return the matching groups ordered by comparator <code>obc</code>
1698            */
1699            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1700            public java.util.List<com.liferay.portal.model.Group> search(
1701                    long companyId, java.lang.String keywords,
1702                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1703                    int start, int end,
1704                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> obc);
1705    
1706            /**
1707            * Returns an ordered range of all the site groups and organization groups
1708            * that match the name and description, optionally including the user's
1709            * inherited organization groups and user groups. System and staged groups
1710            * are not included.
1711            *
1712            * <p>
1713            * Useful when paginating results. Returns a maximum of <code>end -
1714            * start</code> instances. <code>start</code> and <code>end</code> are not
1715            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1716            * refers to the first result in the set. Setting both <code>start</code>
1717            * and <code>end</code> to {@link
1718            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1719            * result set.
1720            * </p>
1721            *
1722            * @param companyId the primary key of the company
1723            * @param name the group's name (optionally <code>null</code>)
1724            * @param description the group's description (optionally
1725            <code>null</code>)
1726            * @param params the finder params (optionally <code>null</code>). To
1727            include the user's inherited organizations and user groups in the
1728            search, add entries having &quot;usersGroups&quot; and
1729            &quot;inherit&quot; as keys mapped to the the user's ID. For more
1730            information see {@link
1731            com.liferay.portal.service.persistence.GroupFinder}.
1732            * @param andOperator whether every field must match its keywords, or just
1733            one field.
1734            * @param start the lower bound of the range of groups to return
1735            * @param end the upper bound of the range of groups to return (not
1736            inclusive)
1737            * @return the matching groups ordered by name
1738            */
1739            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1740            public java.util.List<com.liferay.portal.model.Group> search(
1741                    long companyId, java.lang.String name, java.lang.String description,
1742                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1743                    boolean andOperator, int start, int end);
1744    
1745            /**
1746            * Returns an ordered range of all the site groups and organization groups
1747            * that match the name and description, optionally including the user's
1748            * inherited organization groups and user groups. System and staged groups
1749            * are not included.
1750            *
1751            * <p>
1752            * Useful when paginating results. Returns a maximum of <code>end -
1753            * start</code> instances. <code>start</code> and <code>end</code> are not
1754            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1755            * refers to the first result in the set. Setting both <code>start</code>
1756            * and <code>end</code> to {@link
1757            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1758            * result set.
1759            * </p>
1760            *
1761            * @param companyId the primary key of the company
1762            * @param name the group's name (optionally <code>null</code>)
1763            * @param description the group's description (optionally
1764            <code>null</code>)
1765            * @param params the finder params (optionally <code>null</code>). To
1766            include the user's inherited organizations and user groups in the
1767            search, add entries having &quot;usersGroups&quot; and
1768            &quot;inherit&quot; as keys mapped to the the user's ID. For more
1769            information see {@link
1770            com.liferay.portal.service.persistence.GroupFinder}.
1771            * @param andOperator whether every field must match its keywords, or just
1772            one field.
1773            * @param start the lower bound of the range of groups to return
1774            * @param end the upper bound of the range of groups to return (not
1775            inclusive)
1776            * @param obc the comparator to order the groups (optionally
1777            <code>null</code>)
1778            * @return the matching groups ordered by comparator <code>obc</code>
1779            */
1780            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1781            public java.util.List<com.liferay.portal.model.Group> search(
1782                    long companyId, java.lang.String name, java.lang.String description,
1783                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1784                    boolean andOperator, int start, int end,
1785                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> obc);
1786    
1787            /**
1788            * Returns an ordered range of all the company's groups, optionally
1789            * including the user's inherited organization groups and user groups.
1790            * System and staged groups are not included.
1791            *
1792            * <p>
1793            * Useful when paginating results. Returns a maximum of <code>end -
1794            * start</code> instances. <code>start</code> and <code>end</code> are not
1795            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1796            * refers to the first result in the set. Setting both <code>start</code>
1797            * and <code>end</code> to {@link
1798            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1799            * result set.
1800            * </p>
1801            *
1802            * @param companyId the primary key of the company
1803            * @param params the finder params (optionally <code>null</code>). To
1804            include a user's organizations, inherited organizations, and user
1805            groups in the search, add an entry with key
1806            &quot;usersGroups&quot; mapped to the user's ID and an entry with
1807            key &quot;inherit&quot; mapped to a non-<code>null</code> object.
1808            For more information see {@link
1809            com.liferay.portal.service.persistence.GroupFinder}.
1810            * @param start the lower bound of the range of groups to return
1811            * @param end the upper bound of the range of groups to return (not
1812            inclusive)
1813            * @return the matching groups ordered by name
1814            */
1815            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1816            public java.util.List<com.liferay.portal.model.Group> search(
1817                    long companyId,
1818                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1819                    int start, int end);
1820    
1821            /**
1822            * Returns an ordered range of all the groups belonging to the parent group
1823            * that match the keywords, optionally including the user's inherited
1824            * organization groups and user groups. System and staged groups are not
1825            * included.
1826            *
1827            * <p>
1828            * Useful when paginating results. Returns a maximum of <code>end -
1829            * start</code> instances. <code>start</code> and <code>end</code> are not
1830            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1831            * refers to the first result in the set. Setting both <code>start</code>
1832            * and <code>end</code> to {@link
1833            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1834            * result set.
1835            * </p>
1836            *
1837            * @param companyId the primary key of the company
1838            * @param parentGroupId the primary key of the parent group
1839            * @param keywords the keywords (space separated), which may occur in the
1840            sites's name, or description (optionally <code>null</code>)
1841            * @param params the finder params (optionally <code>null</code>). To
1842            include the user's inherited organizations and user groups in the
1843            search, add entries having &quot;usersGroups&quot; and
1844            &quot;inherit&quot; as keys mapped to the the user's ID. For more
1845            information see {@link
1846            com.liferay.portal.service.persistence.GroupFinder}.
1847            * @param start the lower bound of the range of groups to return
1848            * @param end the upper bound of the range of groups to return (not
1849            inclusive)
1850            * @return the matching groups ordered by name
1851            */
1852            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1853            public java.util.List<com.liferay.portal.model.Group> search(
1854                    long companyId, long parentGroupId, java.lang.String keywords,
1855                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1856                    int start, int end);
1857    
1858            /**
1859            * Returns an ordered range of all the groups belonging to the parent group
1860            * that match the keywords, optionally including the user's inherited
1861            * organization groups and user groups. System and staged groups are not
1862            * included.
1863            *
1864            * <p>
1865            * Useful when paginating results. Returns a maximum of <code>end -
1866            * start</code> instances. <code>start</code> and <code>end</code> are not
1867            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1868            * refers to the first result in the set. Setting both <code>start</code>
1869            * and <code>end</code> to {@link
1870            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1871            * result set.
1872            * </p>
1873            *
1874            * @param companyId the primary key of the company
1875            * @param parentGroupId the primary key of the parent group
1876            * @param keywords the keywords (space separated), which may occur in the
1877            sites's name, or description (optionally <code>null</code>)
1878            * @param params the finder params (optionally <code>null</code>). To
1879            include the user's inherited organizations and user groups in the
1880            search, add entries having &quot;usersGroups&quot; and
1881            &quot;inherit&quot; as keys mapped to the the user's ID. For more
1882            information see {@link
1883            com.liferay.portal.service.persistence.GroupFinder}.
1884            * @param start the lower bound of the range of groups to return
1885            * @param end the upper bound of the range of groups to return (not
1886            inclusive)
1887            * @param obc the comparator to order the groups (optionally
1888            <code>null</code>)
1889            * @return the matching groups ordered by comparator <code>obc</code>
1890            */
1891            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1892            public java.util.List<com.liferay.portal.model.Group> search(
1893                    long companyId, long parentGroupId, java.lang.String keywords,
1894                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1895                    int start, int end,
1896                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> obc);
1897    
1898            /**
1899            * Returns an ordered range of all the site groups belonging to the parent
1900            * group and organization groups that match the name and description,
1901            * optionally including the user's inherited organization groups and user
1902            * groups. System and staged groups are not included.
1903            *
1904            * <p>
1905            * Useful when paginating results. Returns a maximum of <code>end -
1906            * start</code> instances. <code>start</code> and <code>end</code> are not
1907            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1908            * refers to the first result in the set. Setting both <code>start</code>
1909            * and <code>end</code> to {@link
1910            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1911            * result set.
1912            * </p>
1913            *
1914            * @param companyId the primary key of the company
1915            * @param parentGroupId the primary key of the parent group
1916            * @param name the group's name (optionally <code>null</code>)
1917            * @param description the group's description (optionally
1918            <code>null</code>)
1919            * @param params the finder params (optionally <code>null</code>). To
1920            include the user's inherited organizations and user groups in the
1921            search, add entries having &quot;usersGroups&quot; and
1922            &quot;inherit&quot; as keys mapped to the the user's ID. For more
1923            information see {@link
1924            com.liferay.portal.service.persistence.GroupFinder}.
1925            * @param andOperator whether every field must match its keywords, or just
1926            one field.
1927            * @param start the lower bound of the range of groups to return
1928            * @param end the upper bound of the range of groups to return (not
1929            inclusive)
1930            * @return the matching groups ordered by name
1931            */
1932            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1933            public java.util.List<com.liferay.portal.model.Group> search(
1934                    long companyId, long parentGroupId, java.lang.String name,
1935                    java.lang.String description,
1936                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1937                    boolean andOperator, int start, int end);
1938    
1939            /**
1940            * Returns an ordered range of all the site groups belonging to the parent
1941            * group and organization groups that match the name and description,
1942            * optionally including the user's inherited organization groups and user
1943            * groups. System and staged groups are not included.
1944            *
1945            * <p>
1946            * Useful when paginating results. Returns a maximum of <code>end -
1947            * start</code> instances. <code>start</code> and <code>end</code> are not
1948            * primary keys, they are indexes in the result set. Thus, <code>0</code>
1949            * refers to the first result in the set. Setting both <code>start</code>
1950            * and <code>end</code> to {@link
1951            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
1952            * result set.
1953            * </p>
1954            *
1955            * @param companyId the primary key of the company
1956            * @param parentGroupId the primary key of the parent group
1957            * @param name the group's name (optionally <code>null</code>)
1958            * @param description the group's description (optionally
1959            <code>null</code>)
1960            * @param params the finder params (optionally <code>null</code>). To
1961            include the user's inherited organizations and user groups in the
1962            search, add entries having &quot;usersGroups&quot; and
1963            &quot;inherit&quot; as keys mapped to the the user's ID. For more
1964            information see {@link
1965            com.liferay.portal.service.persistence.GroupFinder}.
1966            * @param andOperator whether every field must match its keywords, or just
1967            one field.
1968            * @param start the lower bound of the range of groups to return
1969            * @param end the upper bound of the range of groups to return (not
1970            inclusive)
1971            * @param obc the comparator to order the groups (optionally
1972            <code>null</code>)
1973            * @return the matching groups ordered by comparator <code>obc</code>
1974            */
1975            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
1976            public java.util.List<com.liferay.portal.model.Group> search(
1977                    long companyId, long parentGroupId, java.lang.String name,
1978                    java.lang.String description,
1979                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
1980                    boolean andOperator, int start, int end,
1981                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.model.Group> obc);
1982    
1983            /**
1984            * Returns the number of groups that match the class name IDs, and keywords,
1985            * optionally including the user's inherited organization groups and user
1986            * groups. System and staged groups are not included.
1987            *
1988            * @param companyId the primary key of the company
1989            * @param classNameIds the primary keys of the class names of the entities
1990            the groups are related to (optionally <code>null</code>)
1991            * @param keywords the keywords (space separated), which may occur in the
1992            sites's name, or description (optionally <code>null</code>)
1993            * @param params the finder params (optionally <code>null</code>). To
1994            include the user's inherited organization groups and user groups
1995            in the search, add entries having &quot;usersGroups&quot; and
1996            &quot;inherit&quot; as keys mapped to the the user's ID. For more
1997            information see {@link
1998            com.liferay.portal.service.persistence.GroupFinder}.
1999            * @return the number of matching groups
2000            */
2001            @com.liferay.portal.kernel.cache.ThreadLocalCachable
2002            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
2003            public int searchCount(long companyId, long[] classNameIds,
2004                    java.lang.String keywords,
2005                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params);
2006    
2007            /**
2008            * Returns the number of groups that match the class name IDs, name, and
2009            * description, optionally including the user's inherited organization
2010            * groups and user groups. System and staged groups are not included.
2011            *
2012            * @param companyId the primary key of the company
2013            * @param classNameIds the primary keys of the class names of the entities
2014            the groups are related to (optionally <code>null</code>)
2015            * @param name the group's name (optionally <code>null</code>)
2016            * @param description the group's description (optionally
2017            <code>null</code>)
2018            * @param params the finder params (optionally <code>null</code>). To
2019            include the user's inherited organization groups and user groups
2020            in the search, add entries having &quot;usersGroups&quot; and
2021            &quot;inherit&quot; as keys mapped to the the user's ID. For more
2022            information see {@link
2023            com.liferay.portal.service.persistence.GroupFinder}.
2024            * @param andOperator whether every field must match its keywords, or just
2025            one field.
2026            * @return the number of matching groups
2027            */
2028            @com.liferay.portal.kernel.cache.ThreadLocalCachable
2029            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
2030            public int searchCount(long companyId, long[] classNameIds,
2031                    java.lang.String name, java.lang.String description,
2032                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
2033                    boolean andOperator);
2034    
2035            /**
2036            * Returns the number of groups belonging to the parent group that match the
2037            * class name IDs, and keywords, optionally including the user's inherited
2038            * organization groups and user groups. System and staged groups are not
2039            * included.
2040            *
2041            * @param companyId the primary key of the company
2042            * @param classNameIds the primary keys of the class names of the entities
2043            the groups are related to (optionally <code>null</code>)
2044            * @param parentGroupId the primary key of the parent group
2045            * @param keywords the keywords (space separated), which may occur in the
2046            sites's name, or description (optionally <code>null</code>)
2047            * @param params the finder params (optionally <code>null</code>). To
2048            include the user's inherited organization groups and user groups
2049            in the search, add entries having &quot;usersGroups&quot; and
2050            &quot;inherit&quot; as keys mapped to the the user's ID. For more
2051            information see {@link
2052            com.liferay.portal.service.persistence.GroupFinder}.
2053            * @return the number of matching groups
2054            */
2055            @com.liferay.portal.kernel.cache.ThreadLocalCachable
2056            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
2057            public int searchCount(long companyId, long[] classNameIds,
2058                    long parentGroupId, java.lang.String keywords,
2059                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params);
2060    
2061            /**
2062            * Returns the number of groups belonging to the parent group that match the
2063            * class name IDs, name, and description, optionally including the user's
2064            * inherited organization groups and user groups. System and staged groups
2065            * are not included.
2066            *
2067            * @param companyId the primary key of the company
2068            * @param classNameIds the primary keys of the class names of the entities
2069            the groups are related to (optionally <code>null</code>)
2070            * @param parentGroupId the primary key of the parent group
2071            * @param name the group's name (optionally <code>null</code>)
2072            * @param description the group's description (optionally
2073            <code>null</code>)
2074            * @param params the finder params (optionally <code>null</code>). To
2075            include the user's inherited organization groups and user groups
2076            in the search, add entries having &quot;usersGroups&quot; and
2077            &quot;inherit&quot; as keys mapped to the the user's ID. For more
2078            information see {@link
2079            com.liferay.portal.service.persistence.GroupFinder}.
2080            * @param andOperator whether every field must match its keywords, or just
2081            one field.
2082            * @return the number of matching groups
2083            */
2084            @com.liferay.portal.kernel.cache.ThreadLocalCachable
2085            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
2086            public int searchCount(long companyId, long[] classNameIds,
2087                    long parentGroupId, java.lang.String name,
2088                    java.lang.String description,
2089                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
2090                    boolean andOperator);
2091    
2092            /**
2093            * Returns the number of groups that match the keywords, optionally
2094            * including the user's inherited organization groups and user groups.
2095            * System and staged groups are not included.
2096            *
2097            * @param companyId the primary key of the company
2098            * @param keywords the keywords (space separated), which may occur in the
2099            sites's name, or description (optionally <code>null</code>)
2100            * @param params the finder params (optionally <code>null</code>). To
2101            include the user's inherited organization groups and user groups
2102            in the search, add entries having &quot;usersGroups&quot; and
2103            &quot;inherit&quot; as keys mapped to the the user's ID. For more
2104            information see {@link
2105            com.liferay.portal.service.persistence.GroupFinder}.
2106            * @return the number of matching groups
2107            */
2108            @com.liferay.portal.kernel.cache.ThreadLocalCachable
2109            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
2110            public int searchCount(long companyId, java.lang.String keywords,
2111                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params);
2112    
2113            /**
2114            * Returns the number of groups and immediate organization groups that match
2115            * the name and description, optionally including the user's inherited
2116            * organization groups and user groups. System and staged groups are not
2117            * included.
2118            *
2119            * @param companyId the primary key of the company
2120            * @param name the group's name (optionally <code>null</code>)
2121            * @param description the group's description (optionally
2122            <code>null</code>)
2123            * @param params the finder params (optionally <code>null</code>). To
2124            include the user's inherited organization groups and user groups
2125            in the search, add entries having &quot;usersGroups&quot; and
2126            &quot;inherit&quot; as keys mapped to the the user's ID. For more
2127            information see {@link
2128            com.liferay.portal.service.persistence.GroupFinder}.
2129            * @param andOperator whether every field must match its keywords, or just
2130            one field.
2131            * @return the number of matching groups
2132            */
2133            @com.liferay.portal.kernel.cache.ThreadLocalCachable
2134            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
2135            public int searchCount(long companyId, java.lang.String name,
2136                    java.lang.String description,
2137                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
2138                    boolean andOperator);
2139    
2140            /**
2141            * Returns the number of groups belonging to the parent group that match the
2142            * keywords, optionally including the user's inherited organization groups
2143            * and user groups. System and staged groups are not included.
2144            *
2145            * @param companyId the primary key of the company
2146            * @param parentGroupId the primary key of the parent group
2147            * @param keywords the keywords (space separated), which may occur in the
2148            sites's name, or description (optionally <code>null</code>)
2149            * @param params the finder params (optionally <code>null</code>). To
2150            include the user's inherited organization groups and user groups
2151            in the search, add entries having &quot;usersGroups&quot; and
2152            &quot;inherit&quot; as keys mapped to the the user's ID. For more
2153            information see {@link
2154            com.liferay.portal.service.persistence.GroupFinder}.
2155            * @return the number of matching groups
2156            */
2157            @com.liferay.portal.kernel.cache.ThreadLocalCachable
2158            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
2159            public int searchCount(long companyId, long parentGroupId,
2160                    java.lang.String keywords,
2161                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params);
2162    
2163            /**
2164            * Returns the number of groups belonging to the parent group and immediate
2165            * organization groups that match the name and description, optionally
2166            * including the user's inherited organization groups and user groups.
2167            * System and staged groups are not included.
2168            *
2169            * @param companyId the primary key of the company
2170            * @param parentGroupId the primary key of the parent group
2171            * @param name the group's name (optionally <code>null</code>)
2172            * @param description the group's description (optionally
2173            <code>null</code>)
2174            * @param params the finder params (optionally <code>null</code>). To
2175            include the user's inherited organization groups and user groups
2176            in the search, add entries having &quot;usersGroups&quot; and
2177            &quot;inherit&quot; as keys mapped to the the user's ID. For more
2178            information see {@link
2179            com.liferay.portal.service.persistence.GroupFinder}.
2180            * @param andOperator whether every field must match its keywords, or just
2181            one field.
2182            * @return the number of matching groups
2183            */
2184            @com.liferay.portal.kernel.cache.ThreadLocalCachable
2185            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
2186            public int searchCount(long companyId, long parentGroupId,
2187                    java.lang.String name, java.lang.String description,
2188                    java.util.LinkedHashMap<java.lang.String, java.lang.Object> params,
2189                    boolean andOperator);
2190    
2191            /**
2192            * Sets the Spring bean ID for this bean.
2193            *
2194            * @param beanIdentifier the Spring bean ID for this bean
2195            */
2196            public void setBeanIdentifier(java.lang.String beanIdentifier);
2197    
2198            public void setOrganizationGroups(long organizationId, long[] groupIds);
2199    
2200            public void setRoleGroups(long roleId, long[] groupIds);
2201    
2202            public void setUserGroupGroups(long userGroupId, long[] groupIds);
2203    
2204            public void setUserGroups(long userId, long[] groupIds);
2205    
2206            /**
2207            * Removes the groups from the role.
2208            *
2209            * @param roleId the primary key of the role
2210            * @param groupIds the primary keys of the groups
2211            */
2212            public void unsetRoleGroups(long roleId, long[] groupIds);
2213    
2214            /**
2215            * Removes the user from the groups.
2216            *
2217            * @param userId the primary key of the user
2218            * @param groupIds the primary keys of the groups
2219            */
2220            public void unsetUserGroups(long userId, long[] groupIds);
2221    
2222            /**
2223            * Updates the group's asset replacing categories and tag names.
2224            *
2225            * @param userId the primary key of the user
2226            * @param group the group
2227            * @param assetCategoryIds the primary keys of the asset categories
2228            (optionally <code>null</code>)
2229            * @param assetTagNames the asset tag names (optionally <code>null</code>)
2230            * @throws PortalException if a user with the primary key could not be found
2231            */
2232            public void updateAsset(long userId, com.liferay.portal.model.Group group,
2233                    long[] assetCategoryIds, java.lang.String[] assetTagNames)
2234                    throws PortalException;
2235    
2236            /**
2237            * Updates the group's friendly URL.
2238            *
2239            * @param groupId the primary key of the group
2240            * @param friendlyURL the group's new friendlyURL (optionally
2241            <code>null</code>)
2242            * @return the group
2243            * @throws PortalException if a group with the primary key could not be
2244            found or if a valid friendly URL could not be created for the
2245            group
2246            */
2247            public com.liferay.portal.model.Group updateFriendlyURL(long groupId,
2248                    java.lang.String friendlyURL) throws PortalException;
2249    
2250            /**
2251            * Updates the group in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
2252            *
2253            * @param group the group
2254            * @return the group that was updated
2255            */
2256            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.REINDEX)
2257            public com.liferay.portal.model.Group updateGroup(
2258                    com.liferay.portal.model.Group group);
2259    
2260            /**
2261            * Updates the group.
2262            *
2263            * @param groupId the primary key of the group
2264            * @param parentGroupId the primary key of the parent group
2265            * @param name the name's key
2266            * @param description the group's new description (optionally
2267            <code>null</code>)
2268            * @param type the group's new type. For more information see {@link
2269            GroupConstants}.
2270            * @param manualMembership whether manual membership is allowed for the
2271            group
2272            * @param membershipRestriction the group's membership restriction. For
2273            more information see {@link GroupConstants}.
2274            * @param friendlyURL the group's new friendlyURL (optionally
2275            <code>null</code>)
2276            * @param active whether the group is active
2277            * @param serviceContext the service context to be applied (optionally
2278            <code>null</code>). Can set asset category IDs and asset tag
2279            names for the group.
2280            * @return the group
2281            * @throws PortalException if a group with the primary key could not be
2282            found or if the friendly URL was invalid or could one not be
2283            created
2284            * @deprecated As of 7.0.0, replaced by {@link #updateGroup(long, long, Map,
2285            Map, int, boolean, int, String, boolean, boolean,
2286            ServiceContext)}
2287            */
2288            @java.lang.Deprecated
2289            public com.liferay.portal.model.Group updateGroup(long groupId,
2290                    long parentGroupId, java.lang.String name,
2291                    java.lang.String description, int type, boolean manualMembership,
2292                    int membershipRestriction, java.lang.String friendlyURL,
2293                    boolean inheritContent, boolean active,
2294                    com.liferay.portal.service.ServiceContext serviceContext)
2295                    throws PortalException;
2296    
2297            public com.liferay.portal.model.Group updateGroup(long groupId,
2298                    long parentGroupId,
2299                    java.util.Map<java.util.Locale, java.lang.String> nameMap,
2300                    java.util.Map<java.util.Locale, java.lang.String> descriptionMap,
2301                    int type, boolean manualMembership, int membershipRestriction,
2302                    java.lang.String friendlyURL, boolean inheritContent, boolean active,
2303                    com.liferay.portal.service.ServiceContext serviceContext)
2304                    throws PortalException;
2305    
2306            /**
2307            * Updates the group's type settings.
2308            *
2309            * @param groupId the primary key of the group
2310            * @param typeSettings the group's new type settings (optionally
2311            <code>null</code>)
2312            * @return the group
2313            * @throws PortalException if a group with the primary key could not be
2314            found
2315            */
2316            public com.liferay.portal.model.Group updateGroup(long groupId,
2317                    java.lang.String typeSettings) throws PortalException;
2318    
2319            /**
2320            * Associates the group with a main site if the group is an organization.
2321            *
2322            * @param groupId the primary key of the group
2323            * @param site whether the group is to be associated with a main site
2324            * @return the group
2325            * @throws PortalException if a group with the primary key could not be
2326            found
2327            */
2328            public com.liferay.portal.model.Group updateSite(long groupId, boolean site)
2329                    throws PortalException;
2330    }