1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
19  
20  package com.liferay.portlet.shopping.service.persistence;
21  
22  import com.liferay.portal.SystemException;
23  import com.liferay.portal.kernel.annotation.BeanReference;
24  import com.liferay.portal.kernel.cache.CacheRegistry;
25  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
26  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
27  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
28  import com.liferay.portal.kernel.dao.orm.FinderPath;
29  import com.liferay.portal.kernel.dao.orm.Query;
30  import com.liferay.portal.kernel.dao.orm.QueryPos;
31  import com.liferay.portal.kernel.dao.orm.QueryUtil;
32  import com.liferay.portal.kernel.dao.orm.Session;
33  import com.liferay.portal.kernel.log.Log;
34  import com.liferay.portal.kernel.log.LogFactoryUtil;
35  import com.liferay.portal.kernel.util.GetterUtil;
36  import com.liferay.portal.kernel.util.OrderByComparator;
37  import com.liferay.portal.kernel.util.StringPool;
38  import com.liferay.portal.kernel.util.StringUtil;
39  import com.liferay.portal.model.ModelListener;
40  import com.liferay.portal.service.persistence.BatchSessionUtil;
41  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
42  
43  import com.liferay.portlet.shopping.NoSuchOrderException;
44  import com.liferay.portlet.shopping.model.ShoppingOrder;
45  import com.liferay.portlet.shopping.model.impl.ShoppingOrderImpl;
46  import com.liferay.portlet.shopping.model.impl.ShoppingOrderModelImpl;
47  
48  import java.util.ArrayList;
49  import java.util.Collections;
50  import java.util.List;
51  
52  /**
53   * <a href="ShoppingOrderPersistenceImpl.java.html"><b><i>View Source</i></b></a>
54   *
55   * @author Brian Wing Shun Chan
56   *
57   */
58  public class ShoppingOrderPersistenceImpl extends BasePersistenceImpl
59      implements ShoppingOrderPersistence {
60      public static final String FINDER_CLASS_NAME_ENTITY = ShoppingOrderImpl.class.getName();
61      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
62          ".List";
63      public static final FinderPath FINDER_PATH_FIND_BY_GROUPID = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
64              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
65              FINDER_CLASS_NAME_LIST, "findByGroupId",
66              new String[] { Long.class.getName() });
67      public static final FinderPath FINDER_PATH_FIND_BY_OBC_GROUPID = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
68              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
69              FINDER_CLASS_NAME_LIST, "findByGroupId",
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_GROUPID = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
77              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
78              FINDER_CLASS_NAME_LIST, "countByGroupId",
79              new String[] { Long.class.getName() });
80      public static final FinderPath FINDER_PATH_FETCH_BY_NUMBER = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
81              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
82              FINDER_CLASS_NAME_ENTITY, "fetchByNumber",
83              new String[] { String.class.getName() });
84      public static final FinderPath FINDER_PATH_COUNT_BY_NUMBER = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
85              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
86              FINDER_CLASS_NAME_LIST, "countByNumber",
87              new String[] { String.class.getName() });
88      public static final FinderPath FINDER_PATH_FETCH_BY_PPTXNID = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
89              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
90              FINDER_CLASS_NAME_ENTITY, "fetchByPPTxnId",
91              new String[] { String.class.getName() });
92      public static final FinderPath FINDER_PATH_COUNT_BY_PPTXNID = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
93              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
94              FINDER_CLASS_NAME_LIST, "countByPPTxnId",
95              new String[] { String.class.getName() });
96      public static final FinderPath FINDER_PATH_FIND_BY_G_U_PPPS = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
97              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
98              FINDER_CLASS_NAME_LIST, "findByG_U_PPPS",
99              new String[] {
100                 Long.class.getName(), Long.class.getName(),
101                 String.class.getName()
102             });
103     public static final FinderPath FINDER_PATH_FIND_BY_OBC_G_U_PPPS = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
104             ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
105             FINDER_CLASS_NAME_LIST, "findByG_U_PPPS",
106             new String[] {
107                 Long.class.getName(), Long.class.getName(),
108                 String.class.getName(),
109                 
110             "java.lang.Integer", "java.lang.Integer",
111                 "com.liferay.portal.kernel.util.OrderByComparator"
112             });
113     public static final FinderPath FINDER_PATH_COUNT_BY_G_U_PPPS = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
114             ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
115             FINDER_CLASS_NAME_LIST, "countByG_U_PPPS",
116             new String[] {
117                 Long.class.getName(), Long.class.getName(),
118                 String.class.getName()
119             });
120     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
121             ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
122             FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
123     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
124             ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
125             FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
126 
127     public void cacheResult(ShoppingOrder shoppingOrder) {
128         EntityCacheUtil.putResult(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
129             ShoppingOrderImpl.class, shoppingOrder.getPrimaryKey(),
130             shoppingOrder);
131 
132         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NUMBER,
133             new Object[] { shoppingOrder.getNumber() }, shoppingOrder);
134 
135         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_PPTXNID,
136             new Object[] { shoppingOrder.getPpTxnId() }, shoppingOrder);
137     }
138 
139     public void cacheResult(List<ShoppingOrder> shoppingOrders) {
140         for (ShoppingOrder shoppingOrder : shoppingOrders) {
141             if (EntityCacheUtil.getResult(
142                         ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
143                         ShoppingOrderImpl.class, shoppingOrder.getPrimaryKey(),
144                         this) == null) {
145                 cacheResult(shoppingOrder);
146             }
147         }
148     }
149 
150     public void clearCache() {
151         CacheRegistry.clear(ShoppingOrderImpl.class.getName());
152         EntityCacheUtil.clearCache(ShoppingOrderImpl.class.getName());
153         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
154         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
155     }
156 
157     public ShoppingOrder create(long orderId) {
158         ShoppingOrder shoppingOrder = new ShoppingOrderImpl();
159 
160         shoppingOrder.setNew(true);
161         shoppingOrder.setPrimaryKey(orderId);
162 
163         return shoppingOrder;
164     }
165 
166     public ShoppingOrder remove(long orderId)
167         throws NoSuchOrderException, SystemException {
168         Session session = null;
169 
170         try {
171             session = openSession();
172 
173             ShoppingOrder shoppingOrder = (ShoppingOrder)session.get(ShoppingOrderImpl.class,
174                     new Long(orderId));
175 
176             if (shoppingOrder == null) {
177                 if (_log.isWarnEnabled()) {
178                     _log.warn("No ShoppingOrder exists with the primary key " +
179                         orderId);
180                 }
181 
182                 throw new NoSuchOrderException(
183                     "No ShoppingOrder exists with the primary key " + orderId);
184             }
185 
186             return remove(shoppingOrder);
187         }
188         catch (NoSuchOrderException nsee) {
189             throw nsee;
190         }
191         catch (Exception e) {
192             throw processException(e);
193         }
194         finally {
195             closeSession(session);
196         }
197     }
198 
199     public ShoppingOrder remove(ShoppingOrder shoppingOrder)
200         throws SystemException {
201         for (ModelListener<ShoppingOrder> listener : listeners) {
202             listener.onBeforeRemove(shoppingOrder);
203         }
204 
205         shoppingOrder = removeImpl(shoppingOrder);
206 
207         for (ModelListener<ShoppingOrder> listener : listeners) {
208             listener.onAfterRemove(shoppingOrder);
209         }
210 
211         return shoppingOrder;
212     }
213 
214     protected ShoppingOrder removeImpl(ShoppingOrder shoppingOrder)
215         throws SystemException {
216         Session session = null;
217 
218         try {
219             session = openSession();
220 
221             if (shoppingOrder.isCachedModel() || BatchSessionUtil.isEnabled()) {
222                 Object staleObject = session.get(ShoppingOrderImpl.class,
223                         shoppingOrder.getPrimaryKeyObj());
224 
225                 if (staleObject != null) {
226                     session.evict(staleObject);
227                 }
228             }
229 
230             session.delete(shoppingOrder);
231 
232             session.flush();
233         }
234         catch (Exception e) {
235             throw processException(e);
236         }
237         finally {
238             closeSession(session);
239         }
240 
241         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
242 
243         ShoppingOrderModelImpl shoppingOrderModelImpl = (ShoppingOrderModelImpl)shoppingOrder;
244 
245         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_NUMBER,
246             new Object[] { shoppingOrderModelImpl.getOriginalNumber() });
247 
248         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_PPTXNID,
249             new Object[] { shoppingOrderModelImpl.getOriginalPpTxnId() });
250 
251         EntityCacheUtil.removeResult(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
252             ShoppingOrderImpl.class, shoppingOrder.getPrimaryKey());
253 
254         return shoppingOrder;
255     }
256 
257     /**
258      * @deprecated Use <code>update(ShoppingOrder shoppingOrder, boolean merge)</code>.
259      */
260     public ShoppingOrder update(ShoppingOrder shoppingOrder)
261         throws SystemException {
262         if (_log.isWarnEnabled()) {
263             _log.warn(
264                 "Using the deprecated update(ShoppingOrder shoppingOrder) method. Use update(ShoppingOrder shoppingOrder, boolean merge) instead.");
265         }
266 
267         return update(shoppingOrder, false);
268     }
269 
270     /**
271      * Add, update, or merge, the entity. This method also calls the model
272      * listeners to trigger the proper events associated with adding, deleting,
273      * or updating an entity.
274      *
275      * @param        shoppingOrder the entity to add, update, or merge
276      * @param        merge boolean value for whether to merge the entity. The
277      *                default value is false. Setting merge to true is more
278      *                expensive and should only be true when shoppingOrder is
279      *                transient. See LEP-5473 for a detailed discussion of this
280      *                method.
281      * @return        true if the portlet can be displayed via Ajax
282      */
283     public ShoppingOrder update(ShoppingOrder shoppingOrder, boolean merge)
284         throws SystemException {
285         boolean isNew = shoppingOrder.isNew();
286 
287         for (ModelListener<ShoppingOrder> listener : listeners) {
288             if (isNew) {
289                 listener.onBeforeCreate(shoppingOrder);
290             }
291             else {
292                 listener.onBeforeUpdate(shoppingOrder);
293             }
294         }
295 
296         shoppingOrder = updateImpl(shoppingOrder, merge);
297 
298         for (ModelListener<ShoppingOrder> listener : listeners) {
299             if (isNew) {
300                 listener.onAfterCreate(shoppingOrder);
301             }
302             else {
303                 listener.onAfterUpdate(shoppingOrder);
304             }
305         }
306 
307         return shoppingOrder;
308     }
309 
310     public ShoppingOrder updateImpl(
311         com.liferay.portlet.shopping.model.ShoppingOrder shoppingOrder,
312         boolean merge) throws SystemException {
313         boolean isNew = shoppingOrder.isNew();
314 
315         ShoppingOrderModelImpl shoppingOrderModelImpl = (ShoppingOrderModelImpl)shoppingOrder;
316 
317         Session session = null;
318 
319         try {
320             session = openSession();
321 
322             BatchSessionUtil.update(session, shoppingOrder, merge);
323 
324             shoppingOrder.setNew(false);
325         }
326         catch (Exception e) {
327             throw processException(e);
328         }
329         finally {
330             closeSession(session);
331         }
332 
333         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
334 
335         EntityCacheUtil.putResult(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
336             ShoppingOrderImpl.class, shoppingOrder.getPrimaryKey(),
337             shoppingOrder);
338 
339         if (!isNew &&
340                 (!shoppingOrder.getNumber()
341                                    .equals(shoppingOrderModelImpl.getOriginalNumber()))) {
342             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_NUMBER,
343                 new Object[] { shoppingOrderModelImpl.getOriginalNumber() });
344         }
345 
346         if (isNew ||
347                 (!shoppingOrder.getNumber()
348                                    .equals(shoppingOrderModelImpl.getOriginalNumber()))) {
349             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NUMBER,
350                 new Object[] { shoppingOrder.getNumber() }, shoppingOrder);
351         }
352 
353         if (!isNew &&
354                 (!shoppingOrder.getPpTxnId()
355                                    .equals(shoppingOrderModelImpl.getOriginalPpTxnId()))) {
356             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_PPTXNID,
357                 new Object[] { shoppingOrderModelImpl.getOriginalPpTxnId() });
358         }
359 
360         if (isNew ||
361                 (!shoppingOrder.getPpTxnId()
362                                    .equals(shoppingOrderModelImpl.getOriginalPpTxnId()))) {
363             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_PPTXNID,
364                 new Object[] { shoppingOrder.getPpTxnId() }, shoppingOrder);
365         }
366 
367         return shoppingOrder;
368     }
369 
370     public ShoppingOrder findByPrimaryKey(long orderId)
371         throws NoSuchOrderException, SystemException {
372         ShoppingOrder shoppingOrder = fetchByPrimaryKey(orderId);
373 
374         if (shoppingOrder == null) {
375             if (_log.isWarnEnabled()) {
376                 _log.warn("No ShoppingOrder exists with the primary key " +
377                     orderId);
378             }
379 
380             throw new NoSuchOrderException(
381                 "No ShoppingOrder exists with the primary key " + orderId);
382         }
383 
384         return shoppingOrder;
385     }
386 
387     public ShoppingOrder fetchByPrimaryKey(long orderId)
388         throws SystemException {
389         ShoppingOrder shoppingOrder = (ShoppingOrder)EntityCacheUtil.getResult(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
390                 ShoppingOrderImpl.class, orderId, this);
391 
392         if (shoppingOrder == null) {
393             Session session = null;
394 
395             try {
396                 session = openSession();
397 
398                 shoppingOrder = (ShoppingOrder)session.get(ShoppingOrderImpl.class,
399                         new Long(orderId));
400             }
401             catch (Exception e) {
402                 throw processException(e);
403             }
404             finally {
405                 if (shoppingOrder != null) {
406                     cacheResult(shoppingOrder);
407                 }
408 
409                 closeSession(session);
410             }
411         }
412 
413         return shoppingOrder;
414     }
415 
416     public List<ShoppingOrder> findByGroupId(long groupId)
417         throws SystemException {
418         Object[] finderArgs = new Object[] { new Long(groupId) };
419 
420         List<ShoppingOrder> list = (List<ShoppingOrder>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_GROUPID,
421                 finderArgs, this);
422 
423         if (list == null) {
424             Session session = null;
425 
426             try {
427                 session = openSession();
428 
429                 StringBuilder query = new StringBuilder();
430 
431                 query.append(
432                     "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
433 
434                 query.append("groupId = ?");
435 
436                 query.append(" ");
437 
438                 query.append("ORDER BY ");
439 
440                 query.append("createDate DESC");
441 
442                 Query q = session.createQuery(query.toString());
443 
444                 QueryPos qPos = QueryPos.getInstance(q);
445 
446                 qPos.add(groupId);
447 
448                 list = q.list();
449             }
450             catch (Exception e) {
451                 throw processException(e);
452             }
453             finally {
454                 if (list == null) {
455                     list = new ArrayList<ShoppingOrder>();
456                 }
457 
458                 cacheResult(list);
459 
460                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_GROUPID,
461                     finderArgs, list);
462 
463                 closeSession(session);
464             }
465         }
466 
467         return list;
468     }
469 
470     public List<ShoppingOrder> findByGroupId(long groupId, int start, int end)
471         throws SystemException {
472         return findByGroupId(groupId, start, end, null);
473     }
474 
475     public List<ShoppingOrder> findByGroupId(long groupId, int start, int end,
476         OrderByComparator obc) throws SystemException {
477         Object[] finderArgs = new Object[] {
478                 new Long(groupId),
479                 
480                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
481             };
482 
483         List<ShoppingOrder> list = (List<ShoppingOrder>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
484                 finderArgs, this);
485 
486         if (list == null) {
487             Session session = null;
488 
489             try {
490                 session = openSession();
491 
492                 StringBuilder query = new StringBuilder();
493 
494                 query.append(
495                     "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
496 
497                 query.append("groupId = ?");
498 
499                 query.append(" ");
500 
501                 if (obc != null) {
502                     query.append("ORDER BY ");
503                     query.append(obc.getOrderBy());
504                 }
505 
506                 else {
507                     query.append("ORDER BY ");
508 
509                     query.append("createDate DESC");
510                 }
511 
512                 Query q = session.createQuery(query.toString());
513 
514                 QueryPos qPos = QueryPos.getInstance(q);
515 
516                 qPos.add(groupId);
517 
518                 list = (List<ShoppingOrder>)QueryUtil.list(q, getDialect(),
519                         start, end);
520             }
521             catch (Exception e) {
522                 throw processException(e);
523             }
524             finally {
525                 if (list == null) {
526                     list = new ArrayList<ShoppingOrder>();
527                 }
528 
529                 cacheResult(list);
530 
531                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
532                     finderArgs, list);
533 
534                 closeSession(session);
535             }
536         }
537 
538         return list;
539     }
540 
541     public ShoppingOrder findByGroupId_First(long groupId, OrderByComparator obc)
542         throws NoSuchOrderException, SystemException {
543         List<ShoppingOrder> list = findByGroupId(groupId, 0, 1, obc);
544 
545         if (list.isEmpty()) {
546             StringBuilder msg = new StringBuilder();
547 
548             msg.append("No ShoppingOrder exists with the key {");
549 
550             msg.append("groupId=" + groupId);
551 
552             msg.append(StringPool.CLOSE_CURLY_BRACE);
553 
554             throw new NoSuchOrderException(msg.toString());
555         }
556         else {
557             return list.get(0);
558         }
559     }
560 
561     public ShoppingOrder findByGroupId_Last(long groupId, OrderByComparator obc)
562         throws NoSuchOrderException, SystemException {
563         int count = countByGroupId(groupId);
564 
565         List<ShoppingOrder> list = findByGroupId(groupId, count - 1, count, obc);
566 
567         if (list.isEmpty()) {
568             StringBuilder msg = new StringBuilder();
569 
570             msg.append("No ShoppingOrder exists with the key {");
571 
572             msg.append("groupId=" + groupId);
573 
574             msg.append(StringPool.CLOSE_CURLY_BRACE);
575 
576             throw new NoSuchOrderException(msg.toString());
577         }
578         else {
579             return list.get(0);
580         }
581     }
582 
583     public ShoppingOrder[] findByGroupId_PrevAndNext(long orderId,
584         long groupId, OrderByComparator obc)
585         throws NoSuchOrderException, SystemException {
586         ShoppingOrder shoppingOrder = findByPrimaryKey(orderId);
587 
588         int count = countByGroupId(groupId);
589 
590         Session session = null;
591 
592         try {
593             session = openSession();
594 
595             StringBuilder query = new StringBuilder();
596 
597             query.append(
598                 "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
599 
600             query.append("groupId = ?");
601 
602             query.append(" ");
603 
604             if (obc != null) {
605                 query.append("ORDER BY ");
606                 query.append(obc.getOrderBy());
607             }
608 
609             else {
610                 query.append("ORDER BY ");
611 
612                 query.append("createDate DESC");
613             }
614 
615             Query q = session.createQuery(query.toString());
616 
617             QueryPos qPos = QueryPos.getInstance(q);
618 
619             qPos.add(groupId);
620 
621             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
622                     shoppingOrder);
623 
624             ShoppingOrder[] array = new ShoppingOrderImpl[3];
625 
626             array[0] = (ShoppingOrder)objArray[0];
627             array[1] = (ShoppingOrder)objArray[1];
628             array[2] = (ShoppingOrder)objArray[2];
629 
630             return array;
631         }
632         catch (Exception e) {
633             throw processException(e);
634         }
635         finally {
636             closeSession(session);
637         }
638     }
639 
640     public ShoppingOrder findByNumber(String number)
641         throws NoSuchOrderException, SystemException {
642         ShoppingOrder shoppingOrder = fetchByNumber(number);
643 
644         if (shoppingOrder == null) {
645             StringBuilder msg = new StringBuilder();
646 
647             msg.append("No ShoppingOrder exists with the key {");
648 
649             msg.append("number=" + number);
650 
651             msg.append(StringPool.CLOSE_CURLY_BRACE);
652 
653             if (_log.isWarnEnabled()) {
654                 _log.warn(msg.toString());
655             }
656 
657             throw new NoSuchOrderException(msg.toString());
658         }
659 
660         return shoppingOrder;
661     }
662 
663     public ShoppingOrder fetchByNumber(String number) throws SystemException {
664         return fetchByNumber(number, true);
665     }
666 
667     public ShoppingOrder fetchByNumber(String number, boolean retrieveFromCache)
668         throws SystemException {
669         Object[] finderArgs = new Object[] { number };
670 
671         Object result = null;
672 
673         if (retrieveFromCache) {
674             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_NUMBER,
675                     finderArgs, this);
676         }
677 
678         if (result == null) {
679             Session session = null;
680 
681             try {
682                 session = openSession();
683 
684                 StringBuilder query = new StringBuilder();
685 
686                 query.append(
687                     "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
688 
689                 if (number == null) {
690                     query.append("number_ IS NULL");
691                 }
692                 else {
693                     query.append("number_ = ?");
694                 }
695 
696                 query.append(" ");
697 
698                 query.append("ORDER BY ");
699 
700                 query.append("createDate DESC");
701 
702                 Query q = session.createQuery(query.toString());
703 
704                 QueryPos qPos = QueryPos.getInstance(q);
705 
706                 if (number != null) {
707                     qPos.add(number);
708                 }
709 
710                 List<ShoppingOrder> list = q.list();
711 
712                 result = list;
713 
714                 ShoppingOrder shoppingOrder = null;
715 
716                 if (list.isEmpty()) {
717                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NUMBER,
718                         finderArgs, list);
719                 }
720                 else {
721                     shoppingOrder = list.get(0);
722 
723                     cacheResult(shoppingOrder);
724 
725                     if ((shoppingOrder.getNumber() == null) ||
726                             !shoppingOrder.getNumber().equals(number)) {
727                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NUMBER,
728                             finderArgs, list);
729                     }
730                 }
731 
732                 return shoppingOrder;
733             }
734             catch (Exception e) {
735                 throw processException(e);
736             }
737             finally {
738                 if (result == null) {
739                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NUMBER,
740                         finderArgs, new ArrayList<ShoppingOrder>());
741                 }
742 
743                 closeSession(session);
744             }
745         }
746         else {
747             if (result instanceof List) {
748                 return null;
749             }
750             else {
751                 return (ShoppingOrder)result;
752             }
753         }
754     }
755 
756     public ShoppingOrder findByPPTxnId(String ppTxnId)
757         throws NoSuchOrderException, SystemException {
758         ShoppingOrder shoppingOrder = fetchByPPTxnId(ppTxnId);
759 
760         if (shoppingOrder == null) {
761             StringBuilder msg = new StringBuilder();
762 
763             msg.append("No ShoppingOrder exists with the key {");
764 
765             msg.append("ppTxnId=" + ppTxnId);
766 
767             msg.append(StringPool.CLOSE_CURLY_BRACE);
768 
769             if (_log.isWarnEnabled()) {
770                 _log.warn(msg.toString());
771             }
772 
773             throw new NoSuchOrderException(msg.toString());
774         }
775 
776         return shoppingOrder;
777     }
778 
779     public ShoppingOrder fetchByPPTxnId(String ppTxnId)
780         throws SystemException {
781         return fetchByPPTxnId(ppTxnId, true);
782     }
783 
784     public ShoppingOrder fetchByPPTxnId(String ppTxnId,
785         boolean retrieveFromCache) throws SystemException {
786         Object[] finderArgs = new Object[] { ppTxnId };
787 
788         Object result = null;
789 
790         if (retrieveFromCache) {
791             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_PPTXNID,
792                     finderArgs, this);
793         }
794 
795         if (result == null) {
796             Session session = null;
797 
798             try {
799                 session = openSession();
800 
801                 StringBuilder query = new StringBuilder();
802 
803                 query.append(
804                     "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
805 
806                 if (ppTxnId == null) {
807                     query.append("ppTxnId IS NULL");
808                 }
809                 else {
810                     query.append("ppTxnId = ?");
811                 }
812 
813                 query.append(" ");
814 
815                 query.append("ORDER BY ");
816 
817                 query.append("createDate DESC");
818 
819                 Query q = session.createQuery(query.toString());
820 
821                 QueryPos qPos = QueryPos.getInstance(q);
822 
823                 if (ppTxnId != null) {
824                     qPos.add(ppTxnId);
825                 }
826 
827                 List<ShoppingOrder> list = q.list();
828 
829                 result = list;
830 
831                 ShoppingOrder shoppingOrder = null;
832 
833                 if (list.isEmpty()) {
834                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_PPTXNID,
835                         finderArgs, list);
836                 }
837                 else {
838                     shoppingOrder = list.get(0);
839 
840                     cacheResult(shoppingOrder);
841 
842                     if ((shoppingOrder.getPpTxnId() == null) ||
843                             !shoppingOrder.getPpTxnId().equals(ppTxnId)) {
844                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_PPTXNID,
845                             finderArgs, list);
846                     }
847                 }
848 
849                 return shoppingOrder;
850             }
851             catch (Exception e) {
852                 throw processException(e);
853             }
854             finally {
855                 if (result == null) {
856                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_PPTXNID,
857                         finderArgs, new ArrayList<ShoppingOrder>());
858                 }
859 
860                 closeSession(session);
861             }
862         }
863         else {
864             if (result instanceof List) {
865                 return null;
866             }
867             else {
868                 return (ShoppingOrder)result;
869             }
870         }
871     }
872 
873     public List<ShoppingOrder> findByG_U_PPPS(long groupId, long userId,
874         String ppPaymentStatus) throws SystemException {
875         Object[] finderArgs = new Object[] {
876                 new Long(groupId), new Long(userId),
877                 
878                 ppPaymentStatus
879             };
880 
881         List<ShoppingOrder> list = (List<ShoppingOrder>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_G_U_PPPS,
882                 finderArgs, this);
883 
884         if (list == null) {
885             Session session = null;
886 
887             try {
888                 session = openSession();
889 
890                 StringBuilder query = new StringBuilder();
891 
892                 query.append(
893                     "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
894 
895                 query.append("groupId = ?");
896 
897                 query.append(" AND ");
898 
899                 query.append("userId = ?");
900 
901                 query.append(" AND ");
902 
903                 if (ppPaymentStatus == null) {
904                     query.append("ppPaymentStatus IS NULL");
905                 }
906                 else {
907                     query.append("ppPaymentStatus = ?");
908                 }
909 
910                 query.append(" ");
911 
912                 query.append("ORDER BY ");
913 
914                 query.append("createDate DESC");
915 
916                 Query q = session.createQuery(query.toString());
917 
918                 QueryPos qPos = QueryPos.getInstance(q);
919 
920                 qPos.add(groupId);
921 
922                 qPos.add(userId);
923 
924                 if (ppPaymentStatus != null) {
925                     qPos.add(ppPaymentStatus);
926                 }
927 
928                 list = q.list();
929             }
930             catch (Exception e) {
931                 throw processException(e);
932             }
933             finally {
934                 if (list == null) {
935                     list = new ArrayList<ShoppingOrder>();
936                 }
937 
938                 cacheResult(list);
939 
940                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_G_U_PPPS,
941                     finderArgs, list);
942 
943                 closeSession(session);
944             }
945         }
946 
947         return list;
948     }
949 
950     public List<ShoppingOrder> findByG_U_PPPS(long groupId, long userId,
951         String ppPaymentStatus, int start, int end) throws SystemException {
952         return findByG_U_PPPS(groupId, userId, ppPaymentStatus, start, end, null);
953     }
954 
955     public List<ShoppingOrder> findByG_U_PPPS(long groupId, long userId,
956         String ppPaymentStatus, int start, int end, OrderByComparator obc)
957         throws SystemException {
958         Object[] finderArgs = new Object[] {
959                 new Long(groupId), new Long(userId),
960                 
961                 ppPaymentStatus,
962                 
963                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
964             };
965 
966         List<ShoppingOrder> list = (List<ShoppingOrder>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_G_U_PPPS,
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                     "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
979 
980                 query.append("groupId = ?");
981 
982                 query.append(" AND ");
983 
984                 query.append("userId = ?");
985 
986                 query.append(" AND ");
987 
988                 if (ppPaymentStatus == null) {
989                     query.append("ppPaymentStatus IS NULL");
990                 }
991                 else {
992                     query.append("ppPaymentStatus = ?");
993                 }
994 
995                 query.append(" ");
996 
997                 if (obc != null) {
998                     query.append("ORDER BY ");
999                     query.append(obc.getOrderBy());
1000                }
1001
1002                else {
1003                    query.append("ORDER BY ");
1004
1005                    query.append("createDate DESC");
1006                }
1007
1008                Query q = session.createQuery(query.toString());
1009
1010                QueryPos qPos = QueryPos.getInstance(q);
1011
1012                qPos.add(groupId);
1013
1014                qPos.add(userId);
1015
1016                if (ppPaymentStatus != null) {
1017                    qPos.add(ppPaymentStatus);
1018                }
1019
1020                list = (List<ShoppingOrder>)QueryUtil.list(q, getDialect(),
1021                        start, end);
1022            }
1023            catch (Exception e) {
1024                throw processException(e);
1025            }
1026            finally {
1027                if (list == null) {
1028                    list = new ArrayList<ShoppingOrder>();
1029                }
1030
1031                cacheResult(list);
1032
1033                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_G_U_PPPS,
1034                    finderArgs, list);
1035
1036                closeSession(session);
1037            }
1038        }
1039
1040        return list;
1041    }
1042
1043    public ShoppingOrder findByG_U_PPPS_First(long groupId, long userId,
1044        String ppPaymentStatus, OrderByComparator obc)
1045        throws NoSuchOrderException, SystemException {
1046        List<ShoppingOrder> list = findByG_U_PPPS(groupId, userId,
1047                ppPaymentStatus, 0, 1, obc);
1048
1049        if (list.isEmpty()) {
1050            StringBuilder msg = new StringBuilder();
1051
1052            msg.append("No ShoppingOrder exists with the key {");
1053
1054            msg.append("groupId=" + groupId);
1055
1056            msg.append(", ");
1057            msg.append("userId=" + userId);
1058
1059            msg.append(", ");
1060            msg.append("ppPaymentStatus=" + ppPaymentStatus);
1061
1062            msg.append(StringPool.CLOSE_CURLY_BRACE);
1063
1064            throw new NoSuchOrderException(msg.toString());
1065        }
1066        else {
1067            return list.get(0);
1068        }
1069    }
1070
1071    public ShoppingOrder findByG_U_PPPS_Last(long groupId, long userId,
1072        String ppPaymentStatus, OrderByComparator obc)
1073        throws NoSuchOrderException, SystemException {
1074        int count = countByG_U_PPPS(groupId, userId, ppPaymentStatus);
1075
1076        List<ShoppingOrder> list = findByG_U_PPPS(groupId, userId,
1077                ppPaymentStatus, count - 1, count, obc);
1078
1079        if (list.isEmpty()) {
1080            StringBuilder msg = new StringBuilder();
1081
1082            msg.append("No ShoppingOrder exists with the key {");
1083
1084            msg.append("groupId=" + groupId);
1085
1086            msg.append(", ");
1087            msg.append("userId=" + userId);
1088
1089            msg.append(", ");
1090            msg.append("ppPaymentStatus=" + ppPaymentStatus);
1091
1092            msg.append(StringPool.CLOSE_CURLY_BRACE);
1093
1094            throw new NoSuchOrderException(msg.toString());
1095        }
1096        else {
1097            return list.get(0);
1098        }
1099    }
1100
1101    public ShoppingOrder[] findByG_U_PPPS_PrevAndNext(long orderId,
1102        long groupId, long userId, String ppPaymentStatus, OrderByComparator obc)
1103        throws NoSuchOrderException, SystemException {
1104        ShoppingOrder shoppingOrder = findByPrimaryKey(orderId);
1105
1106        int count = countByG_U_PPPS(groupId, userId, ppPaymentStatus);
1107
1108        Session session = null;
1109
1110        try {
1111            session = openSession();
1112
1113            StringBuilder query = new StringBuilder();
1114
1115            query.append(
1116                "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
1117
1118            query.append("groupId = ?");
1119
1120            query.append(" AND ");
1121
1122            query.append("userId = ?");
1123
1124            query.append(" AND ");
1125
1126            if (ppPaymentStatus == null) {
1127                query.append("ppPaymentStatus IS NULL");
1128            }
1129            else {
1130                query.append("ppPaymentStatus = ?");
1131            }
1132
1133            query.append(" ");
1134
1135            if (obc != null) {
1136                query.append("ORDER BY ");
1137                query.append(obc.getOrderBy());
1138            }
1139
1140            else {
1141                query.append("ORDER BY ");
1142
1143                query.append("createDate DESC");
1144            }
1145
1146            Query q = session.createQuery(query.toString());
1147
1148            QueryPos qPos = QueryPos.getInstance(q);
1149
1150            qPos.add(groupId);
1151
1152            qPos.add(userId);
1153
1154            if (ppPaymentStatus != null) {
1155                qPos.add(ppPaymentStatus);
1156            }
1157
1158            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1159                    shoppingOrder);
1160
1161            ShoppingOrder[] array = new ShoppingOrderImpl[3];
1162
1163            array[0] = (ShoppingOrder)objArray[0];
1164            array[1] = (ShoppingOrder)objArray[1];
1165            array[2] = (ShoppingOrder)objArray[2];
1166
1167            return array;
1168        }
1169        catch (Exception e) {
1170            throw processException(e);
1171        }
1172        finally {
1173            closeSession(session);
1174        }
1175    }
1176
1177    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
1178        throws SystemException {
1179        Session session = null;
1180
1181        try {
1182            session = openSession();
1183
1184            dynamicQuery.compile(session);
1185
1186            return dynamicQuery.list();
1187        }
1188        catch (Exception e) {
1189            throw processException(e);
1190        }
1191        finally {
1192            closeSession(session);
1193        }
1194    }
1195
1196    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
1197        int start, int end) throws SystemException {
1198        Session session = null;
1199
1200        try {
1201            session = openSession();
1202
1203            dynamicQuery.setLimit(start, end);
1204
1205            dynamicQuery.compile(session);
1206
1207            return dynamicQuery.list();
1208        }
1209        catch (Exception e) {
1210            throw processException(e);
1211        }
1212        finally {
1213            closeSession(session);
1214        }
1215    }
1216
1217    public List<ShoppingOrder> findAll() throws SystemException {
1218        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1219    }
1220
1221    public List<ShoppingOrder> findAll(int start, int end)
1222        throws SystemException {
1223        return findAll(start, end, null);
1224    }
1225
1226    public List<ShoppingOrder> findAll(int start, int end, OrderByComparator obc)
1227        throws SystemException {
1228        Object[] finderArgs = new Object[] {
1229                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1230            };
1231
1232        List<ShoppingOrder> list = (List<ShoppingOrder>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
1233                finderArgs, this);
1234
1235        if (list == null) {
1236            Session session = null;
1237
1238            try {
1239                session = openSession();
1240
1241                StringBuilder query = new StringBuilder();
1242
1243                query.append(
1244                    "FROM com.liferay.portlet.shopping.model.ShoppingOrder ");
1245
1246                if (obc != null) {
1247                    query.append("ORDER BY ");
1248                    query.append(obc.getOrderBy());
1249                }
1250
1251                else {
1252                    query.append("ORDER BY ");
1253
1254                    query.append("createDate DESC");
1255                }
1256
1257                Query q = session.createQuery(query.toString());
1258
1259                if (obc == null) {
1260                    list = (List<ShoppingOrder>)QueryUtil.list(q, getDialect(),
1261                            start, end, false);
1262
1263                    Collections.sort(list);
1264                }
1265                else {
1266                    list = (List<ShoppingOrder>)QueryUtil.list(q, getDialect(),
1267                            start, end);
1268                }
1269            }
1270            catch (Exception e) {
1271                throw processException(e);
1272            }
1273            finally {
1274                if (list == null) {
1275                    list = new ArrayList<ShoppingOrder>();
1276                }
1277
1278                cacheResult(list);
1279
1280                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
1281
1282                closeSession(session);
1283            }
1284        }
1285
1286        return list;
1287    }
1288
1289    public void removeByGroupId(long groupId) throws SystemException {
1290        for (ShoppingOrder shoppingOrder : findByGroupId(groupId)) {
1291            remove(shoppingOrder);
1292        }
1293    }
1294
1295    public void removeByNumber(String number)
1296        throws NoSuchOrderException, SystemException {
1297        ShoppingOrder shoppingOrder = findByNumber(number);
1298
1299        remove(shoppingOrder);
1300    }
1301
1302    public void removeByPPTxnId(String ppTxnId)
1303        throws NoSuchOrderException, SystemException {
1304        ShoppingOrder shoppingOrder = findByPPTxnId(ppTxnId);
1305
1306        remove(shoppingOrder);
1307    }
1308
1309    public void removeByG_U_PPPS(long groupId, long userId,
1310        String ppPaymentStatus) throws SystemException {
1311        for (ShoppingOrder shoppingOrder : findByG_U_PPPS(groupId, userId,
1312                ppPaymentStatus)) {
1313            remove(shoppingOrder);
1314        }
1315    }
1316
1317    public void removeAll() throws SystemException {
1318        for (ShoppingOrder shoppingOrder : findAll()) {
1319            remove(shoppingOrder);
1320        }
1321    }
1322
1323    public int countByGroupId(long groupId) throws SystemException {
1324        Object[] finderArgs = new Object[] { new Long(groupId) };
1325
1326        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_GROUPID,
1327                finderArgs, this);
1328
1329        if (count == null) {
1330            Session session = null;
1331
1332            try {
1333                session = openSession();
1334
1335                StringBuilder query = new StringBuilder();
1336
1337                query.append("SELECT COUNT(*) ");
1338                query.append(
1339                    "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
1340
1341                query.append("groupId = ?");
1342
1343                query.append(" ");
1344
1345                Query q = session.createQuery(query.toString());
1346
1347                QueryPos qPos = QueryPos.getInstance(q);
1348
1349                qPos.add(groupId);
1350
1351                count = (Long)q.uniqueResult();
1352            }
1353            catch (Exception e) {
1354                throw processException(e);
1355            }
1356            finally {
1357                if (count == null) {
1358                    count = Long.valueOf(0);
1359                }
1360
1361                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_GROUPID,
1362                    finderArgs, count);
1363
1364                closeSession(session);
1365            }
1366        }
1367
1368        return count.intValue();
1369    }
1370
1371    public int countByNumber(String number) throws SystemException {
1372        Object[] finderArgs = new Object[] { number };
1373
1374        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_NUMBER,
1375                finderArgs, this);
1376
1377        if (count == null) {
1378            Session session = null;
1379
1380            try {
1381                session = openSession();
1382
1383                StringBuilder query = new StringBuilder();
1384
1385                query.append("SELECT COUNT(*) ");
1386                query.append(
1387                    "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
1388
1389                if (number == null) {
1390                    query.append("number_ IS NULL");
1391                }
1392                else {
1393                    query.append("number_ = ?");
1394                }
1395
1396                query.append(" ");
1397
1398                Query q = session.createQuery(query.toString());
1399
1400                QueryPos qPos = QueryPos.getInstance(q);
1401
1402                if (number != null) {
1403                    qPos.add(number);
1404                }
1405
1406                count = (Long)q.uniqueResult();
1407            }
1408            catch (Exception e) {
1409                throw processException(e);
1410            }
1411            finally {
1412                if (count == null) {
1413                    count = Long.valueOf(0);
1414                }
1415
1416                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_NUMBER,
1417                    finderArgs, count);
1418
1419                closeSession(session);
1420            }
1421        }
1422
1423        return count.intValue();
1424    }
1425
1426    public int countByPPTxnId(String ppTxnId) throws SystemException {
1427        Object[] finderArgs = new Object[] { ppTxnId };
1428
1429        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_PPTXNID,
1430                finderArgs, this);
1431
1432        if (count == null) {
1433            Session session = null;
1434
1435            try {
1436                session = openSession();
1437
1438                StringBuilder query = new StringBuilder();
1439
1440                query.append("SELECT COUNT(*) ");
1441                query.append(
1442                    "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
1443
1444                if (ppTxnId == null) {
1445                    query.append("ppTxnId IS NULL");
1446                }
1447                else {
1448                    query.append("ppTxnId = ?");
1449                }
1450
1451                query.append(" ");
1452
1453                Query q = session.createQuery(query.toString());
1454
1455                QueryPos qPos = QueryPos.getInstance(q);
1456
1457                if (ppTxnId != null) {
1458                    qPos.add(ppTxnId);
1459                }
1460
1461                count = (Long)q.uniqueResult();
1462            }
1463            catch (Exception e) {
1464                throw processException(e);
1465            }
1466            finally {
1467                if (count == null) {
1468                    count = Long.valueOf(0);
1469                }
1470
1471                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_PPTXNID,
1472                    finderArgs, count);
1473
1474                closeSession(session);
1475            }
1476        }
1477
1478        return count.intValue();
1479    }
1480
1481    public int countByG_U_PPPS(long groupId, long userId, String ppPaymentStatus)
1482        throws SystemException {
1483        Object[] finderArgs = new Object[] {
1484                new Long(groupId), new Long(userId),
1485                
1486                ppPaymentStatus
1487            };
1488
1489        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_U_PPPS,
1490                finderArgs, this);
1491
1492        if (count == null) {
1493            Session session = null;
1494
1495            try {
1496                session = openSession();
1497
1498                StringBuilder query = new StringBuilder();
1499
1500                query.append("SELECT COUNT(*) ");
1501                query.append(
1502                    "FROM com.liferay.portlet.shopping.model.ShoppingOrder WHERE ");
1503
1504                query.append("groupId = ?");
1505
1506                query.append(" AND ");
1507
1508                query.append("userId = ?");
1509
1510                query.append(" AND ");
1511
1512                if (ppPaymentStatus == null) {
1513                    query.append("ppPaymentStatus IS NULL");
1514                }
1515                else {
1516                    query.append("ppPaymentStatus = ?");
1517                }
1518
1519                query.append(" ");
1520
1521                Query q = session.createQuery(query.toString());
1522
1523                QueryPos qPos = QueryPos.getInstance(q);
1524
1525                qPos.add(groupId);
1526
1527                qPos.add(userId);
1528
1529                if (ppPaymentStatus != null) {
1530                    qPos.add(ppPaymentStatus);
1531                }
1532
1533                count = (Long)q.uniqueResult();
1534            }
1535            catch (Exception e) {
1536                throw processException(e);
1537            }
1538            finally {
1539                if (count == null) {
1540                    count = Long.valueOf(0);
1541                }
1542
1543                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_U_PPPS,
1544                    finderArgs, count);
1545
1546                closeSession(session);
1547            }
1548        }
1549
1550        return count.intValue();
1551    }
1552
1553    public int countAll() throws SystemException {
1554        Object[] finderArgs = new Object[0];
1555
1556        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
1557                finderArgs, this);
1558
1559        if (count == null) {
1560            Session session = null;
1561
1562            try {
1563                session = openSession();
1564
1565                Query q = session.createQuery(
1566                        "SELECT COUNT(*) FROM com.liferay.portlet.shopping.model.ShoppingOrder");
1567
1568                count = (Long)q.uniqueResult();
1569            }
1570            catch (Exception e) {
1571                throw processException(e);
1572            }
1573            finally {
1574                if (count == null) {
1575                    count = Long.valueOf(0);
1576                }
1577
1578                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
1579                    count);
1580
1581                closeSession(session);
1582            }
1583        }
1584
1585        return count.intValue();
1586    }
1587
1588    public void afterPropertiesSet() {
1589        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
1590                    com.liferay.portal.util.PropsUtil.get(
1591                        "value.object.listener.com.liferay.portlet.shopping.model.ShoppingOrder")));
1592
1593        if (listenerClassNames.length > 0) {
1594            try {
1595                List<ModelListener<ShoppingOrder>> listenersList = new ArrayList<ModelListener<ShoppingOrder>>();
1596
1597                for (String listenerClassName : listenerClassNames) {
1598                    listenersList.add((ModelListener<ShoppingOrder>)Class.forName(
1599                            listenerClassName).newInstance());
1600                }
1601
1602                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
1603            }
1604            catch (Exception e) {
1605                _log.error(e);
1606            }
1607        }
1608    }
1609
1610    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingCartPersistence.impl")
1611    protected com.liferay.portlet.shopping.service.persistence.ShoppingCartPersistence shoppingCartPersistence;
1612    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingCategoryPersistence.impl")
1613    protected com.liferay.portlet.shopping.service.persistence.ShoppingCategoryPersistence shoppingCategoryPersistence;
1614    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingCouponPersistence.impl")
1615    protected com.liferay.portlet.shopping.service.persistence.ShoppingCouponPersistence shoppingCouponPersistence;
1616    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingItemPersistence.impl")
1617    protected com.liferay.portlet.shopping.service.persistence.ShoppingItemPersistence shoppingItemPersistence;
1618    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingItemFieldPersistence.impl")
1619    protected com.liferay.portlet.shopping.service.persistence.ShoppingItemFieldPersistence shoppingItemFieldPersistence;
1620    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingItemPricePersistence.impl")
1621    protected com.liferay.portlet.shopping.service.persistence.ShoppingItemPricePersistence shoppingItemPricePersistence;
1622    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingOrderPersistence.impl")
1623    protected com.liferay.portlet.shopping.service.persistence.ShoppingOrderPersistence shoppingOrderPersistence;
1624    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingOrderItemPersistence.impl")
1625    protected com.liferay.portlet.shopping.service.persistence.ShoppingOrderItemPersistence shoppingOrderItemPersistence;
1626    @BeanReference(name = "com.liferay.portal.service.persistence.CompanyPersistence.impl")
1627    protected com.liferay.portal.service.persistence.CompanyPersistence companyPersistence;
1628    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence.impl")
1629    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
1630    @BeanReference(name = "com.liferay.portlet.messageboards.service.persistence.MBMessagePersistence.impl")
1631    protected com.liferay.portlet.messageboards.service.persistence.MBMessagePersistence mbMessagePersistence;
1632    private static Log _log = LogFactoryUtil.getLog(ShoppingOrderPersistenceImpl.class);
1633}