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