001 /** 002 * Copyright (c) 2000-present Liferay, Inc. All rights reserved. 003 * 004 * This library is free software; you can redistribute it and/or modify it under 005 * the terms of the GNU Lesser General Public License as published by the Free 006 * Software Foundation; either version 2.1 of the License, or (at your option) 007 * any later version. 008 * 009 * This library is distributed in the hope that it will be useful, but WITHOUT 010 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 011 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 012 * details. 013 */ 014 015 package com.liferay.portal.kernel.service; 016 017 import aQute.bnd.annotation.ProviderType; 018 019 import com.liferay.portal.kernel.bean.PortalBeanLocatorUtil; 020 import com.liferay.portal.kernel.util.ReferenceRegistry; 021 022 /** 023 * Provides the remote service utility for Group. This utility wraps 024 * {@link com.liferay.portal.service.impl.GroupServiceImpl} and is the 025 * primary access point for service operations in application layer code running 026 * on a remote server. Methods of this service are expected to have security 027 * checks based on the propagated JAAS credentials because this service can be 028 * accessed remotely. 029 * 030 * @author Brian Wing Shun Chan 031 * @see GroupService 032 * @see com.liferay.portal.service.base.GroupServiceBaseImpl 033 * @see com.liferay.portal.service.impl.GroupServiceImpl 034 * @generated 035 */ 036 @ProviderType 037 public class GroupServiceUtil { 038 /* 039 * NOTE FOR DEVELOPERS: 040 * 041 * Never modify this class directly. Add custom service methods to {@link com.liferay.portal.service.impl.GroupServiceImpl} and rerun ServiceBuilder to regenerate this class. 042 */ 043 044 /** 045 * Adds a group. 046 * 047 * @param parentGroupId the primary key of the parent group 048 * @param liveGroupId the primary key of the live group 049 * @param name the entity's name 050 * @param description the group's description (optionally 051 <code>null</code>) 052 * @param type the group's type. For more information see {@link 053 GroupConstants}. 054 * @param manualMembership whether manual membership is allowed for the 055 group 056 * @param membershipRestriction the group's membership restriction. For 057 more information see {@link GroupConstants}. 058 * @param friendlyURL the group's friendlyURL (optionally 059 <code>null</code>) 060 * @param site whether the group is to be associated with a main site 061 * @param active whether the group is active 062 * @param serviceContext the service context to be applied (optionally 063 <code>null</code>). Can set the asset category IDs and asset 064 tag names for the group, and can set whether the group is for 065 staging 066 * @return the group 067 * @throws PortalException if a portal exception occurred 068 * @deprecated As of 7.0.0, replaced by {@link #addGroup(long, long, Map, 069 Map, int, boolean, int, String, boolean, boolean, 070 ServiceContext)} 071 */ 072 @Deprecated 073 public static com.liferay.portal.kernel.model.Group addGroup( 074 long parentGroupId, long liveGroupId, java.lang.String name, 075 java.lang.String description, int type, boolean manualMembership, 076 int membershipRestriction, java.lang.String friendlyURL, boolean site, 077 boolean active, 078 com.liferay.portal.kernel.service.ServiceContext serviceContext) 079 throws com.liferay.portal.kernel.exception.PortalException { 080 return getService() 081 .addGroup(parentGroupId, liveGroupId, name, description, 082 type, manualMembership, membershipRestriction, friendlyURL, site, 083 active, serviceContext); 084 } 085 086 public static com.liferay.portal.kernel.model.Group addGroup( 087 long parentGroupId, long liveGroupId, 088 java.util.Map<java.util.Locale, java.lang.String> nameMap, 089 java.util.Map<java.util.Locale, java.lang.String> descriptionMap, 090 int type, boolean manualMembership, int membershipRestriction, 091 java.lang.String friendlyURL, boolean site, boolean active, 092 com.liferay.portal.kernel.service.ServiceContext serviceContext) 093 throws com.liferay.portal.kernel.exception.PortalException { 094 return getService() 095 .addGroup(parentGroupId, liveGroupId, nameMap, 096 descriptionMap, type, manualMembership, membershipRestriction, 097 friendlyURL, site, active, serviceContext); 098 } 099 100 public static com.liferay.portal.kernel.model.Group addGroup( 101 long parentGroupId, long liveGroupId, 102 java.util.Map<java.util.Locale, java.lang.String> nameMap, 103 java.util.Map<java.util.Locale, java.lang.String> descriptionMap, 104 int type, boolean manualMembership, int membershipRestriction, 105 java.lang.String friendlyURL, boolean site, boolean inheritContent, 106 boolean active, 107 com.liferay.portal.kernel.service.ServiceContext serviceContext) 108 throws com.liferay.portal.kernel.exception.PortalException { 109 return getService() 110 .addGroup(parentGroupId, liveGroupId, nameMap, 111 descriptionMap, type, manualMembership, membershipRestriction, 112 friendlyURL, site, inheritContent, active, serviceContext); 113 } 114 115 /** 116 * Adds the groups to the role. 117 * 118 * @param roleId the primary key of the role 119 * @param groupIds the primary keys of the groups 120 * @throws PortalException if a portal exception occurred 121 */ 122 public static void addRoleGroups(long roleId, long[] groupIds) 123 throws com.liferay.portal.kernel.exception.PortalException { 124 getService().addRoleGroups(roleId, groupIds); 125 } 126 127 /** 128 * Checks that the current user is permitted to use the group for Remote 129 * Staging. 130 * 131 * @param groupId the primary key of the group 132 * @throws PortalException if a portal exception occurred 133 */ 134 public static void checkRemoteStagingGroup(long groupId) 135 throws com.liferay.portal.kernel.exception.PortalException { 136 getService().checkRemoteStagingGroup(groupId); 137 } 138 139 /** 140 * Deletes the group. 141 * 142 * <p> 143 * The group is unstaged and its assets and resources including layouts, 144 * membership requests, subscriptions, teams, blogs, bookmarks, calendar 145 * events, image gallery, journals, message boards, polls, shopping related 146 * entities, and wikis are also deleted. 147 * </p> 148 * 149 * @param groupId the primary key of the group 150 * @throws PortalException if a portal exception occurred 151 */ 152 public static void deleteGroup(long groupId) 153 throws com.liferay.portal.kernel.exception.PortalException { 154 getService().deleteGroup(groupId); 155 } 156 157 public static void disableStaging(long groupId) 158 throws com.liferay.portal.kernel.exception.PortalException { 159 getService().disableStaging(groupId); 160 } 161 162 public static void enableStaging(long groupId) 163 throws com.liferay.portal.kernel.exception.PortalException { 164 getService().enableStaging(groupId); 165 } 166 167 /** 168 * Returns the company group. 169 * 170 * @param companyId the primary key of the company 171 * @return the group associated with the company 172 * @throws PortalException if a portal exception occurred 173 */ 174 public static com.liferay.portal.kernel.model.Group getCompanyGroup( 175 long companyId) 176 throws com.liferay.portal.kernel.exception.PortalException { 177 return getService().getCompanyGroup(companyId); 178 } 179 180 /** 181 * Returns the group with the name. 182 * 183 * @param companyId the primary key of the company 184 * @param groupKey the group key 185 * @return the group with the group key 186 * @throws PortalException if a portal exception occurred 187 */ 188 public static com.liferay.portal.kernel.model.Group getGroup( 189 long companyId, java.lang.String groupKey) 190 throws com.liferay.portal.kernel.exception.PortalException { 191 return getService().getGroup(companyId, groupKey); 192 } 193 194 /** 195 * Returns the group with the primary key. 196 * 197 * @param groupId the primary key of the group 198 * @return the group with the primary key 199 * @throws PortalException if a portal exception occurred 200 */ 201 public static com.liferay.portal.kernel.model.Group getGroup(long groupId) 202 throws com.liferay.portal.kernel.exception.PortalException { 203 return getService().getGroup(groupId); 204 } 205 206 /** 207 * Returns the group's display URL. 208 * 209 * @param groupId the primary key of the group 210 * @param privateLayout whether the layout set is private to the group 211 * @param secureConnection whether the generated URL uses a secure 212 connection 213 * @return the group's display URL 214 * @throws PortalException if a group with the primary key could not be 215 found or if a portal exception occurred 216 */ 217 public static java.lang.String getGroupDisplayURL(long groupId, 218 boolean privateLayout, boolean secureConnection) 219 throws com.liferay.portal.kernel.exception.PortalException { 220 return getService() 221 .getGroupDisplayURL(groupId, privateLayout, secureConnection); 222 } 223 224 /** 225 * Returns all the groups that are direct children of the parent group. 226 * 227 * @param companyId the primary key of the company 228 * @param parentGroupId the primary key of the parent group 229 * @param site whether the group is to be associated with a main site 230 * @return the matching groups, or <code>null</code> if no matches were 231 found 232 * @throws PortalException if a portal exception occurred 233 */ 234 public static java.util.List<com.liferay.portal.kernel.model.Group> getGroups( 235 long companyId, long parentGroupId, boolean site) 236 throws com.liferay.portal.kernel.exception.PortalException { 237 return getService().getGroups(companyId, parentGroupId, site); 238 } 239 240 /** 241 * Returns a range of all the site groups for which the user has control 242 * panel access. 243 * 244 * @param portlets the portlets to manage 245 * @param max the upper bound of the range of groups to consider (not 246 inclusive) 247 * @return the range of site groups for which the user has Control Panel 248 access 249 * @throws PortalException if a portal exception occurred 250 */ 251 public static java.util.List<com.liferay.portal.kernel.model.Group> getManageableSiteGroups( 252 java.util.Collection<com.liferay.portal.kernel.model.Portlet> portlets, 253 int max) throws com.liferay.portal.kernel.exception.PortalException { 254 return getService().getManageableSiteGroups(portlets, max); 255 } 256 257 /** 258 * Returns the OSGi service identifier. 259 * 260 * @return the OSGi service identifier 261 */ 262 public static java.lang.String getOSGiServiceIdentifier() { 263 return getService().getOSGiServiceIdentifier(); 264 } 265 266 /** 267 * Returns the groups associated with the organizations. 268 * 269 * @param organizations the organizations 270 * @return the groups associated with the organizations 271 * @throws PortalException if a portal exception occurred 272 */ 273 public static java.util.List<com.liferay.portal.kernel.model.Group> getOrganizationsGroups( 274 java.util.List<com.liferay.portal.kernel.model.Organization> organizations) 275 throws com.liferay.portal.kernel.exception.PortalException { 276 return getService().getOrganizationsGroups(organizations); 277 } 278 279 /** 280 * Returns the group directly associated with the user. 281 * 282 * @param companyId the primary key of the company 283 * @param userId the primary key of the user 284 * @return the group directly associated with the user 285 * @throws PortalException if a portal exception occurred 286 */ 287 public static com.liferay.portal.kernel.model.Group getUserGroup( 288 long companyId, long userId) 289 throws com.liferay.portal.kernel.exception.PortalException { 290 return getService().getUserGroup(companyId, userId); 291 } 292 293 /** 294 * Returns the groups associated with the user groups. 295 * 296 * @param userGroups the user groups 297 * @return the groups associated with the user groups 298 * @throws PortalException if a portal exception occurred 299 */ 300 public static java.util.List<com.liferay.portal.kernel.model.Group> getUserGroupsGroups( 301 java.util.List<com.liferay.portal.kernel.model.UserGroup> userGroups) 302 throws com.liferay.portal.kernel.exception.PortalException { 303 return getService().getUserGroupsGroups(userGroups); 304 } 305 306 /** 307 * Returns the range of all groups associated with the user's organization 308 * groups, including the ancestors of the organization groups, unless portal 309 * property <code>organizations.membership.strict</code> is set to 310 * <code>true</code>. 311 * 312 * <p> 313 * Useful when paginating results. Returns a maximum of <code>end - 314 * start</code> instances. <code>start</code> and <code>end</code> are not 315 * primary keys, they are indexes in the result set. Thus, <code>0</code> 316 * refers to the first result in the set. Setting both <code>start</code> 317 * and <code>end</code> to {@link QueryUtil#ALL_POS} will return the full 318 * result set. 319 * </p> 320 * 321 * @param userId the primary key of the user 322 * @param start the lower bound of the range of groups to consider 323 * @param end the upper bound of the range of groups to consider (not 324 inclusive) 325 * @return the range of groups associated with the user's organizations 326 * @throws PortalException if a portal exception occurred 327 */ 328 public static java.util.List<com.liferay.portal.kernel.model.Group> getUserOrganizationsGroups( 329 long userId, int start, int end) 330 throws com.liferay.portal.kernel.exception.PortalException { 331 return getService().getUserOrganizationsGroups(userId, start, end); 332 } 333 334 public static java.util.List<com.liferay.portal.kernel.model.Group> getUserSitesGroups() 335 throws com.liferay.portal.kernel.exception.PortalException { 336 return getService().getUserSitesGroups(); 337 } 338 339 /** 340 * Returns the guest or current user's groups "sites" associated 341 * with the group entity class names, including the Control Panel group if 342 * the user is permitted to view the Control Panel. 343 * 344 * <ul> 345 * <li> 346 * Class name "User" includes the user's layout set 347 * group. 348 * </li> 349 * <li> 350 * Class name "Organization" includes the user's 351 * immediate organization groups and inherited organization groups. 352 * </li> 353 * <li> 354 * Class name "Group" includes the user's immediate 355 * organization groups and site groups. 356 * </li> 357 * <li> 358 * A <code>classNames</code> 359 * value of <code>null</code> includes the user's layout set group, 360 * organization groups, inherited organization groups, and site groups. 361 * </li> 362 * </ul> 363 * 364 * @param classNames the group entity class names (optionally 365 <code>null</code>). For more information see {@link 366 #getUserSitesGroups(long, String[], int)}. 367 * @param max the maximum number of groups to return 368 * @return the user's groups "sites" 369 * @throws PortalException if a portal exception occurred 370 */ 371 public static java.util.List<com.liferay.portal.kernel.model.Group> getUserSitesGroups( 372 java.lang.String[] classNames, int max) 373 throws com.liferay.portal.kernel.exception.PortalException { 374 return getService().getUserSitesGroups(classNames, max); 375 } 376 377 /** 378 * Returns the user's groups "sites" associated with the group 379 * entity class names, including the Control Panel group if the user is 380 * permitted to view the Control Panel. 381 * 382 * <ul> 383 * <li> 384 * Class name "User" includes the user's layout set 385 * group. 386 * </li> 387 * <li> 388 * Class name "Organization" includes the user's 389 * immediate organization groups and inherited organization groups. 390 * </li> 391 * <li> 392 * Class name "Group" includes the user's immediate 393 * organization groups and site groups. 394 * </li> 395 * <li> 396 * A <code>classNames</code> 397 * value of <code>null</code> includes the user's layout set group, 398 * organization groups, inherited organization groups, and site groups. 399 * </li> 400 * </ul> 401 * 402 * @param userId the primary key of the user 403 * @param classNames the group entity class names (optionally 404 <code>null</code>). For more information see {@link 405 #getUserSitesGroups(long, String[], int)}. 406 * @param max the maximum number of groups to return 407 * @return the user's groups "sites" 408 * @throws PortalException if a portal exception occurred 409 */ 410 public static java.util.List<com.liferay.portal.kernel.model.Group> getUserSitesGroups( 411 long userId, java.lang.String[] classNames, int max) 412 throws com.liferay.portal.kernel.exception.PortalException { 413 return getService().getUserSitesGroups(userId, classNames, max); 414 } 415 416 /** 417 * Returns the number of the guest or current user's groups 418 * "sites" associated with the group entity class names, including 419 * the Control Panel group if the user is permitted to view the Control 420 * Panel. 421 * 422 * @return the number of user's groups "sites" 423 * @throws PortalException if a portal exception occurred 424 */ 425 public static int getUserSitesGroupsCount() 426 throws com.liferay.portal.kernel.exception.PortalException { 427 return getService().getUserSitesGroupsCount(); 428 } 429 430 /** 431 * Returns <code>true</code> if the user is associated with the group, 432 * including the user's inherited organizations and user groups. System and 433 * staged groups are not included. 434 * 435 * @param userId the primary key of the user 436 * @param groupId the primary key of the group 437 * @return <code>true</code> if the user is associated with the group; 438 <code>false</code> otherwise 439 * @throws PortalException if a portal exception occurred 440 */ 441 public static boolean hasUserGroup(long userId, long groupId) 442 throws com.liferay.portal.kernel.exception.PortalException { 443 return getService().hasUserGroup(userId, groupId); 444 } 445 446 public static java.util.List<com.liferay.portal.kernel.model.Group> search( 447 long companyId, long[] classNameIds, java.lang.String keywords, 448 java.util.LinkedHashMap<java.lang.String, java.lang.Object> params, 449 int start, int end, 450 com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.kernel.model.Group> obc) 451 throws com.liferay.portal.kernel.exception.PortalException { 452 return getService() 453 .search(companyId, classNameIds, keywords, params, start, 454 end, obc); 455 } 456 457 public static java.util.List<com.liferay.portal.kernel.model.Group> search( 458 long companyId, long[] classNameIds, java.lang.String name, 459 java.lang.String description, 460 java.util.LinkedHashMap<java.lang.String, java.lang.Object> params, 461 boolean andOperator, int start, int end, 462 com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portal.kernel.model.Group> obc) 463 throws com.liferay.portal.kernel.exception.PortalException { 464 return getService() 465 .search(companyId, classNameIds, name, description, params, 466 andOperator, start, end, obc); 467 } 468 469 /** 470 * Returns an ordered range of all the site groups and organization groups 471 * that match the name and description, optionally including the user's 472 * inherited organization groups and user groups. System and staged groups 473 * are not included. 474 * 475 * <p> 476 * Useful when paginating results. Returns a maximum of <code>end - 477 * start</code> instances. <code>start</code> and <code>end</code> are not 478 * primary keys, they are indexes in the result set. Thus, <code>0</code> 479 * refers to the first result in the set. Setting both <code>start</code> 480 * and <code>end</code> to {@link QueryUtil#ALL_POS} will return the full 481 * result set. 482 * </p> 483 * 484 * @param companyId the primary key of the company 485 * @param name the group's name (optionally <code>null</code>) 486 * @param description the group's description (optionally 487 <code>null</code>) 488 * @param params the finder params (optionally <code>null</code>). To 489 include the user's inherited organizations and user groups in the 490 search, add entries having "usersGroups" and 491 "inherit" as keys mapped to the the user's ID. For more 492 information see {@link 493 com.liferay.portal.kernel.service.persistence.GroupFinder}. 494 * @param start the lower bound of the range of groups to return 495 * @param end the upper bound of the range of groups to return (not 496 inclusive) 497 * @return the matching groups ordered by name 498 * @throws PortalException if a portal exception occurred 499 */ 500 public static java.util.List<com.liferay.portal.kernel.model.Group> search( 501 long companyId, java.lang.String name, java.lang.String description, 502 java.lang.String[] params, int start, int end) 503 throws com.liferay.portal.kernel.exception.PortalException { 504 return getService() 505 .search(companyId, name, description, params, start, end); 506 } 507 508 /** 509 * Returns the number of groups and organization groups that match the name 510 * and description, optionally including the user's inherited organizations 511 * and user groups. System and staged groups are not included. 512 * 513 * @param companyId the primary key of the company 514 * @param name the group's name (optionally <code>null</code>) 515 * @param description the group's description (optionally 516 <code>null</code>) 517 * @param params the finder params (optionally <code>null</code>). To 518 include the user's inherited organizations and user groups in the 519 search, add entries having "usersGroups" and 520 "inherit" as keys mapped to the the user's ID. For more 521 information see {@link 522 com.liferay.portal.kernel.service.persistence.GroupFinder}. 523 * @return the number of matching groups 524 */ 525 public static int searchCount(long companyId, java.lang.String name, 526 java.lang.String description, java.lang.String[] params) { 527 return getService().searchCount(companyId, name, description, params); 528 } 529 530 /** 531 * Sets the groups associated with the role, removing and adding 532 * associations as necessary. 533 * 534 * @param roleId the primary key of the role 535 * @param groupIds the primary keys of the groups 536 * @throws PortalException if a portal exception occurred 537 */ 538 public static void setRoleGroups(long roleId, long[] groupIds) 539 throws com.liferay.portal.kernel.exception.PortalException { 540 getService().setRoleGroups(roleId, groupIds); 541 } 542 543 /** 544 * Removes the groups from the role. 545 * 546 * @param roleId the primary key of the role 547 * @param groupIds the primary keys of the groups 548 * @throws PortalException if a portal exception occurred 549 */ 550 public static void unsetRoleGroups(long roleId, long[] groupIds) 551 throws com.liferay.portal.kernel.exception.PortalException { 552 getService().unsetRoleGroups(roleId, groupIds); 553 } 554 555 /** 556 * Updates the group's friendly URL. 557 * 558 * @param groupId the primary key of the group 559 * @param friendlyURL the group's new friendlyURL (optionally 560 <code>null</code>) 561 * @return the group 562 * @throws PortalException if a portal exception occurred 563 */ 564 public static com.liferay.portal.kernel.model.Group updateFriendlyURL( 565 long groupId, java.lang.String friendlyURL) 566 throws com.liferay.portal.kernel.exception.PortalException { 567 return getService().updateFriendlyURL(groupId, friendlyURL); 568 } 569 570 /** 571 * Updates the group. 572 * 573 * @param groupId the primary key of the group 574 * @param parentGroupId the primary key of the parent group 575 * @param name the group's name 576 * @param description the group's new description (optionally 577 <code>null</code>) 578 * @param type the group's new type. For more information see {@link 579 GroupConstants}. 580 * @param manualMembership whether manual membership is allowed for the 581 group 582 * @param membershipRestriction the group's membership restriction. For 583 more information see {@link GroupConstants}. 584 * @param friendlyURL the group's new friendlyURL (optionally 585 <code>null</code>) 586 * @param inheritContent whether to inherit content from the parent 587 group 588 * @param active whether the group is active 589 * @param serviceContext the service context to be applied (optionally 590 <code>null</code>). Can set the asset category IDs and asset 591 tag names for the group. 592 * @return the group 593 * @throws PortalException if a portal exception occurred 594 * @deprecated As of 7.0.0, replaced by {@link #updateGroup(long, long, Map, 595 Map, int, boolean, int, String, boolean, boolean, 596 ServiceContext)} 597 */ 598 @Deprecated 599 public static com.liferay.portal.kernel.model.Group updateGroup( 600 long groupId, long parentGroupId, java.lang.String name, 601 java.lang.String description, int type, boolean manualMembership, 602 int membershipRestriction, java.lang.String friendlyURL, 603 boolean inheritContent, boolean active, 604 com.liferay.portal.kernel.service.ServiceContext serviceContext) 605 throws com.liferay.portal.kernel.exception.PortalException { 606 return getService() 607 .updateGroup(groupId, parentGroupId, name, description, 608 type, manualMembership, membershipRestriction, friendlyURL, 609 inheritContent, active, serviceContext); 610 } 611 612 public static com.liferay.portal.kernel.model.Group updateGroup( 613 long groupId, long parentGroupId, 614 java.util.Map<java.util.Locale, java.lang.String> nameMap, 615 java.util.Map<java.util.Locale, java.lang.String> descriptionMap, 616 int type, boolean manualMembership, int membershipRestriction, 617 java.lang.String friendlyURL, boolean inheritContent, boolean active, 618 com.liferay.portal.kernel.service.ServiceContext serviceContext) 619 throws com.liferay.portal.kernel.exception.PortalException { 620 return getService() 621 .updateGroup(groupId, parentGroupId, nameMap, 622 descriptionMap, type, manualMembership, membershipRestriction, 623 friendlyURL, inheritContent, active, serviceContext); 624 } 625 626 /** 627 * Updates the group's type settings. 628 * 629 * @param groupId the primary key of the group 630 * @param typeSettings the group's new type settings (optionally 631 <code>null</code>) 632 * @return the group 633 * @throws PortalException if a portal exception occurred 634 */ 635 public static com.liferay.portal.kernel.model.Group updateGroup( 636 long groupId, java.lang.String typeSettings) 637 throws com.liferay.portal.kernel.exception.PortalException { 638 return getService().updateGroup(groupId, typeSettings); 639 } 640 641 public static void updateStagedPortlets(long groupId, 642 java.util.Map<java.lang.String, java.lang.String> stagedPortletIds) 643 throws com.liferay.portal.kernel.exception.PortalException { 644 getService().updateStagedPortlets(groupId, stagedPortletIds); 645 } 646 647 public static GroupService getService() { 648 if (_service == null) { 649 _service = (GroupService)PortalBeanLocatorUtil.locate(GroupService.class.getName()); 650 651 ReferenceRegistry.registerReference(GroupServiceUtil.class, 652 "_service"); 653 } 654 655 return _service; 656 } 657 658 private static GroupService _service; 659 }