1
22
23 package com.liferay.portal.service.persistence;
24
25 import com.liferay.portal.NoSuchOrganizationException;
26 import com.liferay.portal.SystemException;
27 import com.liferay.portal.kernel.annotation.BeanReference;
28 import com.liferay.portal.kernel.cache.CacheRegistry;
29 import com.liferay.portal.kernel.dao.jdbc.MappingSqlQuery;
30 import com.liferay.portal.kernel.dao.jdbc.MappingSqlQueryFactoryUtil;
31 import com.liferay.portal.kernel.dao.jdbc.RowMapper;
32 import com.liferay.portal.kernel.dao.jdbc.SqlUpdate;
33 import com.liferay.portal.kernel.dao.jdbc.SqlUpdateFactoryUtil;
34 import com.liferay.portal.kernel.dao.orm.DynamicQuery;
35 import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
36 import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
37 import com.liferay.portal.kernel.dao.orm.FinderPath;
38 import com.liferay.portal.kernel.dao.orm.Query;
39 import com.liferay.portal.kernel.dao.orm.QueryPos;
40 import com.liferay.portal.kernel.dao.orm.QueryUtil;
41 import com.liferay.portal.kernel.dao.orm.SQLQuery;
42 import com.liferay.portal.kernel.dao.orm.Session;
43 import com.liferay.portal.kernel.dao.orm.Type;
44 import com.liferay.portal.kernel.log.Log;
45 import com.liferay.portal.kernel.log.LogFactoryUtil;
46 import com.liferay.portal.kernel.util.GetterUtil;
47 import com.liferay.portal.kernel.util.OrderByComparator;
48 import com.liferay.portal.kernel.util.SetUtil;
49 import com.liferay.portal.kernel.util.StringPool;
50 import com.liferay.portal.kernel.util.StringUtil;
51 import com.liferay.portal.kernel.util.Validator;
52 import com.liferay.portal.model.ModelListener;
53 import com.liferay.portal.model.Organization;
54 import com.liferay.portal.model.impl.OrganizationImpl;
55 import com.liferay.portal.model.impl.OrganizationModelImpl;
56 import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
57
58 import java.sql.Types;
59
60 import java.util.ArrayList;
61 import java.util.Collections;
62 import java.util.List;
63 import java.util.Set;
64
65
78 public class OrganizationPersistenceImpl extends BasePersistenceImpl
79 implements OrganizationPersistence {
80 public static final String FINDER_CLASS_NAME_ENTITY = OrganizationImpl.class.getName();
81 public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
82 ".List";
83 public static final FinderPath FINDER_PATH_FIND_BY_COMPANYID = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
84 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
85 "findByCompanyId", new String[] { Long.class.getName() });
86 public static final FinderPath FINDER_PATH_FIND_BY_OBC_COMPANYID = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
87 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
88 "findByCompanyId",
89 new String[] {
90 Long.class.getName(),
91
92 "java.lang.Integer", "java.lang.Integer",
93 "com.liferay.portal.kernel.util.OrderByComparator"
94 });
95 public static final FinderPath FINDER_PATH_COUNT_BY_COMPANYID = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
96 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
97 "countByCompanyId", new String[] { Long.class.getName() });
98 public static final FinderPath FINDER_PATH_FIND_BY_LOCATIONS = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
99 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
100 "findByLocations", new String[] { Long.class.getName() });
101 public static final FinderPath FINDER_PATH_FIND_BY_OBC_LOCATIONS = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
102 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
103 "findByLocations",
104 new String[] {
105 Long.class.getName(),
106
107 "java.lang.Integer", "java.lang.Integer",
108 "com.liferay.portal.kernel.util.OrderByComparator"
109 });
110 public static final FinderPath FINDER_PATH_COUNT_BY_LOCATIONS = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
111 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
112 "countByLocations", new String[] { Long.class.getName() });
113 public static final FinderPath FINDER_PATH_FIND_BY_C_P = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
114 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
115 "findByC_P",
116 new String[] { Long.class.getName(), Long.class.getName() });
117 public static final FinderPath FINDER_PATH_FIND_BY_OBC_C_P = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
118 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
119 "findByC_P",
120 new String[] {
121 Long.class.getName(), Long.class.getName(),
122
123 "java.lang.Integer", "java.lang.Integer",
124 "com.liferay.portal.kernel.util.OrderByComparator"
125 });
126 public static final FinderPath FINDER_PATH_COUNT_BY_C_P = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
127 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
128 "countByC_P",
129 new String[] { Long.class.getName(), Long.class.getName() });
130 public static final FinderPath FINDER_PATH_FETCH_BY_C_N = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
131 OrganizationModelImpl.FINDER_CACHE_ENABLED,
132 FINDER_CLASS_NAME_ENTITY, "fetchByC_N",
133 new String[] { Long.class.getName(), String.class.getName() });
134 public static final FinderPath FINDER_PATH_COUNT_BY_C_N = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
135 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
136 "countByC_N",
137 new String[] { Long.class.getName(), String.class.getName() });
138 public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
139 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
140 "findAll", new String[0]);
141 public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
142 OrganizationModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
143 "countAll", new String[0]);
144
145 public void cacheResult(Organization organization) {
146 EntityCacheUtil.putResult(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
147 OrganizationImpl.class, organization.getPrimaryKey(), organization);
148
149 FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
150 new Object[] {
151 new Long(organization.getCompanyId()),
152
153 organization.getName()
154 }, organization);
155 }
156
157 public void cacheResult(List<Organization> organizations) {
158 for (Organization organization : organizations) {
159 if (EntityCacheUtil.getResult(
160 OrganizationModelImpl.ENTITY_CACHE_ENABLED,
161 OrganizationImpl.class, organization.getPrimaryKey(),
162 this) == null) {
163 cacheResult(organization);
164 }
165 }
166 }
167
168 public void clearCache() {
169 CacheRegistry.clear(OrganizationImpl.class.getName());
170 EntityCacheUtil.clearCache(OrganizationImpl.class.getName());
171 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
172 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
173 }
174
175 public Organization create(long organizationId) {
176 Organization organization = new OrganizationImpl();
177
178 organization.setNew(true);
179 organization.setPrimaryKey(organizationId);
180
181 return organization;
182 }
183
184 public Organization remove(long organizationId)
185 throws NoSuchOrganizationException, SystemException {
186 Session session = null;
187
188 try {
189 session = openSession();
190
191 Organization organization = (Organization)session.get(OrganizationImpl.class,
192 new Long(organizationId));
193
194 if (organization == null) {
195 if (_log.isWarnEnabled()) {
196 _log.warn("No Organization exists with the primary key " +
197 organizationId);
198 }
199
200 throw new NoSuchOrganizationException(
201 "No Organization exists with the primary key " +
202 organizationId);
203 }
204
205 return remove(organization);
206 }
207 catch (NoSuchOrganizationException nsee) {
208 throw nsee;
209 }
210 catch (Exception e) {
211 throw processException(e);
212 }
213 finally {
214 closeSession(session);
215 }
216 }
217
218 public Organization remove(Organization organization)
219 throws SystemException {
220 for (ModelListener<Organization> listener : listeners) {
221 listener.onBeforeRemove(organization);
222 }
223
224 organization = removeImpl(organization);
225
226 for (ModelListener<Organization> listener : listeners) {
227 listener.onAfterRemove(organization);
228 }
229
230 return organization;
231 }
232
233 protected Organization removeImpl(Organization organization)
234 throws SystemException {
235 organization = toUnwrappedModel(organization);
236
237 try {
238 clearGroups.clear(organization.getPrimaryKey());
239 }
240 catch (Exception e) {
241 throw processException(e);
242 }
243 finally {
244 FinderCacheUtil.clearCache("Groups_Orgs");
245 }
246
247 try {
248 clearUsers.clear(organization.getPrimaryKey());
249 }
250 catch (Exception e) {
251 throw processException(e);
252 }
253 finally {
254 FinderCacheUtil.clearCache("Users_Orgs");
255 }
256
257 shrinkTree(organization);
258
259 Session session = null;
260
261 try {
262 session = openSession();
263
264 if (organization.isCachedModel() || BatchSessionUtil.isEnabled()) {
265 Object staleObject = session.get(OrganizationImpl.class,
266 organization.getPrimaryKeyObj());
267
268 if (staleObject != null) {
269 session.evict(staleObject);
270 }
271 }
272
273 session.delete(organization);
274
275 session.flush();
276 }
277 catch (Exception e) {
278 throw processException(e);
279 }
280 finally {
281 closeSession(session);
282 }
283
284 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
285
286 OrganizationModelImpl organizationModelImpl = (OrganizationModelImpl)organization;
287
288 FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_C_N,
289 new Object[] {
290 new Long(organizationModelImpl.getOriginalCompanyId()),
291
292 organizationModelImpl.getOriginalName()
293 });
294
295 EntityCacheUtil.removeResult(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
296 OrganizationImpl.class, organization.getPrimaryKey());
297
298 return organization;
299 }
300
301
304 public Organization update(Organization organization)
305 throws SystemException {
306 if (_log.isWarnEnabled()) {
307 _log.warn(
308 "Using the deprecated update(Organization organization) method. Use update(Organization organization, boolean merge) instead.");
309 }
310
311 return update(organization, false);
312 }
313
314
326 public Organization update(Organization organization, boolean merge)
327 throws SystemException {
328 boolean isNew = organization.isNew();
329
330 for (ModelListener<Organization> listener : listeners) {
331 if (isNew) {
332 listener.onBeforeCreate(organization);
333 }
334 else {
335 listener.onBeforeUpdate(organization);
336 }
337 }
338
339 organization = updateImpl(organization, merge);
340
341 for (ModelListener<Organization> listener : listeners) {
342 if (isNew) {
343 listener.onAfterCreate(organization);
344 }
345 else {
346 listener.onAfterUpdate(organization);
347 }
348 }
349
350 return organization;
351 }
352
353 public Organization updateImpl(
354 com.liferay.portal.model.Organization organization, boolean merge)
355 throws SystemException {
356 organization = toUnwrappedModel(organization);
357
358 boolean isNew = organization.isNew();
359
360 OrganizationModelImpl organizationModelImpl = (OrganizationModelImpl)organization;
361
362 if (isNew) {
363 expandTree(organization);
364 }
365 else {
366 if (organization.getParentOrganizationId() != organizationModelImpl.getOriginalParentOrganizationId()) {
367 shrinkTree(organization);
368 expandTree(organization);
369 }
370 }
371
372 Session session = null;
373
374 try {
375 session = openSession();
376
377 BatchSessionUtil.update(session, organization, merge);
378
379 organization.setNew(false);
380 }
381 catch (Exception e) {
382 throw processException(e);
383 }
384 finally {
385 closeSession(session);
386 }
387
388 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
389
390 EntityCacheUtil.putResult(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
391 OrganizationImpl.class, organization.getPrimaryKey(), organization);
392
393 if (!isNew &&
394 ((organization.getCompanyId() != organizationModelImpl.getOriginalCompanyId()) ||
395 !Validator.equals(organization.getName(),
396 organizationModelImpl.getOriginalName()))) {
397 FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_C_N,
398 new Object[] {
399 new Long(organizationModelImpl.getOriginalCompanyId()),
400
401 organizationModelImpl.getOriginalName()
402 });
403 }
404
405 if (isNew ||
406 ((organization.getCompanyId() != organizationModelImpl.getOriginalCompanyId()) ||
407 !Validator.equals(organization.getName(),
408 organizationModelImpl.getOriginalName()))) {
409 FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
410 new Object[] {
411 new Long(organization.getCompanyId()),
412
413 organization.getName()
414 }, organization);
415 }
416
417 return organization;
418 }
419
420 protected Organization toUnwrappedModel(Organization organization) {
421 if (organization instanceof OrganizationImpl) {
422 return organization;
423 }
424
425 OrganizationImpl organizationImpl = new OrganizationImpl();
426
427 organizationImpl.setNew(organization.isNew());
428 organizationImpl.setPrimaryKey(organization.getPrimaryKey());
429
430 organizationImpl.setOrganizationId(organization.getOrganizationId());
431 organizationImpl.setCompanyId(organization.getCompanyId());
432 organizationImpl.setParentOrganizationId(organization.getParentOrganizationId());
433 organizationImpl.setLeftOrganizationId(organization.getLeftOrganizationId());
434 organizationImpl.setRightOrganizationId(organization.getRightOrganizationId());
435 organizationImpl.setName(organization.getName());
436 organizationImpl.setType(organization.getType());
437 organizationImpl.setRecursable(organization.isRecursable());
438 organizationImpl.setRegionId(organization.getRegionId());
439 organizationImpl.setCountryId(organization.getCountryId());
440 organizationImpl.setStatusId(organization.getStatusId());
441 organizationImpl.setComments(organization.getComments());
442
443 return organizationImpl;
444 }
445
446 public Organization findByPrimaryKey(long organizationId)
447 throws NoSuchOrganizationException, SystemException {
448 Organization organization = fetchByPrimaryKey(organizationId);
449
450 if (organization == null) {
451 if (_log.isWarnEnabled()) {
452 _log.warn("No Organization exists with the primary key " +
453 organizationId);
454 }
455
456 throw new NoSuchOrganizationException(
457 "No Organization exists with the primary key " +
458 organizationId);
459 }
460
461 return organization;
462 }
463
464 public Organization fetchByPrimaryKey(long organizationId)
465 throws SystemException {
466 Organization organization = (Organization)EntityCacheUtil.getResult(OrganizationModelImpl.ENTITY_CACHE_ENABLED,
467 OrganizationImpl.class, organizationId, this);
468
469 if (organization == null) {
470 Session session = null;
471
472 try {
473 session = openSession();
474
475 organization = (Organization)session.get(OrganizationImpl.class,
476 new Long(organizationId));
477 }
478 catch (Exception e) {
479 throw processException(e);
480 }
481 finally {
482 if (organization != null) {
483 cacheResult(organization);
484 }
485
486 closeSession(session);
487 }
488 }
489
490 return organization;
491 }
492
493 public List<Organization> findByCompanyId(long companyId)
494 throws SystemException {
495 Object[] finderArgs = new Object[] { new Long(companyId) };
496
497 List<Organization> list = (List<Organization>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_COMPANYID,
498 finderArgs, this);
499
500 if (list == null) {
501 Session session = null;
502
503 try {
504 session = openSession();
505
506 StringBuilder query = new StringBuilder();
507
508 query.append(
509 "SELECT organization FROM Organization organization WHERE ");
510
511 query.append("organization.companyId = ?");
512
513 query.append(" ");
514
515 query.append("ORDER BY ");
516
517 query.append("organization.name ASC");
518
519 Query q = session.createQuery(query.toString());
520
521 QueryPos qPos = QueryPos.getInstance(q);
522
523 qPos.add(companyId);
524
525 list = q.list();
526 }
527 catch (Exception e) {
528 throw processException(e);
529 }
530 finally {
531 if (list == null) {
532 list = new ArrayList<Organization>();
533 }
534
535 cacheResult(list);
536
537 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_COMPANYID,
538 finderArgs, list);
539
540 closeSession(session);
541 }
542 }
543
544 return list;
545 }
546
547 public List<Organization> findByCompanyId(long companyId, int start, int end)
548 throws SystemException {
549 return findByCompanyId(companyId, start, end, null);
550 }
551
552 public List<Organization> findByCompanyId(long companyId, int start,
553 int end, OrderByComparator obc) throws SystemException {
554 Object[] finderArgs = new Object[] {
555 new Long(companyId),
556
557 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
558 };
559
560 List<Organization> list = (List<Organization>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_COMPANYID,
561 finderArgs, this);
562
563 if (list == null) {
564 Session session = null;
565
566 try {
567 session = openSession();
568
569 StringBuilder query = new StringBuilder();
570
571 query.append(
572 "SELECT organization FROM Organization organization WHERE ");
573
574 query.append("organization.companyId = ?");
575
576 query.append(" ");
577
578 if (obc != null) {
579 query.append("ORDER BY ");
580
581 String[] orderByFields = obc.getOrderByFields();
582
583 for (int i = 0; i < orderByFields.length; i++) {
584 query.append("organization.");
585 query.append(orderByFields[i]);
586
587 if (obc.isAscending()) {
588 query.append(" ASC");
589 }
590 else {
591 query.append(" DESC");
592 }
593
594 if ((i + 1) < orderByFields.length) {
595 query.append(", ");
596 }
597 }
598 }
599
600 else {
601 query.append("ORDER BY ");
602
603 query.append("organization.name ASC");
604 }
605
606 Query q = session.createQuery(query.toString());
607
608 QueryPos qPos = QueryPos.getInstance(q);
609
610 qPos.add(companyId);
611
612 list = (List<Organization>)QueryUtil.list(q, getDialect(),
613 start, end);
614 }
615 catch (Exception e) {
616 throw processException(e);
617 }
618 finally {
619 if (list == null) {
620 list = new ArrayList<Organization>();
621 }
622
623 cacheResult(list);
624
625 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_COMPANYID,
626 finderArgs, list);
627
628 closeSession(session);
629 }
630 }
631
632 return list;
633 }
634
635 public Organization findByCompanyId_First(long companyId,
636 OrderByComparator obc)
637 throws NoSuchOrganizationException, SystemException {
638 List<Organization> list = findByCompanyId(companyId, 0, 1, obc);
639
640 if (list.isEmpty()) {
641 StringBuilder msg = new StringBuilder();
642
643 msg.append("No Organization exists with the key {");
644
645 msg.append("companyId=" + companyId);
646
647 msg.append(StringPool.CLOSE_CURLY_BRACE);
648
649 throw new NoSuchOrganizationException(msg.toString());
650 }
651 else {
652 return list.get(0);
653 }
654 }
655
656 public Organization findByCompanyId_Last(long companyId,
657 OrderByComparator obc)
658 throws NoSuchOrganizationException, SystemException {
659 int count = countByCompanyId(companyId);
660
661 List<Organization> list = findByCompanyId(companyId, count - 1, count,
662 obc);
663
664 if (list.isEmpty()) {
665 StringBuilder msg = new StringBuilder();
666
667 msg.append("No Organization exists with the key {");
668
669 msg.append("companyId=" + companyId);
670
671 msg.append(StringPool.CLOSE_CURLY_BRACE);
672
673 throw new NoSuchOrganizationException(msg.toString());
674 }
675 else {
676 return list.get(0);
677 }
678 }
679
680 public Organization[] findByCompanyId_PrevAndNext(long organizationId,
681 long companyId, OrderByComparator obc)
682 throws NoSuchOrganizationException, SystemException {
683 Organization organization = findByPrimaryKey(organizationId);
684
685 int count = countByCompanyId(companyId);
686
687 Session session = null;
688
689 try {
690 session = openSession();
691
692 StringBuilder query = new StringBuilder();
693
694 query.append(
695 "SELECT organization FROM Organization organization WHERE ");
696
697 query.append("organization.companyId = ?");
698
699 query.append(" ");
700
701 if (obc != null) {
702 query.append("ORDER BY ");
703
704 String[] orderByFields = obc.getOrderByFields();
705
706 for (int i = 0; i < orderByFields.length; i++) {
707 query.append("organization.");
708 query.append(orderByFields[i]);
709
710 if (obc.isAscending()) {
711 query.append(" ASC");
712 }
713 else {
714 query.append(" DESC");
715 }
716
717 if ((i + 1) < orderByFields.length) {
718 query.append(", ");
719 }
720 }
721 }
722
723 else {
724 query.append("ORDER BY ");
725
726 query.append("organization.name ASC");
727 }
728
729 Query q = session.createQuery(query.toString());
730
731 QueryPos qPos = QueryPos.getInstance(q);
732
733 qPos.add(companyId);
734
735 Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
736 organization);
737
738 Organization[] array = new OrganizationImpl[3];
739
740 array[0] = (Organization)objArray[0];
741 array[1] = (Organization)objArray[1];
742 array[2] = (Organization)objArray[2];
743
744 return array;
745 }
746 catch (Exception e) {
747 throw processException(e);
748 }
749 finally {
750 closeSession(session);
751 }
752 }
753
754 public List<Organization> findByLocations(long companyId)
755 throws SystemException {
756 Object[] finderArgs = new Object[] { new Long(companyId) };
757
758 List<Organization> list = (List<Organization>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_LOCATIONS,
759 finderArgs, this);
760
761 if (list == null) {
762 Session session = null;
763
764 try {
765 session = openSession();
766
767 StringBuilder query = new StringBuilder();
768
769 query.append(
770 "SELECT organization FROM Organization organization WHERE ");
771
772 query.append("organization.companyId = ?");
773
774 query.append(" AND organization.parentOrganizationId != 0 ");
775
776 query.append("ORDER BY ");
777
778 query.append("organization.name ASC");
779
780 Query q = session.createQuery(query.toString());
781
782 QueryPos qPos = QueryPos.getInstance(q);
783
784 qPos.add(companyId);
785
786 list = q.list();
787 }
788 catch (Exception e) {
789 throw processException(e);
790 }
791 finally {
792 if (list == null) {
793 list = new ArrayList<Organization>();
794 }
795
796 cacheResult(list);
797
798 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_LOCATIONS,
799 finderArgs, list);
800
801 closeSession(session);
802 }
803 }
804
805 return list;
806 }
807
808 public List<Organization> findByLocations(long companyId, int start, int end)
809 throws SystemException {
810 return findByLocations(companyId, start, end, null);
811 }
812
813 public List<Organization> findByLocations(long companyId, int start,
814 int end, OrderByComparator obc) throws SystemException {
815 Object[] finderArgs = new Object[] {
816 new Long(companyId),
817
818 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
819 };
820
821 List<Organization> list = (List<Organization>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_LOCATIONS,
822 finderArgs, this);
823
824 if (list == null) {
825 Session session = null;
826
827 try {
828 session = openSession();
829
830 StringBuilder query = new StringBuilder();
831
832 query.append(
833 "SELECT organization FROM Organization organization WHERE ");
834
835 query.append("organization.companyId = ?");
836
837 query.append(" AND organization.parentOrganizationId != 0 ");
838
839 if (obc != null) {
840 query.append("ORDER BY ");
841
842 String[] orderByFields = obc.getOrderByFields();
843
844 for (int i = 0; i < orderByFields.length; i++) {
845 query.append("organization.");
846 query.append(orderByFields[i]);
847
848 if (obc.isAscending()) {
849 query.append(" ASC");
850 }
851 else {
852 query.append(" DESC");
853 }
854
855 if ((i + 1) < orderByFields.length) {
856 query.append(", ");
857 }
858 }
859 }
860
861 else {
862 query.append("ORDER BY ");
863
864 query.append("organization.name ASC");
865 }
866
867 Query q = session.createQuery(query.toString());
868
869 QueryPos qPos = QueryPos.getInstance(q);
870
871 qPos.add(companyId);
872
873 list = (List<Organization>)QueryUtil.list(q, getDialect(),
874 start, end);
875 }
876 catch (Exception e) {
877 throw processException(e);
878 }
879 finally {
880 if (list == null) {
881 list = new ArrayList<Organization>();
882 }
883
884 cacheResult(list);
885
886 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_LOCATIONS,
887 finderArgs, list);
888
889 closeSession(session);
890 }
891 }
892
893 return list;
894 }
895
896 public Organization findByLocations_First(long companyId,
897 OrderByComparator obc)
898 throws NoSuchOrganizationException, SystemException {
899 List<Organization> list = findByLocations(companyId, 0, 1, obc);
900
901 if (list.isEmpty()) {
902 StringBuilder msg = new StringBuilder();
903
904 msg.append("No Organization exists with the key {");
905
906 msg.append("companyId=" + companyId);
907
908 msg.append(StringPool.CLOSE_CURLY_BRACE);
909
910 throw new NoSuchOrganizationException(msg.toString());
911 }
912 else {
913 return list.get(0);
914 }
915 }
916
917 public Organization findByLocations_Last(long companyId,
918 OrderByComparator obc)
919 throws NoSuchOrganizationException, SystemException {
920 int count = countByLocations(companyId);
921
922 List<Organization> list = findByLocations(companyId, count - 1, count,
923 obc);
924
925 if (list.isEmpty()) {
926 StringBuilder msg = new StringBuilder();
927
928 msg.append("No Organization exists with the key {");
929
930 msg.append("companyId=" + companyId);
931
932 msg.append(StringPool.CLOSE_CURLY_BRACE);
933
934 throw new NoSuchOrganizationException(msg.toString());
935 }
936 else {
937 return list.get(0);
938 }
939 }
940
941 public Organization[] findByLocations_PrevAndNext(long organizationId,
942 long companyId, OrderByComparator obc)
943 throws NoSuchOrganizationException, SystemException {
944 Organization organization = findByPrimaryKey(organizationId);
945
946 int count = countByLocations(companyId);
947
948 Session session = null;
949
950 try {
951 session = openSession();
952
953 StringBuilder query = new StringBuilder();
954
955 query.append(
956 "SELECT organization FROM Organization organization WHERE ");
957
958 query.append("organization.companyId = ?");
959
960 query.append(" AND organization.parentOrganizationId != 0 ");
961
962 if (obc != null) {
963 query.append("ORDER BY ");
964
965 String[] orderByFields = obc.getOrderByFields();
966
967 for (int i = 0; i < orderByFields.length; i++) {
968 query.append("organization.");
969 query.append(orderByFields[i]);
970
971 if (obc.isAscending()) {
972 query.append(" ASC");
973 }
974 else {
975 query.append(" DESC");
976 }
977
978 if ((i + 1) < orderByFields.length) {
979 query.append(", ");
980 }
981 }
982 }
983
984 else {
985 query.append("ORDER BY ");
986
987 query.append("organization.name ASC");
988 }
989
990 Query q = session.createQuery(query.toString());
991
992 QueryPos qPos = QueryPos.getInstance(q);
993
994 qPos.add(companyId);
995
996 Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
997 organization);
998
999 Organization[] array = new OrganizationImpl[3];
1000
1001 array[0] = (Organization)objArray[0];
1002 array[1] = (Organization)objArray[1];
1003 array[2] = (Organization)objArray[2];
1004
1005 return array;
1006 }
1007 catch (Exception e) {
1008 throw processException(e);
1009 }
1010 finally {
1011 closeSession(session);
1012 }
1013 }
1014
1015 public List<Organization> findByC_P(long companyId,
1016 long parentOrganizationId) throws SystemException {
1017 Object[] finderArgs = new Object[] {
1018 new Long(companyId), new Long(parentOrganizationId)
1019 };
1020
1021 List<Organization> list = (List<Organization>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_C_P,
1022 finderArgs, this);
1023
1024 if (list == null) {
1025 Session session = null;
1026
1027 try {
1028 session = openSession();
1029
1030 StringBuilder query = new StringBuilder();
1031
1032 query.append(
1033 "SELECT organization FROM Organization organization WHERE ");
1034
1035 query.append("organization.companyId = ?");
1036
1037 query.append(" AND ");
1038
1039 query.append("organization.parentOrganizationId = ?");
1040
1041 query.append(" ");
1042
1043 query.append("ORDER BY ");
1044
1045 query.append("organization.name ASC");
1046
1047 Query q = session.createQuery(query.toString());
1048
1049 QueryPos qPos = QueryPos.getInstance(q);
1050
1051 qPos.add(companyId);
1052
1053 qPos.add(parentOrganizationId);
1054
1055 list = q.list();
1056 }
1057 catch (Exception e) {
1058 throw processException(e);
1059 }
1060 finally {
1061 if (list == null) {
1062 list = new ArrayList<Organization>();
1063 }
1064
1065 cacheResult(list);
1066
1067 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_C_P, finderArgs,
1068 list);
1069
1070 closeSession(session);
1071 }
1072 }
1073
1074 return list;
1075 }
1076
1077 public List<Organization> findByC_P(long companyId,
1078 long parentOrganizationId, int start, int end)
1079 throws SystemException {
1080 return findByC_P(companyId, parentOrganizationId, start, end, null);
1081 }
1082
1083 public List<Organization> findByC_P(long companyId,
1084 long parentOrganizationId, int start, int end, OrderByComparator obc)
1085 throws SystemException {
1086 Object[] finderArgs = new Object[] {
1087 new Long(companyId), new Long(parentOrganizationId),
1088
1089 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1090 };
1091
1092 List<Organization> list = (List<Organization>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_C_P,
1093 finderArgs, this);
1094
1095 if (list == null) {
1096 Session session = null;
1097
1098 try {
1099 session = openSession();
1100
1101 StringBuilder query = new StringBuilder();
1102
1103 query.append(
1104 "SELECT organization FROM Organization organization WHERE ");
1105
1106 query.append("organization.companyId = ?");
1107
1108 query.append(" AND ");
1109
1110 query.append("organization.parentOrganizationId = ?");
1111
1112 query.append(" ");
1113
1114 if (obc != null) {
1115 query.append("ORDER BY ");
1116
1117 String[] orderByFields = obc.getOrderByFields();
1118
1119 for (int i = 0; i < orderByFields.length; i++) {
1120 query.append("organization.");
1121 query.append(orderByFields[i]);
1122
1123 if (obc.isAscending()) {
1124 query.append(" ASC");
1125 }
1126 else {
1127 query.append(" DESC");
1128 }
1129
1130 if ((i + 1) < orderByFields.length) {
1131 query.append(", ");
1132 }
1133 }
1134 }
1135
1136 else {
1137 query.append("ORDER BY ");
1138
1139 query.append("organization.name ASC");
1140 }
1141
1142 Query q = session.createQuery(query.toString());
1143
1144 QueryPos qPos = QueryPos.getInstance(q);
1145
1146 qPos.add(companyId);
1147
1148 qPos.add(parentOrganizationId);
1149
1150 list = (List<Organization>)QueryUtil.list(q, getDialect(),
1151 start, end);
1152 }
1153 catch (Exception e) {
1154 throw processException(e);
1155 }
1156 finally {
1157 if (list == null) {
1158 list = new ArrayList<Organization>();
1159 }
1160
1161 cacheResult(list);
1162
1163 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_C_P,
1164 finderArgs, list);
1165
1166 closeSession(session);
1167 }
1168 }
1169
1170 return list;
1171 }
1172
1173 public Organization findByC_P_First(long companyId,
1174 long parentOrganizationId, OrderByComparator obc)
1175 throws NoSuchOrganizationException, SystemException {
1176 List<Organization> list = findByC_P(companyId, parentOrganizationId, 0,
1177 1, obc);
1178
1179 if (list.isEmpty()) {
1180 StringBuilder msg = new StringBuilder();
1181
1182 msg.append("No Organization exists with the key {");
1183
1184 msg.append("companyId=" + companyId);
1185
1186 msg.append(", ");
1187 msg.append("parentOrganizationId=" + parentOrganizationId);
1188
1189 msg.append(StringPool.CLOSE_CURLY_BRACE);
1190
1191 throw new NoSuchOrganizationException(msg.toString());
1192 }
1193 else {
1194 return list.get(0);
1195 }
1196 }
1197
1198 public Organization findByC_P_Last(long companyId,
1199 long parentOrganizationId, OrderByComparator obc)
1200 throws NoSuchOrganizationException, SystemException {
1201 int count = countByC_P(companyId, parentOrganizationId);
1202
1203 List<Organization> list = findByC_P(companyId, parentOrganizationId,
1204 count - 1, count, obc);
1205
1206 if (list.isEmpty()) {
1207 StringBuilder msg = new StringBuilder();
1208
1209 msg.append("No Organization exists with the key {");
1210
1211 msg.append("companyId=" + companyId);
1212
1213 msg.append(", ");
1214 msg.append("parentOrganizationId=" + parentOrganizationId);
1215
1216 msg.append(StringPool.CLOSE_CURLY_BRACE);
1217
1218 throw new NoSuchOrganizationException(msg.toString());
1219 }
1220 else {
1221 return list.get(0);
1222 }
1223 }
1224
1225 public Organization[] findByC_P_PrevAndNext(long organizationId,
1226 long companyId, long parentOrganizationId, OrderByComparator obc)
1227 throws NoSuchOrganizationException, SystemException {
1228 Organization organization = findByPrimaryKey(organizationId);
1229
1230 int count = countByC_P(companyId, parentOrganizationId);
1231
1232 Session session = null;
1233
1234 try {
1235 session = openSession();
1236
1237 StringBuilder query = new StringBuilder();
1238
1239 query.append(
1240 "SELECT organization FROM Organization organization WHERE ");
1241
1242 query.append("organization.companyId = ?");
1243
1244 query.append(" AND ");
1245
1246 query.append("organization.parentOrganizationId = ?");
1247
1248 query.append(" ");
1249
1250 if (obc != null) {
1251 query.append("ORDER BY ");
1252
1253 String[] orderByFields = obc.getOrderByFields();
1254
1255 for (int i = 0; i < orderByFields.length; i++) {
1256 query.append("organization.");
1257 query.append(orderByFields[i]);
1258
1259 if (obc.isAscending()) {
1260 query.append(" ASC");
1261 }
1262 else {
1263 query.append(" DESC");
1264 }
1265
1266 if ((i + 1) < orderByFields.length) {
1267 query.append(", ");
1268 }
1269 }
1270 }
1271
1272 else {
1273 query.append("ORDER BY ");
1274
1275 query.append("organization.name ASC");
1276 }
1277
1278 Query q = session.createQuery(query.toString());
1279
1280 QueryPos qPos = QueryPos.getInstance(q);
1281
1282 qPos.add(companyId);
1283
1284 qPos.add(parentOrganizationId);
1285
1286 Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1287 organization);
1288
1289 Organization[] array = new OrganizationImpl[3];
1290
1291 array[0] = (Organization)objArray[0];
1292 array[1] = (Organization)objArray[1];
1293 array[2] = (Organization)objArray[2];
1294
1295 return array;
1296 }
1297 catch (Exception e) {
1298 throw processException(e);
1299 }
1300 finally {
1301 closeSession(session);
1302 }
1303 }
1304
1305 public Organization findByC_N(long companyId, String name)
1306 throws NoSuchOrganizationException, SystemException {
1307 Organization organization = fetchByC_N(companyId, name);
1308
1309 if (organization == null) {
1310 StringBuilder msg = new StringBuilder();
1311
1312 msg.append("No Organization exists with the key {");
1313
1314 msg.append("companyId=" + companyId);
1315
1316 msg.append(", ");
1317 msg.append("name=" + name);
1318
1319 msg.append(StringPool.CLOSE_CURLY_BRACE);
1320
1321 if (_log.isWarnEnabled()) {
1322 _log.warn(msg.toString());
1323 }
1324
1325 throw new NoSuchOrganizationException(msg.toString());
1326 }
1327
1328 return organization;
1329 }
1330
1331 public Organization fetchByC_N(long companyId, String name)
1332 throws SystemException {
1333 return fetchByC_N(companyId, name, true);
1334 }
1335
1336 public Organization fetchByC_N(long companyId, String name,
1337 boolean retrieveFromCache) throws SystemException {
1338 Object[] finderArgs = new Object[] { new Long(companyId), name };
1339
1340 Object result = null;
1341
1342 if (retrieveFromCache) {
1343 result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_C_N,
1344 finderArgs, this);
1345 }
1346
1347 if (result == null) {
1348 Session session = null;
1349
1350 try {
1351 session = openSession();
1352
1353 StringBuilder query = new StringBuilder();
1354
1355 query.append(
1356 "SELECT organization FROM Organization organization WHERE ");
1357
1358 query.append("organization.companyId = ?");
1359
1360 query.append(" AND ");
1361
1362 if (name == null) {
1363 query.append("organization.name IS NULL");
1364 }
1365 else {
1366 query.append("organization.name = ?");
1367 }
1368
1369 query.append(" ");
1370
1371 query.append("ORDER BY ");
1372
1373 query.append("organization.name ASC");
1374
1375 Query q = session.createQuery(query.toString());
1376
1377 QueryPos qPos = QueryPos.getInstance(q);
1378
1379 qPos.add(companyId);
1380
1381 if (name != null) {
1382 qPos.add(name);
1383 }
1384
1385 List<Organization> list = q.list();
1386
1387 result = list;
1388
1389 Organization organization = null;
1390
1391 if (list.isEmpty()) {
1392 FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
1393 finderArgs, list);
1394 }
1395 else {
1396 organization = list.get(0);
1397
1398 cacheResult(organization);
1399
1400 if ((organization.getCompanyId() != companyId) ||
1401 (organization.getName() == null) ||
1402 !organization.getName().equals(name)) {
1403 FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
1404 finderArgs, organization);
1405 }
1406 }
1407
1408 return organization;
1409 }
1410 catch (Exception e) {
1411 throw processException(e);
1412 }
1413 finally {
1414 if (result == null) {
1415 FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
1416 finderArgs, new ArrayList<Organization>());
1417 }
1418
1419 closeSession(session);
1420 }
1421 }
1422 else {
1423 if (result instanceof List<?>) {
1424 return null;
1425 }
1426 else {
1427 return (Organization)result;
1428 }
1429 }
1430 }
1431
1432 public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
1433 throws SystemException {
1434 Session session = null;
1435
1436 try {
1437 session = openSession();
1438
1439 dynamicQuery.compile(session);
1440
1441 return dynamicQuery.list();
1442 }
1443 catch (Exception e) {
1444 throw processException(e);
1445 }
1446 finally {
1447 closeSession(session);
1448 }
1449 }
1450
1451 public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
1452 int start, int end) throws SystemException {
1453 Session session = null;
1454
1455 try {
1456 session = openSession();
1457
1458 dynamicQuery.setLimit(start, end);
1459
1460 dynamicQuery.compile(session);
1461
1462 return dynamicQuery.list();
1463 }
1464 catch (Exception e) {
1465 throw processException(e);
1466 }
1467 finally {
1468 closeSession(session);
1469 }
1470 }
1471
1472 public List<Organization> findAll() throws SystemException {
1473 return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1474 }
1475
1476 public List<Organization> findAll(int start, int end)
1477 throws SystemException {
1478 return findAll(start, end, null);
1479 }
1480
1481 public List<Organization> findAll(int start, int end, OrderByComparator obc)
1482 throws SystemException {
1483 Object[] finderArgs = new Object[] {
1484 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1485 };
1486
1487 List<Organization> list = (List<Organization>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
1488 finderArgs, this);
1489
1490 if (list == null) {
1491 Session session = null;
1492
1493 try {
1494 session = openSession();
1495
1496 StringBuilder query = new StringBuilder();
1497
1498 query.append(
1499 "SELECT organization FROM Organization organization ");
1500
1501 if (obc != null) {
1502 query.append("ORDER BY ");
1503
1504 String[] orderByFields = obc.getOrderByFields();
1505
1506 for (int i = 0; i < orderByFields.length; i++) {
1507 query.append("organization.");
1508 query.append(orderByFields[i]);
1509
1510 if (obc.isAscending()) {
1511 query.append(" ASC");
1512 }
1513 else {
1514 query.append(" DESC");
1515 }
1516
1517 if ((i + 1) < orderByFields.length) {
1518 query.append(", ");
1519 }
1520 }
1521 }
1522
1523 else {
1524 query.append("ORDER BY ");
1525
1526 query.append("organization.name ASC");
1527 }
1528
1529 Query q = session.createQuery(query.toString());
1530
1531 if (obc == null) {
1532 list = (List<Organization>)QueryUtil.list(q, getDialect(),
1533 start, end, false);
1534
1535 Collections.sort(list);
1536 }
1537 else {
1538 list = (List<Organization>)QueryUtil.list(q, getDialect(),
1539 start, end);
1540 }
1541 }
1542 catch (Exception e) {
1543 throw processException(e);
1544 }
1545 finally {
1546 if (list == null) {
1547 list = new ArrayList<Organization>();
1548 }
1549
1550 cacheResult(list);
1551
1552 FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
1553
1554 closeSession(session);
1555 }
1556 }
1557
1558 return list;
1559 }
1560
1561 public void removeByCompanyId(long companyId) throws SystemException {
1562 for (Organization organization : findByCompanyId(companyId)) {
1563 remove(organization);
1564 }
1565 }
1566
1567 public void removeByLocations(long companyId) throws SystemException {
1568 for (Organization organization : findByLocations(companyId)) {
1569 remove(organization);
1570 }
1571 }
1572
1573 public void removeByC_P(long companyId, long parentOrganizationId)
1574 throws SystemException {
1575 for (Organization organization : findByC_P(companyId,
1576 parentOrganizationId)) {
1577 remove(organization);
1578 }
1579 }
1580
1581 public void removeByC_N(long companyId, String name)
1582 throws NoSuchOrganizationException, SystemException {
1583 Organization organization = findByC_N(companyId, name);
1584
1585 remove(organization);
1586 }
1587
1588 public void removeAll() throws SystemException {
1589 for (Organization organization : findAll()) {
1590 remove(organization);
1591 }
1592 }
1593
1594 public int countByCompanyId(long companyId) throws SystemException {
1595 Object[] finderArgs = new Object[] { new Long(companyId) };
1596
1597 Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_COMPANYID,
1598 finderArgs, this);
1599
1600 if (count == null) {
1601 Session session = null;
1602
1603 try {
1604 session = openSession();
1605
1606 StringBuilder query = new StringBuilder();
1607
1608 query.append("SELECT COUNT(organization) ");
1609 query.append("FROM Organization organization WHERE ");
1610
1611 query.append("organization.companyId = ?");
1612
1613 query.append(" ");
1614
1615 Query q = session.createQuery(query.toString());
1616
1617 QueryPos qPos = QueryPos.getInstance(q);
1618
1619 qPos.add(companyId);
1620
1621 count = (Long)q.uniqueResult();
1622 }
1623 catch (Exception e) {
1624 throw processException(e);
1625 }
1626 finally {
1627 if (count == null) {
1628 count = Long.valueOf(0);
1629 }
1630
1631 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_COMPANYID,
1632 finderArgs, count);
1633
1634 closeSession(session);
1635 }
1636 }
1637
1638 return count.intValue();
1639 }
1640
1641 public int countByLocations(long companyId) throws SystemException {
1642 Object[] finderArgs = new Object[] { new Long(companyId) };
1643
1644 Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_LOCATIONS,
1645 finderArgs, this);
1646
1647 if (count == null) {
1648 Session session = null;
1649
1650 try {
1651 session = openSession();
1652
1653 StringBuilder query = new StringBuilder();
1654
1655 query.append("SELECT COUNT(organization) ");
1656 query.append("FROM Organization organization WHERE ");
1657
1658 query.append("organization.companyId = ?");
1659
1660 query.append(" AND organization.parentOrganizationId != 0 ");
1661
1662 Query q = session.createQuery(query.toString());
1663
1664 QueryPos qPos = QueryPos.getInstance(q);
1665
1666 qPos.add(companyId);
1667
1668 count = (Long)q.uniqueResult();
1669 }
1670 catch (Exception e) {
1671 throw processException(e);
1672 }
1673 finally {
1674 if (count == null) {
1675 count = Long.valueOf(0);
1676 }
1677
1678 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_LOCATIONS,
1679 finderArgs, count);
1680
1681 closeSession(session);
1682 }
1683 }
1684
1685 return count.intValue();
1686 }
1687
1688 public int countByC_P(long companyId, long parentOrganizationId)
1689 throws SystemException {
1690 Object[] finderArgs = new Object[] {
1691 new Long(companyId), new Long(parentOrganizationId)
1692 };
1693
1694 Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_P,
1695 finderArgs, this);
1696
1697 if (count == null) {
1698 Session session = null;
1699
1700 try {
1701 session = openSession();
1702
1703 StringBuilder query = new StringBuilder();
1704
1705 query.append("SELECT COUNT(organization) ");
1706 query.append("FROM Organization organization WHERE ");
1707
1708 query.append("organization.companyId = ?");
1709
1710 query.append(" AND ");
1711
1712 query.append("organization.parentOrganizationId = ?");
1713
1714 query.append(" ");
1715
1716 Query q = session.createQuery(query.toString());
1717
1718 QueryPos qPos = QueryPos.getInstance(q);
1719
1720 qPos.add(companyId);
1721
1722 qPos.add(parentOrganizationId);
1723
1724 count = (Long)q.uniqueResult();
1725 }
1726 catch (Exception e) {
1727 throw processException(e);
1728 }
1729 finally {
1730 if (count == null) {
1731 count = Long.valueOf(0);
1732 }
1733
1734 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_P, finderArgs,
1735 count);
1736
1737 closeSession(session);
1738 }
1739 }
1740
1741 return count.intValue();
1742 }
1743
1744 public int countByC_N(long companyId, String name)
1745 throws SystemException {
1746 Object[] finderArgs = new Object[] { new Long(companyId), name };
1747
1748 Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_N,
1749 finderArgs, this);
1750
1751 if (count == null) {
1752 Session session = null;
1753
1754 try {
1755 session = openSession();
1756
1757 StringBuilder query = new StringBuilder();
1758
1759 query.append("SELECT COUNT(organization) ");
1760 query.append("FROM Organization organization WHERE ");
1761
1762 query.append("organization.companyId = ?");
1763
1764 query.append(" AND ");
1765
1766 if (name == null) {
1767 query.append("organization.name IS NULL");
1768 }
1769 else {
1770 query.append("organization.name = ?");
1771 }
1772
1773 query.append(" ");
1774
1775 Query q = session.createQuery(query.toString());
1776
1777 QueryPos qPos = QueryPos.getInstance(q);
1778
1779 qPos.add(companyId);
1780
1781 if (name != null) {
1782 qPos.add(name);
1783 }
1784
1785 count = (Long)q.uniqueResult();
1786 }
1787 catch (Exception e) {
1788 throw processException(e);
1789 }
1790 finally {
1791 if (count == null) {
1792 count = Long.valueOf(0);
1793 }
1794
1795 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_N, finderArgs,
1796 count);
1797
1798 closeSession(session);
1799 }
1800 }
1801
1802 return count.intValue();
1803 }
1804
1805 public int countAll() throws SystemException {
1806 Object[] finderArgs = new Object[0];
1807
1808 Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
1809 finderArgs, this);
1810
1811 if (count == null) {
1812 Session session = null;
1813
1814 try {
1815 session = openSession();
1816
1817 Query q = session.createQuery(
1818 "SELECT COUNT(organization) FROM Organization organization");
1819
1820 count = (Long)q.uniqueResult();
1821 }
1822 catch (Exception e) {
1823 throw processException(e);
1824 }
1825 finally {
1826 if (count == null) {
1827 count = Long.valueOf(0);
1828 }
1829
1830 FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
1831 count);
1832
1833 closeSession(session);
1834 }
1835 }
1836
1837 return count.intValue();
1838 }
1839
1840 public List<com.liferay.portal.model.Group> getGroups(long pk)
1841 throws SystemException {
1842 return getGroups(pk, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
1843 }
1844
1845 public List<com.liferay.portal.model.Group> getGroups(long pk, int start,
1846 int end) throws SystemException {
1847 return getGroups(pk, start, end, null);
1848 }
1849
1850 public static final FinderPath FINDER_PATH_GET_GROUPS = new FinderPath(com.liferay.portal.model.impl.GroupModelImpl.ENTITY_CACHE_ENABLED,
1851 OrganizationModelImpl.FINDER_CACHE_ENABLED_GROUPS_ORGS,
1852 "Groups_Orgs", "getGroups",
1853 new String[] {
1854 Long.class.getName(), "java.lang.Integer", "java.lang.Integer",
1855 "com.liferay.portal.kernel.util.OrderByComparator"
1856 });
1857
1858 public List<com.liferay.portal.model.Group> getGroups(long pk, int start,
1859 int end, OrderByComparator obc) throws SystemException {
1860 Object[] finderArgs = new Object[] {
1861 new Long(pk), String.valueOf(start), String.valueOf(end),
1862 String.valueOf(obc)
1863 };
1864
1865 List<com.liferay.portal.model.Group> list = (List<com.liferay.portal.model.Group>)FinderCacheUtil.getResult(FINDER_PATH_GET_GROUPS,
1866 finderArgs, this);
1867
1868 if (list == null) {
1869 Session session = null;
1870
1871 try {
1872 session = openSession();
1873
1874 StringBuilder sb = new StringBuilder();
1875
1876 sb.append(_SQL_GETGROUPS);
1877
1878 if (obc != null) {
1879 sb.append("ORDER BY ");
1880 sb.append(obc.getOrderBy());
1881 }
1882
1883 else {
1884 sb.append("ORDER BY ");
1885
1886 sb.append("Group_.name ASC");
1887 }
1888
1889 String sql = sb.toString();
1890
1891 SQLQuery q = session.createSQLQuery(sql);
1892
1893 q.addEntity("Group_",
1894 com.liferay.portal.model.impl.GroupImpl.class);
1895
1896 QueryPos qPos = QueryPos.getInstance(q);
1897
1898 qPos.add(pk);
1899
1900 list = (List<com.liferay.portal.model.Group>)QueryUtil.list(q,
1901 getDialect(), start, end);
1902 }
1903 catch (Exception e) {
1904 throw processException(e);
1905 }
1906 finally {
1907 if (list == null) {
1908 list = new ArrayList<com.liferay.portal.model.Group>();
1909 }
1910
1911 groupPersistence.cacheResult(list);
1912
1913 FinderCacheUtil.putResult(FINDER_PATH_GET_GROUPS, finderArgs,
1914 list);
1915
1916 closeSession(session);
1917 }
1918 }
1919
1920 return list;
1921 }
1922
1923 public static final FinderPath FINDER_PATH_GET_GROUPS_SIZE = new FinderPath(com.liferay.portal.model.impl.GroupModelImpl.ENTITY_CACHE_ENABLED,
1924 OrganizationModelImpl.FINDER_CACHE_ENABLED_GROUPS_ORGS,
1925 "Groups_Orgs", "getGroupsSize",
1926 new String[] { Long.class.getName() });
1927
1928 public int getGroupsSize(long pk) throws SystemException {
1929 Object[] finderArgs = new Object[] { new Long(pk) };
1930
1931 Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_GET_GROUPS_SIZE,
1932 finderArgs, this);
1933
1934 if (count == null) {
1935 Session session = null;
1936
1937 try {
1938 session = openSession();
1939
1940 SQLQuery q = session.createSQLQuery(_SQL_GETGROUPSSIZE);
1941
1942 q.addScalar(COUNT_COLUMN_NAME, Type.LONG);
1943
1944 QueryPos qPos = QueryPos.getInstance(q);
1945
1946 qPos.add(pk);
1947
1948 count = (Long)q.uniqueResult();
1949 }
1950 catch (Exception e) {
1951 throw processException(e);
1952 }
1953 finally {
1954 if (count == null) {
1955 count = Long.valueOf(0);
1956 }
1957
1958 FinderCacheUtil.putResult(FINDER_PATH_GET_GROUPS_SIZE,
1959 finderArgs, count);
1960
1961 closeSession(session);
1962 }
1963 }
1964
1965 return count.intValue();
1966 }
1967
1968 public static final FinderPath FINDER_PATH_CONTAINS_GROUP = new FinderPath(com.liferay.portal.model.impl.GroupModelImpl.ENTITY_CACHE_ENABLED,
1969 OrganizationModelImpl.FINDER_CACHE_ENABLED_GROUPS_ORGS,
1970 "Groups_Orgs", "containsGroup",
1971 new String[] { Long.class.getName(), Long.class.getName() });
1972
1973 public boolean containsGroup(long pk, long groupPK)
1974 throws SystemException {
1975 Object[] finderArgs = new Object[] { new Long(pk), new Long(groupPK) };
1976
1977 Boolean value = (Boolean)FinderCacheUtil.getResult(FINDER_PATH_CONTAINS_GROUP,
1978 finderArgs, this);
1979
1980 if (value == null) {
1981 try {
1982 value = Boolean.valueOf(containsGroup.contains(pk, groupPK));
1983 }
1984 catch (Exception e) {
1985 throw processException(e);
1986 }
1987 finally {
1988 if (value == null) {
1989 value = Boolean.FALSE;
1990 }
1991
1992 FinderCacheUtil.putResult(FINDER_PATH_CONTAINS_GROUP,
1993 finderArgs, value);
1994 }
1995 }
1996
1997 return value.booleanValue();
1998 }
1999
2000 public boolean containsGroups(long pk) throws SystemException {
2001 if (getGroupsSize(pk) > 0) {
2002 return true;
2003 }
2004 else {
2005 return false;
2006 }
2007 }
2008
2009 public void addGroup(long pk, long groupPK) throws SystemException {
2010 try {
2011 addGroup.add(pk, groupPK);
2012 }
2013 catch (Exception e) {
2014 throw processException(e);
2015 }
2016 finally {
2017 FinderCacheUtil.clearCache("Groups_Orgs");
2018 }
2019 }
2020
2021 public void addGroup(long pk, com.liferay.portal.model.Group group)
2022 throws SystemException {
2023 try {
2024 addGroup.add(pk, group.getPrimaryKey());
2025 }
2026 catch (Exception e) {
2027 throw processException(e);
2028 }
2029 finally {
2030 FinderCacheUtil.clearCache("Groups_Orgs");
2031 }
2032 }
2033
2034 public void addGroups(long pk, long[] groupPKs) throws SystemException {
2035 try {
2036 for (long groupPK : groupPKs) {
2037 addGroup.add(pk, groupPK);
2038 }
2039 }
2040 catch (Exception e) {
2041 throw processException(e);
2042 }
2043 finally {
2044 FinderCacheUtil.clearCache("Groups_Orgs");
2045 }
2046 }
2047
2048 public void addGroups(long pk, List<com.liferay.portal.model.Group> groups)
2049 throws SystemException {
2050 try {
2051 for (com.liferay.portal.model.Group group : groups) {
2052 addGroup.add(pk, group.getPrimaryKey());
2053 }
2054 }
2055 catch (Exception e) {
2056 throw processException(e);
2057 }
2058 finally {
2059 FinderCacheUtil.clearCache("Groups_Orgs");
2060 }
2061 }
2062
2063 public void clearGroups(long pk) throws SystemException {
2064 try {
2065 clearGroups.clear(pk);
2066 }
2067 catch (Exception e) {
2068 throw processException(e);
2069 }
2070 finally {
2071 FinderCacheUtil.clearCache("Groups_Orgs");
2072 }
2073 }
2074
2075 public void removeGroup(long pk, long groupPK) throws SystemException {
2076 try {
2077 removeGroup.remove(pk, groupPK);
2078 }
2079 catch (Exception e) {
2080 throw processException(e);
2081 }
2082 finally {
2083 FinderCacheUtil.clearCache("Groups_Orgs");
2084 }
2085 }
2086
2087 public void removeGroup(long pk, com.liferay.portal.model.Group group)
2088 throws SystemException {
2089 try {
2090 removeGroup.remove(pk, group.getPrimaryKey());
2091 }
2092 catch (Exception e) {
2093 throw processException(e);
2094 }
2095 finally {
2096 FinderCacheUtil.clearCache("Groups_Orgs");
2097 }
2098 }
2099
2100 public void removeGroups(long pk, long[] groupPKs)
2101 throws SystemException {
2102 try {
2103 for (long groupPK : groupPKs) {
2104 removeGroup.remove(pk, groupPK);
2105 }
2106 }
2107 catch (Exception e) {
2108 throw processException(e);
2109 }
2110 finally {
2111 FinderCacheUtil.clearCache("Groups_Orgs");
2112 }
2113 }
2114
2115 public void removeGroups(long pk,
2116 List<com.liferay.portal.model.Group> groups) throws SystemException {
2117 try {
2118 for (com.liferay.portal.model.Group group : groups) {
2119 removeGroup.remove(pk, group.getPrimaryKey());
2120 }
2121 }
2122 catch (Exception e) {
2123 throw processException(e);
2124 }
2125 finally {
2126 FinderCacheUtil.clearCache("Groups_Orgs");
2127 }
2128 }
2129
2130 public void setGroups(long pk, long[] groupPKs) throws SystemException {
2131 try {
2132 Set<Long> groupPKSet = SetUtil.fromArray(groupPKs);
2133
2134 List<com.liferay.portal.model.Group> groups = getGroups(pk);
2135
2136 for (com.liferay.portal.model.Group group : groups) {
2137 if (!groupPKSet.contains(group.getPrimaryKey())) {
2138 removeGroup.remove(pk, group.getPrimaryKey());
2139 }
2140 else {
2141 groupPKSet.remove(group.getPrimaryKey());
2142 }
2143 }
2144
2145 for (Long groupPK : groupPKSet) {
2146 addGroup.add(pk, groupPK);
2147 }
2148 }
2149 catch (Exception e) {
2150 throw processException(e);
2151 }
2152 finally {
2153 FinderCacheUtil.clearCache("Groups_Orgs");
2154 }
2155 }
2156
2157 public void setGroups(long pk, List<com.liferay.portal.model.Group> groups)
2158 throws SystemException {
2159 try {
2160 long[] groupPKs = new long[groups.size()];
2161
2162 for (int i = 0; i < groups.size(); i++) {
2163 com.liferay.portal.model.Group group = groups.get(i);
2164
2165 groupPKs[i] = group.getPrimaryKey();
2166 }
2167
2168 setGroups(pk, groupPKs);
2169 }
2170 catch (Exception e) {
2171 throw processException(e);
2172 }
2173 finally {
2174 FinderCacheUtil.clearCache("Groups_Orgs");
2175 }
2176 }
2177
2178 public List<com.liferay.portal.model.User> getUsers(long pk)
2179 throws SystemException {
2180 return getUsers(pk, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
2181 }
2182
2183 public List<com.liferay.portal.model.User> getUsers(long pk, int start,
2184 int end) throws SystemException {
2185 return getUsers(pk, start, end, null);
2186 }
2187
2188 public static final FinderPath FINDER_PATH_GET_USERS = new FinderPath(com.liferay.portal.model.impl.UserModelImpl.ENTITY_CACHE_ENABLED,
2189 OrganizationModelImpl.FINDER_CACHE_ENABLED_USERS_ORGS,
2190 "Users_Orgs", "getUsers",
2191 new String[] {
2192 Long.class.getName(), "java.lang.Integer", "java.lang.Integer",
2193 "com.liferay.portal.kernel.util.OrderByComparator"
2194 });
2195
2196 public List<com.liferay.portal.model.User> getUsers(long pk, int start,
2197 int end, OrderByComparator obc) throws SystemException {
2198 Object[] finderArgs = new Object[] {
2199 new Long(pk), String.valueOf(start), String.valueOf(end),
2200 String.valueOf(obc)
2201 };
2202
2203 List<com.liferay.portal.model.User> list = (List<com.liferay.portal.model.User>)FinderCacheUtil.getResult(FINDER_PATH_GET_USERS,
2204 finderArgs, this);
2205
2206 if (list == null) {
2207 Session session = null;
2208
2209 try {
2210 session = openSession();
2211
2212 StringBuilder sb = new StringBuilder();
2213
2214 sb.append(_SQL_GETUSERS);
2215
2216 if (obc != null) {
2217 sb.append("ORDER BY ");
2218 sb.append(obc.getOrderBy());
2219 }
2220
2221 String sql = sb.toString();
2222
2223 SQLQuery q = session.createSQLQuery(sql);
2224
2225 q.addEntity("User_",
2226 com.liferay.portal.model.impl.UserImpl.class);
2227
2228 QueryPos qPos = QueryPos.getInstance(q);
2229
2230 qPos.add(pk);
2231
2232 list = (List<com.liferay.portal.model.User>)QueryUtil.list(q,
2233 getDialect(), start, end);
2234 }
2235 catch (Exception e) {
2236 throw processException(e);
2237 }
2238 finally {
2239 if (list == null) {
2240 list = new ArrayList<com.liferay.portal.model.User>();
2241 }
2242
2243 userPersistence.cacheResult(list);
2244
2245 FinderCacheUtil.putResult(FINDER_PATH_GET_USERS, finderArgs,
2246 list);
2247
2248 closeSession(session);
2249 }
2250 }
2251
2252 return list;
2253 }
2254
2255 public static final FinderPath FINDER_PATH_GET_USERS_SIZE = new FinderPath(com.liferay.portal.model.impl.UserModelImpl.ENTITY_CACHE_ENABLED,
2256 OrganizationModelImpl.FINDER_CACHE_ENABLED_USERS_ORGS,
2257 "Users_Orgs", "getUsersSize", new String[] { Long.class.getName() });
2258
2259 public int getUsersSize(long pk) throws SystemException {
2260 Object[] finderArgs = new Object[] { new Long(pk) };
2261
2262 Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_GET_USERS_SIZE,
2263 finderArgs, this);
2264
2265 if (count == null) {
2266 Session session = null;
2267
2268 try {
2269 session = openSession();
2270
2271 SQLQuery q = session.createSQLQuery(_SQL_GETUSERSSIZE);
2272
2273 q.addScalar(COUNT_COLUMN_NAME, Type.LONG);
2274
2275 QueryPos qPos = QueryPos.getInstance(q);
2276
2277 qPos.add(pk);
2278
2279 count = (Long)q.uniqueResult();
2280 }
2281 catch (Exception e) {
2282 throw processException(e);
2283 }
2284 finally {
2285 if (count == null) {
2286 count = Long.valueOf(0);
2287 }
2288
2289 FinderCacheUtil.putResult(FINDER_PATH_GET_USERS_SIZE,
2290 finderArgs, count);
2291
2292 closeSession(session);
2293 }
2294 }
2295
2296 return count.intValue();
2297 }
2298
2299 public static final FinderPath FINDER_PATH_CONTAINS_USER = new FinderPath(com.liferay.portal.model.impl.UserModelImpl.ENTITY_CACHE_ENABLED,
2300 OrganizationModelImpl.FINDER_CACHE_ENABLED_USERS_ORGS,
2301 "Users_Orgs", "containsUser",
2302 new String[] { Long.class.getName(), Long.class.getName() });
2303
2304 public boolean containsUser(long pk, long userPK) throws SystemException {
2305 Object[] finderArgs = new Object[] { new Long(pk), new Long(userPK) };
2306
2307 Boolean value = (Boolean)FinderCacheUtil.getResult(FINDER_PATH_CONTAINS_USER,
2308 finderArgs, this);
2309
2310 if (value == null) {
2311 try {
2312 value = Boolean.valueOf(containsUser.contains(pk, userPK));
2313 }
2314 catch (Exception e) {
2315 throw processException(e);
2316 }
2317 finally {
2318 if (value == null) {
2319 value = Boolean.FALSE;
2320 }
2321
2322 FinderCacheUtil.putResult(FINDER_PATH_CONTAINS_USER,
2323 finderArgs, value);
2324 }
2325 }
2326
2327 return value.booleanValue();
2328 }
2329
2330 public boolean containsUsers(long pk) throws SystemException {
2331 if (getUsersSize(pk) > 0) {
2332 return true;
2333 }
2334 else {
2335 return false;
2336 }
2337 }
2338
2339 public void addUser(long pk, long userPK) throws SystemException {
2340 try {
2341 addUser.add(pk, userPK);
2342 }
2343 catch (Exception e) {
2344 throw processException(e);
2345 }
2346 finally {
2347 FinderCacheUtil.clearCache("Users_Orgs");
2348 }
2349 }
2350
2351 public void addUser(long pk, com.liferay.portal.model.User user)
2352 throws SystemException {
2353 try {
2354 addUser.add(pk, user.getPrimaryKey());
2355 }
2356 catch (Exception e) {
2357 throw processException(e);
2358 }
2359 finally {
2360 FinderCacheUtil.clearCache("Users_Orgs");
2361 }
2362 }
2363
2364 public void addUsers(long pk, long[] userPKs) throws SystemException {
2365 try {
2366 for (long userPK : userPKs) {
2367 addUser.add(pk, userPK);
2368 }
2369 }
2370 catch (Exception e) {
2371 throw processException(e);
2372 }
2373 finally {
2374 FinderCacheUtil.clearCache("Users_Orgs");
2375 }
2376 }
2377
2378 public void addUsers(long pk, List<com.liferay.portal.model.User> users)
2379 throws SystemException {
2380 try {
2381 for (com.liferay.portal.model.User user : users) {
2382 addUser.add(pk, user.getPrimaryKey());
2383 }
2384 }
2385 catch (Exception e) {
2386 throw processException(e);
2387 }
2388 finally {
2389 FinderCacheUtil.clearCache("Users_Orgs");
2390 }
2391 }
2392
2393 public void clearUsers(long pk) throws SystemException {
2394 try {
2395 clearUsers.clear(pk);
2396 }
2397 catch (Exception e) {
2398 throw processException(e);
2399 }
2400 finally {
2401 FinderCacheUtil.clearCache("Users_Orgs");
2402 }
2403 }
2404
2405 public void removeUser(long pk, long userPK) throws SystemException {
2406 try {
2407 removeUser.remove(pk, userPK);
2408 }
2409 catch (Exception e) {
2410 throw processException(e);
2411 }
2412 finally {
2413 FinderCacheUtil.clearCache("Users_Orgs");
2414 }
2415 }
2416
2417 public void removeUser(long pk, com.liferay.portal.model.User user)
2418 throws SystemException {
2419 try {
2420 removeUser.remove(pk, user.getPrimaryKey());
2421 }
2422 catch (Exception e) {
2423 throw processException(e);
2424 }
2425 finally {
2426 FinderCacheUtil.clearCache("Users_Orgs");
2427 }
2428 }
2429
2430 public void removeUsers(long pk, long[] userPKs) throws SystemException {
2431 try {
2432 for (long userPK : userPKs) {
2433 removeUser.remove(pk, userPK);
2434 }
2435 }
2436 catch (Exception e) {
2437 throw processException(e);
2438 }
2439 finally {
2440 FinderCacheUtil.clearCache("Users_Orgs");
2441 }
2442 }
2443
2444 public void removeUsers(long pk, List<com.liferay.portal.model.User> users)
2445 throws SystemException {
2446 try {
2447 for (com.liferay.portal.model.User user : users) {
2448 removeUser.remove(pk, user.getPrimaryKey());
2449 }
2450 }
2451 catch (Exception e) {
2452 throw processException(e);
2453 }
2454 finally {
2455 FinderCacheUtil.clearCache("Users_Orgs");
2456 }
2457 }
2458
2459 public void setUsers(long pk, long[] userPKs) throws SystemException {
2460 try {
2461 Set<Long> userPKSet = SetUtil.fromArray(userPKs);
2462
2463 List<com.liferay.portal.model.User> users = getUsers(pk);
2464
2465 for (com.liferay.portal.model.User user : users) {
2466 if (!userPKSet.contains(user.getPrimaryKey())) {
2467 removeUser.remove(pk, user.getPrimaryKey());
2468 }
2469 else {
2470 userPKSet.remove(user.getPrimaryKey());
2471 }
2472 }
2473
2474 for (Long userPK : userPKSet) {
2475 addUser.add(pk, userPK);
2476 }
2477 }
2478 catch (Exception e) {
2479 throw processException(e);
2480 }
2481 finally {
2482 FinderCacheUtil.clearCache("Users_Orgs");
2483 }
2484 }
2485
2486 public void setUsers(long pk, List<com.liferay.portal.model.User> users)
2487 throws SystemException {
2488 try {
2489 long[] userPKs = new long[users.size()];
2490
2491 for (int i = 0; i < users.size(); i++) {
2492 com.liferay.portal.model.User user = users.get(i);
2493
2494 userPKs[i] = user.getPrimaryKey();
2495 }
2496
2497 setUsers(pk, userPKs);
2498 }
2499 catch (Exception e) {
2500 throw processException(e);
2501 }
2502 finally {
2503 FinderCacheUtil.clearCache("Users_Orgs");
2504 }
2505 }
2506
2507 public void rebuildTree(long companyId, boolean force)
2508 throws SystemException {
2509 if (force || (countOrphanTreeNodes(companyId) > 0)) {
2510 rebuildTree(companyId, 0, 1);
2511
2512 CacheRegistry.clear(OrganizationImpl.class.getName());
2513 EntityCacheUtil.clearCache(OrganizationImpl.class.getName());
2514 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
2515 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
2516 }
2517 }
2518
2519 protected long countOrphanTreeNodes(long companyId)
2520 throws SystemException {
2521 Session session = null;
2522
2523 try {
2524 session = openSession();
2525
2526 SQLQuery q = session.createSQLQuery(
2527 "SELECT COUNT(*) AS COUNT_VALUE FROM Organization_ WHERE companyId = ? AND (leftOrganizationId = 0 OR leftOrganizationId IS NULL OR rightOrganizationId = 0 OR rightOrganizationId IS NULL)");
2528
2529 q.addScalar(COUNT_COLUMN_NAME, Type.LONG);
2530
2531 QueryPos qPos = QueryPos.getInstance(q);
2532
2533 qPos.add(companyId);
2534
2535 return (Long)q.uniqueResult();
2536 }
2537 catch (Exception e) {
2538 throw processException(e);
2539 }
2540 finally {
2541 closeSession(session);
2542 }
2543 }
2544
2545 protected void expandTree(Organization organization)
2546 throws SystemException {
2547 long companyId = organization.getCompanyId();
2548
2549 long lastRightOrganizationId = getLastRightOrganizationId(companyId,
2550 organization.getParentOrganizationId());
2551
2552 long leftOrganizationId = 2;
2553 long rightOrganizationId = 3;
2554
2555 if (lastRightOrganizationId > 0) {
2556 leftOrganizationId = lastRightOrganizationId + 1;
2557 rightOrganizationId = lastRightOrganizationId + 2;
2558
2559 expandTreeLeftOrganizationId.expand(companyId,
2560 lastRightOrganizationId);
2561 expandTreeRightOrganizationId.expand(companyId,
2562 lastRightOrganizationId);
2563
2564 CacheRegistry.clear(OrganizationImpl.class.getName());
2565 EntityCacheUtil.clearCache(OrganizationImpl.class.getName());
2566 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
2567 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
2568 }
2569
2570 organization.setLeftOrganizationId(leftOrganizationId);
2571 organization.setRightOrganizationId(rightOrganizationId);
2572 }
2573
2574 protected long getLastRightOrganizationId(long companyId,
2575 long parentOrganizationId) throws SystemException {
2576 Session session = null;
2577
2578 try {
2579 session = openSession();
2580
2581 SQLQuery q = session.createSQLQuery(
2582 "SELECT rightOrganizationId FROM Organization_ WHERE (companyId = ?) AND (parentOrganizationId = ?) ORDER BY rightOrganizationId DESC");
2583
2584 q.addScalar("rightOrganizationId", Type.LONG);
2585
2586 QueryPos qPos = QueryPos.getInstance(q);
2587
2588 qPos.add(companyId);
2589 qPos.add(parentOrganizationId);
2590
2591 List<Long> list = (List<Long>)QueryUtil.list(q, getDialect(), 0, 1);
2592
2593 if (list.isEmpty()) {
2594 if (parentOrganizationId > 0) {
2595 Organization parentOrganization = findByPrimaryKey(parentOrganizationId);
2596
2597 return parentOrganization.getLeftOrganizationId();
2598 }
2599
2600 return 0;
2601 }
2602 else {
2603 return list.get(0);
2604 }
2605 }
2606 catch (Exception e) {
2607 throw processException(e);
2608 }
2609 finally {
2610 closeSession(session);
2611 }
2612 }
2613
2614 protected long rebuildTree(long companyId, long parentOrganizationId,
2615 long leftOrganizationId) throws SystemException {
2616 List<Long> organizationIds = null;
2617
2618 Session session = null;
2619
2620 try {
2621 session = openSession();
2622
2623 SQLQuery q = session.createSQLQuery(
2624 "SELECT organizationId FROM Organization_ WHERE companyId = ? AND parentOrganizationId = ? ORDER BY organizationId ASC");
2625
2626 q.addScalar("organizationId", Type.LONG);
2627
2628 QueryPos qPos = QueryPos.getInstance(q);
2629
2630 qPos.add(companyId);
2631 qPos.add(parentOrganizationId);
2632
2633 organizationIds = q.list();
2634 }
2635 catch (Exception e) {
2636 throw processException(e);
2637 }
2638 finally {
2639 closeSession(session);
2640 }
2641
2642 long rightOrganizationId = leftOrganizationId + 1;
2643
2644 for (long organizationId : organizationIds) {
2645 rightOrganizationId = rebuildTree(companyId, organizationId,
2646 rightOrganizationId);
2647 }
2648
2649 if (parentOrganizationId > 0) {
2650 updateTree.update(parentOrganizationId, leftOrganizationId,
2651 rightOrganizationId);
2652 }
2653
2654 return rightOrganizationId + 1;
2655 }
2656
2657 protected void shrinkTree(Organization organization) {
2658 long companyId = organization.getCompanyId();
2659
2660 long leftOrganizationId = organization.getLeftOrganizationId();
2661 long rightOrganizationId = organization.getRightOrganizationId();
2662
2663 long delta = (rightOrganizationId - leftOrganizationId) + 1;
2664
2665 shrinkTreeLeftOrganizationId.shrink(companyId, rightOrganizationId,
2666 delta);
2667 shrinkTreeRightOrganizationId.shrink(companyId, rightOrganizationId,
2668 delta);
2669
2670 CacheRegistry.clear(OrganizationImpl.class.getName());
2671 EntityCacheUtil.clearCache(OrganizationImpl.class.getName());
2672 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
2673 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
2674 }
2675
2676 public void afterPropertiesSet() {
2677 String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
2678 com.liferay.portal.util.PropsUtil.get(
2679 "value.object.listener.com.liferay.portal.model.Organization")));
2680
2681 if (listenerClassNames.length > 0) {
2682 try {
2683 List<ModelListener<Organization>> listenersList = new ArrayList<ModelListener<Organization>>();
2684
2685 for (String listenerClassName : listenerClassNames) {
2686 listenersList.add((ModelListener<Organization>)Class.forName(
2687 listenerClassName).newInstance());
2688 }
2689
2690 listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
2691 }
2692 catch (Exception e) {
2693 _log.error(e);
2694 }
2695 }
2696
2697 containsGroup = new ContainsGroup(this);
2698
2699 addGroup = new AddGroup(this);
2700 clearGroups = new ClearGroups(this);
2701 removeGroup = new RemoveGroup(this);
2702
2703 containsUser = new ContainsUser(this);
2704
2705 addUser = new AddUser(this);
2706 clearUsers = new ClearUsers(this);
2707 removeUser = new RemoveUser(this);
2708
2709 expandTreeLeftOrganizationId = new ExpandTreeLeftOrganizationId();
2710 expandTreeRightOrganizationId = new ExpandTreeRightOrganizationId();
2711 shrinkTreeLeftOrganizationId = new ShrinkTreeLeftOrganizationId();
2712 shrinkTreeRightOrganizationId = new ShrinkTreeRightOrganizationId();
2713 updateTree = new UpdateTree();
2714 }
2715
2716 @BeanReference(name = "com.liferay.portal.service.persistence.AccountPersistence.impl")
2717 protected com.liferay.portal.service.persistence.AccountPersistence accountPersistence;
2718 @BeanReference(name = "com.liferay.portal.service.persistence.AddressPersistence.impl")
2719 protected com.liferay.portal.service.persistence.AddressPersistence addressPersistence;
2720 @BeanReference(name = "com.liferay.portal.service.persistence.BrowserTrackerPersistence.impl")
2721 protected com.liferay.portal.service.persistence.BrowserTrackerPersistence browserTrackerPersistence;
2722 @BeanReference(name = "com.liferay.portal.service.persistence.ClassNamePersistence.impl")
2723 protected com.liferay.portal.service.persistence.ClassNamePersistence classNamePersistence;
2724 @BeanReference(name = "com.liferay.portal.service.persistence.CompanyPersistence.impl")
2725 protected com.liferay.portal.service.persistence.CompanyPersistence companyPersistence;
2726 @BeanReference(name = "com.liferay.portal.service.persistence.ContactPersistence.impl")
2727 protected com.liferay.portal.service.persistence.ContactPersistence contactPersistence;
2728 @BeanReference(name = "com.liferay.portal.service.persistence.CountryPersistence.impl")
2729 protected com.liferay.portal.service.persistence.CountryPersistence countryPersistence;
2730 @BeanReference(name = "com.liferay.portal.service.persistence.EmailAddressPersistence.impl")
2731 protected com.liferay.portal.service.persistence.EmailAddressPersistence emailAddressPersistence;
2732 @BeanReference(name = "com.liferay.portal.service.persistence.GroupPersistence.impl")
2733 protected com.liferay.portal.service.persistence.GroupPersistence groupPersistence;
2734 @BeanReference(name = "com.liferay.portal.service.persistence.ImagePersistence.impl")
2735 protected com.liferay.portal.service.persistence.ImagePersistence imagePersistence;
2736 @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPersistence.impl")
2737 protected com.liferay.portal.service.persistence.LayoutPersistence layoutPersistence;
2738 @BeanReference(name = "com.liferay.portal.service.persistence.LayoutSetPersistence.impl")
2739 protected com.liferay.portal.service.persistence.LayoutSetPersistence layoutSetPersistence;
2740 @BeanReference(name = "com.liferay.portal.service.persistence.ListTypePersistence.impl")
2741 protected com.liferay.portal.service.persistence.ListTypePersistence listTypePersistence;
2742 @BeanReference(name = "com.liferay.portal.service.persistence.LockPersistence.impl")
2743 protected com.liferay.portal.service.persistence.LockPersistence lockPersistence;
2744 @BeanReference(name = "com.liferay.portal.service.persistence.MembershipRequestPersistence.impl")
2745 protected com.liferay.portal.service.persistence.MembershipRequestPersistence membershipRequestPersistence;
2746 @BeanReference(name = "com.liferay.portal.service.persistence.OrganizationPersistence.impl")
2747 protected com.liferay.portal.service.persistence.OrganizationPersistence organizationPersistence;
2748 @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupPermissionPersistence.impl")
2749 protected com.liferay.portal.service.persistence.OrgGroupPermissionPersistence orgGroupPermissionPersistence;
2750 @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupRolePersistence.impl")
2751 protected com.liferay.portal.service.persistence.OrgGroupRolePersistence orgGroupRolePersistence;
2752 @BeanReference(name = "com.liferay.portal.service.persistence.OrgLaborPersistence.impl")
2753 protected com.liferay.portal.service.persistence.OrgLaborPersistence orgLaborPersistence;
2754 @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyPersistence.impl")
2755 protected com.liferay.portal.service.persistence.PasswordPolicyPersistence passwordPolicyPersistence;
2756 @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyRelPersistence.impl")
2757 protected com.liferay.portal.service.persistence.PasswordPolicyRelPersistence passwordPolicyRelPersistence;
2758 @BeanReference(name = "com.liferay.portal.service.persistence.PasswordTrackerPersistence.impl")
2759 protected com.liferay.portal.service.persistence.PasswordTrackerPersistence passwordTrackerPersistence;
2760 @BeanReference(name = "com.liferay.portal.service.persistence.PermissionPersistence.impl")
2761 protected com.liferay.portal.service.persistence.PermissionPersistence permissionPersistence;
2762 @BeanReference(name = "com.liferay.portal.service.persistence.PhonePersistence.impl")
2763 protected com.liferay.portal.service.persistence.PhonePersistence phonePersistence;
2764 @BeanReference(name = "com.liferay.portal.service.persistence.PluginSettingPersistence.impl")
2765 protected com.liferay.portal.service.persistence.PluginSettingPersistence pluginSettingPersistence;
2766 @BeanReference(name = "com.liferay.portal.service.persistence.PortletPersistence.impl")
2767 protected com.liferay.portal.service.persistence.PortletPersistence portletPersistence;
2768 @BeanReference(name = "com.liferay.portal.service.persistence.PortletItemPersistence.impl")
2769 protected com.liferay.portal.service.persistence.PortletItemPersistence portletItemPersistence;
2770 @BeanReference(name = "com.liferay.portal.service.persistence.PortletPreferencesPersistence.impl")
2771 protected com.liferay.portal.service.persistence.PortletPreferencesPersistence portletPreferencesPersistence;
2772 @BeanReference(name = "com.liferay.portal.service.persistence.RegionPersistence.impl")
2773 protected com.liferay.portal.service.persistence.RegionPersistence regionPersistence;
2774 @BeanReference(name = "com.liferay.portal.service.persistence.ReleasePersistence.impl")
2775 protected com.liferay.portal.service.persistence.ReleasePersistence releasePersistence;
2776 @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence.impl")
2777 protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
2778 @BeanReference(name = "com.liferay.portal.service.persistence.ResourceActionPersistence.impl")
2779 protected com.liferay.portal.service.persistence.ResourceActionPersistence resourceActionPersistence;
2780 @BeanReference(name = "com.liferay.portal.service.persistence.ResourceCodePersistence.impl")
2781 protected com.liferay.portal.service.persistence.ResourceCodePersistence resourceCodePersistence;
2782 @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePermissionPersistence.impl")
2783 protected com.liferay.portal.service.persistence.ResourcePermissionPersistence resourcePermissionPersistence;
2784 @BeanReference(name = "com.liferay.portal.service.persistence.RolePersistence.impl")
2785 protected com.liferay.portal.service.persistence.RolePersistence rolePersistence;
2786 @BeanReference(name = "com.liferay.portal.service.persistence.ServiceComponentPersistence.impl")
2787 protected com.liferay.portal.service.persistence.ServiceComponentPersistence serviceComponentPersistence;
2788 @BeanReference(name = "com.liferay.portal.service.persistence.ShardPersistence.impl")
2789 protected com.liferay.portal.service.persistence.ShardPersistence shardPersistence;
2790 @BeanReference(name = "com.liferay.portal.service.persistence.SubscriptionPersistence.impl")
2791 protected com.liferay.portal.service.persistence.SubscriptionPersistence subscriptionPersistence;
2792 @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence.impl")
2793 protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
2794 @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupPersistence.impl")
2795 protected com.liferay.portal.service.persistence.UserGroupPersistence userGroupPersistence;
2796 @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupGroupRolePersistence.impl")
2797 protected com.liferay.portal.service.persistence.UserGroupGroupRolePersistence userGroupGroupRolePersistence;
2798 @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupRolePersistence.impl")
2799 protected com.liferay.portal.service.persistence.UserGroupRolePersistence userGroupRolePersistence;
2800 @BeanReference(name = "com.liferay.portal.service.persistence.UserIdMapperPersistence.impl")
2801 protected com.liferay.portal.service.persistence.UserIdMapperPersistence userIdMapperPersistence;
2802 @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPersistence.impl")
2803 protected com.liferay.portal.service.persistence.UserTrackerPersistence userTrackerPersistence;
2804 @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPathPersistence.impl")
2805 protected com.liferay.portal.service.persistence.UserTrackerPathPersistence userTrackerPathPersistence;
2806 @BeanReference(name = "com.liferay.portal.service.persistence.WebDAVPropsPersistence.impl")
2807 protected com.liferay.portal.service.persistence.WebDAVPropsPersistence webDAVPropsPersistence;
2808 @BeanReference(name = "com.liferay.portal.service.persistence.WebsitePersistence.impl")
2809 protected com.liferay.portal.service.persistence.WebsitePersistence websitePersistence;
2810 @BeanReference(name = "com.liferay.portlet.tags.service.persistence.TagsAssetPersistence.impl")
2811 protected com.liferay.portlet.tags.service.persistence.TagsAssetPersistence tagsAssetPersistence;
2812 protected ContainsGroup containsGroup;
2813 protected AddGroup addGroup;
2814 protected ClearGroups clearGroups;
2815 protected RemoveGroup removeGroup;
2816 protected ContainsUser containsUser;
2817 protected AddUser addUser;
2818 protected ClearUsers clearUsers;
2819 protected RemoveUser removeUser;
2820
2821 protected class ContainsGroup {
2822 protected ContainsGroup(OrganizationPersistenceImpl persistenceImpl) {
2823 super();
2824
2825 _mappingSqlQuery = MappingSqlQueryFactoryUtil.getMappingSqlQuery(getDataSource(),
2826 _SQL_CONTAINSGROUP,
2827 new int[] { Types.BIGINT, Types.BIGINT }, RowMapper.COUNT);
2828 }
2829
2830 protected boolean contains(long organizationId, long groupId) {
2831 List<Integer> results = _mappingSqlQuery.execute(new Object[] {
2832 new Long(organizationId), new Long(groupId)
2833 });
2834
2835 if (results.size() > 0) {
2836 Integer count = results.get(0);
2837
2838 if (count.intValue() > 0) {
2839 return true;
2840 }
2841 }
2842
2843 return false;
2844 }
2845
2846 private MappingSqlQuery _mappingSqlQuery;
2847 }
2848
2849 protected class AddGroup {
2850 protected AddGroup(OrganizationPersistenceImpl persistenceImpl) {
2851 _sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(getDataSource(),
2852 "INSERT INTO Groups_Orgs (organizationId, groupId) VALUES (?, ?)",
2853 new int[] { Types.BIGINT, Types.BIGINT });
2854 _persistenceImpl = persistenceImpl;
2855 }
2856
2857 protected void add(long organizationId, long groupId)
2858 throws SystemException {
2859 if (!_persistenceImpl.containsGroup.contains(organizationId, groupId)) {
2860 ModelListener<com.liferay.portal.model.Group>[] groupListeners = groupPersistence.getListeners();
2861
2862 for (ModelListener<Organization> listener : listeners) {
2863 listener.onBeforeAddAssociation(organizationId,
2864 com.liferay.portal.model.Group.class.getName(), groupId);
2865 }
2866
2867 for (ModelListener<com.liferay.portal.model.Group> listener : groupListeners) {
2868 listener.onBeforeAddAssociation(groupId,
2869 Organization.class.getName(), organizationId);
2870 }
2871
2872 _sqlUpdate.update(new Object[] {
2873 new Long(organizationId), new Long(groupId)
2874 });
2875
2876 for (ModelListener<Organization> listener : listeners) {
2877 listener.onAfterAddAssociation(organizationId,
2878 com.liferay.portal.model.Group.class.getName(), groupId);
2879 }
2880
2881 for (ModelListener<com.liferay.portal.model.Group> listener : groupListeners) {
2882 listener.onAfterAddAssociation(groupId,
2883 Organization.class.getName(), organizationId);
2884 }
2885 }
2886 }
2887
2888 private SqlUpdate _sqlUpdate;
2889 private OrganizationPersistenceImpl _persistenceImpl;
2890 }
2891
2892 protected class ClearGroups {
2893 protected ClearGroups(OrganizationPersistenceImpl persistenceImpl) {
2894 _sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(getDataSource(),
2895 "DELETE FROM Groups_Orgs WHERE organizationId = ?",
2896 new int[] { Types.BIGINT });
2897 }
2898
2899 protected void clear(long organizationId) throws SystemException {
2900 ModelListener<com.liferay.portal.model.Group>[] groupListeners = groupPersistence.getListeners();
2901
2902 List<com.liferay.portal.model.Group> groups = null;
2903
2904 if ((listeners.length > 0) || (groupListeners.length > 0)) {
2905 groups = getGroups(organizationId);
2906
2907 for (com.liferay.portal.model.Group group : groups) {
2908 for (ModelListener<Organization> listener : listeners) {
2909 listener.onBeforeRemoveAssociation(organizationId,
2910 com.liferay.portal.model.Group.class.getName(),
2911 group.getPrimaryKey());
2912 }
2913
2914 for (ModelListener<com.liferay.portal.model.Group> listener : groupListeners) {
2915 listener.onBeforeRemoveAssociation(group.getPrimaryKey(),
2916 Organization.class.getName(), organizationId);
2917 }
2918 }
2919 }
2920
2921 _sqlUpdate.update(new Object[] { new Long(organizationId) });
2922
2923 if ((listeners.length > 0) || (groupListeners.length > 0)) {
2924 for (com.liferay.portal.model.Group group : groups) {
2925 for (ModelListener<Organization> listener : listeners) {
2926 listener.onAfterRemoveAssociation(organizationId,
2927 com.liferay.portal.model.Group.class.getName(),
2928 group.getPrimaryKey());
2929 }
2930
2931 for (ModelListener<com.liferay.portal.model.Group> listener : groupListeners) {
2932 listener.onAfterRemoveAssociation(group.getPrimaryKey(),
2933 Organization.class.getName(), organizationId);
2934 }
2935 }
2936 }
2937 }
2938
2939 private SqlUpdate _sqlUpdate;
2940 }
2941
2942 protected class RemoveGroup {
2943 protected RemoveGroup(OrganizationPersistenceImpl persistenceImpl) {
2944 _sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(getDataSource(),
2945 "DELETE FROM Groups_Orgs WHERE organizationId = ? AND groupId = ?",
2946 new int[] { Types.BIGINT, Types.BIGINT });
2947 _persistenceImpl = persistenceImpl;
2948 }
2949
2950 protected void remove(long organizationId, long groupId)
2951 throws SystemException {
2952 if (_persistenceImpl.containsGroup.contains(organizationId, groupId)) {
2953 ModelListener<com.liferay.portal.model.Group>[] groupListeners = groupPersistence.getListeners();
2954
2955 for (ModelListener<Organization> listener : listeners) {
2956 listener.onBeforeRemoveAssociation(organizationId,
2957 com.liferay.portal.model.Group.class.getName(), groupId);
2958 }
2959
2960 for (ModelListener<com.liferay.portal.model.Group> listener : groupListeners) {
2961 listener.onBeforeRemoveAssociation(groupId,
2962 Organization.class.getName(), organizationId);
2963 }
2964
2965 _sqlUpdate.update(new Object[] {
2966 new Long(organizationId), new Long(groupId)
2967 });
2968
2969 for (ModelListener<Organization> listener : listeners) {
2970 listener.onAfterRemoveAssociation(organizationId,
2971 com.liferay.portal.model.Group.class.getName(), groupId);
2972 }
2973
2974 for (ModelListener<com.liferay.portal.model.Group> listener : groupListeners) {
2975 listener.onAfterRemoveAssociation(groupId,
2976 Organization.class.getName(), organizationId);
2977 }
2978 }
2979 }
2980
2981 private SqlUpdate _sqlUpdate;
2982 private OrganizationPersistenceImpl _persistenceImpl;
2983 }
2984
2985 protected class ContainsUser {
2986 protected ContainsUser(OrganizationPersistenceImpl persistenceImpl) {
2987 super();
2988
2989 _mappingSqlQuery = MappingSqlQueryFactoryUtil.getMappingSqlQuery(getDataSource(),
2990 _SQL_CONTAINSUSER,
2991 new int[] { Types.BIGINT, Types.BIGINT }, RowMapper.COUNT);
2992 }
2993
2994 protected boolean contains(long organizationId, long userId) {
2995 List<Integer> results = _mappingSqlQuery.execute(new Object[] {
2996 new Long(organizationId), new Long(userId)
2997 });
2998
2999 if (results.size() > 0) {
3000 Integer count = results.get(0);
3001
3002 if (count.intValue() > 0) {
3003 return true;
3004 }
3005 }
3006
3007 return false;
3008 }
3009
3010 private MappingSqlQuery _mappingSqlQuery;
3011 }
3012
3013 protected class AddUser {
3014 protected AddUser(OrganizationPersistenceImpl persistenceImpl) {
3015 _sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(getDataSource(),
3016 "INSERT INTO Users_Orgs (organizationId, userId) VALUES (?, ?)",
3017 new int[] { Types.BIGINT, Types.BIGINT });
3018 _persistenceImpl = persistenceImpl;
3019 }
3020
3021 protected void add(long organizationId, long userId)
3022 throws SystemException {
3023 if (!_persistenceImpl.containsUser.contains(organizationId, userId)) {
3024 ModelListener<com.liferay.portal.model.User>[] userListeners = userPersistence.getListeners();
3025
3026 for (ModelListener<Organization> listener : listeners) {
3027 listener.onBeforeAddAssociation(organizationId,
3028 com.liferay.portal.model.User.class.getName(), userId);
3029 }
3030
3031 for (ModelListener<com.liferay.portal.model.User> listener : userListeners) {
3032 listener.onBeforeAddAssociation(userId,
3033 Organization.class.getName(), organizationId);
3034 }
3035
3036 _sqlUpdate.update(new Object[] {
3037 new Long(organizationId), new Long(userId)
3038 });
3039
3040 for (ModelListener<Organization> listener : listeners) {
3041 listener.onAfterAddAssociation(organizationId,
3042 com.liferay.portal.model.User.class.getName(), userId);
3043 }
3044
3045 for (ModelListener<com.liferay.portal.model.User> listener : userListeners) {
3046 listener.onAfterAddAssociation(userId,
3047 Organization.class.getName(), organizationId);
3048 }
3049 }
3050 }
3051
3052 private SqlUpdate _sqlUpdate;
3053 private OrganizationPersistenceImpl _persistenceImpl;
3054 }
3055
3056 protected class ClearUsers {
3057 protected ClearUsers(OrganizationPersistenceImpl persistenceImpl) {
3058 _sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(getDataSource(),
3059 "DELETE FROM Users_Orgs WHERE organizationId = ?",
3060 new int[] { Types.BIGINT });
3061 }
3062
3063 protected void clear(long organizationId) throws SystemException {
3064 ModelListener<com.liferay.portal.model.User>[] userListeners = userPersistence.getListeners();
3065
3066 List<com.liferay.portal.model.User> users = null;
3067
3068 if ((listeners.length > 0) || (userListeners.length > 0)) {
3069 users = getUsers(organizationId);
3070
3071 for (com.liferay.portal.model.User user : users) {
3072 for (ModelListener<Organization> listener : listeners) {
3073 listener.onBeforeRemoveAssociation(organizationId,
3074 com.liferay.portal.model.User.class.getName(),
3075 user.getPrimaryKey());
3076 }
3077
3078 for (ModelListener<com.liferay.portal.model.User> listener : userListeners) {
3079 listener.onBeforeRemoveAssociation(user.getPrimaryKey(),
3080 Organization.class.getName(), organizationId);
3081 }
3082 }
3083 }
3084
3085 _sqlUpdate.update(new Object[] { new Long(organizationId) });
3086
3087 if ((listeners.length > 0) || (userListeners.length > 0)) {
3088 for (com.liferay.portal.model.User user : users) {
3089 for (ModelListener<Organization> listener : listeners) {
3090 listener.onAfterRemoveAssociation(organizationId,
3091 com.liferay.portal.model.User.class.getName(),
3092 user.getPrimaryKey());
3093 }
3094
3095 for (ModelListener<com.liferay.portal.model.User> listener : userListeners) {
3096 listener.onAfterRemoveAssociation(user.getPrimaryKey(),
3097 Organization.class.getName(), organizationId);
3098 }
3099 }
3100 }
3101 }
3102
3103 private SqlUpdate _sqlUpdate;
3104 }
3105
3106 protected class RemoveUser {
3107 protected RemoveUser(OrganizationPersistenceImpl persistenceImpl) {
3108 _sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(getDataSource(),
3109 "DELETE FROM Users_Orgs WHERE organizationId = ? AND userId = ?",
3110 new int[] { Types.BIGINT, Types.BIGINT });
3111 _persistenceImpl = persistenceImpl;
3112 }
3113
3114 protected void remove(long organizationId, long userId)
3115 throws SystemException {
3116 if (_persistenceImpl.containsUser.contains(organizationId, userId)) {
3117 ModelListener<com.liferay.portal.model.User>[] userListeners = userPersistence.getListeners();
3118
3119 for (ModelListener<Organization> listener : listeners) {
3120 listener.onBeforeRemoveAssociation(organizationId,
3121 com.liferay.portal.model.User.class.getName(), userId);
3122 }
3123
3124 for (ModelListener<com.liferay.portal.model.User> listener : userListeners) {
3125 listener.onBeforeRemoveAssociation(userId,
3126 Organization.class.getName(), organizationId);
3127 }
3128
3129 _sqlUpdate.update(new Object[] {
3130 new Long(organizationId), new Long(userId)
3131 });
3132
3133 for (ModelListener<Organization> listener : listeners) {
3134 listener.onAfterRemoveAssociation(organizationId,
3135 com.liferay.portal.model.User.class.getName(), userId);
3136 }
3137
3138 for (ModelListener<com.liferay.portal.model.User> listener : userListeners) {
3139 listener.onAfterRemoveAssociation(userId,
3140 Organization.class.getName(), organizationId);
3141 }
3142 }
3143 }
3144
3145 private SqlUpdate _sqlUpdate;
3146 private OrganizationPersistenceImpl _persistenceImpl;
3147 }
3148
3149 protected ExpandTreeLeftOrganizationId expandTreeLeftOrganizationId;
3150 protected ExpandTreeRightOrganizationId expandTreeRightOrganizationId;
3151 protected ShrinkTreeLeftOrganizationId shrinkTreeLeftOrganizationId;
3152 protected ShrinkTreeRightOrganizationId shrinkTreeRightOrganizationId;
3153 protected UpdateTree updateTree;
3154
3155 protected class ExpandTreeLeftOrganizationId {
3156 protected ExpandTreeLeftOrganizationId() {
3157 _sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(getDataSource(),
3158 "UPDATE Organization_ SET leftOrganizationId = (leftOrganizationId + 2) WHERE (companyId = ?) AND (leftOrganizationId > ?)",
3159 new int[] { Types.BIGINT, Types.BIGINT });
3160 }
3161
3162 protected void expand(long companyId, long leftOrganizationId) {
3163 _sqlUpdate.update(new Object[] { companyId, leftOrganizationId });
3164 }
3165
3166 private SqlUpdate _sqlUpdate;
3167 }
3168
3169 protected class ExpandTreeRightOrganizationId {
3170 protected ExpandTreeRightOrganizationId() {
3171 _sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(getDataSource(),
3172 "UPDATE Organization_ SET rightOrganizationId = (rightOrganizationId + 2) WHERE (companyId = ?) AND (rightOrganizationId > ?)",
3173 new int[] { Types.BIGINT, Types.BIGINT });
3174 }
3175
3176 protected void expand(long companyId, long rightOrganizationId) {
3177 _sqlUpdate.update(new Object[] { companyId, rightOrganizationId });
3178 }
3179
3180 private SqlUpdate _sqlUpdate;
3181 }
3182
3183 protected class ShrinkTreeLeftOrganizationId {
3184 protected ShrinkTreeLeftOrganizationId() {
3185 _sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(getDataSource(),
3186 "UPDATE Organization_ SET leftOrganizationId = (leftOrganizationId - ?) WHERE (companyId = ?) AND (leftOrganizationId > ?)",
3187 new int[] { Types.BIGINT, Types.BIGINT, Types.BIGINT });
3188 }
3189
3190 protected void shrink(long companyId, long leftOrganizationId,
3191 long delta) {
3192 _sqlUpdate.update(new Object[] { delta, companyId, leftOrganizationId });
3193 }
3194
3195 private SqlUpdate _sqlUpdate;
3196 }
3197
3198 protected class ShrinkTreeRightOrganizationId {
3199 protected ShrinkTreeRightOrganizationId() {
3200 _sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(getDataSource(),
3201 "UPDATE Organization_ SET rightOrganizationId = (rightOrganizationId - ?) WHERE (companyId = ?) AND (rightOrganizationId > ?)",
3202 new int[] { Types.BIGINT, Types.BIGINT, Types.BIGINT });
3203 }
3204
3205 protected void shrink(long companyId, long rightOrganizationId,
3206 long delta) {
3207 _sqlUpdate.update(new Object[] { delta, companyId, rightOrganizationId });
3208 }
3209
3210 private SqlUpdate _sqlUpdate;
3211 }
3212
3213 protected class UpdateTree {
3214 protected UpdateTree() {
3215 _sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(getDataSource(),
3216 "UPDATE Organization_ SET leftOrganizationId = ?, rightOrganizationId = ? WHERE organizationId = ?",
3217 new int[] { Types.BIGINT, Types.BIGINT, Types.BIGINT });
3218 }
3219
3220 protected void update(long organizationId, long leftOrganizationId,
3221 long rightOrganizationId) {
3222 _sqlUpdate.update(new Object[] {
3223 leftOrganizationId, rightOrganizationId, organizationId
3224 });
3225 }
3226
3227 private SqlUpdate _sqlUpdate;
3228 }
3229
3230 private static final String _SQL_GETGROUPS = "SELECT {Group_.*} FROM Group_ INNER JOIN Groups_Orgs ON (Groups_Orgs.groupId = Group_.groupId) WHERE (Groups_Orgs.organizationId = ?)";
3231 private static final String _SQL_GETGROUPSSIZE = "SELECT COUNT(*) AS COUNT_VALUE FROM Groups_Orgs WHERE organizationId = ?";
3232 private static final String _SQL_CONTAINSGROUP = "SELECT COUNT(*) AS COUNT_VALUE FROM Groups_Orgs WHERE organizationId = ? AND groupId = ?";
3233 private static final String _SQL_GETUSERS = "SELECT {User_.*} FROM User_ INNER JOIN Users_Orgs ON (Users_Orgs.userId = User_.userId) WHERE (Users_Orgs.organizationId = ?)";
3234 private static final String _SQL_GETUSERSSIZE = "SELECT COUNT(*) AS COUNT_VALUE FROM Users_Orgs WHERE organizationId = ?";
3235 private static final String _SQL_CONTAINSUSER = "SELECT COUNT(*) AS COUNT_VALUE FROM Users_Orgs WHERE organizationId = ? AND userId = ?";
3236 private static Log _log = LogFactoryUtil.getLog(OrganizationPersistenceImpl.class);
3237}