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