1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portal.service.persistence;
16  
17  import com.liferay.portal.NoSuchAddressException;
18  import com.liferay.portal.NoSuchModelException;
19  import com.liferay.portal.kernel.annotation.BeanReference;
20  import com.liferay.portal.kernel.cache.CacheRegistry;
21  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
22  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
23  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
24  import com.liferay.portal.kernel.dao.orm.FinderPath;
25  import com.liferay.portal.kernel.dao.orm.Query;
26  import com.liferay.portal.kernel.dao.orm.QueryPos;
27  import com.liferay.portal.kernel.dao.orm.QueryUtil;
28  import com.liferay.portal.kernel.dao.orm.Session;
29  import com.liferay.portal.kernel.exception.SystemException;
30  import com.liferay.portal.kernel.log.Log;
31  import com.liferay.portal.kernel.log.LogFactoryUtil;
32  import com.liferay.portal.kernel.util.GetterUtil;
33  import com.liferay.portal.kernel.util.OrderByComparator;
34  import com.liferay.portal.kernel.util.StringBundler;
35  import com.liferay.portal.kernel.util.StringPool;
36  import com.liferay.portal.kernel.util.StringUtil;
37  import com.liferay.portal.model.Address;
38  import com.liferay.portal.model.ModelListener;
39  import com.liferay.portal.model.impl.AddressImpl;
40  import com.liferay.portal.model.impl.AddressModelImpl;
41  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
42  
43  import java.io.Serializable;
44  
45  import java.util.ArrayList;
46  import java.util.Collections;
47  import java.util.List;
48  
49  /**
50   * <a href="AddressPersistenceImpl.java.html"><b><i>View Source</i></b></a>
51   *
52   * <p>
53   * ServiceBuilder generated this class. Modifications in this class will be
54   * overwritten the next time is generated.
55   * </p>
56   *
57   * @author    Brian Wing Shun Chan
58   * @see       AddressPersistence
59   * @see       AddressUtil
60   * @generated
61   */
62  public class AddressPersistenceImpl extends BasePersistenceImpl<Address>
63      implements AddressPersistence {
64      public static final String FINDER_CLASS_NAME_ENTITY = AddressImpl.class.getName();
65      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
66          ".List";
67      public static final FinderPath FINDER_PATH_FIND_BY_COMPANYID = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
68              AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
69              "findByCompanyId", new String[] { Long.class.getName() });
70      public static final FinderPath FINDER_PATH_FIND_BY_OBC_COMPANYID = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
71              AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
72              "findByCompanyId",
73              new String[] {
74                  Long.class.getName(),
75                  
76              "java.lang.Integer", "java.lang.Integer",
77                  "com.liferay.portal.kernel.util.OrderByComparator"
78              });
79      public static final FinderPath FINDER_PATH_COUNT_BY_COMPANYID = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
80              AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
81              "countByCompanyId", new String[] { Long.class.getName() });
82      public static final FinderPath FINDER_PATH_FIND_BY_USERID = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
83              AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
84              "findByUserId", new String[] { Long.class.getName() });
85      public static final FinderPath FINDER_PATH_FIND_BY_OBC_USERID = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
86              AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
87              "findByUserId",
88              new String[] {
89                  Long.class.getName(),
90                  
91              "java.lang.Integer", "java.lang.Integer",
92                  "com.liferay.portal.kernel.util.OrderByComparator"
93              });
94      public static final FinderPath FINDER_PATH_COUNT_BY_USERID = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
95              AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
96              "countByUserId", new String[] { Long.class.getName() });
97      public static final FinderPath FINDER_PATH_FIND_BY_C_C = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
98              AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
99              "findByC_C",
100             new String[] { Long.class.getName(), Long.class.getName() });
101     public static final FinderPath FINDER_PATH_FIND_BY_OBC_C_C = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
102             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
103             "findByC_C",
104             new String[] {
105                 Long.class.getName(), 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_C_C = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
111             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
112             "countByC_C",
113             new String[] { Long.class.getName(), Long.class.getName() });
114     public static final FinderPath FINDER_PATH_FIND_BY_C_C_C = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
115             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
116             "findByC_C_C",
117             new String[] {
118                 Long.class.getName(), Long.class.getName(), Long.class.getName()
119             });
120     public static final FinderPath FINDER_PATH_FIND_BY_OBC_C_C_C = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
121             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
122             "findByC_C_C",
123             new String[] {
124                 Long.class.getName(), Long.class.getName(), Long.class.getName(),
125                 
126             "java.lang.Integer", "java.lang.Integer",
127                 "com.liferay.portal.kernel.util.OrderByComparator"
128             });
129     public static final FinderPath FINDER_PATH_COUNT_BY_C_C_C = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
130             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
131             "countByC_C_C",
132             new String[] {
133                 Long.class.getName(), Long.class.getName(), Long.class.getName()
134             });
135     public static final FinderPath FINDER_PATH_FIND_BY_C_C_C_M = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
136             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
137             "findByC_C_C_M",
138             new String[] {
139                 Long.class.getName(), Long.class.getName(), Long.class.getName(),
140                 Boolean.class.getName()
141             });
142     public static final FinderPath FINDER_PATH_FIND_BY_OBC_C_C_C_M = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
143             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
144             "findByC_C_C_M",
145             new String[] {
146                 Long.class.getName(), Long.class.getName(), Long.class.getName(),
147                 Boolean.class.getName(),
148                 
149             "java.lang.Integer", "java.lang.Integer",
150                 "com.liferay.portal.kernel.util.OrderByComparator"
151             });
152     public static final FinderPath FINDER_PATH_COUNT_BY_C_C_C_M = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
153             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
154             "countByC_C_C_M",
155             new String[] {
156                 Long.class.getName(), Long.class.getName(), Long.class.getName(),
157                 Boolean.class.getName()
158             });
159     public static final FinderPath FINDER_PATH_FIND_BY_C_C_C_P = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
160             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
161             "findByC_C_C_P",
162             new String[] {
163                 Long.class.getName(), Long.class.getName(), Long.class.getName(),
164                 Boolean.class.getName()
165             });
166     public static final FinderPath FINDER_PATH_FIND_BY_OBC_C_C_C_P = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
167             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
168             "findByC_C_C_P",
169             new String[] {
170                 Long.class.getName(), Long.class.getName(), Long.class.getName(),
171                 Boolean.class.getName(),
172                 
173             "java.lang.Integer", "java.lang.Integer",
174                 "com.liferay.portal.kernel.util.OrderByComparator"
175             });
176     public static final FinderPath FINDER_PATH_COUNT_BY_C_C_C_P = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
177             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
178             "countByC_C_C_P",
179             new String[] {
180                 Long.class.getName(), Long.class.getName(), Long.class.getName(),
181                 Boolean.class.getName()
182             });
183     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
184             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
185             "findAll", new String[0]);
186     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(AddressModelImpl.ENTITY_CACHE_ENABLED,
187             AddressModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
188             "countAll", new String[0]);
189 
190     public void cacheResult(Address address) {
191         EntityCacheUtil.putResult(AddressModelImpl.ENTITY_CACHE_ENABLED,
192             AddressImpl.class, address.getPrimaryKey(), address);
193     }
194 
195     public void cacheResult(List<Address> addresses) {
196         for (Address address : addresses) {
197             if (EntityCacheUtil.getResult(
198                         AddressModelImpl.ENTITY_CACHE_ENABLED,
199                         AddressImpl.class, address.getPrimaryKey(), this) == null) {
200                 cacheResult(address);
201             }
202         }
203     }
204 
205     public void clearCache() {
206         CacheRegistry.clear(AddressImpl.class.getName());
207         EntityCacheUtil.clearCache(AddressImpl.class.getName());
208         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
209         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
210     }
211 
212     public Address create(long addressId) {
213         Address address = new AddressImpl();
214 
215         address.setNew(true);
216         address.setPrimaryKey(addressId);
217 
218         return address;
219     }
220 
221     public Address remove(Serializable primaryKey)
222         throws NoSuchModelException, SystemException {
223         return remove(((Long)primaryKey).longValue());
224     }
225 
226     public Address remove(long addressId)
227         throws NoSuchAddressException, SystemException {
228         Session session = null;
229 
230         try {
231             session = openSession();
232 
233             Address address = (Address)session.get(AddressImpl.class,
234                     new Long(addressId));
235 
236             if (address == null) {
237                 if (_log.isWarnEnabled()) {
238                     _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + addressId);
239                 }
240 
241                 throw new NoSuchAddressException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
242                     addressId);
243             }
244 
245             return remove(address);
246         }
247         catch (NoSuchAddressException nsee) {
248             throw nsee;
249         }
250         catch (Exception e) {
251             throw processException(e);
252         }
253         finally {
254             closeSession(session);
255         }
256     }
257 
258     public Address remove(Address address) throws SystemException {
259         for (ModelListener<Address> listener : listeners) {
260             listener.onBeforeRemove(address);
261         }
262 
263         address = removeImpl(address);
264 
265         for (ModelListener<Address> listener : listeners) {
266             listener.onAfterRemove(address);
267         }
268 
269         return address;
270     }
271 
272     protected Address removeImpl(Address address) throws SystemException {
273         address = toUnwrappedModel(address);
274 
275         Session session = null;
276 
277         try {
278             session = openSession();
279 
280             if (address.isCachedModel() || BatchSessionUtil.isEnabled()) {
281                 Object staleObject = session.get(AddressImpl.class,
282                         address.getPrimaryKeyObj());
283 
284                 if (staleObject != null) {
285                     session.evict(staleObject);
286                 }
287             }
288 
289             session.delete(address);
290 
291             session.flush();
292         }
293         catch (Exception e) {
294             throw processException(e);
295         }
296         finally {
297             closeSession(session);
298         }
299 
300         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
301 
302         EntityCacheUtil.removeResult(AddressModelImpl.ENTITY_CACHE_ENABLED,
303             AddressImpl.class, address.getPrimaryKey());
304 
305         return address;
306     }
307 
308     public Address updateImpl(com.liferay.portal.model.Address address,
309         boolean merge) throws SystemException {
310         address = toUnwrappedModel(address);
311 
312         Session session = null;
313 
314         try {
315             session = openSession();
316 
317             BatchSessionUtil.update(session, address, merge);
318 
319             address.setNew(false);
320         }
321         catch (Exception e) {
322             throw processException(e);
323         }
324         finally {
325             closeSession(session);
326         }
327 
328         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
329 
330         EntityCacheUtil.putResult(AddressModelImpl.ENTITY_CACHE_ENABLED,
331             AddressImpl.class, address.getPrimaryKey(), address);
332 
333         return address;
334     }
335 
336     protected Address toUnwrappedModel(Address address) {
337         if (address instanceof AddressImpl) {
338             return address;
339         }
340 
341         AddressImpl addressImpl = new AddressImpl();
342 
343         addressImpl.setNew(address.isNew());
344         addressImpl.setPrimaryKey(address.getPrimaryKey());
345 
346         addressImpl.setAddressId(address.getAddressId());
347         addressImpl.setCompanyId(address.getCompanyId());
348         addressImpl.setUserId(address.getUserId());
349         addressImpl.setUserName(address.getUserName());
350         addressImpl.setCreateDate(address.getCreateDate());
351         addressImpl.setModifiedDate(address.getModifiedDate());
352         addressImpl.setClassNameId(address.getClassNameId());
353         addressImpl.setClassPK(address.getClassPK());
354         addressImpl.setStreet1(address.getStreet1());
355         addressImpl.setStreet2(address.getStreet2());
356         addressImpl.setStreet3(address.getStreet3());
357         addressImpl.setCity(address.getCity());
358         addressImpl.setZip(address.getZip());
359         addressImpl.setRegionId(address.getRegionId());
360         addressImpl.setCountryId(address.getCountryId());
361         addressImpl.setTypeId(address.getTypeId());
362         addressImpl.setMailing(address.isMailing());
363         addressImpl.setPrimary(address.isPrimary());
364 
365         return addressImpl;
366     }
367 
368     public Address findByPrimaryKey(Serializable primaryKey)
369         throws NoSuchModelException, SystemException {
370         return findByPrimaryKey(((Long)primaryKey).longValue());
371     }
372 
373     public Address findByPrimaryKey(long addressId)
374         throws NoSuchAddressException, SystemException {
375         Address address = fetchByPrimaryKey(addressId);
376 
377         if (address == null) {
378             if (_log.isWarnEnabled()) {
379                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + addressId);
380             }
381 
382             throw new NoSuchAddressException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
383                 addressId);
384         }
385 
386         return address;
387     }
388 
389     public Address fetchByPrimaryKey(Serializable primaryKey)
390         throws SystemException {
391         return fetchByPrimaryKey(((Long)primaryKey).longValue());
392     }
393 
394     public Address fetchByPrimaryKey(long addressId) throws SystemException {
395         Address address = (Address)EntityCacheUtil.getResult(AddressModelImpl.ENTITY_CACHE_ENABLED,
396                 AddressImpl.class, addressId, this);
397 
398         if (address == null) {
399             Session session = null;
400 
401             try {
402                 session = openSession();
403 
404                 address = (Address)session.get(AddressImpl.class,
405                         new Long(addressId));
406             }
407             catch (Exception e) {
408                 throw processException(e);
409             }
410             finally {
411                 if (address != null) {
412                     cacheResult(address);
413                 }
414 
415                 closeSession(session);
416             }
417         }
418 
419         return address;
420     }
421 
422     public List<Address> findByCompanyId(long companyId)
423         throws SystemException {
424         Object[] finderArgs = new Object[] { new Long(companyId) };
425 
426         List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_COMPANYID,
427                 finderArgs, this);
428 
429         if (list == null) {
430             Session session = null;
431 
432             try {
433                 session = openSession();
434 
435                 StringBundler query = new StringBundler(3);
436 
437                 query.append(_SQL_SELECT_ADDRESS_WHERE);
438 
439                 query.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
440 
441                 query.append(AddressModelImpl.ORDER_BY_JPQL);
442 
443                 String sql = query.toString();
444 
445                 Query q = session.createQuery(sql);
446 
447                 QueryPos qPos = QueryPos.getInstance(q);
448 
449                 qPos.add(companyId);
450 
451                 list = q.list();
452             }
453             catch (Exception e) {
454                 throw processException(e);
455             }
456             finally {
457                 if (list == null) {
458                     list = new ArrayList<Address>();
459                 }
460 
461                 cacheResult(list);
462 
463                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_COMPANYID,
464                     finderArgs, list);
465 
466                 closeSession(session);
467             }
468         }
469 
470         return list;
471     }
472 
473     public List<Address> findByCompanyId(long companyId, int start, int end)
474         throws SystemException {
475         return findByCompanyId(companyId, start, end, null);
476     }
477 
478     public List<Address> findByCompanyId(long companyId, int start, int end,
479         OrderByComparator obc) throws SystemException {
480         Object[] finderArgs = new Object[] {
481                 new Long(companyId),
482                 
483                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
484             };
485 
486         List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_COMPANYID,
487                 finderArgs, this);
488 
489         if (list == null) {
490             Session session = null;
491 
492             try {
493                 session = openSession();
494 
495                 StringBundler query = null;
496 
497                 if (obc != null) {
498                     query = new StringBundler(3 +
499                             (obc.getOrderByFields().length * 3));
500                 }
501                 else {
502                     query = new StringBundler(3);
503                 }
504 
505                 query.append(_SQL_SELECT_ADDRESS_WHERE);
506 
507                 query.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
508 
509                 if (obc != null) {
510                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
511                 }
512 
513                 else {
514                     query.append(AddressModelImpl.ORDER_BY_JPQL);
515                 }
516 
517                 String sql = query.toString();
518 
519                 Query q = session.createQuery(sql);
520 
521                 QueryPos qPos = QueryPos.getInstance(q);
522 
523                 qPos.add(companyId);
524 
525                 list = (List<Address>)QueryUtil.list(q, getDialect(), start, end);
526             }
527             catch (Exception e) {
528                 throw processException(e);
529             }
530             finally {
531                 if (list == null) {
532                     list = new ArrayList<Address>();
533                 }
534 
535                 cacheResult(list);
536 
537                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_COMPANYID,
538                     finderArgs, list);
539 
540                 closeSession(session);
541             }
542         }
543 
544         return list;
545     }
546 
547     public Address findByCompanyId_First(long companyId, OrderByComparator obc)
548         throws NoSuchAddressException, SystemException {
549         List<Address> list = findByCompanyId(companyId, 0, 1, obc);
550 
551         if (list.isEmpty()) {
552             StringBundler msg = new StringBundler(4);
553 
554             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
555 
556             msg.append("companyId=");
557             msg.append(companyId);
558 
559             msg.append(StringPool.CLOSE_CURLY_BRACE);
560 
561             throw new NoSuchAddressException(msg.toString());
562         }
563         else {
564             return list.get(0);
565         }
566     }
567 
568     public Address findByCompanyId_Last(long companyId, OrderByComparator obc)
569         throws NoSuchAddressException, SystemException {
570         int count = countByCompanyId(companyId);
571 
572         List<Address> list = findByCompanyId(companyId, count - 1, count, obc);
573 
574         if (list.isEmpty()) {
575             StringBundler msg = new StringBundler(4);
576 
577             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
578 
579             msg.append("companyId=");
580             msg.append(companyId);
581 
582             msg.append(StringPool.CLOSE_CURLY_BRACE);
583 
584             throw new NoSuchAddressException(msg.toString());
585         }
586         else {
587             return list.get(0);
588         }
589     }
590 
591     public Address[] findByCompanyId_PrevAndNext(long addressId,
592         long companyId, OrderByComparator obc)
593         throws NoSuchAddressException, SystemException {
594         Address address = findByPrimaryKey(addressId);
595 
596         int count = countByCompanyId(companyId);
597 
598         Session session = null;
599 
600         try {
601             session = openSession();
602 
603             StringBundler query = null;
604 
605             if (obc != null) {
606                 query = new StringBundler(3 +
607                         (obc.getOrderByFields().length * 3));
608             }
609             else {
610                 query = new StringBundler(3);
611             }
612 
613             query.append(_SQL_SELECT_ADDRESS_WHERE);
614 
615             query.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
616 
617             if (obc != null) {
618                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
619             }
620 
621             else {
622                 query.append(AddressModelImpl.ORDER_BY_JPQL);
623             }
624 
625             String sql = query.toString();
626 
627             Query q = session.createQuery(sql);
628 
629             QueryPos qPos = QueryPos.getInstance(q);
630 
631             qPos.add(companyId);
632 
633             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, address);
634 
635             Address[] array = new AddressImpl[3];
636 
637             array[0] = (Address)objArray[0];
638             array[1] = (Address)objArray[1];
639             array[2] = (Address)objArray[2];
640 
641             return array;
642         }
643         catch (Exception e) {
644             throw processException(e);
645         }
646         finally {
647             closeSession(session);
648         }
649     }
650 
651     public List<Address> findByUserId(long userId) throws SystemException {
652         Object[] finderArgs = new Object[] { new Long(userId) };
653 
654         List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_USERID,
655                 finderArgs, this);
656 
657         if (list == null) {
658             Session session = null;
659 
660             try {
661                 session = openSession();
662 
663                 StringBundler query = new StringBundler(3);
664 
665                 query.append(_SQL_SELECT_ADDRESS_WHERE);
666 
667                 query.append(_FINDER_COLUMN_USERID_USERID_2);
668 
669                 query.append(AddressModelImpl.ORDER_BY_JPQL);
670 
671                 String sql = query.toString();
672 
673                 Query q = session.createQuery(sql);
674 
675                 QueryPos qPos = QueryPos.getInstance(q);
676 
677                 qPos.add(userId);
678 
679                 list = q.list();
680             }
681             catch (Exception e) {
682                 throw processException(e);
683             }
684             finally {
685                 if (list == null) {
686                     list = new ArrayList<Address>();
687                 }
688 
689                 cacheResult(list);
690 
691                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_USERID,
692                     finderArgs, list);
693 
694                 closeSession(session);
695             }
696         }
697 
698         return list;
699     }
700 
701     public List<Address> findByUserId(long userId, int start, int end)
702         throws SystemException {
703         return findByUserId(userId, start, end, null);
704     }
705 
706     public List<Address> findByUserId(long userId, int start, int end,
707         OrderByComparator obc) throws SystemException {
708         Object[] finderArgs = new Object[] {
709                 new Long(userId),
710                 
711                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
712             };
713 
714         List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_USERID,
715                 finderArgs, this);
716 
717         if (list == null) {
718             Session session = null;
719 
720             try {
721                 session = openSession();
722 
723                 StringBundler query = null;
724 
725                 if (obc != null) {
726                     query = new StringBundler(3 +
727                             (obc.getOrderByFields().length * 3));
728                 }
729                 else {
730                     query = new StringBundler(3);
731                 }
732 
733                 query.append(_SQL_SELECT_ADDRESS_WHERE);
734 
735                 query.append(_FINDER_COLUMN_USERID_USERID_2);
736 
737                 if (obc != null) {
738                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
739                 }
740 
741                 else {
742                     query.append(AddressModelImpl.ORDER_BY_JPQL);
743                 }
744 
745                 String sql = query.toString();
746 
747                 Query q = session.createQuery(sql);
748 
749                 QueryPos qPos = QueryPos.getInstance(q);
750 
751                 qPos.add(userId);
752 
753                 list = (List<Address>)QueryUtil.list(q, getDialect(), start, end);
754             }
755             catch (Exception e) {
756                 throw processException(e);
757             }
758             finally {
759                 if (list == null) {
760                     list = new ArrayList<Address>();
761                 }
762 
763                 cacheResult(list);
764 
765                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_USERID,
766                     finderArgs, list);
767 
768                 closeSession(session);
769             }
770         }
771 
772         return list;
773     }
774 
775     public Address findByUserId_First(long userId, OrderByComparator obc)
776         throws NoSuchAddressException, SystemException {
777         List<Address> list = findByUserId(userId, 0, 1, obc);
778 
779         if (list.isEmpty()) {
780             StringBundler msg = new StringBundler(4);
781 
782             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
783 
784             msg.append("userId=");
785             msg.append(userId);
786 
787             msg.append(StringPool.CLOSE_CURLY_BRACE);
788 
789             throw new NoSuchAddressException(msg.toString());
790         }
791         else {
792             return list.get(0);
793         }
794     }
795 
796     public Address findByUserId_Last(long userId, OrderByComparator obc)
797         throws NoSuchAddressException, SystemException {
798         int count = countByUserId(userId);
799 
800         List<Address> list = findByUserId(userId, count - 1, count, obc);
801 
802         if (list.isEmpty()) {
803             StringBundler msg = new StringBundler(4);
804 
805             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
806 
807             msg.append("userId=");
808             msg.append(userId);
809 
810             msg.append(StringPool.CLOSE_CURLY_BRACE);
811 
812             throw new NoSuchAddressException(msg.toString());
813         }
814         else {
815             return list.get(0);
816         }
817     }
818 
819     public Address[] findByUserId_PrevAndNext(long addressId, long userId,
820         OrderByComparator obc) throws NoSuchAddressException, SystemException {
821         Address address = findByPrimaryKey(addressId);
822 
823         int count = countByUserId(userId);
824 
825         Session session = null;
826 
827         try {
828             session = openSession();
829 
830             StringBundler query = null;
831 
832             if (obc != null) {
833                 query = new StringBundler(3 +
834                         (obc.getOrderByFields().length * 3));
835             }
836             else {
837                 query = new StringBundler(3);
838             }
839 
840             query.append(_SQL_SELECT_ADDRESS_WHERE);
841 
842             query.append(_FINDER_COLUMN_USERID_USERID_2);
843 
844             if (obc != null) {
845                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
846             }
847 
848             else {
849                 query.append(AddressModelImpl.ORDER_BY_JPQL);
850             }
851 
852             String sql = query.toString();
853 
854             Query q = session.createQuery(sql);
855 
856             QueryPos qPos = QueryPos.getInstance(q);
857 
858             qPos.add(userId);
859 
860             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, address);
861 
862             Address[] array = new AddressImpl[3];
863 
864             array[0] = (Address)objArray[0];
865             array[1] = (Address)objArray[1];
866             array[2] = (Address)objArray[2];
867 
868             return array;
869         }
870         catch (Exception e) {
871             throw processException(e);
872         }
873         finally {
874             closeSession(session);
875         }
876     }
877 
878     public List<Address> findByC_C(long companyId, long classNameId)
879         throws SystemException {
880         Object[] finderArgs = new Object[] {
881                 new Long(companyId), new Long(classNameId)
882             };
883 
884         List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_C_C,
885                 finderArgs, this);
886 
887         if (list == null) {
888             Session session = null;
889 
890             try {
891                 session = openSession();
892 
893                 StringBundler query = new StringBundler(4);
894 
895                 query.append(_SQL_SELECT_ADDRESS_WHERE);
896 
897                 query.append(_FINDER_COLUMN_C_C_COMPANYID_2);
898 
899                 query.append(_FINDER_COLUMN_C_C_CLASSNAMEID_2);
900 
901                 query.append(AddressModelImpl.ORDER_BY_JPQL);
902 
903                 String sql = query.toString();
904 
905                 Query q = session.createQuery(sql);
906 
907                 QueryPos qPos = QueryPos.getInstance(q);
908 
909                 qPos.add(companyId);
910 
911                 qPos.add(classNameId);
912 
913                 list = q.list();
914             }
915             catch (Exception e) {
916                 throw processException(e);
917             }
918             finally {
919                 if (list == null) {
920                     list = new ArrayList<Address>();
921                 }
922 
923                 cacheResult(list);
924 
925                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_C_C, finderArgs,
926                     list);
927 
928                 closeSession(session);
929             }
930         }
931 
932         return list;
933     }
934 
935     public List<Address> findByC_C(long companyId, long classNameId, int start,
936         int end) throws SystemException {
937         return findByC_C(companyId, classNameId, start, end, null);
938     }
939 
940     public List<Address> findByC_C(long companyId, long classNameId, int start,
941         int end, OrderByComparator obc) throws SystemException {
942         Object[] finderArgs = new Object[] {
943                 new Long(companyId), new Long(classNameId),
944                 
945                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
946             };
947 
948         List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_C_C,
949                 finderArgs, this);
950 
951         if (list == null) {
952             Session session = null;
953 
954             try {
955                 session = openSession();
956 
957                 StringBundler query = null;
958 
959                 if (obc != null) {
960                     query = new StringBundler(4 +
961                             (obc.getOrderByFields().length * 3));
962                 }
963                 else {
964                     query = new StringBundler(4);
965                 }
966 
967                 query.append(_SQL_SELECT_ADDRESS_WHERE);
968 
969                 query.append(_FINDER_COLUMN_C_C_COMPANYID_2);
970 
971                 query.append(_FINDER_COLUMN_C_C_CLASSNAMEID_2);
972 
973                 if (obc != null) {
974                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
975                 }
976 
977                 else {
978                     query.append(AddressModelImpl.ORDER_BY_JPQL);
979                 }
980 
981                 String sql = query.toString();
982 
983                 Query q = session.createQuery(sql);
984 
985                 QueryPos qPos = QueryPos.getInstance(q);
986 
987                 qPos.add(companyId);
988 
989                 qPos.add(classNameId);
990 
991                 list = (List<Address>)QueryUtil.list(q, getDialect(), start, end);
992             }
993             catch (Exception e) {
994                 throw processException(e);
995             }
996             finally {
997                 if (list == null) {
998                     list = new ArrayList<Address>();
999                 }
1000
1001                cacheResult(list);
1002
1003                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_C_C,
1004                    finderArgs, list);
1005
1006                closeSession(session);
1007            }
1008        }
1009
1010        return list;
1011    }
1012
1013    public Address findByC_C_First(long companyId, long classNameId,
1014        OrderByComparator obc) throws NoSuchAddressException, SystemException {
1015        List<Address> list = findByC_C(companyId, classNameId, 0, 1, obc);
1016
1017        if (list.isEmpty()) {
1018            StringBundler msg = new StringBundler(6);
1019
1020            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1021
1022            msg.append("companyId=");
1023            msg.append(companyId);
1024
1025            msg.append(", classNameId=");
1026            msg.append(classNameId);
1027
1028            msg.append(StringPool.CLOSE_CURLY_BRACE);
1029
1030            throw new NoSuchAddressException(msg.toString());
1031        }
1032        else {
1033            return list.get(0);
1034        }
1035    }
1036
1037    public Address findByC_C_Last(long companyId, long classNameId,
1038        OrderByComparator obc) throws NoSuchAddressException, SystemException {
1039        int count = countByC_C(companyId, classNameId);
1040
1041        List<Address> list = findByC_C(companyId, classNameId, count - 1,
1042                count, obc);
1043
1044        if (list.isEmpty()) {
1045            StringBundler msg = new StringBundler(6);
1046
1047            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1048
1049            msg.append("companyId=");
1050            msg.append(companyId);
1051
1052            msg.append(", classNameId=");
1053            msg.append(classNameId);
1054
1055            msg.append(StringPool.CLOSE_CURLY_BRACE);
1056
1057            throw new NoSuchAddressException(msg.toString());
1058        }
1059        else {
1060            return list.get(0);
1061        }
1062    }
1063
1064    public Address[] findByC_C_PrevAndNext(long addressId, long companyId,
1065        long classNameId, OrderByComparator obc)
1066        throws NoSuchAddressException, SystemException {
1067        Address address = findByPrimaryKey(addressId);
1068
1069        int count = countByC_C(companyId, classNameId);
1070
1071        Session session = null;
1072
1073        try {
1074            session = openSession();
1075
1076            StringBundler query = null;
1077
1078            if (obc != null) {
1079                query = new StringBundler(4 +
1080                        (obc.getOrderByFields().length * 3));
1081            }
1082            else {
1083                query = new StringBundler(4);
1084            }
1085
1086            query.append(_SQL_SELECT_ADDRESS_WHERE);
1087
1088            query.append(_FINDER_COLUMN_C_C_COMPANYID_2);
1089
1090            query.append(_FINDER_COLUMN_C_C_CLASSNAMEID_2);
1091
1092            if (obc != null) {
1093                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1094            }
1095
1096            else {
1097                query.append(AddressModelImpl.ORDER_BY_JPQL);
1098            }
1099
1100            String sql = query.toString();
1101
1102            Query q = session.createQuery(sql);
1103
1104            QueryPos qPos = QueryPos.getInstance(q);
1105
1106            qPos.add(companyId);
1107
1108            qPos.add(classNameId);
1109
1110            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, address);
1111
1112            Address[] array = new AddressImpl[3];
1113
1114            array[0] = (Address)objArray[0];
1115            array[1] = (Address)objArray[1];
1116            array[2] = (Address)objArray[2];
1117
1118            return array;
1119        }
1120        catch (Exception e) {
1121            throw processException(e);
1122        }
1123        finally {
1124            closeSession(session);
1125        }
1126    }
1127
1128    public List<Address> findByC_C_C(long companyId, long classNameId,
1129        long classPK) throws SystemException {
1130        Object[] finderArgs = new Object[] {
1131                new Long(companyId), new Long(classNameId), new Long(classPK)
1132            };
1133
1134        List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_C_C_C,
1135                finderArgs, this);
1136
1137        if (list == null) {
1138            Session session = null;
1139
1140            try {
1141                session = openSession();
1142
1143                StringBundler query = new StringBundler(5);
1144
1145                query.append(_SQL_SELECT_ADDRESS_WHERE);
1146
1147                query.append(_FINDER_COLUMN_C_C_C_COMPANYID_2);
1148
1149                query.append(_FINDER_COLUMN_C_C_C_CLASSNAMEID_2);
1150
1151                query.append(_FINDER_COLUMN_C_C_C_CLASSPK_2);
1152
1153                query.append(AddressModelImpl.ORDER_BY_JPQL);
1154
1155                String sql = query.toString();
1156
1157                Query q = session.createQuery(sql);
1158
1159                QueryPos qPos = QueryPos.getInstance(q);
1160
1161                qPos.add(companyId);
1162
1163                qPos.add(classNameId);
1164
1165                qPos.add(classPK);
1166
1167                list = q.list();
1168            }
1169            catch (Exception e) {
1170                throw processException(e);
1171            }
1172            finally {
1173                if (list == null) {
1174                    list = new ArrayList<Address>();
1175                }
1176
1177                cacheResult(list);
1178
1179                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_C_C_C,
1180                    finderArgs, list);
1181
1182                closeSession(session);
1183            }
1184        }
1185
1186        return list;
1187    }
1188
1189    public List<Address> findByC_C_C(long companyId, long classNameId,
1190        long classPK, int start, int end) throws SystemException {
1191        return findByC_C_C(companyId, classNameId, classPK, start, end, null);
1192    }
1193
1194    public List<Address> findByC_C_C(long companyId, long classNameId,
1195        long classPK, int start, int end, OrderByComparator obc)
1196        throws SystemException {
1197        Object[] finderArgs = new Object[] {
1198                new Long(companyId), new Long(classNameId), new Long(classPK),
1199                
1200                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1201            };
1202
1203        List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_C_C_C,
1204                finderArgs, this);
1205
1206        if (list == null) {
1207            Session session = null;
1208
1209            try {
1210                session = openSession();
1211
1212                StringBundler query = null;
1213
1214                if (obc != null) {
1215                    query = new StringBundler(5 +
1216                            (obc.getOrderByFields().length * 3));
1217                }
1218                else {
1219                    query = new StringBundler(5);
1220                }
1221
1222                query.append(_SQL_SELECT_ADDRESS_WHERE);
1223
1224                query.append(_FINDER_COLUMN_C_C_C_COMPANYID_2);
1225
1226                query.append(_FINDER_COLUMN_C_C_C_CLASSNAMEID_2);
1227
1228                query.append(_FINDER_COLUMN_C_C_C_CLASSPK_2);
1229
1230                if (obc != null) {
1231                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1232                }
1233
1234                else {
1235                    query.append(AddressModelImpl.ORDER_BY_JPQL);
1236                }
1237
1238                String sql = query.toString();
1239
1240                Query q = session.createQuery(sql);
1241
1242                QueryPos qPos = QueryPos.getInstance(q);
1243
1244                qPos.add(companyId);
1245
1246                qPos.add(classNameId);
1247
1248                qPos.add(classPK);
1249
1250                list = (List<Address>)QueryUtil.list(q, getDialect(), start, end);
1251            }
1252            catch (Exception e) {
1253                throw processException(e);
1254            }
1255            finally {
1256                if (list == null) {
1257                    list = new ArrayList<Address>();
1258                }
1259
1260                cacheResult(list);
1261
1262                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_C_C_C,
1263                    finderArgs, list);
1264
1265                closeSession(session);
1266            }
1267        }
1268
1269        return list;
1270    }
1271
1272    public Address findByC_C_C_First(long companyId, long classNameId,
1273        long classPK, OrderByComparator obc)
1274        throws NoSuchAddressException, SystemException {
1275        List<Address> list = findByC_C_C(companyId, classNameId, classPK, 0, 1,
1276                obc);
1277
1278        if (list.isEmpty()) {
1279            StringBundler msg = new StringBundler(8);
1280
1281            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1282
1283            msg.append("companyId=");
1284            msg.append(companyId);
1285
1286            msg.append(", classNameId=");
1287            msg.append(classNameId);
1288
1289            msg.append(", classPK=");
1290            msg.append(classPK);
1291
1292            msg.append(StringPool.CLOSE_CURLY_BRACE);
1293
1294            throw new NoSuchAddressException(msg.toString());
1295        }
1296        else {
1297            return list.get(0);
1298        }
1299    }
1300
1301    public Address findByC_C_C_Last(long companyId, long classNameId,
1302        long classPK, OrderByComparator obc)
1303        throws NoSuchAddressException, SystemException {
1304        int count = countByC_C_C(companyId, classNameId, classPK);
1305
1306        List<Address> list = findByC_C_C(companyId, classNameId, classPK,
1307                count - 1, count, obc);
1308
1309        if (list.isEmpty()) {
1310            StringBundler msg = new StringBundler(8);
1311
1312            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1313
1314            msg.append("companyId=");
1315            msg.append(companyId);
1316
1317            msg.append(", classNameId=");
1318            msg.append(classNameId);
1319
1320            msg.append(", classPK=");
1321            msg.append(classPK);
1322
1323            msg.append(StringPool.CLOSE_CURLY_BRACE);
1324
1325            throw new NoSuchAddressException(msg.toString());
1326        }
1327        else {
1328            return list.get(0);
1329        }
1330    }
1331
1332    public Address[] findByC_C_C_PrevAndNext(long addressId, long companyId,
1333        long classNameId, long classPK, OrderByComparator obc)
1334        throws NoSuchAddressException, SystemException {
1335        Address address = findByPrimaryKey(addressId);
1336
1337        int count = countByC_C_C(companyId, classNameId, classPK);
1338
1339        Session session = null;
1340
1341        try {
1342            session = openSession();
1343
1344            StringBundler query = null;
1345
1346            if (obc != null) {
1347                query = new StringBundler(5 +
1348                        (obc.getOrderByFields().length * 3));
1349            }
1350            else {
1351                query = new StringBundler(5);
1352            }
1353
1354            query.append(_SQL_SELECT_ADDRESS_WHERE);
1355
1356            query.append(_FINDER_COLUMN_C_C_C_COMPANYID_2);
1357
1358            query.append(_FINDER_COLUMN_C_C_C_CLASSNAMEID_2);
1359
1360            query.append(_FINDER_COLUMN_C_C_C_CLASSPK_2);
1361
1362            if (obc != null) {
1363                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1364            }
1365
1366            else {
1367                query.append(AddressModelImpl.ORDER_BY_JPQL);
1368            }
1369
1370            String sql = query.toString();
1371
1372            Query q = session.createQuery(sql);
1373
1374            QueryPos qPos = QueryPos.getInstance(q);
1375
1376            qPos.add(companyId);
1377
1378            qPos.add(classNameId);
1379
1380            qPos.add(classPK);
1381
1382            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, address);
1383
1384            Address[] array = new AddressImpl[3];
1385
1386            array[0] = (Address)objArray[0];
1387            array[1] = (Address)objArray[1];
1388            array[2] = (Address)objArray[2];
1389
1390            return array;
1391        }
1392        catch (Exception e) {
1393            throw processException(e);
1394        }
1395        finally {
1396            closeSession(session);
1397        }
1398    }
1399
1400    public List<Address> findByC_C_C_M(long companyId, long classNameId,
1401        long classPK, boolean mailing) throws SystemException {
1402        Object[] finderArgs = new Object[] {
1403                new Long(companyId), new Long(classNameId), new Long(classPK),
1404                Boolean.valueOf(mailing)
1405            };
1406
1407        List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_C_C_C_M,
1408                finderArgs, this);
1409
1410        if (list == null) {
1411            Session session = null;
1412
1413            try {
1414                session = openSession();
1415
1416                StringBundler query = new StringBundler(6);
1417
1418                query.append(_SQL_SELECT_ADDRESS_WHERE);
1419
1420                query.append(_FINDER_COLUMN_C_C_C_M_COMPANYID_2);
1421
1422                query.append(_FINDER_COLUMN_C_C_C_M_CLASSNAMEID_2);
1423
1424                query.append(_FINDER_COLUMN_C_C_C_M_CLASSPK_2);
1425
1426                query.append(_FINDER_COLUMN_C_C_C_M_MAILING_2);
1427
1428                query.append(AddressModelImpl.ORDER_BY_JPQL);
1429
1430                String sql = query.toString();
1431
1432                Query q = session.createQuery(sql);
1433
1434                QueryPos qPos = QueryPos.getInstance(q);
1435
1436                qPos.add(companyId);
1437
1438                qPos.add(classNameId);
1439
1440                qPos.add(classPK);
1441
1442                qPos.add(mailing);
1443
1444                list = q.list();
1445            }
1446            catch (Exception e) {
1447                throw processException(e);
1448            }
1449            finally {
1450                if (list == null) {
1451                    list = new ArrayList<Address>();
1452                }
1453
1454                cacheResult(list);
1455
1456                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_C_C_C_M,
1457                    finderArgs, list);
1458
1459                closeSession(session);
1460            }
1461        }
1462
1463        return list;
1464    }
1465
1466    public List<Address> findByC_C_C_M(long companyId, long classNameId,
1467        long classPK, boolean mailing, int start, int end)
1468        throws SystemException {
1469        return findByC_C_C_M(companyId, classNameId, classPK, mailing, start,
1470            end, null);
1471    }
1472
1473    public List<Address> findByC_C_C_M(long companyId, long classNameId,
1474        long classPK, boolean mailing, int start, int end, OrderByComparator obc)
1475        throws SystemException {
1476        Object[] finderArgs = new Object[] {
1477                new Long(companyId), new Long(classNameId), new Long(classPK),
1478                Boolean.valueOf(mailing),
1479                
1480                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1481            };
1482
1483        List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_C_C_C_M,
1484                finderArgs, this);
1485
1486        if (list == null) {
1487            Session session = null;
1488
1489            try {
1490                session = openSession();
1491
1492                StringBundler query = null;
1493
1494                if (obc != null) {
1495                    query = new StringBundler(6 +
1496                            (obc.getOrderByFields().length * 3));
1497                }
1498                else {
1499                    query = new StringBundler(6);
1500                }
1501
1502                query.append(_SQL_SELECT_ADDRESS_WHERE);
1503
1504                query.append(_FINDER_COLUMN_C_C_C_M_COMPANYID_2);
1505
1506                query.append(_FINDER_COLUMN_C_C_C_M_CLASSNAMEID_2);
1507
1508                query.append(_FINDER_COLUMN_C_C_C_M_CLASSPK_2);
1509
1510                query.append(_FINDER_COLUMN_C_C_C_M_MAILING_2);
1511
1512                if (obc != null) {
1513                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1514                }
1515
1516                else {
1517                    query.append(AddressModelImpl.ORDER_BY_JPQL);
1518                }
1519
1520                String sql = query.toString();
1521
1522                Query q = session.createQuery(sql);
1523
1524                QueryPos qPos = QueryPos.getInstance(q);
1525
1526                qPos.add(companyId);
1527
1528                qPos.add(classNameId);
1529
1530                qPos.add(classPK);
1531
1532                qPos.add(mailing);
1533
1534                list = (List<Address>)QueryUtil.list(q, getDialect(), start, end);
1535            }
1536            catch (Exception e) {
1537                throw processException(e);
1538            }
1539            finally {
1540                if (list == null) {
1541                    list = new ArrayList<Address>();
1542                }
1543
1544                cacheResult(list);
1545
1546                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_C_C_C_M,
1547                    finderArgs, list);
1548
1549                closeSession(session);
1550            }
1551        }
1552
1553        return list;
1554    }
1555
1556    public Address findByC_C_C_M_First(long companyId, long classNameId,
1557        long classPK, boolean mailing, OrderByComparator obc)
1558        throws NoSuchAddressException, SystemException {
1559        List<Address> list = findByC_C_C_M(companyId, classNameId, classPK,
1560                mailing, 0, 1, obc);
1561
1562        if (list.isEmpty()) {
1563            StringBundler msg = new StringBundler(10);
1564
1565            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1566
1567            msg.append("companyId=");
1568            msg.append(companyId);
1569
1570            msg.append(", classNameId=");
1571            msg.append(classNameId);
1572
1573            msg.append(", classPK=");
1574            msg.append(classPK);
1575
1576            msg.append(", mailing=");
1577            msg.append(mailing);
1578
1579            msg.append(StringPool.CLOSE_CURLY_BRACE);
1580
1581            throw new NoSuchAddressException(msg.toString());
1582        }
1583        else {
1584            return list.get(0);
1585        }
1586    }
1587
1588    public Address findByC_C_C_M_Last(long companyId, long classNameId,
1589        long classPK, boolean mailing, OrderByComparator obc)
1590        throws NoSuchAddressException, SystemException {
1591        int count = countByC_C_C_M(companyId, classNameId, classPK, mailing);
1592
1593        List<Address> list = findByC_C_C_M(companyId, classNameId, classPK,
1594                mailing, count - 1, count, obc);
1595
1596        if (list.isEmpty()) {
1597            StringBundler msg = new StringBundler(10);
1598
1599            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1600
1601            msg.append("companyId=");
1602            msg.append(companyId);
1603
1604            msg.append(", classNameId=");
1605            msg.append(classNameId);
1606
1607            msg.append(", classPK=");
1608            msg.append(classPK);
1609
1610            msg.append(", mailing=");
1611            msg.append(mailing);
1612
1613            msg.append(StringPool.CLOSE_CURLY_BRACE);
1614
1615            throw new NoSuchAddressException(msg.toString());
1616        }
1617        else {
1618            return list.get(0);
1619        }
1620    }
1621
1622    public Address[] findByC_C_C_M_PrevAndNext(long addressId, long companyId,
1623        long classNameId, long classPK, boolean mailing, OrderByComparator obc)
1624        throws NoSuchAddressException, SystemException {
1625        Address address = findByPrimaryKey(addressId);
1626
1627        int count = countByC_C_C_M(companyId, classNameId, classPK, mailing);
1628
1629        Session session = null;
1630
1631        try {
1632            session = openSession();
1633
1634            StringBundler query = null;
1635
1636            if (obc != null) {
1637                query = new StringBundler(6 +
1638                        (obc.getOrderByFields().length * 3));
1639            }
1640            else {
1641                query = new StringBundler(6);
1642            }
1643
1644            query.append(_SQL_SELECT_ADDRESS_WHERE);
1645
1646            query.append(_FINDER_COLUMN_C_C_C_M_COMPANYID_2);
1647
1648            query.append(_FINDER_COLUMN_C_C_C_M_CLASSNAMEID_2);
1649
1650            query.append(_FINDER_COLUMN_C_C_C_M_CLASSPK_2);
1651
1652            query.append(_FINDER_COLUMN_C_C_C_M_MAILING_2);
1653
1654            if (obc != null) {
1655                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1656            }
1657
1658            else {
1659                query.append(AddressModelImpl.ORDER_BY_JPQL);
1660            }
1661
1662            String sql = query.toString();
1663
1664            Query q = session.createQuery(sql);
1665
1666            QueryPos qPos = QueryPos.getInstance(q);
1667
1668            qPos.add(companyId);
1669
1670            qPos.add(classNameId);
1671
1672            qPos.add(classPK);
1673
1674            qPos.add(mailing);
1675
1676            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, address);
1677
1678            Address[] array = new AddressImpl[3];
1679
1680            array[0] = (Address)objArray[0];
1681            array[1] = (Address)objArray[1];
1682            array[2] = (Address)objArray[2];
1683
1684            return array;
1685        }
1686        catch (Exception e) {
1687            throw processException(e);
1688        }
1689        finally {
1690            closeSession(session);
1691        }
1692    }
1693
1694    public List<Address> findByC_C_C_P(long companyId, long classNameId,
1695        long classPK, boolean primary) throws SystemException {
1696        Object[] finderArgs = new Object[] {
1697                new Long(companyId), new Long(classNameId), new Long(classPK),
1698                Boolean.valueOf(primary)
1699            };
1700
1701        List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_C_C_C_P,
1702                finderArgs, this);
1703
1704        if (list == null) {
1705            Session session = null;
1706
1707            try {
1708                session = openSession();
1709
1710                StringBundler query = new StringBundler(6);
1711
1712                query.append(_SQL_SELECT_ADDRESS_WHERE);
1713
1714                query.append(_FINDER_COLUMN_C_C_C_P_COMPANYID_2);
1715
1716                query.append(_FINDER_COLUMN_C_C_C_P_CLASSNAMEID_2);
1717
1718                query.append(_FINDER_COLUMN_C_C_C_P_CLASSPK_2);
1719
1720                query.append(_FINDER_COLUMN_C_C_C_P_PRIMARY_2);
1721
1722                query.append(AddressModelImpl.ORDER_BY_JPQL);
1723
1724                String sql = query.toString();
1725
1726                Query q = session.createQuery(sql);
1727
1728                QueryPos qPos = QueryPos.getInstance(q);
1729
1730                qPos.add(companyId);
1731
1732                qPos.add(classNameId);
1733
1734                qPos.add(classPK);
1735
1736                qPos.add(primary);
1737
1738                list = q.list();
1739            }
1740            catch (Exception e) {
1741                throw processException(e);
1742            }
1743            finally {
1744                if (list == null) {
1745                    list = new ArrayList<Address>();
1746                }
1747
1748                cacheResult(list);
1749
1750                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_C_C_C_P,
1751                    finderArgs, list);
1752
1753                closeSession(session);
1754            }
1755        }
1756
1757        return list;
1758    }
1759
1760    public List<Address> findByC_C_C_P(long companyId, long classNameId,
1761        long classPK, boolean primary, int start, int end)
1762        throws SystemException {
1763        return findByC_C_C_P(companyId, classNameId, classPK, primary, start,
1764            end, null);
1765    }
1766
1767    public List<Address> findByC_C_C_P(long companyId, long classNameId,
1768        long classPK, boolean primary, int start, int end, OrderByComparator obc)
1769        throws SystemException {
1770        Object[] finderArgs = new Object[] {
1771                new Long(companyId), new Long(classNameId), new Long(classPK),
1772                Boolean.valueOf(primary),
1773                
1774                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1775            };
1776
1777        List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_C_C_C_P,
1778                finderArgs, this);
1779
1780        if (list == null) {
1781            Session session = null;
1782
1783            try {
1784                session = openSession();
1785
1786                StringBundler query = null;
1787
1788                if (obc != null) {
1789                    query = new StringBundler(6 +
1790                            (obc.getOrderByFields().length * 3));
1791                }
1792                else {
1793                    query = new StringBundler(6);
1794                }
1795
1796                query.append(_SQL_SELECT_ADDRESS_WHERE);
1797
1798                query.append(_FINDER_COLUMN_C_C_C_P_COMPANYID_2);
1799
1800                query.append(_FINDER_COLUMN_C_C_C_P_CLASSNAMEID_2);
1801
1802                query.append(_FINDER_COLUMN_C_C_C_P_CLASSPK_2);
1803
1804                query.append(_FINDER_COLUMN_C_C_C_P_PRIMARY_2);
1805
1806                if (obc != null) {
1807                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1808                }
1809
1810                else {
1811                    query.append(AddressModelImpl.ORDER_BY_JPQL);
1812                }
1813
1814                String sql = query.toString();
1815
1816                Query q = session.createQuery(sql);
1817
1818                QueryPos qPos = QueryPos.getInstance(q);
1819
1820                qPos.add(companyId);
1821
1822                qPos.add(classNameId);
1823
1824                qPos.add(classPK);
1825
1826                qPos.add(primary);
1827
1828                list = (List<Address>)QueryUtil.list(q, getDialect(), start, end);
1829            }
1830            catch (Exception e) {
1831                throw processException(e);
1832            }
1833            finally {
1834                if (list == null) {
1835                    list = new ArrayList<Address>();
1836                }
1837
1838                cacheResult(list);
1839
1840                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_C_C_C_P,
1841                    finderArgs, list);
1842
1843                closeSession(session);
1844            }
1845        }
1846
1847        return list;
1848    }
1849
1850    public Address findByC_C_C_P_First(long companyId, long classNameId,
1851        long classPK, boolean primary, OrderByComparator obc)
1852        throws NoSuchAddressException, SystemException {
1853        List<Address> list = findByC_C_C_P(companyId, classNameId, classPK,
1854                primary, 0, 1, obc);
1855
1856        if (list.isEmpty()) {
1857            StringBundler msg = new StringBundler(10);
1858
1859            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1860
1861            msg.append("companyId=");
1862            msg.append(companyId);
1863
1864            msg.append(", classNameId=");
1865            msg.append(classNameId);
1866
1867            msg.append(", classPK=");
1868            msg.append(classPK);
1869
1870            msg.append(", primary=");
1871            msg.append(primary);
1872
1873            msg.append(StringPool.CLOSE_CURLY_BRACE);
1874
1875            throw new NoSuchAddressException(msg.toString());
1876        }
1877        else {
1878            return list.get(0);
1879        }
1880    }
1881
1882    public Address findByC_C_C_P_Last(long companyId, long classNameId,
1883        long classPK, boolean primary, OrderByComparator obc)
1884        throws NoSuchAddressException, SystemException {
1885        int count = countByC_C_C_P(companyId, classNameId, classPK, primary);
1886
1887        List<Address> list = findByC_C_C_P(companyId, classNameId, classPK,
1888                primary, count - 1, count, obc);
1889
1890        if (list.isEmpty()) {
1891            StringBundler msg = new StringBundler(10);
1892
1893            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1894
1895            msg.append("companyId=");
1896            msg.append(companyId);
1897
1898            msg.append(", classNameId=");
1899            msg.append(classNameId);
1900
1901            msg.append(", classPK=");
1902            msg.append(classPK);
1903
1904            msg.append(", primary=");
1905            msg.append(primary);
1906
1907            msg.append(StringPool.CLOSE_CURLY_BRACE);
1908
1909            throw new NoSuchAddressException(msg.toString());
1910        }
1911        else {
1912            return list.get(0);
1913        }
1914    }
1915
1916    public Address[] findByC_C_C_P_PrevAndNext(long addressId, long companyId,
1917        long classNameId, long classPK, boolean primary, OrderByComparator obc)
1918        throws NoSuchAddressException, SystemException {
1919        Address address = findByPrimaryKey(addressId);
1920
1921        int count = countByC_C_C_P(companyId, classNameId, classPK, primary);
1922
1923        Session session = null;
1924
1925        try {
1926            session = openSession();
1927
1928            StringBundler query = null;
1929
1930            if (obc != null) {
1931                query = new StringBundler(6 +
1932                        (obc.getOrderByFields().length * 3));
1933            }
1934            else {
1935                query = new StringBundler(6);
1936            }
1937
1938            query.append(_SQL_SELECT_ADDRESS_WHERE);
1939
1940            query.append(_FINDER_COLUMN_C_C_C_P_COMPANYID_2);
1941
1942            query.append(_FINDER_COLUMN_C_C_C_P_CLASSNAMEID_2);
1943
1944            query.append(_FINDER_COLUMN_C_C_C_P_CLASSPK_2);
1945
1946            query.append(_FINDER_COLUMN_C_C_C_P_PRIMARY_2);
1947
1948            if (obc != null) {
1949                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1950            }
1951
1952            else {
1953                query.append(AddressModelImpl.ORDER_BY_JPQL);
1954            }
1955
1956            String sql = query.toString();
1957
1958            Query q = session.createQuery(sql);
1959
1960            QueryPos qPos = QueryPos.getInstance(q);
1961
1962            qPos.add(companyId);
1963
1964            qPos.add(classNameId);
1965
1966            qPos.add(classPK);
1967
1968            qPos.add(primary);
1969
1970            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, address);
1971
1972            Address[] array = new AddressImpl[3];
1973
1974            array[0] = (Address)objArray[0];
1975            array[1] = (Address)objArray[1];
1976            array[2] = (Address)objArray[2];
1977
1978            return array;
1979        }
1980        catch (Exception e) {
1981            throw processException(e);
1982        }
1983        finally {
1984            closeSession(session);
1985        }
1986    }
1987
1988    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
1989        throws SystemException {
1990        Session session = null;
1991
1992        try {
1993            session = openSession();
1994
1995            dynamicQuery.compile(session);
1996
1997            return dynamicQuery.list();
1998        }
1999        catch (Exception e) {
2000            throw processException(e);
2001        }
2002        finally {
2003            closeSession(session);
2004        }
2005    }
2006
2007    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
2008        int start, int end) throws SystemException {
2009        Session session = null;
2010
2011        try {
2012            session = openSession();
2013
2014            dynamicQuery.setLimit(start, end);
2015
2016            dynamicQuery.compile(session);
2017
2018            return dynamicQuery.list();
2019        }
2020        catch (Exception e) {
2021            throw processException(e);
2022        }
2023        finally {
2024            closeSession(session);
2025        }
2026    }
2027
2028    public List<Address> findAll() throws SystemException {
2029        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
2030    }
2031
2032    public List<Address> findAll(int start, int end) throws SystemException {
2033        return findAll(start, end, null);
2034    }
2035
2036    public List<Address> findAll(int start, int end, OrderByComparator obc)
2037        throws SystemException {
2038        Object[] finderArgs = new Object[] {
2039                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
2040            };
2041
2042        List<Address> list = (List<Address>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
2043                finderArgs, this);
2044
2045        if (list == null) {
2046            Session session = null;
2047
2048            try {
2049                session = openSession();
2050
2051                StringBundler query = null;
2052                String sql = null;
2053
2054                if (obc != null) {
2055                    query = new StringBundler(2 +
2056                            (obc.getOrderByFields().length * 3));
2057
2058                    query.append(_SQL_SELECT_ADDRESS);
2059
2060                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
2061
2062                    sql = query.toString();
2063                }
2064
2065                else {
2066                    sql = _SQL_SELECT_ADDRESS.concat(AddressModelImpl.ORDER_BY_JPQL);
2067                }
2068
2069                Query q = session.createQuery(sql);
2070
2071                if (obc == null) {
2072                    list = (List<Address>)QueryUtil.list(q, getDialect(),
2073                            start, end, false);
2074
2075                    Collections.sort(list);
2076                }
2077                else {
2078                    list = (List<Address>)QueryUtil.list(q, getDialect(),
2079                            start, end);
2080                }
2081            }
2082            catch (Exception e) {
2083                throw processException(e);
2084            }
2085            finally {
2086                if (list == null) {
2087                    list = new ArrayList<Address>();
2088                }
2089
2090                cacheResult(list);
2091
2092                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
2093
2094                closeSession(session);
2095            }
2096        }
2097
2098        return list;
2099    }
2100
2101    public void removeByCompanyId(long companyId) throws SystemException {
2102        for (Address address : findByCompanyId(companyId)) {
2103            remove(address);
2104        }
2105    }
2106
2107    public void removeByUserId(long userId) throws SystemException {
2108        for (Address address : findByUserId(userId)) {
2109            remove(address);
2110        }
2111    }
2112
2113    public void removeByC_C(long companyId, long classNameId)
2114        throws SystemException {
2115        for (Address address : findByC_C(companyId, classNameId)) {
2116            remove(address);
2117        }
2118    }
2119
2120    public void removeByC_C_C(long companyId, long classNameId, long classPK)
2121        throws SystemException {
2122        for (Address address : findByC_C_C(companyId, classNameId, classPK)) {
2123            remove(address);
2124        }
2125    }
2126
2127    public void removeByC_C_C_M(long companyId, long classNameId, long classPK,
2128        boolean mailing) throws SystemException {
2129        for (Address address : findByC_C_C_M(companyId, classNameId, classPK,
2130                mailing)) {
2131            remove(address);
2132        }
2133    }
2134
2135    public void removeByC_C_C_P(long companyId, long classNameId, long classPK,
2136        boolean primary) throws SystemException {
2137        for (Address address : findByC_C_C_P(companyId, classNameId, classPK,
2138                primary)) {
2139            remove(address);
2140        }
2141    }
2142
2143    public void removeAll() throws SystemException {
2144        for (Address address : findAll()) {
2145            remove(address);
2146        }
2147    }
2148
2149    public int countByCompanyId(long companyId) throws SystemException {
2150        Object[] finderArgs = new Object[] { new Long(companyId) };
2151
2152        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_COMPANYID,
2153                finderArgs, this);
2154
2155        if (count == null) {
2156            Session session = null;
2157
2158            try {
2159                session = openSession();
2160
2161                StringBundler query = new StringBundler(2);
2162
2163                query.append(_SQL_COUNT_ADDRESS_WHERE);
2164
2165                query.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
2166
2167                String sql = query.toString();
2168
2169                Query q = session.createQuery(sql);
2170
2171                QueryPos qPos = QueryPos.getInstance(q);
2172
2173                qPos.add(companyId);
2174
2175                count = (Long)q.uniqueResult();
2176            }
2177            catch (Exception e) {
2178                throw processException(e);
2179            }
2180            finally {
2181                if (count == null) {
2182                    count = Long.valueOf(0);
2183                }
2184
2185                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_COMPANYID,
2186                    finderArgs, count);
2187
2188                closeSession(session);
2189            }
2190        }
2191
2192        return count.intValue();
2193    }
2194
2195    public int countByUserId(long userId) throws SystemException {
2196        Object[] finderArgs = new Object[] { new Long(userId) };
2197
2198        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_USERID,
2199                finderArgs, this);
2200
2201        if (count == null) {
2202            Session session = null;
2203
2204            try {
2205                session = openSession();
2206
2207                StringBundler query = new StringBundler(2);
2208
2209                query.append(_SQL_COUNT_ADDRESS_WHERE);
2210
2211                query.append(_FINDER_COLUMN_USERID_USERID_2);
2212
2213                String sql = query.toString();
2214
2215                Query q = session.createQuery(sql);
2216
2217                QueryPos qPos = QueryPos.getInstance(q);
2218
2219                qPos.add(userId);
2220
2221                count = (Long)q.uniqueResult();
2222            }
2223            catch (Exception e) {
2224                throw processException(e);
2225            }
2226            finally {
2227                if (count == null) {
2228                    count = Long.valueOf(0);
2229                }
2230
2231                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_USERID,
2232                    finderArgs, count);
2233
2234                closeSession(session);
2235            }
2236        }
2237
2238        return count.intValue();
2239    }
2240
2241    public int countByC_C(long companyId, long classNameId)
2242        throws SystemException {
2243        Object[] finderArgs = new Object[] {
2244                new Long(companyId), new Long(classNameId)
2245            };
2246
2247        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_C,
2248                finderArgs, this);
2249
2250        if (count == null) {
2251            Session session = null;
2252
2253            try {
2254                session = openSession();
2255
2256                StringBundler query = new StringBundler(3);
2257
2258                query.append(_SQL_COUNT_ADDRESS_WHERE);
2259
2260                query.append(_FINDER_COLUMN_C_C_COMPANYID_2);
2261
2262                query.append(_FINDER_COLUMN_C_C_CLASSNAMEID_2);
2263
2264                String sql = query.toString();
2265
2266                Query q = session.createQuery(sql);
2267
2268                QueryPos qPos = QueryPos.getInstance(q);
2269
2270                qPos.add(companyId);
2271
2272                qPos.add(classNameId);
2273
2274                count = (Long)q.uniqueResult();
2275            }
2276            catch (Exception e) {
2277                throw processException(e);
2278            }
2279            finally {
2280                if (count == null) {
2281                    count = Long.valueOf(0);
2282                }
2283
2284                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_C, finderArgs,
2285                    count);
2286
2287                closeSession(session);
2288            }
2289        }
2290
2291        return count.intValue();
2292    }
2293
2294    public int countByC_C_C(long companyId, long classNameId, long classPK)
2295        throws SystemException {
2296        Object[] finderArgs = new Object[] {
2297                new Long(companyId), new Long(classNameId), new Long(classPK)
2298            };
2299
2300        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_C_C,
2301                finderArgs, this);
2302
2303        if (count == null) {
2304            Session session = null;
2305
2306            try {
2307                session = openSession();
2308
2309                StringBundler query = new StringBundler(4);
2310
2311                query.append(_SQL_COUNT_ADDRESS_WHERE);
2312
2313                query.append(_FINDER_COLUMN_C_C_C_COMPANYID_2);
2314
2315                query.append(_FINDER_COLUMN_C_C_C_CLASSNAMEID_2);
2316
2317                query.append(_FINDER_COLUMN_C_C_C_CLASSPK_2);
2318
2319                String sql = query.toString();
2320
2321                Query q = session.createQuery(sql);
2322
2323                QueryPos qPos = QueryPos.getInstance(q);
2324
2325                qPos.add(companyId);
2326
2327                qPos.add(classNameId);
2328
2329                qPos.add(classPK);
2330
2331                count = (Long)q.uniqueResult();
2332            }
2333            catch (Exception e) {
2334                throw processException(e);
2335            }
2336            finally {
2337                if (count == null) {
2338                    count = Long.valueOf(0);
2339                }
2340
2341                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_C_C,
2342                    finderArgs, count);
2343
2344                closeSession(session);
2345            }
2346        }
2347
2348        return count.intValue();
2349    }
2350
2351    public int countByC_C_C_M(long companyId, long classNameId, long classPK,
2352        boolean mailing) throws SystemException {
2353        Object[] finderArgs = new Object[] {
2354                new Long(companyId), new Long(classNameId), new Long(classPK),
2355                Boolean.valueOf(mailing)
2356            };
2357
2358        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_C_C_M,
2359                finderArgs, this);
2360
2361        if (count == null) {
2362            Session session = null;
2363
2364            try {
2365                session = openSession();
2366
2367                StringBundler query = new StringBundler(5);
2368
2369                query.append(_SQL_COUNT_ADDRESS_WHERE);
2370
2371                query.append(_FINDER_COLUMN_C_C_C_M_COMPANYID_2);
2372
2373                query.append(_FINDER_COLUMN_C_C_C_M_CLASSNAMEID_2);
2374
2375                query.append(_FINDER_COLUMN_C_C_C_M_CLASSPK_2);
2376
2377                query.append(_FINDER_COLUMN_C_C_C_M_MAILING_2);
2378
2379                String sql = query.toString();
2380
2381                Query q = session.createQuery(sql);
2382
2383                QueryPos qPos = QueryPos.getInstance(q);
2384
2385                qPos.add(companyId);
2386
2387                qPos.add(classNameId);
2388
2389                qPos.add(classPK);
2390
2391                qPos.add(mailing);
2392
2393                count = (Long)q.uniqueResult();
2394            }
2395            catch (Exception e) {
2396                throw processException(e);
2397            }
2398            finally {
2399                if (count == null) {
2400                    count = Long.valueOf(0);
2401                }
2402
2403                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_C_C_M,
2404                    finderArgs, count);
2405
2406                closeSession(session);
2407            }
2408        }
2409
2410        return count.intValue();
2411    }
2412
2413    public int countByC_C_C_P(long companyId, long classNameId, long classPK,
2414        boolean primary) throws SystemException {
2415        Object[] finderArgs = new Object[] {
2416                new Long(companyId), new Long(classNameId), new Long(classPK),
2417                Boolean.valueOf(primary)
2418            };
2419
2420        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_C_C_P,
2421                finderArgs, this);
2422
2423        if (count == null) {
2424            Session session = null;
2425
2426            try {
2427                session = openSession();
2428
2429                StringBundler query = new StringBundler(5);
2430
2431                query.append(_SQL_COUNT_ADDRESS_WHERE);
2432
2433                query.append(_FINDER_COLUMN_C_C_C_P_COMPANYID_2);
2434
2435                query.append(_FINDER_COLUMN_C_C_C_P_CLASSNAMEID_2);
2436
2437                query.append(_FINDER_COLUMN_C_C_C_P_CLASSPK_2);
2438
2439                query.append(_FINDER_COLUMN_C_C_C_P_PRIMARY_2);
2440
2441                String sql = query.toString();
2442
2443                Query q = session.createQuery(sql);
2444
2445                QueryPos qPos = QueryPos.getInstance(q);
2446
2447                qPos.add(companyId);
2448
2449                qPos.add(classNameId);
2450
2451                qPos.add(classPK);
2452
2453                qPos.add(primary);
2454
2455                count = (Long)q.uniqueResult();
2456            }
2457            catch (Exception e) {
2458                throw processException(e);
2459            }
2460            finally {
2461                if (count == null) {
2462                    count = Long.valueOf(0);
2463                }
2464
2465                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_C_C_P,
2466                    finderArgs, count);
2467
2468                closeSession(session);
2469            }
2470        }
2471
2472        return count.intValue();
2473    }
2474
2475    public int countAll() throws SystemException {
2476        Object[] finderArgs = new Object[0];
2477
2478        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
2479                finderArgs, this);
2480
2481        if (count == null) {
2482            Session session = null;
2483
2484            try {
2485                session = openSession();
2486
2487                Query q = session.createQuery(_SQL_COUNT_ADDRESS);
2488
2489                count = (Long)q.uniqueResult();
2490            }
2491            catch (Exception e) {
2492                throw processException(e);
2493            }
2494            finally {
2495                if (count == null) {
2496                    count = Long.valueOf(0);
2497                }
2498
2499                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
2500                    count);
2501
2502                closeSession(session);
2503            }
2504        }
2505
2506        return count.intValue();
2507    }
2508
2509    public void afterPropertiesSet() {
2510        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
2511                    com.liferay.portal.util.PropsUtil.get(
2512                        "value.object.listener.com.liferay.portal.model.Address")));
2513
2514        if (listenerClassNames.length > 0) {
2515            try {
2516                List<ModelListener<Address>> listenersList = new ArrayList<ModelListener<Address>>();
2517
2518                for (String listenerClassName : listenerClassNames) {
2519                    listenersList.add((ModelListener<Address>)Class.forName(
2520                            listenerClassName).newInstance());
2521                }
2522
2523                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
2524            }
2525            catch (Exception e) {
2526                _log.error(e);
2527            }
2528        }
2529    }
2530
2531    @BeanReference(name = "com.liferay.portal.service.persistence.AccountPersistence")
2532    protected com.liferay.portal.service.persistence.AccountPersistence accountPersistence;
2533    @BeanReference(name = "com.liferay.portal.service.persistence.AddressPersistence")
2534    protected com.liferay.portal.service.persistence.AddressPersistence addressPersistence;
2535    @BeanReference(name = "com.liferay.portal.service.persistence.BrowserTrackerPersistence")
2536    protected com.liferay.portal.service.persistence.BrowserTrackerPersistence browserTrackerPersistence;
2537    @BeanReference(name = "com.liferay.portal.service.persistence.ClassNamePersistence")
2538    protected com.liferay.portal.service.persistence.ClassNamePersistence classNamePersistence;
2539    @BeanReference(name = "com.liferay.portal.service.persistence.CompanyPersistence")
2540    protected com.liferay.portal.service.persistence.CompanyPersistence companyPersistence;
2541    @BeanReference(name = "com.liferay.portal.service.persistence.ContactPersistence")
2542    protected com.liferay.portal.service.persistence.ContactPersistence contactPersistence;
2543    @BeanReference(name = "com.liferay.portal.service.persistence.CountryPersistence")
2544    protected com.liferay.portal.service.persistence.CountryPersistence countryPersistence;
2545    @BeanReference(name = "com.liferay.portal.service.persistence.EmailAddressPersistence")
2546    protected com.liferay.portal.service.persistence.EmailAddressPersistence emailAddressPersistence;
2547    @BeanReference(name = "com.liferay.portal.service.persistence.GroupPersistence")
2548    protected com.liferay.portal.service.persistence.GroupPersistence groupPersistence;
2549    @BeanReference(name = "com.liferay.portal.service.persistence.ImagePersistence")
2550    protected com.liferay.portal.service.persistence.ImagePersistence imagePersistence;
2551    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPersistence")
2552    protected com.liferay.portal.service.persistence.LayoutPersistence layoutPersistence;
2553    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPrototypePersistence")
2554    protected com.liferay.portal.service.persistence.LayoutPrototypePersistence layoutPrototypePersistence;
2555    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutSetPersistence")
2556    protected com.liferay.portal.service.persistence.LayoutSetPersistence layoutSetPersistence;
2557    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutSetPrototypePersistence")
2558    protected com.liferay.portal.service.persistence.LayoutSetPrototypePersistence layoutSetPrototypePersistence;
2559    @BeanReference(name = "com.liferay.portal.service.persistence.ListTypePersistence")
2560    protected com.liferay.portal.service.persistence.ListTypePersistence listTypePersistence;
2561    @BeanReference(name = "com.liferay.portal.service.persistence.LockPersistence")
2562    protected com.liferay.portal.service.persistence.LockPersistence lockPersistence;
2563    @BeanReference(name = "com.liferay.portal.service.persistence.MembershipRequestPersistence")
2564    protected com.liferay.portal.service.persistence.MembershipRequestPersistence membershipRequestPersistence;
2565    @BeanReference(name = "com.liferay.portal.service.persistence.OrganizationPersistence")
2566    protected com.liferay.portal.service.persistence.OrganizationPersistence organizationPersistence;
2567    @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupPermissionPersistence")
2568    protected com.liferay.portal.service.persistence.OrgGroupPermissionPersistence orgGroupPermissionPersistence;
2569    @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupRolePersistence")
2570    protected com.liferay.portal.service.persistence.OrgGroupRolePersistence orgGroupRolePersistence;
2571    @BeanReference(name = "com.liferay.portal.service.persistence.OrgLaborPersistence")
2572    protected com.liferay.portal.service.persistence.OrgLaborPersistence orgLaborPersistence;
2573    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyPersistence")
2574    protected com.liferay.portal.service.persistence.PasswordPolicyPersistence passwordPolicyPersistence;
2575    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyRelPersistence")
2576    protected com.liferay.portal.service.persistence.PasswordPolicyRelPersistence passwordPolicyRelPersistence;
2577    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordTrackerPersistence")
2578    protected com.liferay.portal.service.persistence.PasswordTrackerPersistence passwordTrackerPersistence;
2579    @BeanReference(name = "com.liferay.portal.service.persistence.PermissionPersistence")
2580    protected com.liferay.portal.service.persistence.PermissionPersistence permissionPersistence;
2581    @BeanReference(name = "com.liferay.portal.service.persistence.PhonePersistence")
2582    protected com.liferay.portal.service.persistence.PhonePersistence phonePersistence;
2583    @BeanReference(name = "com.liferay.portal.service.persistence.PluginSettingPersistence")
2584    protected com.liferay.portal.service.persistence.PluginSettingPersistence pluginSettingPersistence;
2585    @BeanReference(name = "com.liferay.portal.service.persistence.PortletPersistence")
2586    protected com.liferay.portal.service.persistence.PortletPersistence portletPersistence;
2587    @BeanReference(name = "com.liferay.portal.service.persistence.PortletItemPersistence")
2588    protected com.liferay.portal.service.persistence.PortletItemPersistence portletItemPersistence;
2589    @BeanReference(name = "com.liferay.portal.service.persistence.PortletPreferencesPersistence")
2590    protected com.liferay.portal.service.persistence.PortletPreferencesPersistence portletPreferencesPersistence;
2591    @BeanReference(name = "com.liferay.portal.service.persistence.RegionPersistence")
2592    protected com.liferay.portal.service.persistence.RegionPersistence regionPersistence;
2593    @BeanReference(name = "com.liferay.portal.service.persistence.ReleasePersistence")
2594    protected com.liferay.portal.service.persistence.ReleasePersistence releasePersistence;
2595    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence")
2596    protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
2597    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceActionPersistence")
2598    protected com.liferay.portal.service.persistence.ResourceActionPersistence resourceActionPersistence;
2599    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceCodePersistence")
2600    protected com.liferay.portal.service.persistence.ResourceCodePersistence resourceCodePersistence;
2601    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePermissionPersistence")
2602    protected com.liferay.portal.service.persistence.ResourcePermissionPersistence resourcePermissionPersistence;
2603    @BeanReference(name = "com.liferay.portal.service.persistence.RolePersistence")
2604    protected com.liferay.portal.service.persistence.RolePersistence rolePersistence;
2605    @BeanReference(name = "com.liferay.portal.service.persistence.ServiceComponentPersistence")
2606    protected com.liferay.portal.service.persistence.ServiceComponentPersistence serviceComponentPersistence;
2607    @BeanReference(name = "com.liferay.portal.service.persistence.ShardPersistence")
2608    protected com.liferay.portal.service.persistence.ShardPersistence shardPersistence;
2609    @BeanReference(name = "com.liferay.portal.service.persistence.SubscriptionPersistence")
2610    protected com.liferay.portal.service.persistence.SubscriptionPersistence subscriptionPersistence;
2611    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence")
2612    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
2613    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupPersistence")
2614    protected com.liferay.portal.service.persistence.UserGroupPersistence userGroupPersistence;
2615    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupGroupRolePersistence")
2616    protected com.liferay.portal.service.persistence.UserGroupGroupRolePersistence userGroupGroupRolePersistence;
2617    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupRolePersistence")
2618    protected com.liferay.portal.service.persistence.UserGroupRolePersistence userGroupRolePersistence;
2619    @BeanReference(name = "com.liferay.portal.service.persistence.UserIdMapperPersistence")
2620    protected com.liferay.portal.service.persistence.UserIdMapperPersistence userIdMapperPersistence;
2621    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPersistence")
2622    protected com.liferay.portal.service.persistence.UserTrackerPersistence userTrackerPersistence;
2623    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPathPersistence")
2624    protected com.liferay.portal.service.persistence.UserTrackerPathPersistence userTrackerPathPersistence;
2625    @BeanReference(name = "com.liferay.portal.service.persistence.WebDAVPropsPersistence")
2626    protected com.liferay.portal.service.persistence.WebDAVPropsPersistence webDAVPropsPersistence;
2627    @BeanReference(name = "com.liferay.portal.service.persistence.WebsitePersistence")
2628    protected com.liferay.portal.service.persistence.WebsitePersistence websitePersistence;
2629    @BeanReference(name = "com.liferay.portal.service.persistence.WorkflowDefinitionLinkPersistence")
2630    protected com.liferay.portal.service.persistence.WorkflowDefinitionLinkPersistence workflowDefinitionLinkPersistence;
2631    @BeanReference(name = "com.liferay.portal.service.persistence.WorkflowInstanceLinkPersistence")
2632    protected com.liferay.portal.service.persistence.WorkflowInstanceLinkPersistence workflowInstanceLinkPersistence;
2633    private static final String _SQL_SELECT_ADDRESS = "SELECT address FROM Address address";
2634    private static final String _SQL_SELECT_ADDRESS_WHERE = "SELECT address FROM Address address WHERE ";
2635    private static final String _SQL_COUNT_ADDRESS = "SELECT COUNT(address) FROM Address address";
2636    private static final String _SQL_COUNT_ADDRESS_WHERE = "SELECT COUNT(address) FROM Address address WHERE ";
2637    private static final String _FINDER_COLUMN_COMPANYID_COMPANYID_2 = "address.companyId = ?";
2638    private static final String _FINDER_COLUMN_USERID_USERID_2 = "address.userId = ?";
2639    private static final String _FINDER_COLUMN_C_C_COMPANYID_2 = "address.companyId = ? AND ";
2640    private static final String _FINDER_COLUMN_C_C_CLASSNAMEID_2 = "address.classNameId = ?";
2641    private static final String _FINDER_COLUMN_C_C_C_COMPANYID_2 = "address.companyId = ? AND ";
2642    private static final String _FINDER_COLUMN_C_C_C_CLASSNAMEID_2 = "address.classNameId = ? AND ";
2643    private static final String _FINDER_COLUMN_C_C_C_CLASSPK_2 = "address.classPK = ?";
2644    private static final String _FINDER_COLUMN_C_C_C_M_COMPANYID_2 = "address.companyId = ? AND ";
2645    private static final String _FINDER_COLUMN_C_C_C_M_CLASSNAMEID_2 = "address.classNameId = ? AND ";
2646    private static final String _FINDER_COLUMN_C_C_C_M_CLASSPK_2 = "address.classPK = ? AND ";
2647    private static final String _FINDER_COLUMN_C_C_C_M_MAILING_2 = "address.mailing = ?";
2648    private static final String _FINDER_COLUMN_C_C_C_P_COMPANYID_2 = "address.companyId = ? AND ";
2649    private static final String _FINDER_COLUMN_C_C_C_P_CLASSNAMEID_2 = "address.classNameId = ? AND ";
2650    private static final String _FINDER_COLUMN_C_C_C_P_CLASSPK_2 = "address.classPK = ? AND ";
2651    private static final String _FINDER_COLUMN_C_C_C_P_PRIMARY_2 = "address.primary = ?";
2652    private static final String _ORDER_BY_ENTITY_ALIAS = "address.";
2653    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No Address exists with the primary key ";
2654    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No Address exists with the key {";
2655    private static Log _log = LogFactoryUtil.getLog(AddressPersistenceImpl.class);
2656}