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