1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions 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.NoSuchContactException;
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.Contact;
44  import com.liferay.portal.model.ModelListener;
45  import com.liferay.portal.model.impl.ContactImpl;
46  import com.liferay.portal.model.impl.ContactModelImpl;
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="ContactPersistenceImpl.java.html"><b><i>View Source</i></b></a>
55   *
56   * @author Brian Wing Shun Chan
57   *
58   */
59  public class ContactPersistenceImpl extends BasePersistenceImpl
60      implements ContactPersistence {
61      public static final String FINDER_CLASS_NAME_ENTITY = ContactImpl.class.getName();
62      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
63          ".List";
64      public static final FinderPath FINDER_PATH_FIND_BY_COMPANYID = new FinderPath(ContactModelImpl.ENTITY_CACHE_ENABLED,
65              ContactModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
66              "findByCompanyId", new String[] { Long.class.getName() });
67      public static final FinderPath FINDER_PATH_FIND_BY_OBC_COMPANYID = new FinderPath(ContactModelImpl.ENTITY_CACHE_ENABLED,
68              ContactModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
69              "findByCompanyId",
70              new String[] {
71                  Long.class.getName(),
72                  
73              "java.lang.Integer", "java.lang.Integer",
74                  "com.liferay.portal.kernel.util.OrderByComparator"
75              });
76      public static final FinderPath FINDER_PATH_COUNT_BY_COMPANYID = new FinderPath(ContactModelImpl.ENTITY_CACHE_ENABLED,
77              ContactModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
78              "countByCompanyId", new String[] { Long.class.getName() });
79      public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(ContactModelImpl.ENTITY_CACHE_ENABLED,
80              ContactModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
81              "findAll", new String[0]);
82      public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(ContactModelImpl.ENTITY_CACHE_ENABLED,
83              ContactModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
84              "countAll", new String[0]);
85  
86      public void cacheResult(Contact contact) {
87          EntityCacheUtil.putResult(ContactModelImpl.ENTITY_CACHE_ENABLED,
88              ContactImpl.class, contact.getPrimaryKey(), contact);
89      }
90  
91      public void cacheResult(List<Contact> contacts) {
92          for (Contact contact : contacts) {
93              if (EntityCacheUtil.getResult(
94                          ContactModelImpl.ENTITY_CACHE_ENABLED,
95                          ContactImpl.class, contact.getPrimaryKey(), this) == null) {
96                  cacheResult(contact);
97              }
98          }
99      }
100 
101     public void clearCache() {
102         CacheRegistry.clear(ContactImpl.class.getName());
103         EntityCacheUtil.clearCache(ContactImpl.class.getName());
104         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
105         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
106     }
107 
108     public Contact create(long contactId) {
109         Contact contact = new ContactImpl();
110 
111         contact.setNew(true);
112         contact.setPrimaryKey(contactId);
113 
114         return contact;
115     }
116 
117     public Contact remove(long contactId)
118         throws NoSuchContactException, SystemException {
119         Session session = null;
120 
121         try {
122             session = openSession();
123 
124             Contact contact = (Contact)session.get(ContactImpl.class,
125                     new Long(contactId));
126 
127             if (contact == null) {
128                 if (_log.isWarnEnabled()) {
129                     _log.warn("No Contact exists with the primary key " +
130                         contactId);
131                 }
132 
133                 throw new NoSuchContactException(
134                     "No Contact exists with the primary key " + contactId);
135             }
136 
137             return remove(contact);
138         }
139         catch (NoSuchContactException nsee) {
140             throw nsee;
141         }
142         catch (Exception e) {
143             throw processException(e);
144         }
145         finally {
146             closeSession(session);
147         }
148     }
149 
150     public Contact remove(Contact contact) throws SystemException {
151         for (ModelListener<Contact> listener : listeners) {
152             listener.onBeforeRemove(contact);
153         }
154 
155         contact = removeImpl(contact);
156 
157         for (ModelListener<Contact> listener : listeners) {
158             listener.onAfterRemove(contact);
159         }
160 
161         return contact;
162     }
163 
164     protected Contact removeImpl(Contact contact) throws SystemException {
165         Session session = null;
166 
167         try {
168             session = openSession();
169 
170             if (contact.isCachedModel() || BatchSessionUtil.isEnabled()) {
171                 Object staleObject = session.get(ContactImpl.class,
172                         contact.getPrimaryKeyObj());
173 
174                 if (staleObject != null) {
175                     session.evict(staleObject);
176                 }
177             }
178 
179             session.delete(contact);
180 
181             session.flush();
182         }
183         catch (Exception e) {
184             throw processException(e);
185         }
186         finally {
187             closeSession(session);
188         }
189 
190         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
191 
192         EntityCacheUtil.removeResult(ContactModelImpl.ENTITY_CACHE_ENABLED,
193             ContactImpl.class, contact.getPrimaryKey());
194 
195         return contact;
196     }
197 
198     /**
199      * @deprecated Use <code>update(Contact contact, boolean merge)</code>.
200      */
201     public Contact update(Contact contact) throws SystemException {
202         if (_log.isWarnEnabled()) {
203             _log.warn(
204                 "Using the deprecated update(Contact contact) method. Use update(Contact contact, boolean merge) instead.");
205         }
206 
207         return update(contact, false);
208     }
209 
210     /**
211      * Add, update, or merge, the entity. This method also calls the model
212      * listeners to trigger the proper events associated with adding, deleting,
213      * or updating an entity.
214      *
215      * @param        contact the entity to add, update, or merge
216      * @param        merge boolean value for whether to merge the entity. The
217      *                default value is false. Setting merge to true is more
218      *                expensive and should only be true when contact is
219      *                transient. See LEP-5473 for a detailed discussion of this
220      *                method.
221      * @return        true if the portlet can be displayed via Ajax
222      */
223     public Contact update(Contact contact, boolean merge)
224         throws SystemException {
225         boolean isNew = contact.isNew();
226 
227         for (ModelListener<Contact> listener : listeners) {
228             if (isNew) {
229                 listener.onBeforeCreate(contact);
230             }
231             else {
232                 listener.onBeforeUpdate(contact);
233             }
234         }
235 
236         contact = updateImpl(contact, merge);
237 
238         for (ModelListener<Contact> listener : listeners) {
239             if (isNew) {
240                 listener.onAfterCreate(contact);
241             }
242             else {
243                 listener.onAfterUpdate(contact);
244             }
245         }
246 
247         return contact;
248     }
249 
250     public Contact updateImpl(com.liferay.portal.model.Contact contact,
251         boolean merge) throws SystemException {
252         Session session = null;
253 
254         try {
255             session = openSession();
256 
257             BatchSessionUtil.update(session, contact, merge);
258 
259             contact.setNew(false);
260         }
261         catch (Exception e) {
262             throw processException(e);
263         }
264         finally {
265             closeSession(session);
266         }
267 
268         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
269 
270         EntityCacheUtil.putResult(ContactModelImpl.ENTITY_CACHE_ENABLED,
271             ContactImpl.class, contact.getPrimaryKey(), contact);
272 
273         return contact;
274     }
275 
276     public Contact findByPrimaryKey(long contactId)
277         throws NoSuchContactException, SystemException {
278         Contact contact = fetchByPrimaryKey(contactId);
279 
280         if (contact == null) {
281             if (_log.isWarnEnabled()) {
282                 _log.warn("No Contact exists with the primary key " +
283                     contactId);
284             }
285 
286             throw new NoSuchContactException(
287                 "No Contact exists with the primary key " + contactId);
288         }
289 
290         return contact;
291     }
292 
293     public Contact fetchByPrimaryKey(long contactId) throws SystemException {
294         Contact contact = (Contact)EntityCacheUtil.getResult(ContactModelImpl.ENTITY_CACHE_ENABLED,
295                 ContactImpl.class, contactId, this);
296 
297         if (contact == null) {
298             Session session = null;
299 
300             try {
301                 session = openSession();
302 
303                 contact = (Contact)session.get(ContactImpl.class,
304                         new Long(contactId));
305             }
306             catch (Exception e) {
307                 throw processException(e);
308             }
309             finally {
310                 if (contact != null) {
311                     cacheResult(contact);
312                 }
313 
314                 closeSession(session);
315             }
316         }
317 
318         return contact;
319     }
320 
321     public List<Contact> findByCompanyId(long companyId)
322         throws SystemException {
323         Object[] finderArgs = new Object[] { new Long(companyId) };
324 
325         List<Contact> list = (List<Contact>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_COMPANYID,
326                 finderArgs, this);
327 
328         if (list == null) {
329             Session session = null;
330 
331             try {
332                 session = openSession();
333 
334                 StringBuilder query = new StringBuilder();
335 
336                 query.append("SELECT contact FROM Contact contact WHERE ");
337 
338                 query.append("contact.companyId = ?");
339 
340                 query.append(" ");
341 
342                 Query q = session.createQuery(query.toString());
343 
344                 QueryPos qPos = QueryPos.getInstance(q);
345 
346                 qPos.add(companyId);
347 
348                 list = q.list();
349             }
350             catch (Exception e) {
351                 throw processException(e);
352             }
353             finally {
354                 if (list == null) {
355                     list = new ArrayList<Contact>();
356                 }
357 
358                 cacheResult(list);
359 
360                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_COMPANYID,
361                     finderArgs, list);
362 
363                 closeSession(session);
364             }
365         }
366 
367         return list;
368     }
369 
370     public List<Contact> findByCompanyId(long companyId, int start, int end)
371         throws SystemException {
372         return findByCompanyId(companyId, start, end, null);
373     }
374 
375     public List<Contact> findByCompanyId(long companyId, int start, int end,
376         OrderByComparator obc) throws SystemException {
377         Object[] finderArgs = new Object[] {
378                 new Long(companyId),
379                 
380                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
381             };
382 
383         List<Contact> list = (List<Contact>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_COMPANYID,
384                 finderArgs, this);
385 
386         if (list == null) {
387             Session session = null;
388 
389             try {
390                 session = openSession();
391 
392                 StringBuilder query = new StringBuilder();
393 
394                 query.append("SELECT contact FROM Contact contact WHERE ");
395 
396                 query.append("contact.companyId = ?");
397 
398                 query.append(" ");
399 
400                 if (obc != null) {
401                     query.append("ORDER BY ");
402 
403                     String[] orderByFields = obc.getOrderByFields();
404 
405                     for (int i = 0; i < orderByFields.length; i++) {
406                         query.append("contact.");
407                         query.append(orderByFields[i]);
408 
409                         if (obc.isAscending()) {
410                             query.append(" ASC");
411                         }
412                         else {
413                             query.append(" DESC");
414                         }
415 
416                         if ((i + 1) < orderByFields.length) {
417                             query.append(", ");
418                         }
419                     }
420                 }
421 
422                 Query q = session.createQuery(query.toString());
423 
424                 QueryPos qPos = QueryPos.getInstance(q);
425 
426                 qPos.add(companyId);
427 
428                 list = (List<Contact>)QueryUtil.list(q, getDialect(), start, end);
429             }
430             catch (Exception e) {
431                 throw processException(e);
432             }
433             finally {
434                 if (list == null) {
435                     list = new ArrayList<Contact>();
436                 }
437 
438                 cacheResult(list);
439 
440                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_COMPANYID,
441                     finderArgs, list);
442 
443                 closeSession(session);
444             }
445         }
446 
447         return list;
448     }
449 
450     public Contact findByCompanyId_First(long companyId, OrderByComparator obc)
451         throws NoSuchContactException, SystemException {
452         List<Contact> list = findByCompanyId(companyId, 0, 1, obc);
453 
454         if (list.isEmpty()) {
455             StringBuilder msg = new StringBuilder();
456 
457             msg.append("No Contact exists with the key {");
458 
459             msg.append("companyId=" + companyId);
460 
461             msg.append(StringPool.CLOSE_CURLY_BRACE);
462 
463             throw new NoSuchContactException(msg.toString());
464         }
465         else {
466             return list.get(0);
467         }
468     }
469 
470     public Contact findByCompanyId_Last(long companyId, OrderByComparator obc)
471         throws NoSuchContactException, SystemException {
472         int count = countByCompanyId(companyId);
473 
474         List<Contact> list = findByCompanyId(companyId, count - 1, count, obc);
475 
476         if (list.isEmpty()) {
477             StringBuilder msg = new StringBuilder();
478 
479             msg.append("No Contact exists with the key {");
480 
481             msg.append("companyId=" + companyId);
482 
483             msg.append(StringPool.CLOSE_CURLY_BRACE);
484 
485             throw new NoSuchContactException(msg.toString());
486         }
487         else {
488             return list.get(0);
489         }
490     }
491 
492     public Contact[] findByCompanyId_PrevAndNext(long contactId,
493         long companyId, OrderByComparator obc)
494         throws NoSuchContactException, SystemException {
495         Contact contact = findByPrimaryKey(contactId);
496 
497         int count = countByCompanyId(companyId);
498 
499         Session session = null;
500 
501         try {
502             session = openSession();
503 
504             StringBuilder query = new StringBuilder();
505 
506             query.append("SELECT contact FROM Contact contact WHERE ");
507 
508             query.append("contact.companyId = ?");
509 
510             query.append(" ");
511 
512             if (obc != null) {
513                 query.append("ORDER BY ");
514 
515                 String[] orderByFields = obc.getOrderByFields();
516 
517                 for (int i = 0; i < orderByFields.length; i++) {
518                     query.append("contact.");
519                     query.append(orderByFields[i]);
520 
521                     if (obc.isAscending()) {
522                         query.append(" ASC");
523                     }
524                     else {
525                         query.append(" DESC");
526                     }
527 
528                     if ((i + 1) < orderByFields.length) {
529                         query.append(", ");
530                     }
531                 }
532             }
533 
534             Query q = session.createQuery(query.toString());
535 
536             QueryPos qPos = QueryPos.getInstance(q);
537 
538             qPos.add(companyId);
539 
540             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, contact);
541 
542             Contact[] array = new ContactImpl[3];
543 
544             array[0] = (Contact)objArray[0];
545             array[1] = (Contact)objArray[1];
546             array[2] = (Contact)objArray[2];
547 
548             return array;
549         }
550         catch (Exception e) {
551             throw processException(e);
552         }
553         finally {
554             closeSession(session);
555         }
556     }
557 
558     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
559         throws SystemException {
560         Session session = null;
561 
562         try {
563             session = openSession();
564 
565             dynamicQuery.compile(session);
566 
567             return dynamicQuery.list();
568         }
569         catch (Exception e) {
570             throw processException(e);
571         }
572         finally {
573             closeSession(session);
574         }
575     }
576 
577     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
578         int start, int end) throws SystemException {
579         Session session = null;
580 
581         try {
582             session = openSession();
583 
584             dynamicQuery.setLimit(start, end);
585 
586             dynamicQuery.compile(session);
587 
588             return dynamicQuery.list();
589         }
590         catch (Exception e) {
591             throw processException(e);
592         }
593         finally {
594             closeSession(session);
595         }
596     }
597 
598     public List<Contact> findAll() throws SystemException {
599         return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
600     }
601 
602     public List<Contact> findAll(int start, int end) throws SystemException {
603         return findAll(start, end, null);
604     }
605 
606     public List<Contact> findAll(int start, int end, OrderByComparator obc)
607         throws SystemException {
608         Object[] finderArgs = new Object[] {
609                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
610             };
611 
612         List<Contact> list = (List<Contact>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
613                 finderArgs, this);
614 
615         if (list == null) {
616             Session session = null;
617 
618             try {
619                 session = openSession();
620 
621                 StringBuilder query = new StringBuilder();
622 
623                 query.append("SELECT contact FROM Contact contact ");
624 
625                 if (obc != null) {
626                     query.append("ORDER BY ");
627 
628                     String[] orderByFields = obc.getOrderByFields();
629 
630                     for (int i = 0; i < orderByFields.length; i++) {
631                         query.append("contact.");
632                         query.append(orderByFields[i]);
633 
634                         if (obc.isAscending()) {
635                             query.append(" ASC");
636                         }
637                         else {
638                             query.append(" DESC");
639                         }
640 
641                         if ((i + 1) < orderByFields.length) {
642                             query.append(", ");
643                         }
644                     }
645                 }
646 
647                 Query q = session.createQuery(query.toString());
648 
649                 if (obc == null) {
650                     list = (List<Contact>)QueryUtil.list(q, getDialect(),
651                             start, end, false);
652 
653                     Collections.sort(list);
654                 }
655                 else {
656                     list = (List<Contact>)QueryUtil.list(q, getDialect(),
657                             start, end);
658                 }
659             }
660             catch (Exception e) {
661                 throw processException(e);
662             }
663             finally {
664                 if (list == null) {
665                     list = new ArrayList<Contact>();
666                 }
667 
668                 cacheResult(list);
669 
670                 FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
671 
672                 closeSession(session);
673             }
674         }
675 
676         return list;
677     }
678 
679     public void removeByCompanyId(long companyId) throws SystemException {
680         for (Contact contact : findByCompanyId(companyId)) {
681             remove(contact);
682         }
683     }
684 
685     public void removeAll() throws SystemException {
686         for (Contact contact : findAll()) {
687             remove(contact);
688         }
689     }
690 
691     public int countByCompanyId(long companyId) throws SystemException {
692         Object[] finderArgs = new Object[] { new Long(companyId) };
693 
694         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_COMPANYID,
695                 finderArgs, this);
696 
697         if (count == null) {
698             Session session = null;
699 
700             try {
701                 session = openSession();
702 
703                 StringBuilder query = new StringBuilder();
704 
705                 query.append("SELECT COUNT(contact) ");
706                 query.append("FROM Contact contact WHERE ");
707 
708                 query.append("contact.companyId = ?");
709 
710                 query.append(" ");
711 
712                 Query q = session.createQuery(query.toString());
713 
714                 QueryPos qPos = QueryPos.getInstance(q);
715 
716                 qPos.add(companyId);
717 
718                 count = (Long)q.uniqueResult();
719             }
720             catch (Exception e) {
721                 throw processException(e);
722             }
723             finally {
724                 if (count == null) {
725                     count = Long.valueOf(0);
726                 }
727 
728                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_COMPANYID,
729                     finderArgs, count);
730 
731                 closeSession(session);
732             }
733         }
734 
735         return count.intValue();
736     }
737 
738     public int countAll() throws SystemException {
739         Object[] finderArgs = new Object[0];
740 
741         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
742                 finderArgs, this);
743 
744         if (count == null) {
745             Session session = null;
746 
747             try {
748                 session = openSession();
749 
750                 Query q = session.createQuery(
751                         "SELECT COUNT(contact) FROM Contact contact");
752 
753                 count = (Long)q.uniqueResult();
754             }
755             catch (Exception e) {
756                 throw processException(e);
757             }
758             finally {
759                 if (count == null) {
760                     count = Long.valueOf(0);
761                 }
762 
763                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
764                     count);
765 
766                 closeSession(session);
767             }
768         }
769 
770         return count.intValue();
771     }
772 
773     public void afterPropertiesSet() {
774         String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
775                     com.liferay.portal.util.PropsUtil.get(
776                         "value.object.listener.com.liferay.portal.model.Contact")));
777 
778         if (listenerClassNames.length > 0) {
779             try {
780                 List<ModelListener<Contact>> listenersList = new ArrayList<ModelListener<Contact>>();
781 
782                 for (String listenerClassName : listenerClassNames) {
783                     listenersList.add((ModelListener<Contact>)Class.forName(
784                             listenerClassName).newInstance());
785                 }
786 
787                 listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
788             }
789             catch (Exception e) {
790                 _log.error(e);
791             }
792         }
793     }
794 
795     @BeanReference(name = "com.liferay.portal.service.persistence.AccountPersistence.impl")
796     protected com.liferay.portal.service.persistence.AccountPersistence accountPersistence;
797     @BeanReference(name = "com.liferay.portal.service.persistence.AddressPersistence.impl")
798     protected com.liferay.portal.service.persistence.AddressPersistence addressPersistence;
799     @BeanReference(name = "com.liferay.portal.service.persistence.BrowserTrackerPersistence.impl")
800     protected com.liferay.portal.service.persistence.BrowserTrackerPersistence browserTrackerPersistence;
801     @BeanReference(name = "com.liferay.portal.service.persistence.ClassNamePersistence.impl")
802     protected com.liferay.portal.service.persistence.ClassNamePersistence classNamePersistence;
803     @BeanReference(name = "com.liferay.portal.service.persistence.CompanyPersistence.impl")
804     protected com.liferay.portal.service.persistence.CompanyPersistence companyPersistence;
805     @BeanReference(name = "com.liferay.portal.service.persistence.ContactPersistence.impl")
806     protected com.liferay.portal.service.persistence.ContactPersistence contactPersistence;
807     @BeanReference(name = "com.liferay.portal.service.persistence.CountryPersistence.impl")
808     protected com.liferay.portal.service.persistence.CountryPersistence countryPersistence;
809     @BeanReference(name = "com.liferay.portal.service.persistence.EmailAddressPersistence.impl")
810     protected com.liferay.portal.service.persistence.EmailAddressPersistence emailAddressPersistence;
811     @BeanReference(name = "com.liferay.portal.service.persistence.GroupPersistence.impl")
812     protected com.liferay.portal.service.persistence.GroupPersistence groupPersistence;
813     @BeanReference(name = "com.liferay.portal.service.persistence.ImagePersistence.impl")
814     protected com.liferay.portal.service.persistence.ImagePersistence imagePersistence;
815     @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPersistence.impl")
816     protected com.liferay.portal.service.persistence.LayoutPersistence layoutPersistence;
817     @BeanReference(name = "com.liferay.portal.service.persistence.LayoutSetPersistence.impl")
818     protected com.liferay.portal.service.persistence.LayoutSetPersistence layoutSetPersistence;
819     @BeanReference(name = "com.liferay.portal.service.persistence.ListTypePersistence.impl")
820     protected com.liferay.portal.service.persistence.ListTypePersistence listTypePersistence;
821     @BeanReference(name = "com.liferay.portal.service.persistence.MembershipRequestPersistence.impl")
822     protected com.liferay.portal.service.persistence.MembershipRequestPersistence membershipRequestPersistence;
823     @BeanReference(name = "com.liferay.portal.service.persistence.OrganizationPersistence.impl")
824     protected com.liferay.portal.service.persistence.OrganizationPersistence organizationPersistence;
825     @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupPermissionPersistence.impl")
826     protected com.liferay.portal.service.persistence.OrgGroupPermissionPersistence orgGroupPermissionPersistence;
827     @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupRolePersistence.impl")
828     protected com.liferay.portal.service.persistence.OrgGroupRolePersistence orgGroupRolePersistence;
829     @BeanReference(name = "com.liferay.portal.service.persistence.OrgLaborPersistence.impl")
830     protected com.liferay.portal.service.persistence.OrgLaborPersistence orgLaborPersistence;
831     @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyPersistence.impl")
832     protected com.liferay.portal.service.persistence.PasswordPolicyPersistence passwordPolicyPersistence;
833     @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyRelPersistence.impl")
834     protected com.liferay.portal.service.persistence.PasswordPolicyRelPersistence passwordPolicyRelPersistence;
835     @BeanReference(name = "com.liferay.portal.service.persistence.PasswordTrackerPersistence.impl")
836     protected com.liferay.portal.service.persistence.PasswordTrackerPersistence passwordTrackerPersistence;
837     @BeanReference(name = "com.liferay.portal.service.persistence.PermissionPersistence.impl")
838     protected com.liferay.portal.service.persistence.PermissionPersistence permissionPersistence;
839     @BeanReference(name = "com.liferay.portal.service.persistence.PhonePersistence.impl")
840     protected com.liferay.portal.service.persistence.PhonePersistence phonePersistence;
841     @BeanReference(name = "com.liferay.portal.service.persistence.PluginSettingPersistence.impl")
842     protected com.liferay.portal.service.persistence.PluginSettingPersistence pluginSettingPersistence;
843     @BeanReference(name = "com.liferay.portal.service.persistence.PortletPersistence.impl")
844     protected com.liferay.portal.service.persistence.PortletPersistence portletPersistence;
845     @BeanReference(name = "com.liferay.portal.service.persistence.PortletItemPersistence.impl")
846     protected com.liferay.portal.service.persistence.PortletItemPersistence portletItemPersistence;
847     @BeanReference(name = "com.liferay.portal.service.persistence.PortletPreferencesPersistence.impl")
848     protected com.liferay.portal.service.persistence.PortletPreferencesPersistence portletPreferencesPersistence;
849     @BeanReference(name = "com.liferay.portal.service.persistence.RegionPersistence.impl")
850     protected com.liferay.portal.service.persistence.RegionPersistence regionPersistence;
851     @BeanReference(name = "com.liferay.portal.service.persistence.ReleasePersistence.impl")
852     protected com.liferay.portal.service.persistence.ReleasePersistence releasePersistence;
853     @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence.impl")
854     protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
855     @BeanReference(name = "com.liferay.portal.service.persistence.ResourceActionPersistence.impl")
856     protected com.liferay.portal.service.persistence.ResourceActionPersistence resourceActionPersistence;
857     @BeanReference(name = "com.liferay.portal.service.persistence.ResourceCodePersistence.impl")
858     protected com.liferay.portal.service.persistence.ResourceCodePersistence resourceCodePersistence;
859     @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePermissionPersistence.impl")
860     protected com.liferay.portal.service.persistence.ResourcePermissionPersistence resourcePermissionPersistence;
861     @BeanReference(name = "com.liferay.portal.service.persistence.RolePersistence.impl")
862     protected com.liferay.portal.service.persistence.RolePersistence rolePersistence;
863     @BeanReference(name = "com.liferay.portal.service.persistence.ServiceComponentPersistence.impl")
864     protected com.liferay.portal.service.persistence.ServiceComponentPersistence serviceComponentPersistence;
865     @BeanReference(name = "com.liferay.portal.service.persistence.ShardPersistence.impl")
866     protected com.liferay.portal.service.persistence.ShardPersistence shardPersistence;
867     @BeanReference(name = "com.liferay.portal.service.persistence.SubscriptionPersistence.impl")
868     protected com.liferay.portal.service.persistence.SubscriptionPersistence subscriptionPersistence;
869     @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence.impl")
870     protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
871     @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupPersistence.impl")
872     protected com.liferay.portal.service.persistence.UserGroupPersistence userGroupPersistence;
873     @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupRolePersistence.impl")
874     protected com.liferay.portal.service.persistence.UserGroupRolePersistence userGroupRolePersistence;
875     @BeanReference(name = "com.liferay.portal.service.persistence.UserIdMapperPersistence.impl")
876     protected com.liferay.portal.service.persistence.UserIdMapperPersistence userIdMapperPersistence;
877     @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPersistence.impl")
878     protected com.liferay.portal.service.persistence.UserTrackerPersistence userTrackerPersistence;
879     @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPathPersistence.impl")
880     protected com.liferay.portal.service.persistence.UserTrackerPathPersistence userTrackerPathPersistence;
881     @BeanReference(name = "com.liferay.portal.service.persistence.WebDAVPropsPersistence.impl")
882     protected com.liferay.portal.service.persistence.WebDAVPropsPersistence webDAVPropsPersistence;
883     @BeanReference(name = "com.liferay.portal.service.persistence.WebsitePersistence.impl")
884     protected com.liferay.portal.service.persistence.WebsitePersistence websitePersistence;
885     private static Log _log = LogFactoryUtil.getLog(ContactPersistenceImpl.class);
886 }