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