1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portlet.wiki.service.persistence;
16  
17  import com.liferay.portal.NoSuchModelException;
18  import com.liferay.portal.kernel.annotation.BeanReference;
19  import com.liferay.portal.kernel.cache.CacheRegistry;
20  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
21  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
22  import com.liferay.portal.kernel.dao.orm.FinderPath;
23  import com.liferay.portal.kernel.dao.orm.Query;
24  import com.liferay.portal.kernel.dao.orm.QueryPos;
25  import com.liferay.portal.kernel.dao.orm.QueryUtil;
26  import com.liferay.portal.kernel.dao.orm.Session;
27  import com.liferay.portal.kernel.exception.SystemException;
28  import com.liferay.portal.kernel.log.Log;
29  import com.liferay.portal.kernel.log.LogFactoryUtil;
30  import com.liferay.portal.kernel.util.GetterUtil;
31  import com.liferay.portal.kernel.util.InstanceFactory;
32  import com.liferay.portal.kernel.util.OrderByComparator;
33  import com.liferay.portal.kernel.util.StringBundler;
34  import com.liferay.portal.kernel.util.StringPool;
35  import com.liferay.portal.kernel.util.StringUtil;
36  import com.liferay.portal.kernel.util.Validator;
37  import com.liferay.portal.kernel.uuid.PortalUUIDUtil;
38  import com.liferay.portal.model.ModelListener;
39  import com.liferay.portal.service.persistence.BatchSessionUtil;
40  import com.liferay.portal.service.persistence.CompanyPersistence;
41  import com.liferay.portal.service.persistence.GroupPersistence;
42  import com.liferay.portal.service.persistence.PortletPreferencesPersistence;
43  import com.liferay.portal.service.persistence.ResourcePersistence;
44  import com.liferay.portal.service.persistence.SubscriptionPersistence;
45  import com.liferay.portal.service.persistence.UserPersistence;
46  import com.liferay.portal.service.persistence.WorkflowInstanceLinkPersistence;
47  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
48  
49  import com.liferay.portlet.asset.service.persistence.AssetCategoryPersistence;
50  import com.liferay.portlet.asset.service.persistence.AssetEntryPersistence;
51  import com.liferay.portlet.asset.service.persistence.AssetTagPersistence;
52  import com.liferay.portlet.expando.service.persistence.ExpandoValuePersistence;
53  import com.liferay.portlet.messageboards.service.persistence.MBMessagePersistence;
54  import com.liferay.portlet.social.service.persistence.SocialActivityPersistence;
55  import com.liferay.portlet.social.service.persistence.SocialEquityLogPersistence;
56  import com.liferay.portlet.wiki.NoSuchPageException;
57  import com.liferay.portlet.wiki.model.WikiPage;
58  import com.liferay.portlet.wiki.model.impl.WikiPageImpl;
59  import com.liferay.portlet.wiki.model.impl.WikiPageModelImpl;
60  
61  import java.io.Serializable;
62  
63  import java.util.ArrayList;
64  import java.util.Collections;
65  import java.util.List;
66  
67  /**
68   * <a href="WikiPagePersistenceImpl.java.html"><b><i>View Source</i></b></a>
69   *
70   * <p>
71   * ServiceBuilder generated this class. Modifications in this class will be
72   * overwritten the next time is generated.
73   * </p>
74   *
75   * @author    Brian Wing Shun Chan
76   * @see       WikiPagePersistence
77   * @see       WikiPageUtil
78   * @generated
79   */
80  public class WikiPagePersistenceImpl extends BasePersistenceImpl<WikiPage>
81      implements WikiPagePersistence {
82      public static final String FINDER_CLASS_NAME_ENTITY = WikiPageImpl.class.getName();
83      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
84          ".List";
85      public static final FinderPath FINDER_PATH_FIND_BY_UUID = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
86              WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
87              "findByUuid",
88              new String[] {
89                  String.class.getName(),
90                  
91              "java.lang.Integer", "java.lang.Integer",
92                  "com.liferay.portal.kernel.util.OrderByComparator"
93              });
94      public static final FinderPath FINDER_PATH_COUNT_BY_UUID = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
95              WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
96              "countByUuid", new String[] { String.class.getName() });
97      public static final FinderPath FINDER_PATH_FETCH_BY_UUID_G = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
98              WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_ENTITY,
99              "fetchByUUID_G",
100             new String[] { String.class.getName(), Long.class.getName() });
101     public static final FinderPath FINDER_PATH_COUNT_BY_UUID_G = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
102             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
103             "countByUUID_G",
104             new String[] { String.class.getName(), Long.class.getName() });
105     public static final FinderPath FINDER_PATH_FIND_BY_NODEID = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
106             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
107             "findByNodeId",
108             new String[] {
109                 Long.class.getName(),
110                 
111             "java.lang.Integer", "java.lang.Integer",
112                 "com.liferay.portal.kernel.util.OrderByComparator"
113             });
114     public static final FinderPath FINDER_PATH_COUNT_BY_NODEID = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
115             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
116             "countByNodeId", new String[] { Long.class.getName() });
117     public static final FinderPath FINDER_PATH_FIND_BY_FORMAT = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
118             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
119             "findByFormat",
120             new String[] {
121                 String.class.getName(),
122                 
123             "java.lang.Integer", "java.lang.Integer",
124                 "com.liferay.portal.kernel.util.OrderByComparator"
125             });
126     public static final FinderPath FINDER_PATH_COUNT_BY_FORMAT = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
127             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
128             "countByFormat", new String[] { String.class.getName() });
129     public static final FinderPath FINDER_PATH_FIND_BY_R_N = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
130             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
131             "findByR_N",
132             new String[] {
133                 Long.class.getName(), Long.class.getName(),
134                 
135             "java.lang.Integer", "java.lang.Integer",
136                 "com.liferay.portal.kernel.util.OrderByComparator"
137             });
138     public static final FinderPath FINDER_PATH_COUNT_BY_R_N = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
139             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
140             "countByR_N",
141             new String[] { Long.class.getName(), Long.class.getName() });
142     public static final FinderPath FINDER_PATH_FIND_BY_N_T = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
143             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
144             "findByN_T",
145             new String[] {
146                 Long.class.getName(), String.class.getName(),
147                 
148             "java.lang.Integer", "java.lang.Integer",
149                 "com.liferay.portal.kernel.util.OrderByComparator"
150             });
151     public static final FinderPath FINDER_PATH_COUNT_BY_N_T = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
152             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
153             "countByN_T",
154             new String[] { Long.class.getName(), String.class.getName() });
155     public static final FinderPath FINDER_PATH_FIND_BY_N_H = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
156             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
157             "findByN_H",
158             new String[] {
159                 Long.class.getName(), Boolean.class.getName(),
160                 
161             "java.lang.Integer", "java.lang.Integer",
162                 "com.liferay.portal.kernel.util.OrderByComparator"
163             });
164     public static final FinderPath FINDER_PATH_COUNT_BY_N_H = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
165             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
166             "countByN_H",
167             new String[] { Long.class.getName(), Boolean.class.getName() });
168     public static final FinderPath FINDER_PATH_FIND_BY_N_P = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
169             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
170             "findByN_P",
171             new String[] {
172                 Long.class.getName(), String.class.getName(),
173                 
174             "java.lang.Integer", "java.lang.Integer",
175                 "com.liferay.portal.kernel.util.OrderByComparator"
176             });
177     public static final FinderPath FINDER_PATH_COUNT_BY_N_P = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
178             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
179             "countByN_P",
180             new String[] { Long.class.getName(), String.class.getName() });
181     public static final FinderPath FINDER_PATH_FIND_BY_N_R = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
182             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
183             "findByN_R",
184             new String[] {
185                 Long.class.getName(), String.class.getName(),
186                 
187             "java.lang.Integer", "java.lang.Integer",
188                 "com.liferay.portal.kernel.util.OrderByComparator"
189             });
190     public static final FinderPath FINDER_PATH_COUNT_BY_N_R = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
191             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
192             "countByN_R",
193             new String[] { Long.class.getName(), String.class.getName() });
194     public static final FinderPath FINDER_PATH_FIND_BY_N_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
195             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
196             "findByN_S",
197             new String[] {
198                 Long.class.getName(), Integer.class.getName(),
199                 
200             "java.lang.Integer", "java.lang.Integer",
201                 "com.liferay.portal.kernel.util.OrderByComparator"
202             });
203     public static final FinderPath FINDER_PATH_COUNT_BY_N_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
204             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
205             "countByN_S",
206             new String[] { Long.class.getName(), Integer.class.getName() });
207     public static final FinderPath FINDER_PATH_FETCH_BY_R_N_V = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
208             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_ENTITY,
209             "fetchByR_N_V",
210             new String[] {
211                 Long.class.getName(), Long.class.getName(),
212                 Double.class.getName()
213             });
214     public static final FinderPath FINDER_PATH_COUNT_BY_R_N_V = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
215             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
216             "countByR_N_V",
217             new String[] {
218                 Long.class.getName(), Long.class.getName(),
219                 Double.class.getName()
220             });
221     public static final FinderPath FINDER_PATH_FIND_BY_R_N_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
222             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
223             "findByR_N_S",
224             new String[] {
225                 Long.class.getName(), Long.class.getName(),
226                 Integer.class.getName(),
227                 
228             "java.lang.Integer", "java.lang.Integer",
229                 "com.liferay.portal.kernel.util.OrderByComparator"
230             });
231     public static final FinderPath FINDER_PATH_COUNT_BY_R_N_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
232             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
233             "countByR_N_S",
234             new String[] {
235                 Long.class.getName(), Long.class.getName(),
236                 Integer.class.getName()
237             });
238     public static final FinderPath FINDER_PATH_FIND_BY_U_N_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
239             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
240             "findByU_N_S",
241             new String[] {
242                 Long.class.getName(), Long.class.getName(),
243                 Integer.class.getName(),
244                 
245             "java.lang.Integer", "java.lang.Integer",
246                 "com.liferay.portal.kernel.util.OrderByComparator"
247             });
248     public static final FinderPath FINDER_PATH_COUNT_BY_U_N_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
249             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
250             "countByU_N_S",
251             new String[] {
252                 Long.class.getName(), Long.class.getName(),
253                 Integer.class.getName()
254             });
255     public static final FinderPath FINDER_PATH_FETCH_BY_N_T_V = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
256             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_ENTITY,
257             "fetchByN_T_V",
258             new String[] {
259                 Long.class.getName(), String.class.getName(),
260                 Double.class.getName()
261             });
262     public static final FinderPath FINDER_PATH_COUNT_BY_N_T_V = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
263             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
264             "countByN_T_V",
265             new String[] {
266                 Long.class.getName(), String.class.getName(),
267                 Double.class.getName()
268             });
269     public static final FinderPath FINDER_PATH_FIND_BY_N_T_H = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
270             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
271             "findByN_T_H",
272             new String[] {
273                 Long.class.getName(), String.class.getName(),
274                 Boolean.class.getName(),
275                 
276             "java.lang.Integer", "java.lang.Integer",
277                 "com.liferay.portal.kernel.util.OrderByComparator"
278             });
279     public static final FinderPath FINDER_PATH_COUNT_BY_N_T_H = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
280             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
281             "countByN_T_H",
282             new String[] {
283                 Long.class.getName(), String.class.getName(),
284                 Boolean.class.getName()
285             });
286     public static final FinderPath FINDER_PATH_FIND_BY_N_T_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
287             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
288             "findByN_T_S",
289             new String[] {
290                 Long.class.getName(), String.class.getName(),
291                 Integer.class.getName(),
292                 
293             "java.lang.Integer", "java.lang.Integer",
294                 "com.liferay.portal.kernel.util.OrderByComparator"
295             });
296     public static final FinderPath FINDER_PATH_COUNT_BY_N_T_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
297             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
298             "countByN_T_S",
299             new String[] {
300                 Long.class.getName(), String.class.getName(),
301                 Integer.class.getName()
302             });
303     public static final FinderPath FINDER_PATH_FIND_BY_N_H_P = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
304             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
305             "findByN_H_P",
306             new String[] {
307                 Long.class.getName(), Boolean.class.getName(),
308                 String.class.getName(),
309                 
310             "java.lang.Integer", "java.lang.Integer",
311                 "com.liferay.portal.kernel.util.OrderByComparator"
312             });
313     public static final FinderPath FINDER_PATH_COUNT_BY_N_H_P = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
314             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
315             "countByN_H_P",
316             new String[] {
317                 Long.class.getName(), Boolean.class.getName(),
318                 String.class.getName()
319             });
320     public static final FinderPath FINDER_PATH_FIND_BY_N_H_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
321             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
322             "findByN_H_S",
323             new String[] {
324                 Long.class.getName(), Boolean.class.getName(),
325                 Integer.class.getName(),
326                 
327             "java.lang.Integer", "java.lang.Integer",
328                 "com.liferay.portal.kernel.util.OrderByComparator"
329             });
330     public static final FinderPath FINDER_PATH_COUNT_BY_N_H_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
331             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
332             "countByN_H_S",
333             new String[] {
334                 Long.class.getName(), Boolean.class.getName(),
335                 Integer.class.getName()
336             });
337     public static final FinderPath FINDER_PATH_FIND_BY_N_H_P_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
338             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
339             "findByN_H_P_S",
340             new String[] {
341                 Long.class.getName(), Boolean.class.getName(),
342                 String.class.getName(), Integer.class.getName(),
343                 
344             "java.lang.Integer", "java.lang.Integer",
345                 "com.liferay.portal.kernel.util.OrderByComparator"
346             });
347     public static final FinderPath FINDER_PATH_COUNT_BY_N_H_P_S = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
348             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
349             "countByN_H_P_S",
350             new String[] {
351                 Long.class.getName(), Boolean.class.getName(),
352                 String.class.getName(), Integer.class.getName()
353             });
354     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
355             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
356             "findAll", new String[0]);
357     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
358             WikiPageModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
359             "countAll", new String[0]);
360 
361     public void cacheResult(WikiPage wikiPage) {
362         EntityCacheUtil.putResult(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
363             WikiPageImpl.class, wikiPage.getPrimaryKey(), wikiPage);
364 
365         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_UUID_G,
366             new Object[] { wikiPage.getUuid(), new Long(wikiPage.getGroupId()) },
367             wikiPage);
368 
369         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_R_N_V,
370             new Object[] {
371                 new Long(wikiPage.getResourcePrimKey()),
372                 new Long(wikiPage.getNodeId()),
373                 new Double(wikiPage.getVersion())
374             }, wikiPage);
375 
376         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_N_T_V,
377             new Object[] {
378                 new Long(wikiPage.getNodeId()),
379                 
380             wikiPage.getTitle(), new Double(wikiPage.getVersion())
381             }, wikiPage);
382     }
383 
384     public void cacheResult(List<WikiPage> wikiPages) {
385         for (WikiPage wikiPage : wikiPages) {
386             if (EntityCacheUtil.getResult(
387                         WikiPageModelImpl.ENTITY_CACHE_ENABLED,
388                         WikiPageImpl.class, wikiPage.getPrimaryKey(), this) == null) {
389                 cacheResult(wikiPage);
390             }
391         }
392     }
393 
394     public void clearCache() {
395         CacheRegistry.clear(WikiPageImpl.class.getName());
396         EntityCacheUtil.clearCache(WikiPageImpl.class.getName());
397         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
398         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
399     }
400 
401     public void clearCache(WikiPage wikiPage) {
402         EntityCacheUtil.removeResult(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
403             WikiPageImpl.class, wikiPage.getPrimaryKey());
404 
405         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_UUID_G,
406             new Object[] { wikiPage.getUuid(), new Long(wikiPage.getGroupId()) });
407 
408         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_R_N_V,
409             new Object[] {
410                 new Long(wikiPage.getResourcePrimKey()),
411                 new Long(wikiPage.getNodeId()),
412                 new Double(wikiPage.getVersion())
413             });
414 
415         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_N_T_V,
416             new Object[] {
417                 new Long(wikiPage.getNodeId()),
418                 
419             wikiPage.getTitle(), new Double(wikiPage.getVersion())
420             });
421     }
422 
423     public WikiPage create(long pageId) {
424         WikiPage wikiPage = new WikiPageImpl();
425 
426         wikiPage.setNew(true);
427         wikiPage.setPrimaryKey(pageId);
428 
429         String uuid = PortalUUIDUtil.generate();
430 
431         wikiPage.setUuid(uuid);
432 
433         return wikiPage;
434     }
435 
436     public WikiPage remove(Serializable primaryKey)
437         throws NoSuchModelException, SystemException {
438         return remove(((Long)primaryKey).longValue());
439     }
440 
441     public WikiPage remove(long pageId)
442         throws NoSuchPageException, SystemException {
443         Session session = null;
444 
445         try {
446             session = openSession();
447 
448             WikiPage wikiPage = (WikiPage)session.get(WikiPageImpl.class,
449                     new Long(pageId));
450 
451             if (wikiPage == null) {
452                 if (_log.isWarnEnabled()) {
453                     _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + pageId);
454                 }
455 
456                 throw new NoSuchPageException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
457                     pageId);
458             }
459 
460             return remove(wikiPage);
461         }
462         catch (NoSuchPageException nsee) {
463             throw nsee;
464         }
465         catch (Exception e) {
466             throw processException(e);
467         }
468         finally {
469             closeSession(session);
470         }
471     }
472 
473     public WikiPage remove(WikiPage wikiPage) throws SystemException {
474         for (ModelListener<WikiPage> listener : listeners) {
475             listener.onBeforeRemove(wikiPage);
476         }
477 
478         wikiPage = removeImpl(wikiPage);
479 
480         for (ModelListener<WikiPage> listener : listeners) {
481             listener.onAfterRemove(wikiPage);
482         }
483 
484         return wikiPage;
485     }
486 
487     protected WikiPage removeImpl(WikiPage wikiPage) throws SystemException {
488         wikiPage = toUnwrappedModel(wikiPage);
489 
490         Session session = null;
491 
492         try {
493             session = openSession();
494 
495             if (wikiPage.isCachedModel() || BatchSessionUtil.isEnabled()) {
496                 Object staleObject = session.get(WikiPageImpl.class,
497                         wikiPage.getPrimaryKeyObj());
498 
499                 if (staleObject != null) {
500                     session.evict(staleObject);
501                 }
502             }
503 
504             session.delete(wikiPage);
505 
506             session.flush();
507         }
508         catch (Exception e) {
509             throw processException(e);
510         }
511         finally {
512             closeSession(session);
513         }
514 
515         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
516 
517         WikiPageModelImpl wikiPageModelImpl = (WikiPageModelImpl)wikiPage;
518 
519         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_UUID_G,
520             new Object[] {
521                 wikiPageModelImpl.getOriginalUuid(),
522                 new Long(wikiPageModelImpl.getOriginalGroupId())
523             });
524 
525         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_R_N_V,
526             new Object[] {
527                 new Long(wikiPageModelImpl.getOriginalResourcePrimKey()),
528                 new Long(wikiPageModelImpl.getOriginalNodeId()),
529                 new Double(wikiPageModelImpl.getOriginalVersion())
530             });
531 
532         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_N_T_V,
533             new Object[] {
534                 new Long(wikiPageModelImpl.getOriginalNodeId()),
535                 
536             wikiPageModelImpl.getOriginalTitle(),
537                 new Double(wikiPageModelImpl.getOriginalVersion())
538             });
539 
540         EntityCacheUtil.removeResult(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
541             WikiPageImpl.class, wikiPage.getPrimaryKey());
542 
543         return wikiPage;
544     }
545 
546     public WikiPage updateImpl(
547         com.liferay.portlet.wiki.model.WikiPage wikiPage, boolean merge)
548         throws SystemException {
549         wikiPage = toUnwrappedModel(wikiPage);
550 
551         boolean isNew = wikiPage.isNew();
552 
553         WikiPageModelImpl wikiPageModelImpl = (WikiPageModelImpl)wikiPage;
554 
555         if (Validator.isNull(wikiPage.getUuid())) {
556             String uuid = PortalUUIDUtil.generate();
557 
558             wikiPage.setUuid(uuid);
559         }
560 
561         Session session = null;
562 
563         try {
564             session = openSession();
565 
566             BatchSessionUtil.update(session, wikiPage, merge);
567 
568             wikiPage.setNew(false);
569         }
570         catch (Exception e) {
571             throw processException(e);
572         }
573         finally {
574             closeSession(session);
575         }
576 
577         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
578 
579         EntityCacheUtil.putResult(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
580             WikiPageImpl.class, wikiPage.getPrimaryKey(), wikiPage);
581 
582         if (!isNew &&
583                 (!Validator.equals(wikiPage.getUuid(),
584                     wikiPageModelImpl.getOriginalUuid()) ||
585                 (wikiPage.getGroupId() != wikiPageModelImpl.getOriginalGroupId()))) {
586             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_UUID_G,
587                 new Object[] {
588                     wikiPageModelImpl.getOriginalUuid(),
589                     new Long(wikiPageModelImpl.getOriginalGroupId())
590                 });
591         }
592 
593         if (isNew ||
594                 (!Validator.equals(wikiPage.getUuid(),
595                     wikiPageModelImpl.getOriginalUuid()) ||
596                 (wikiPage.getGroupId() != wikiPageModelImpl.getOriginalGroupId()))) {
597             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_UUID_G,
598                 new Object[] { wikiPage.getUuid(), new Long(
599                         wikiPage.getGroupId()) }, wikiPage);
600         }
601 
602         if (!isNew &&
603                 ((wikiPage.getResourcePrimKey() != wikiPageModelImpl.getOriginalResourcePrimKey()) ||
604                 (wikiPage.getNodeId() != wikiPageModelImpl.getOriginalNodeId()) ||
605                 (wikiPage.getVersion() != wikiPageModelImpl.getOriginalVersion()))) {
606             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_R_N_V,
607                 new Object[] {
608                     new Long(wikiPageModelImpl.getOriginalResourcePrimKey()),
609                     new Long(wikiPageModelImpl.getOriginalNodeId()),
610                     new Double(wikiPageModelImpl.getOriginalVersion())
611                 });
612         }
613 
614         if (isNew ||
615                 ((wikiPage.getResourcePrimKey() != wikiPageModelImpl.getOriginalResourcePrimKey()) ||
616                 (wikiPage.getNodeId() != wikiPageModelImpl.getOriginalNodeId()) ||
617                 (wikiPage.getVersion() != wikiPageModelImpl.getOriginalVersion()))) {
618             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_R_N_V,
619                 new Object[] {
620                     new Long(wikiPage.getResourcePrimKey()),
621                     new Long(wikiPage.getNodeId()),
622                     new Double(wikiPage.getVersion())
623                 }, wikiPage);
624         }
625 
626         if (!isNew &&
627                 ((wikiPage.getNodeId() != wikiPageModelImpl.getOriginalNodeId()) ||
628                 !Validator.equals(wikiPage.getTitle(),
629                     wikiPageModelImpl.getOriginalTitle()) ||
630                 (wikiPage.getVersion() != wikiPageModelImpl.getOriginalVersion()))) {
631             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_N_T_V,
632                 new Object[] {
633                     new Long(wikiPageModelImpl.getOriginalNodeId()),
634                     
635                 wikiPageModelImpl.getOriginalTitle(),
636                     new Double(wikiPageModelImpl.getOriginalVersion())
637                 });
638         }
639 
640         if (isNew ||
641                 ((wikiPage.getNodeId() != wikiPageModelImpl.getOriginalNodeId()) ||
642                 !Validator.equals(wikiPage.getTitle(),
643                     wikiPageModelImpl.getOriginalTitle()) ||
644                 (wikiPage.getVersion() != wikiPageModelImpl.getOriginalVersion()))) {
645             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_N_T_V,
646                 new Object[] {
647                     new Long(wikiPage.getNodeId()),
648                     
649                 wikiPage.getTitle(), new Double(wikiPage.getVersion())
650                 }, wikiPage);
651         }
652 
653         return wikiPage;
654     }
655 
656     protected WikiPage toUnwrappedModel(WikiPage wikiPage) {
657         if (wikiPage instanceof WikiPageImpl) {
658             return wikiPage;
659         }
660 
661         WikiPageImpl wikiPageImpl = new WikiPageImpl();
662 
663         wikiPageImpl.setNew(wikiPage.isNew());
664         wikiPageImpl.setPrimaryKey(wikiPage.getPrimaryKey());
665 
666         wikiPageImpl.setUuid(wikiPage.getUuid());
667         wikiPageImpl.setPageId(wikiPage.getPageId());
668         wikiPageImpl.setResourcePrimKey(wikiPage.getResourcePrimKey());
669         wikiPageImpl.setGroupId(wikiPage.getGroupId());
670         wikiPageImpl.setCompanyId(wikiPage.getCompanyId());
671         wikiPageImpl.setUserId(wikiPage.getUserId());
672         wikiPageImpl.setUserName(wikiPage.getUserName());
673         wikiPageImpl.setCreateDate(wikiPage.getCreateDate());
674         wikiPageImpl.setModifiedDate(wikiPage.getModifiedDate());
675         wikiPageImpl.setNodeId(wikiPage.getNodeId());
676         wikiPageImpl.setTitle(wikiPage.getTitle());
677         wikiPageImpl.setVersion(wikiPage.getVersion());
678         wikiPageImpl.setMinorEdit(wikiPage.isMinorEdit());
679         wikiPageImpl.setContent(wikiPage.getContent());
680         wikiPageImpl.setSummary(wikiPage.getSummary());
681         wikiPageImpl.setFormat(wikiPage.getFormat());
682         wikiPageImpl.setHead(wikiPage.isHead());
683         wikiPageImpl.setParentTitle(wikiPage.getParentTitle());
684         wikiPageImpl.setRedirectTitle(wikiPage.getRedirectTitle());
685         wikiPageImpl.setStatus(wikiPage.getStatus());
686         wikiPageImpl.setStatusByUserId(wikiPage.getStatusByUserId());
687         wikiPageImpl.setStatusByUserName(wikiPage.getStatusByUserName());
688         wikiPageImpl.setStatusDate(wikiPage.getStatusDate());
689 
690         return wikiPageImpl;
691     }
692 
693     public WikiPage findByPrimaryKey(Serializable primaryKey)
694         throws NoSuchModelException, SystemException {
695         return findByPrimaryKey(((Long)primaryKey).longValue());
696     }
697 
698     public WikiPage findByPrimaryKey(long pageId)
699         throws NoSuchPageException, SystemException {
700         WikiPage wikiPage = fetchByPrimaryKey(pageId);
701 
702         if (wikiPage == null) {
703             if (_log.isWarnEnabled()) {
704                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + pageId);
705             }
706 
707             throw new NoSuchPageException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
708                 pageId);
709         }
710 
711         return wikiPage;
712     }
713 
714     public WikiPage fetchByPrimaryKey(Serializable primaryKey)
715         throws SystemException {
716         return fetchByPrimaryKey(((Long)primaryKey).longValue());
717     }
718 
719     public WikiPage fetchByPrimaryKey(long pageId) throws SystemException {
720         WikiPage wikiPage = (WikiPage)EntityCacheUtil.getResult(WikiPageModelImpl.ENTITY_CACHE_ENABLED,
721                 WikiPageImpl.class, pageId, this);
722 
723         if (wikiPage == null) {
724             Session session = null;
725 
726             try {
727                 session = openSession();
728 
729                 wikiPage = (WikiPage)session.get(WikiPageImpl.class,
730                         new Long(pageId));
731             }
732             catch (Exception e) {
733                 throw processException(e);
734             }
735             finally {
736                 if (wikiPage != null) {
737                     cacheResult(wikiPage);
738                 }
739 
740                 closeSession(session);
741             }
742         }
743 
744         return wikiPage;
745     }
746 
747     public List<WikiPage> findByUuid(String uuid) throws SystemException {
748         return findByUuid(uuid, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
749     }
750 
751     public List<WikiPage> findByUuid(String uuid, int start, int end)
752         throws SystemException {
753         return findByUuid(uuid, start, end, null);
754     }
755 
756     public List<WikiPage> findByUuid(String uuid, int start, int end,
757         OrderByComparator orderByComparator) throws SystemException {
758         Object[] finderArgs = new Object[] {
759                 uuid,
760                 
761                 String.valueOf(start), String.valueOf(end),
762                 String.valueOf(orderByComparator)
763             };
764 
765         List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_UUID,
766                 finderArgs, this);
767 
768         if (list == null) {
769             Session session = null;
770 
771             try {
772                 session = openSession();
773 
774                 StringBundler query = null;
775 
776                 if (orderByComparator != null) {
777                     query = new StringBundler(3 +
778                             (orderByComparator.getOrderByFields().length * 3));
779                 }
780                 else {
781                     query = new StringBundler(3);
782                 }
783 
784                 query.append(_SQL_SELECT_WIKIPAGE_WHERE);
785 
786                 if (uuid == null) {
787                     query.append(_FINDER_COLUMN_UUID_UUID_1);
788                 }
789                 else {
790                     if (uuid.equals(StringPool.BLANK)) {
791                         query.append(_FINDER_COLUMN_UUID_UUID_3);
792                     }
793                     else {
794                         query.append(_FINDER_COLUMN_UUID_UUID_2);
795                     }
796                 }
797 
798                 if (orderByComparator != null) {
799                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
800                         orderByComparator);
801                 }
802 
803                 else {
804                     query.append(WikiPageModelImpl.ORDER_BY_JPQL);
805                 }
806 
807                 String sql = query.toString();
808 
809                 Query q = session.createQuery(sql);
810 
811                 QueryPos qPos = QueryPos.getInstance(q);
812 
813                 if (uuid != null) {
814                     qPos.add(uuid);
815                 }
816 
817                 list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
818                         end);
819             }
820             catch (Exception e) {
821                 throw processException(e);
822             }
823             finally {
824                 if (list == null) {
825                     list = new ArrayList<WikiPage>();
826                 }
827 
828                 cacheResult(list);
829 
830                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_UUID, finderArgs,
831                     list);
832 
833                 closeSession(session);
834             }
835         }
836 
837         return list;
838     }
839 
840     public WikiPage findByUuid_First(String uuid,
841         OrderByComparator orderByComparator)
842         throws NoSuchPageException, SystemException {
843         List<WikiPage> list = findByUuid(uuid, 0, 1, orderByComparator);
844 
845         if (list.isEmpty()) {
846             StringBundler msg = new StringBundler(4);
847 
848             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
849 
850             msg.append("uuid=");
851             msg.append(uuid);
852 
853             msg.append(StringPool.CLOSE_CURLY_BRACE);
854 
855             throw new NoSuchPageException(msg.toString());
856         }
857         else {
858             return list.get(0);
859         }
860     }
861 
862     public WikiPage findByUuid_Last(String uuid,
863         OrderByComparator orderByComparator)
864         throws NoSuchPageException, SystemException {
865         int count = countByUuid(uuid);
866 
867         List<WikiPage> list = findByUuid(uuid, count - 1, count,
868                 orderByComparator);
869 
870         if (list.isEmpty()) {
871             StringBundler msg = new StringBundler(4);
872 
873             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
874 
875             msg.append("uuid=");
876             msg.append(uuid);
877 
878             msg.append(StringPool.CLOSE_CURLY_BRACE);
879 
880             throw new NoSuchPageException(msg.toString());
881         }
882         else {
883             return list.get(0);
884         }
885     }
886 
887     public WikiPage[] findByUuid_PrevAndNext(long pageId, String uuid,
888         OrderByComparator orderByComparator)
889         throws NoSuchPageException, SystemException {
890         WikiPage wikiPage = findByPrimaryKey(pageId);
891 
892         Session session = null;
893 
894         try {
895             session = openSession();
896 
897             WikiPage[] array = new WikiPageImpl[3];
898 
899             array[0] = getByUuid_PrevAndNext(session, wikiPage, uuid,
900                     orderByComparator, true);
901 
902             array[1] = wikiPage;
903 
904             array[2] = getByUuid_PrevAndNext(session, wikiPage, uuid,
905                     orderByComparator, false);
906 
907             return array;
908         }
909         catch (Exception e) {
910             throw processException(e);
911         }
912         finally {
913             closeSession(session);
914         }
915     }
916 
917     protected WikiPage getByUuid_PrevAndNext(Session session,
918         WikiPage wikiPage, String uuid, OrderByComparator orderByComparator,
919         boolean previous) {
920         StringBundler query = null;
921 
922         if (orderByComparator != null) {
923             query = new StringBundler(6 +
924                     (orderByComparator.getOrderByFields().length * 6));
925         }
926         else {
927             query = new StringBundler(3);
928         }
929 
930         query.append(_SQL_SELECT_WIKIPAGE_WHERE);
931 
932         if (uuid == null) {
933             query.append(_FINDER_COLUMN_UUID_UUID_1);
934         }
935         else {
936             if (uuid.equals(StringPool.BLANK)) {
937                 query.append(_FINDER_COLUMN_UUID_UUID_3);
938             }
939             else {
940                 query.append(_FINDER_COLUMN_UUID_UUID_2);
941             }
942         }
943 
944         if (orderByComparator != null) {
945             String[] orderByFields = orderByComparator.getOrderByFields();
946 
947             if (orderByFields.length > 0) {
948                 query.append(WHERE_AND);
949             }
950 
951             for (int i = 0; i < orderByFields.length; i++) {
952                 query.append(_ORDER_BY_ENTITY_ALIAS);
953                 query.append(orderByFields[i]);
954 
955                 if ((i + 1) < orderByFields.length) {
956                     if (orderByComparator.isAscending() ^ previous) {
957                         query.append(WHERE_GREATER_THAN_HAS_NEXT);
958                     }
959                     else {
960                         query.append(WHERE_LESSER_THAN_HAS_NEXT);
961                     }
962                 }
963                 else {
964                     if (orderByComparator.isAscending() ^ previous) {
965                         query.append(WHERE_GREATER_THAN);
966                     }
967                     else {
968                         query.append(WHERE_LESSER_THAN);
969                     }
970                 }
971             }
972 
973             query.append(ORDER_BY_CLAUSE);
974 
975             for (int i = 0; i < orderByFields.length; i++) {
976                 query.append(_ORDER_BY_ENTITY_ALIAS);
977                 query.append(orderByFields[i]);
978 
979                 if ((i + 1) < orderByFields.length) {
980                     if (orderByComparator.isAscending() ^ previous) {
981                         query.append(ORDER_BY_ASC_HAS_NEXT);
982                     }
983                     else {
984                         query.append(ORDER_BY_DESC_HAS_NEXT);
985                     }
986                 }
987                 else {
988                     if (orderByComparator.isAscending() ^ previous) {
989                         query.append(ORDER_BY_ASC);
990                     }
991                     else {
992                         query.append(ORDER_BY_DESC);
993                     }
994                 }
995             }
996         }
997 
998         else {
999             query.append(WikiPageModelImpl.ORDER_BY_JPQL);
1000        }
1001
1002        String sql = query.toString();
1003
1004        Query q = session.createQuery(sql);
1005
1006        q.setFirstResult(0);
1007        q.setMaxResults(2);
1008
1009        QueryPos qPos = QueryPos.getInstance(q);
1010
1011        if (uuid != null) {
1012            qPos.add(uuid);
1013        }
1014
1015        if (orderByComparator != null) {
1016            Object[] values = orderByComparator.getOrderByValues(wikiPage);
1017
1018            for (Object value : values) {
1019                qPos.add(value);
1020            }
1021        }
1022
1023        List<WikiPage> list = q.list();
1024
1025        if (list.size() == 2) {
1026            return list.get(1);
1027        }
1028        else {
1029            return null;
1030        }
1031    }
1032
1033    public WikiPage findByUUID_G(String uuid, long groupId)
1034        throws NoSuchPageException, SystemException {
1035        WikiPage wikiPage = fetchByUUID_G(uuid, groupId);
1036
1037        if (wikiPage == null) {
1038            StringBundler msg = new StringBundler(6);
1039
1040            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1041
1042            msg.append("uuid=");
1043            msg.append(uuid);
1044
1045            msg.append(", groupId=");
1046            msg.append(groupId);
1047
1048            msg.append(StringPool.CLOSE_CURLY_BRACE);
1049
1050            if (_log.isWarnEnabled()) {
1051                _log.warn(msg.toString());
1052            }
1053
1054            throw new NoSuchPageException(msg.toString());
1055        }
1056
1057        return wikiPage;
1058    }
1059
1060    public WikiPage fetchByUUID_G(String uuid, long groupId)
1061        throws SystemException {
1062        return fetchByUUID_G(uuid, groupId, true);
1063    }
1064
1065    public WikiPage fetchByUUID_G(String uuid, long groupId,
1066        boolean retrieveFromCache) throws SystemException {
1067        Object[] finderArgs = new Object[] { uuid, new Long(groupId) };
1068
1069        Object result = null;
1070
1071        if (retrieveFromCache) {
1072            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_UUID_G,
1073                    finderArgs, this);
1074        }
1075
1076        if (result == null) {
1077            Session session = null;
1078
1079            try {
1080                session = openSession();
1081
1082                StringBundler query = new StringBundler(4);
1083
1084                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
1085
1086                if (uuid == null) {
1087                    query.append(_FINDER_COLUMN_UUID_G_UUID_1);
1088                }
1089                else {
1090                    if (uuid.equals(StringPool.BLANK)) {
1091                        query.append(_FINDER_COLUMN_UUID_G_UUID_3);
1092                    }
1093                    else {
1094                        query.append(_FINDER_COLUMN_UUID_G_UUID_2);
1095                    }
1096                }
1097
1098                query.append(_FINDER_COLUMN_UUID_G_GROUPID_2);
1099
1100                query.append(WikiPageModelImpl.ORDER_BY_JPQL);
1101
1102                String sql = query.toString();
1103
1104                Query q = session.createQuery(sql);
1105
1106                QueryPos qPos = QueryPos.getInstance(q);
1107
1108                if (uuid != null) {
1109                    qPos.add(uuid);
1110                }
1111
1112                qPos.add(groupId);
1113
1114                List<WikiPage> list = q.list();
1115
1116                result = list;
1117
1118                WikiPage wikiPage = null;
1119
1120                if (list.isEmpty()) {
1121                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_UUID_G,
1122                        finderArgs, list);
1123                }
1124                else {
1125                    wikiPage = list.get(0);
1126
1127                    cacheResult(wikiPage);
1128
1129                    if ((wikiPage.getUuid() == null) ||
1130                            !wikiPage.getUuid().equals(uuid) ||
1131                            (wikiPage.getGroupId() != groupId)) {
1132                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_UUID_G,
1133                            finderArgs, wikiPage);
1134                    }
1135                }
1136
1137                return wikiPage;
1138            }
1139            catch (Exception e) {
1140                throw processException(e);
1141            }
1142            finally {
1143                if (result == null) {
1144                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_UUID_G,
1145                        finderArgs, new ArrayList<WikiPage>());
1146                }
1147
1148                closeSession(session);
1149            }
1150        }
1151        else {
1152            if (result instanceof List<?>) {
1153                return null;
1154            }
1155            else {
1156                return (WikiPage)result;
1157            }
1158        }
1159    }
1160
1161    public List<WikiPage> findByNodeId(long nodeId) throws SystemException {
1162        return findByNodeId(nodeId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1163    }
1164
1165    public List<WikiPage> findByNodeId(long nodeId, int start, int end)
1166        throws SystemException {
1167        return findByNodeId(nodeId, start, end, null);
1168    }
1169
1170    public List<WikiPage> findByNodeId(long nodeId, int start, int end,
1171        OrderByComparator orderByComparator) throws SystemException {
1172        Object[] finderArgs = new Object[] {
1173                new Long(nodeId),
1174                
1175                String.valueOf(start), String.valueOf(end),
1176                String.valueOf(orderByComparator)
1177            };
1178
1179        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_NODEID,
1180                finderArgs, this);
1181
1182        if (list == null) {
1183            Session session = null;
1184
1185            try {
1186                session = openSession();
1187
1188                StringBundler query = null;
1189
1190                if (orderByComparator != null) {
1191                    query = new StringBundler(3 +
1192                            (orderByComparator.getOrderByFields().length * 3));
1193                }
1194                else {
1195                    query = new StringBundler(3);
1196                }
1197
1198                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
1199
1200                query.append(_FINDER_COLUMN_NODEID_NODEID_2);
1201
1202                if (orderByComparator != null) {
1203                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1204                        orderByComparator);
1205                }
1206
1207                else {
1208                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
1209                }
1210
1211                String sql = query.toString();
1212
1213                Query q = session.createQuery(sql);
1214
1215                QueryPos qPos = QueryPos.getInstance(q);
1216
1217                qPos.add(nodeId);
1218
1219                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
1220                        end);
1221            }
1222            catch (Exception e) {
1223                throw processException(e);
1224            }
1225            finally {
1226                if (list == null) {
1227                    list = new ArrayList<WikiPage>();
1228                }
1229
1230                cacheResult(list);
1231
1232                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_NODEID,
1233                    finderArgs, list);
1234
1235                closeSession(session);
1236            }
1237        }
1238
1239        return list;
1240    }
1241
1242    public WikiPage findByNodeId_First(long nodeId,
1243        OrderByComparator orderByComparator)
1244        throws NoSuchPageException, SystemException {
1245        List<WikiPage> list = findByNodeId(nodeId, 0, 1, orderByComparator);
1246
1247        if (list.isEmpty()) {
1248            StringBundler msg = new StringBundler(4);
1249
1250            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1251
1252            msg.append("nodeId=");
1253            msg.append(nodeId);
1254
1255            msg.append(StringPool.CLOSE_CURLY_BRACE);
1256
1257            throw new NoSuchPageException(msg.toString());
1258        }
1259        else {
1260            return list.get(0);
1261        }
1262    }
1263
1264    public WikiPage findByNodeId_Last(long nodeId,
1265        OrderByComparator orderByComparator)
1266        throws NoSuchPageException, SystemException {
1267        int count = countByNodeId(nodeId);
1268
1269        List<WikiPage> list = findByNodeId(nodeId, count - 1, count,
1270                orderByComparator);
1271
1272        if (list.isEmpty()) {
1273            StringBundler msg = new StringBundler(4);
1274
1275            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1276
1277            msg.append("nodeId=");
1278            msg.append(nodeId);
1279
1280            msg.append(StringPool.CLOSE_CURLY_BRACE);
1281
1282            throw new NoSuchPageException(msg.toString());
1283        }
1284        else {
1285            return list.get(0);
1286        }
1287    }
1288
1289    public WikiPage[] findByNodeId_PrevAndNext(long pageId, long nodeId,
1290        OrderByComparator orderByComparator)
1291        throws NoSuchPageException, SystemException {
1292        WikiPage wikiPage = findByPrimaryKey(pageId);
1293
1294        Session session = null;
1295
1296        try {
1297            session = openSession();
1298
1299            WikiPage[] array = new WikiPageImpl[3];
1300
1301            array[0] = getByNodeId_PrevAndNext(session, wikiPage, nodeId,
1302                    orderByComparator, true);
1303
1304            array[1] = wikiPage;
1305
1306            array[2] = getByNodeId_PrevAndNext(session, wikiPage, nodeId,
1307                    orderByComparator, false);
1308
1309            return array;
1310        }
1311        catch (Exception e) {
1312            throw processException(e);
1313        }
1314        finally {
1315            closeSession(session);
1316        }
1317    }
1318
1319    protected WikiPage getByNodeId_PrevAndNext(Session session,
1320        WikiPage wikiPage, long nodeId, OrderByComparator orderByComparator,
1321        boolean previous) {
1322        StringBundler query = null;
1323
1324        if (orderByComparator != null) {
1325            query = new StringBundler(6 +
1326                    (orderByComparator.getOrderByFields().length * 6));
1327        }
1328        else {
1329            query = new StringBundler(3);
1330        }
1331
1332        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
1333
1334        query.append(_FINDER_COLUMN_NODEID_NODEID_2);
1335
1336        if (orderByComparator != null) {
1337            String[] orderByFields = orderByComparator.getOrderByFields();
1338
1339            if (orderByFields.length > 0) {
1340                query.append(WHERE_AND);
1341            }
1342
1343            for (int i = 0; i < orderByFields.length; i++) {
1344                query.append(_ORDER_BY_ENTITY_ALIAS);
1345                query.append(orderByFields[i]);
1346
1347                if ((i + 1) < orderByFields.length) {
1348                    if (orderByComparator.isAscending() ^ previous) {
1349                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
1350                    }
1351                    else {
1352                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
1353                    }
1354                }
1355                else {
1356                    if (orderByComparator.isAscending() ^ previous) {
1357                        query.append(WHERE_GREATER_THAN);
1358                    }
1359                    else {
1360                        query.append(WHERE_LESSER_THAN);
1361                    }
1362                }
1363            }
1364
1365            query.append(ORDER_BY_CLAUSE);
1366
1367            for (int i = 0; i < orderByFields.length; i++) {
1368                query.append(_ORDER_BY_ENTITY_ALIAS);
1369                query.append(orderByFields[i]);
1370
1371                if ((i + 1) < orderByFields.length) {
1372                    if (orderByComparator.isAscending() ^ previous) {
1373                        query.append(ORDER_BY_ASC_HAS_NEXT);
1374                    }
1375                    else {
1376                        query.append(ORDER_BY_DESC_HAS_NEXT);
1377                    }
1378                }
1379                else {
1380                    if (orderByComparator.isAscending() ^ previous) {
1381                        query.append(ORDER_BY_ASC);
1382                    }
1383                    else {
1384                        query.append(ORDER_BY_DESC);
1385                    }
1386                }
1387            }
1388        }
1389
1390        else {
1391            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
1392        }
1393
1394        String sql = query.toString();
1395
1396        Query q = session.createQuery(sql);
1397
1398        q.setFirstResult(0);
1399        q.setMaxResults(2);
1400
1401        QueryPos qPos = QueryPos.getInstance(q);
1402
1403        qPos.add(nodeId);
1404
1405        if (orderByComparator != null) {
1406            Object[] values = orderByComparator.getOrderByValues(wikiPage);
1407
1408            for (Object value : values) {
1409                qPos.add(value);
1410            }
1411        }
1412
1413        List<WikiPage> list = q.list();
1414
1415        if (list.size() == 2) {
1416            return list.get(1);
1417        }
1418        else {
1419            return null;
1420        }
1421    }
1422
1423    public List<WikiPage> findByFormat(String format) throws SystemException {
1424        return findByFormat(format, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1425    }
1426
1427    public List<WikiPage> findByFormat(String format, int start, int end)
1428        throws SystemException {
1429        return findByFormat(format, start, end, null);
1430    }
1431
1432    public List<WikiPage> findByFormat(String format, int start, int end,
1433        OrderByComparator orderByComparator) throws SystemException {
1434        Object[] finderArgs = new Object[] {
1435                format,
1436                
1437                String.valueOf(start), String.valueOf(end),
1438                String.valueOf(orderByComparator)
1439            };
1440
1441        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_FORMAT,
1442                finderArgs, this);
1443
1444        if (list == null) {
1445            Session session = null;
1446
1447            try {
1448                session = openSession();
1449
1450                StringBundler query = null;
1451
1452                if (orderByComparator != null) {
1453                    query = new StringBundler(3 +
1454                            (orderByComparator.getOrderByFields().length * 3));
1455                }
1456                else {
1457                    query = new StringBundler(3);
1458                }
1459
1460                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
1461
1462                if (format == null) {
1463                    query.append(_FINDER_COLUMN_FORMAT_FORMAT_1);
1464                }
1465                else {
1466                    if (format.equals(StringPool.BLANK)) {
1467                        query.append(_FINDER_COLUMN_FORMAT_FORMAT_3);
1468                    }
1469                    else {
1470                        query.append(_FINDER_COLUMN_FORMAT_FORMAT_2);
1471                    }
1472                }
1473
1474                if (orderByComparator != null) {
1475                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1476                        orderByComparator);
1477                }
1478
1479                else {
1480                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
1481                }
1482
1483                String sql = query.toString();
1484
1485                Query q = session.createQuery(sql);
1486
1487                QueryPos qPos = QueryPos.getInstance(q);
1488
1489                if (format != null) {
1490                    qPos.add(format);
1491                }
1492
1493                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
1494                        end);
1495            }
1496            catch (Exception e) {
1497                throw processException(e);
1498            }
1499            finally {
1500                if (list == null) {
1501                    list = new ArrayList<WikiPage>();
1502                }
1503
1504                cacheResult(list);
1505
1506                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_FORMAT,
1507                    finderArgs, list);
1508
1509                closeSession(session);
1510            }
1511        }
1512
1513        return list;
1514    }
1515
1516    public WikiPage findByFormat_First(String format,
1517        OrderByComparator orderByComparator)
1518        throws NoSuchPageException, SystemException {
1519        List<WikiPage> list = findByFormat(format, 0, 1, orderByComparator);
1520
1521        if (list.isEmpty()) {
1522            StringBundler msg = new StringBundler(4);
1523
1524            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1525
1526            msg.append("format=");
1527            msg.append(format);
1528
1529            msg.append(StringPool.CLOSE_CURLY_BRACE);
1530
1531            throw new NoSuchPageException(msg.toString());
1532        }
1533        else {
1534            return list.get(0);
1535        }
1536    }
1537
1538    public WikiPage findByFormat_Last(String format,
1539        OrderByComparator orderByComparator)
1540        throws NoSuchPageException, SystemException {
1541        int count = countByFormat(format);
1542
1543        List<WikiPage> list = findByFormat(format, count - 1, count,
1544                orderByComparator);
1545
1546        if (list.isEmpty()) {
1547            StringBundler msg = new StringBundler(4);
1548
1549            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1550
1551            msg.append("format=");
1552            msg.append(format);
1553
1554            msg.append(StringPool.CLOSE_CURLY_BRACE);
1555
1556            throw new NoSuchPageException(msg.toString());
1557        }
1558        else {
1559            return list.get(0);
1560        }
1561    }
1562
1563    public WikiPage[] findByFormat_PrevAndNext(long pageId, String format,
1564        OrderByComparator orderByComparator)
1565        throws NoSuchPageException, SystemException {
1566        WikiPage wikiPage = findByPrimaryKey(pageId);
1567
1568        Session session = null;
1569
1570        try {
1571            session = openSession();
1572
1573            WikiPage[] array = new WikiPageImpl[3];
1574
1575            array[0] = getByFormat_PrevAndNext(session, wikiPage, format,
1576                    orderByComparator, true);
1577
1578            array[1] = wikiPage;
1579
1580            array[2] = getByFormat_PrevAndNext(session, wikiPage, format,
1581                    orderByComparator, false);
1582
1583            return array;
1584        }
1585        catch (Exception e) {
1586            throw processException(e);
1587        }
1588        finally {
1589            closeSession(session);
1590        }
1591    }
1592
1593    protected WikiPage getByFormat_PrevAndNext(Session session,
1594        WikiPage wikiPage, String format, OrderByComparator orderByComparator,
1595        boolean previous) {
1596        StringBundler query = null;
1597
1598        if (orderByComparator != null) {
1599            query = new StringBundler(6 +
1600                    (orderByComparator.getOrderByFields().length * 6));
1601        }
1602        else {
1603            query = new StringBundler(3);
1604        }
1605
1606        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
1607
1608        if (format == null) {
1609            query.append(_FINDER_COLUMN_FORMAT_FORMAT_1);
1610        }
1611        else {
1612            if (format.equals(StringPool.BLANK)) {
1613                query.append(_FINDER_COLUMN_FORMAT_FORMAT_3);
1614            }
1615            else {
1616                query.append(_FINDER_COLUMN_FORMAT_FORMAT_2);
1617            }
1618        }
1619
1620        if (orderByComparator != null) {
1621            String[] orderByFields = orderByComparator.getOrderByFields();
1622
1623            if (orderByFields.length > 0) {
1624                query.append(WHERE_AND);
1625            }
1626
1627            for (int i = 0; i < orderByFields.length; i++) {
1628                query.append(_ORDER_BY_ENTITY_ALIAS);
1629                query.append(orderByFields[i]);
1630
1631                if ((i + 1) < orderByFields.length) {
1632                    if (orderByComparator.isAscending() ^ previous) {
1633                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
1634                    }
1635                    else {
1636                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
1637                    }
1638                }
1639                else {
1640                    if (orderByComparator.isAscending() ^ previous) {
1641                        query.append(WHERE_GREATER_THAN);
1642                    }
1643                    else {
1644                        query.append(WHERE_LESSER_THAN);
1645                    }
1646                }
1647            }
1648
1649            query.append(ORDER_BY_CLAUSE);
1650
1651            for (int i = 0; i < orderByFields.length; i++) {
1652                query.append(_ORDER_BY_ENTITY_ALIAS);
1653                query.append(orderByFields[i]);
1654
1655                if ((i + 1) < orderByFields.length) {
1656                    if (orderByComparator.isAscending() ^ previous) {
1657                        query.append(ORDER_BY_ASC_HAS_NEXT);
1658                    }
1659                    else {
1660                        query.append(ORDER_BY_DESC_HAS_NEXT);
1661                    }
1662                }
1663                else {
1664                    if (orderByComparator.isAscending() ^ previous) {
1665                        query.append(ORDER_BY_ASC);
1666                    }
1667                    else {
1668                        query.append(ORDER_BY_DESC);
1669                    }
1670                }
1671            }
1672        }
1673
1674        else {
1675            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
1676        }
1677
1678        String sql = query.toString();
1679
1680        Query q = session.createQuery(sql);
1681
1682        q.setFirstResult(0);
1683        q.setMaxResults(2);
1684
1685        QueryPos qPos = QueryPos.getInstance(q);
1686
1687        if (format != null) {
1688            qPos.add(format);
1689        }
1690
1691        if (orderByComparator != null) {
1692            Object[] values = orderByComparator.getOrderByValues(wikiPage);
1693
1694            for (Object value : values) {
1695                qPos.add(value);
1696            }
1697        }
1698
1699        List<WikiPage> list = q.list();
1700
1701        if (list.size() == 2) {
1702            return list.get(1);
1703        }
1704        else {
1705            return null;
1706        }
1707    }
1708
1709    public List<WikiPage> findByR_N(long resourcePrimKey, long nodeId)
1710        throws SystemException {
1711        return findByR_N(resourcePrimKey, nodeId, QueryUtil.ALL_POS,
1712            QueryUtil.ALL_POS, null);
1713    }
1714
1715    public List<WikiPage> findByR_N(long resourcePrimKey, long nodeId,
1716        int start, int end) throws SystemException {
1717        return findByR_N(resourcePrimKey, nodeId, start, end, null);
1718    }
1719
1720    public List<WikiPage> findByR_N(long resourcePrimKey, long nodeId,
1721        int start, int end, OrderByComparator orderByComparator)
1722        throws SystemException {
1723        Object[] finderArgs = new Object[] {
1724                new Long(resourcePrimKey), new Long(nodeId),
1725                
1726                String.valueOf(start), String.valueOf(end),
1727                String.valueOf(orderByComparator)
1728            };
1729
1730        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_R_N,
1731                finderArgs, this);
1732
1733        if (list == null) {
1734            Session session = null;
1735
1736            try {
1737                session = openSession();
1738
1739                StringBundler query = null;
1740
1741                if (orderByComparator != null) {
1742                    query = new StringBundler(4 +
1743                            (orderByComparator.getOrderByFields().length * 3));
1744                }
1745                else {
1746                    query = new StringBundler(4);
1747                }
1748
1749                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
1750
1751                query.append(_FINDER_COLUMN_R_N_RESOURCEPRIMKEY_2);
1752
1753                query.append(_FINDER_COLUMN_R_N_NODEID_2);
1754
1755                if (orderByComparator != null) {
1756                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1757                        orderByComparator);
1758                }
1759
1760                else {
1761                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
1762                }
1763
1764                String sql = query.toString();
1765
1766                Query q = session.createQuery(sql);
1767
1768                QueryPos qPos = QueryPos.getInstance(q);
1769
1770                qPos.add(resourcePrimKey);
1771
1772                qPos.add(nodeId);
1773
1774                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
1775                        end);
1776            }
1777            catch (Exception e) {
1778                throw processException(e);
1779            }
1780            finally {
1781                if (list == null) {
1782                    list = new ArrayList<WikiPage>();
1783                }
1784
1785                cacheResult(list);
1786
1787                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_R_N, finderArgs,
1788                    list);
1789
1790                closeSession(session);
1791            }
1792        }
1793
1794        return list;
1795    }
1796
1797    public WikiPage findByR_N_First(long resourcePrimKey, long nodeId,
1798        OrderByComparator orderByComparator)
1799        throws NoSuchPageException, SystemException {
1800        List<WikiPage> list = findByR_N(resourcePrimKey, nodeId, 0, 1,
1801                orderByComparator);
1802
1803        if (list.isEmpty()) {
1804            StringBundler msg = new StringBundler(6);
1805
1806            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1807
1808            msg.append("resourcePrimKey=");
1809            msg.append(resourcePrimKey);
1810
1811            msg.append(", nodeId=");
1812            msg.append(nodeId);
1813
1814            msg.append(StringPool.CLOSE_CURLY_BRACE);
1815
1816            throw new NoSuchPageException(msg.toString());
1817        }
1818        else {
1819            return list.get(0);
1820        }
1821    }
1822
1823    public WikiPage findByR_N_Last(long resourcePrimKey, long nodeId,
1824        OrderByComparator orderByComparator)
1825        throws NoSuchPageException, SystemException {
1826        int count = countByR_N(resourcePrimKey, nodeId);
1827
1828        List<WikiPage> list = findByR_N(resourcePrimKey, nodeId, count - 1,
1829                count, orderByComparator);
1830
1831        if (list.isEmpty()) {
1832            StringBundler msg = new StringBundler(6);
1833
1834            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1835
1836            msg.append("resourcePrimKey=");
1837            msg.append(resourcePrimKey);
1838
1839            msg.append(", nodeId=");
1840            msg.append(nodeId);
1841
1842            msg.append(StringPool.CLOSE_CURLY_BRACE);
1843
1844            throw new NoSuchPageException(msg.toString());
1845        }
1846        else {
1847            return list.get(0);
1848        }
1849    }
1850
1851    public WikiPage[] findByR_N_PrevAndNext(long pageId, long resourcePrimKey,
1852        long nodeId, OrderByComparator orderByComparator)
1853        throws NoSuchPageException, SystemException {
1854        WikiPage wikiPage = findByPrimaryKey(pageId);
1855
1856        Session session = null;
1857
1858        try {
1859            session = openSession();
1860
1861            WikiPage[] array = new WikiPageImpl[3];
1862
1863            array[0] = getByR_N_PrevAndNext(session, wikiPage, resourcePrimKey,
1864                    nodeId, orderByComparator, true);
1865
1866            array[1] = wikiPage;
1867
1868            array[2] = getByR_N_PrevAndNext(session, wikiPage, resourcePrimKey,
1869                    nodeId, orderByComparator, false);
1870
1871            return array;
1872        }
1873        catch (Exception e) {
1874            throw processException(e);
1875        }
1876        finally {
1877            closeSession(session);
1878        }
1879    }
1880
1881    protected WikiPage getByR_N_PrevAndNext(Session session, WikiPage wikiPage,
1882        long resourcePrimKey, long nodeId, OrderByComparator orderByComparator,
1883        boolean previous) {
1884        StringBundler query = null;
1885
1886        if (orderByComparator != null) {
1887            query = new StringBundler(6 +
1888                    (orderByComparator.getOrderByFields().length * 6));
1889        }
1890        else {
1891            query = new StringBundler(3);
1892        }
1893
1894        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
1895
1896        query.append(_FINDER_COLUMN_R_N_RESOURCEPRIMKEY_2);
1897
1898        query.append(_FINDER_COLUMN_R_N_NODEID_2);
1899
1900        if (orderByComparator != null) {
1901            String[] orderByFields = orderByComparator.getOrderByFields();
1902
1903            if (orderByFields.length > 0) {
1904                query.append(WHERE_AND);
1905            }
1906
1907            for (int i = 0; i < orderByFields.length; i++) {
1908                query.append(_ORDER_BY_ENTITY_ALIAS);
1909                query.append(orderByFields[i]);
1910
1911                if ((i + 1) < orderByFields.length) {
1912                    if (orderByComparator.isAscending() ^ previous) {
1913                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
1914                    }
1915                    else {
1916                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
1917                    }
1918                }
1919                else {
1920                    if (orderByComparator.isAscending() ^ previous) {
1921                        query.append(WHERE_GREATER_THAN);
1922                    }
1923                    else {
1924                        query.append(WHERE_LESSER_THAN);
1925                    }
1926                }
1927            }
1928
1929            query.append(ORDER_BY_CLAUSE);
1930
1931            for (int i = 0; i < orderByFields.length; i++) {
1932                query.append(_ORDER_BY_ENTITY_ALIAS);
1933                query.append(orderByFields[i]);
1934
1935                if ((i + 1) < orderByFields.length) {
1936                    if (orderByComparator.isAscending() ^ previous) {
1937                        query.append(ORDER_BY_ASC_HAS_NEXT);
1938                    }
1939                    else {
1940                        query.append(ORDER_BY_DESC_HAS_NEXT);
1941                    }
1942                }
1943                else {
1944                    if (orderByComparator.isAscending() ^ previous) {
1945                        query.append(ORDER_BY_ASC);
1946                    }
1947                    else {
1948                        query.append(ORDER_BY_DESC);
1949                    }
1950                }
1951            }
1952        }
1953
1954        else {
1955            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
1956        }
1957
1958        String sql = query.toString();
1959
1960        Query q = session.createQuery(sql);
1961
1962        q.setFirstResult(0);
1963        q.setMaxResults(2);
1964
1965        QueryPos qPos = QueryPos.getInstance(q);
1966
1967        qPos.add(resourcePrimKey);
1968
1969        qPos.add(nodeId);
1970
1971        if (orderByComparator != null) {
1972            Object[] values = orderByComparator.getOrderByValues(wikiPage);
1973
1974            for (Object value : values) {
1975                qPos.add(value);
1976            }
1977        }
1978
1979        List<WikiPage> list = q.list();
1980
1981        if (list.size() == 2) {
1982            return list.get(1);
1983        }
1984        else {
1985            return null;
1986        }
1987    }
1988
1989    public List<WikiPage> findByN_T(long nodeId, String title)
1990        throws SystemException {
1991        return findByN_T(nodeId, title, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
1992            null);
1993    }
1994
1995    public List<WikiPage> findByN_T(long nodeId, String title, int start,
1996        int end) throws SystemException {
1997        return findByN_T(nodeId, title, start, end, null);
1998    }
1999
2000    public List<WikiPage> findByN_T(long nodeId, String title, int start,
2001        int end, OrderByComparator orderByComparator) throws SystemException {
2002        Object[] finderArgs = new Object[] {
2003                new Long(nodeId),
2004                
2005                title,
2006                
2007                String.valueOf(start), String.valueOf(end),
2008                String.valueOf(orderByComparator)
2009            };
2010
2011        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_N_T,
2012                finderArgs, this);
2013
2014        if (list == null) {
2015            Session session = null;
2016
2017            try {
2018                session = openSession();
2019
2020                StringBundler query = null;
2021
2022                if (orderByComparator != null) {
2023                    query = new StringBundler(4 +
2024                            (orderByComparator.getOrderByFields().length * 3));
2025                }
2026                else {
2027                    query = new StringBundler(4);
2028                }
2029
2030                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
2031
2032                query.append(_FINDER_COLUMN_N_T_NODEID_2);
2033
2034                if (title == null) {
2035                    query.append(_FINDER_COLUMN_N_T_TITLE_1);
2036                }
2037                else {
2038                    if (title.equals(StringPool.BLANK)) {
2039                        query.append(_FINDER_COLUMN_N_T_TITLE_3);
2040                    }
2041                    else {
2042                        query.append(_FINDER_COLUMN_N_T_TITLE_2);
2043                    }
2044                }
2045
2046                if (orderByComparator != null) {
2047                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
2048                        orderByComparator);
2049                }
2050
2051                else {
2052                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
2053                }
2054
2055                String sql = query.toString();
2056
2057                Query q = session.createQuery(sql);
2058
2059                QueryPos qPos = QueryPos.getInstance(q);
2060
2061                qPos.add(nodeId);
2062
2063                if (title != null) {
2064                    qPos.add(title);
2065                }
2066
2067                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
2068                        end);
2069            }
2070            catch (Exception e) {
2071                throw processException(e);
2072            }
2073            finally {
2074                if (list == null) {
2075                    list = new ArrayList<WikiPage>();
2076                }
2077
2078                cacheResult(list);
2079
2080                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_N_T, finderArgs,
2081                    list);
2082
2083                closeSession(session);
2084            }
2085        }
2086
2087        return list;
2088    }
2089
2090    public WikiPage findByN_T_First(long nodeId, String title,
2091        OrderByComparator orderByComparator)
2092        throws NoSuchPageException, SystemException {
2093        List<WikiPage> list = findByN_T(nodeId, title, 0, 1, orderByComparator);
2094
2095        if (list.isEmpty()) {
2096            StringBundler msg = new StringBundler(6);
2097
2098            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
2099
2100            msg.append("nodeId=");
2101            msg.append(nodeId);
2102
2103            msg.append(", title=");
2104            msg.append(title);
2105
2106            msg.append(StringPool.CLOSE_CURLY_BRACE);
2107
2108            throw new NoSuchPageException(msg.toString());
2109        }
2110        else {
2111            return list.get(0);
2112        }
2113    }
2114
2115    public WikiPage findByN_T_Last(long nodeId, String title,
2116        OrderByComparator orderByComparator)
2117        throws NoSuchPageException, SystemException {
2118        int count = countByN_T(nodeId, title);
2119
2120        List<WikiPage> list = findByN_T(nodeId, title, count - 1, count,
2121                orderByComparator);
2122
2123        if (list.isEmpty()) {
2124            StringBundler msg = new StringBundler(6);
2125
2126            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
2127
2128            msg.append("nodeId=");
2129            msg.append(nodeId);
2130
2131            msg.append(", title=");
2132            msg.append(title);
2133
2134            msg.append(StringPool.CLOSE_CURLY_BRACE);
2135
2136            throw new NoSuchPageException(msg.toString());
2137        }
2138        else {
2139            return list.get(0);
2140        }
2141    }
2142
2143    public WikiPage[] findByN_T_PrevAndNext(long pageId, long nodeId,
2144        String title, OrderByComparator orderByComparator)
2145        throws NoSuchPageException, SystemException {
2146        WikiPage wikiPage = findByPrimaryKey(pageId);
2147
2148        Session session = null;
2149
2150        try {
2151            session = openSession();
2152
2153            WikiPage[] array = new WikiPageImpl[3];
2154
2155            array[0] = getByN_T_PrevAndNext(session, wikiPage, nodeId, title,
2156                    orderByComparator, true);
2157
2158            array[1] = wikiPage;
2159
2160            array[2] = getByN_T_PrevAndNext(session, wikiPage, nodeId, title,
2161                    orderByComparator, false);
2162
2163            return array;
2164        }
2165        catch (Exception e) {
2166            throw processException(e);
2167        }
2168        finally {
2169            closeSession(session);
2170        }
2171    }
2172
2173    protected WikiPage getByN_T_PrevAndNext(Session session, WikiPage wikiPage,
2174        long nodeId, String title, OrderByComparator orderByComparator,
2175        boolean previous) {
2176        StringBundler query = null;
2177
2178        if (orderByComparator != null) {
2179            query = new StringBundler(6 +
2180                    (orderByComparator.getOrderByFields().length * 6));
2181        }
2182        else {
2183            query = new StringBundler(3);
2184        }
2185
2186        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
2187
2188        query.append(_FINDER_COLUMN_N_T_NODEID_2);
2189
2190        if (title == null) {
2191            query.append(_FINDER_COLUMN_N_T_TITLE_1);
2192        }
2193        else {
2194            if (title.equals(StringPool.BLANK)) {
2195                query.append(_FINDER_COLUMN_N_T_TITLE_3);
2196            }
2197            else {
2198                query.append(_FINDER_COLUMN_N_T_TITLE_2);
2199            }
2200        }
2201
2202        if (orderByComparator != null) {
2203            String[] orderByFields = orderByComparator.getOrderByFields();
2204
2205            if (orderByFields.length > 0) {
2206                query.append(WHERE_AND);
2207            }
2208
2209            for (int i = 0; i < orderByFields.length; i++) {
2210                query.append(_ORDER_BY_ENTITY_ALIAS);
2211                query.append(orderByFields[i]);
2212
2213                if ((i + 1) < orderByFields.length) {
2214                    if (orderByComparator.isAscending() ^ previous) {
2215                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
2216                    }
2217                    else {
2218                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
2219                    }
2220                }
2221                else {
2222                    if (orderByComparator.isAscending() ^ previous) {
2223                        query.append(WHERE_GREATER_THAN);
2224                    }
2225                    else {
2226                        query.append(WHERE_LESSER_THAN);
2227                    }
2228                }
2229            }
2230
2231            query.append(ORDER_BY_CLAUSE);
2232
2233            for (int i = 0; i < orderByFields.length; i++) {
2234                query.append(_ORDER_BY_ENTITY_ALIAS);
2235                query.append(orderByFields[i]);
2236
2237                if ((i + 1) < orderByFields.length) {
2238                    if (orderByComparator.isAscending() ^ previous) {
2239                        query.append(ORDER_BY_ASC_HAS_NEXT);
2240                    }
2241                    else {
2242                        query.append(ORDER_BY_DESC_HAS_NEXT);
2243                    }
2244                }
2245                else {
2246                    if (orderByComparator.isAscending() ^ previous) {
2247                        query.append(ORDER_BY_ASC);
2248                    }
2249                    else {
2250                        query.append(ORDER_BY_DESC);
2251                    }
2252                }
2253            }
2254        }
2255
2256        else {
2257            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
2258        }
2259
2260        String sql = query.toString();
2261
2262        Query q = session.createQuery(sql);
2263
2264        q.setFirstResult(0);
2265        q.setMaxResults(2);
2266
2267        QueryPos qPos = QueryPos.getInstance(q);
2268
2269        qPos.add(nodeId);
2270
2271        if (title != null) {
2272            qPos.add(title);
2273        }
2274
2275        if (orderByComparator != null) {
2276            Object[] values = orderByComparator.getOrderByValues(wikiPage);
2277
2278            for (Object value : values) {
2279                qPos.add(value);
2280            }
2281        }
2282
2283        List<WikiPage> list = q.list();
2284
2285        if (list.size() == 2) {
2286            return list.get(1);
2287        }
2288        else {
2289            return null;
2290        }
2291    }
2292
2293    public List<WikiPage> findByN_H(long nodeId, boolean head)
2294        throws SystemException {
2295        return findByN_H(nodeId, head, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
2296            null);
2297    }
2298
2299    public List<WikiPage> findByN_H(long nodeId, boolean head, int start,
2300        int end) throws SystemException {
2301        return findByN_H(nodeId, head, start, end, null);
2302    }
2303
2304    public List<WikiPage> findByN_H(long nodeId, boolean head, int start,
2305        int end, OrderByComparator orderByComparator) throws SystemException {
2306        Object[] finderArgs = new Object[] {
2307                new Long(nodeId), Boolean.valueOf(head),
2308                
2309                String.valueOf(start), String.valueOf(end),
2310                String.valueOf(orderByComparator)
2311            };
2312
2313        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_N_H,
2314                finderArgs, this);
2315
2316        if (list == null) {
2317            Session session = null;
2318
2319            try {
2320                session = openSession();
2321
2322                StringBundler query = null;
2323
2324                if (orderByComparator != null) {
2325                    query = new StringBundler(4 +
2326                            (orderByComparator.getOrderByFields().length * 3));
2327                }
2328                else {
2329                    query = new StringBundler(4);
2330                }
2331
2332                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
2333
2334                query.append(_FINDER_COLUMN_N_H_NODEID_2);
2335
2336                query.append(_FINDER_COLUMN_N_H_HEAD_2);
2337
2338                if (orderByComparator != null) {
2339                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
2340                        orderByComparator);
2341                }
2342
2343                else {
2344                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
2345                }
2346
2347                String sql = query.toString();
2348
2349                Query q = session.createQuery(sql);
2350
2351                QueryPos qPos = QueryPos.getInstance(q);
2352
2353                qPos.add(nodeId);
2354
2355                qPos.add(head);
2356
2357                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
2358                        end);
2359            }
2360            catch (Exception e) {
2361                throw processException(e);
2362            }
2363            finally {
2364                if (list == null) {
2365                    list = new ArrayList<WikiPage>();
2366                }
2367
2368                cacheResult(list);
2369
2370                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_N_H, finderArgs,
2371                    list);
2372
2373                closeSession(session);
2374            }
2375        }
2376
2377        return list;
2378    }
2379
2380    public WikiPage findByN_H_First(long nodeId, boolean head,
2381        OrderByComparator orderByComparator)
2382        throws NoSuchPageException, SystemException {
2383        List<WikiPage> list = findByN_H(nodeId, head, 0, 1, orderByComparator);
2384
2385        if (list.isEmpty()) {
2386            StringBundler msg = new StringBundler(6);
2387
2388            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
2389
2390            msg.append("nodeId=");
2391            msg.append(nodeId);
2392
2393            msg.append(", head=");
2394            msg.append(head);
2395
2396            msg.append(StringPool.CLOSE_CURLY_BRACE);
2397
2398            throw new NoSuchPageException(msg.toString());
2399        }
2400        else {
2401            return list.get(0);
2402        }
2403    }
2404
2405    public WikiPage findByN_H_Last(long nodeId, boolean head,
2406        OrderByComparator orderByComparator)
2407        throws NoSuchPageException, SystemException {
2408        int count = countByN_H(nodeId, head);
2409
2410        List<WikiPage> list = findByN_H(nodeId, head, count - 1, count,
2411                orderByComparator);
2412
2413        if (list.isEmpty()) {
2414            StringBundler msg = new StringBundler(6);
2415
2416            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
2417
2418            msg.append("nodeId=");
2419            msg.append(nodeId);
2420
2421            msg.append(", head=");
2422            msg.append(head);
2423
2424            msg.append(StringPool.CLOSE_CURLY_BRACE);
2425
2426            throw new NoSuchPageException(msg.toString());
2427        }
2428        else {
2429            return list.get(0);
2430        }
2431    }
2432
2433    public WikiPage[] findByN_H_PrevAndNext(long pageId, long nodeId,
2434        boolean head, OrderByComparator orderByComparator)
2435        throws NoSuchPageException, SystemException {
2436        WikiPage wikiPage = findByPrimaryKey(pageId);
2437
2438        Session session = null;
2439
2440        try {
2441            session = openSession();
2442
2443            WikiPage[] array = new WikiPageImpl[3];
2444
2445            array[0] = getByN_H_PrevAndNext(session, wikiPage, nodeId, head,
2446                    orderByComparator, true);
2447
2448            array[1] = wikiPage;
2449
2450            array[2] = getByN_H_PrevAndNext(session, wikiPage, nodeId, head,
2451                    orderByComparator, false);
2452
2453            return array;
2454        }
2455        catch (Exception e) {
2456            throw processException(e);
2457        }
2458        finally {
2459            closeSession(session);
2460        }
2461    }
2462
2463    protected WikiPage getByN_H_PrevAndNext(Session session, WikiPage wikiPage,
2464        long nodeId, boolean head, OrderByComparator orderByComparator,
2465        boolean previous) {
2466        StringBundler query = null;
2467
2468        if (orderByComparator != null) {
2469            query = new StringBundler(6 +
2470                    (orderByComparator.getOrderByFields().length * 6));
2471        }
2472        else {
2473            query = new StringBundler(3);
2474        }
2475
2476        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
2477
2478        query.append(_FINDER_COLUMN_N_H_NODEID_2);
2479
2480        query.append(_FINDER_COLUMN_N_H_HEAD_2);
2481
2482        if (orderByComparator != null) {
2483            String[] orderByFields = orderByComparator.getOrderByFields();
2484
2485            if (orderByFields.length > 0) {
2486                query.append(WHERE_AND);
2487            }
2488
2489            for (int i = 0; i < orderByFields.length; i++) {
2490                query.append(_ORDER_BY_ENTITY_ALIAS);
2491                query.append(orderByFields[i]);
2492
2493                if ((i + 1) < orderByFields.length) {
2494                    if (orderByComparator.isAscending() ^ previous) {
2495                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
2496                    }
2497                    else {
2498                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
2499                    }
2500                }
2501                else {
2502                    if (orderByComparator.isAscending() ^ previous) {
2503                        query.append(WHERE_GREATER_THAN);
2504                    }
2505                    else {
2506                        query.append(WHERE_LESSER_THAN);
2507                    }
2508                }
2509            }
2510
2511            query.append(ORDER_BY_CLAUSE);
2512
2513            for (int i = 0; i < orderByFields.length; i++) {
2514                query.append(_ORDER_BY_ENTITY_ALIAS);
2515                query.append(orderByFields[i]);
2516
2517                if ((i + 1) < orderByFields.length) {
2518                    if (orderByComparator.isAscending() ^ previous) {
2519                        query.append(ORDER_BY_ASC_HAS_NEXT);
2520                    }
2521                    else {
2522                        query.append(ORDER_BY_DESC_HAS_NEXT);
2523                    }
2524                }
2525                else {
2526                    if (orderByComparator.isAscending() ^ previous) {
2527                        query.append(ORDER_BY_ASC);
2528                    }
2529                    else {
2530                        query.append(ORDER_BY_DESC);
2531                    }
2532                }
2533            }
2534        }
2535
2536        else {
2537            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
2538        }
2539
2540        String sql = query.toString();
2541
2542        Query q = session.createQuery(sql);
2543
2544        q.setFirstResult(0);
2545        q.setMaxResults(2);
2546
2547        QueryPos qPos = QueryPos.getInstance(q);
2548
2549        qPos.add(nodeId);
2550
2551        qPos.add(head);
2552
2553        if (orderByComparator != null) {
2554            Object[] values = orderByComparator.getOrderByValues(wikiPage);
2555
2556            for (Object value : values) {
2557                qPos.add(value);
2558            }
2559        }
2560
2561        List<WikiPage> list = q.list();
2562
2563        if (list.size() == 2) {
2564            return list.get(1);
2565        }
2566        else {
2567            return null;
2568        }
2569    }
2570
2571    public List<WikiPage> findByN_P(long nodeId, String parentTitle)
2572        throws SystemException {
2573        return findByN_P(nodeId, parentTitle, QueryUtil.ALL_POS,
2574            QueryUtil.ALL_POS, null);
2575    }
2576
2577    public List<WikiPage> findByN_P(long nodeId, String parentTitle, int start,
2578        int end) throws SystemException {
2579        return findByN_P(nodeId, parentTitle, start, end, null);
2580    }
2581
2582    public List<WikiPage> findByN_P(long nodeId, String parentTitle, int start,
2583        int end, OrderByComparator orderByComparator) throws SystemException {
2584        Object[] finderArgs = new Object[] {
2585                new Long(nodeId),
2586                
2587                parentTitle,
2588                
2589                String.valueOf(start), String.valueOf(end),
2590                String.valueOf(orderByComparator)
2591            };
2592
2593        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_N_P,
2594                finderArgs, this);
2595
2596        if (list == null) {
2597            Session session = null;
2598
2599            try {
2600                session = openSession();
2601
2602                StringBundler query = null;
2603
2604                if (orderByComparator != null) {
2605                    query = new StringBundler(4 +
2606                            (orderByComparator.getOrderByFields().length * 3));
2607                }
2608                else {
2609                    query = new StringBundler(4);
2610                }
2611
2612                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
2613
2614                query.append(_FINDER_COLUMN_N_P_NODEID_2);
2615
2616                if (parentTitle == null) {
2617                    query.append(_FINDER_COLUMN_N_P_PARENTTITLE_1);
2618                }
2619                else {
2620                    if (parentTitle.equals(StringPool.BLANK)) {
2621                        query.append(_FINDER_COLUMN_N_P_PARENTTITLE_3);
2622                    }
2623                    else {
2624                        query.append(_FINDER_COLUMN_N_P_PARENTTITLE_2);
2625                    }
2626                }
2627
2628                if (orderByComparator != null) {
2629                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
2630                        orderByComparator);
2631                }
2632
2633                else {
2634                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
2635                }
2636
2637                String sql = query.toString();
2638
2639                Query q = session.createQuery(sql);
2640
2641                QueryPos qPos = QueryPos.getInstance(q);
2642
2643                qPos.add(nodeId);
2644
2645                if (parentTitle != null) {
2646                    qPos.add(parentTitle);
2647                }
2648
2649                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
2650                        end);
2651            }
2652            catch (Exception e) {
2653                throw processException(e);
2654            }
2655            finally {
2656                if (list == null) {
2657                    list = new ArrayList<WikiPage>();
2658                }
2659
2660                cacheResult(list);
2661
2662                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_N_P, finderArgs,
2663                    list);
2664
2665                closeSession(session);
2666            }
2667        }
2668
2669        return list;
2670    }
2671
2672    public WikiPage findByN_P_First(long nodeId, String parentTitle,
2673        OrderByComparator orderByComparator)
2674        throws NoSuchPageException, SystemException {
2675        List<WikiPage> list = findByN_P(nodeId, parentTitle, 0, 1,
2676                orderByComparator);
2677
2678        if (list.isEmpty()) {
2679            StringBundler msg = new StringBundler(6);
2680
2681            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
2682
2683            msg.append("nodeId=");
2684            msg.append(nodeId);
2685
2686            msg.append(", parentTitle=");
2687            msg.append(parentTitle);
2688
2689            msg.append(StringPool.CLOSE_CURLY_BRACE);
2690
2691            throw new NoSuchPageException(msg.toString());
2692        }
2693        else {
2694            return list.get(0);
2695        }
2696    }
2697
2698    public WikiPage findByN_P_Last(long nodeId, String parentTitle,
2699        OrderByComparator orderByComparator)
2700        throws NoSuchPageException, SystemException {
2701        int count = countByN_P(nodeId, parentTitle);
2702
2703        List<WikiPage> list = findByN_P(nodeId, parentTitle, count - 1, count,
2704                orderByComparator);
2705
2706        if (list.isEmpty()) {
2707            StringBundler msg = new StringBundler(6);
2708
2709            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
2710
2711            msg.append("nodeId=");
2712            msg.append(nodeId);
2713
2714            msg.append(", parentTitle=");
2715            msg.append(parentTitle);
2716
2717            msg.append(StringPool.CLOSE_CURLY_BRACE);
2718
2719            throw new NoSuchPageException(msg.toString());
2720        }
2721        else {
2722            return list.get(0);
2723        }
2724    }
2725
2726    public WikiPage[] findByN_P_PrevAndNext(long pageId, long nodeId,
2727        String parentTitle, OrderByComparator orderByComparator)
2728        throws NoSuchPageException, SystemException {
2729        WikiPage wikiPage = findByPrimaryKey(pageId);
2730
2731        Session session = null;
2732
2733        try {
2734            session = openSession();
2735
2736            WikiPage[] array = new WikiPageImpl[3];
2737
2738            array[0] = getByN_P_PrevAndNext(session, wikiPage, nodeId,
2739                    parentTitle, orderByComparator, true);
2740
2741            array[1] = wikiPage;
2742
2743            array[2] = getByN_P_PrevAndNext(session, wikiPage, nodeId,
2744                    parentTitle, orderByComparator, false);
2745
2746            return array;
2747        }
2748        catch (Exception e) {
2749            throw processException(e);
2750        }
2751        finally {
2752            closeSession(session);
2753        }
2754    }
2755
2756    protected WikiPage getByN_P_PrevAndNext(Session session, WikiPage wikiPage,
2757        long nodeId, String parentTitle, OrderByComparator orderByComparator,
2758        boolean previous) {
2759        StringBundler query = null;
2760
2761        if (orderByComparator != null) {
2762            query = new StringBundler(6 +
2763                    (orderByComparator.getOrderByFields().length * 6));
2764        }
2765        else {
2766            query = new StringBundler(3);
2767        }
2768
2769        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
2770
2771        query.append(_FINDER_COLUMN_N_P_NODEID_2);
2772
2773        if (parentTitle == null) {
2774            query.append(_FINDER_COLUMN_N_P_PARENTTITLE_1);
2775        }
2776        else {
2777            if (parentTitle.equals(StringPool.BLANK)) {
2778                query.append(_FINDER_COLUMN_N_P_PARENTTITLE_3);
2779            }
2780            else {
2781                query.append(_FINDER_COLUMN_N_P_PARENTTITLE_2);
2782            }
2783        }
2784
2785        if (orderByComparator != null) {
2786            String[] orderByFields = orderByComparator.getOrderByFields();
2787
2788            if (orderByFields.length > 0) {
2789                query.append(WHERE_AND);
2790            }
2791
2792            for (int i = 0; i < orderByFields.length; i++) {
2793                query.append(_ORDER_BY_ENTITY_ALIAS);
2794                query.append(orderByFields[i]);
2795
2796                if ((i + 1) < orderByFields.length) {
2797                    if (orderByComparator.isAscending() ^ previous) {
2798                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
2799                    }
2800                    else {
2801                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
2802                    }
2803                }
2804                else {
2805                    if (orderByComparator.isAscending() ^ previous) {
2806                        query.append(WHERE_GREATER_THAN);
2807                    }
2808                    else {
2809                        query.append(WHERE_LESSER_THAN);
2810                    }
2811                }
2812            }
2813
2814            query.append(ORDER_BY_CLAUSE);
2815
2816            for (int i = 0; i < orderByFields.length; i++) {
2817                query.append(_ORDER_BY_ENTITY_ALIAS);
2818                query.append(orderByFields[i]);
2819
2820                if ((i + 1) < orderByFields.length) {
2821                    if (orderByComparator.isAscending() ^ previous) {
2822                        query.append(ORDER_BY_ASC_HAS_NEXT);
2823                    }
2824                    else {
2825                        query.append(ORDER_BY_DESC_HAS_NEXT);
2826                    }
2827                }
2828                else {
2829                    if (orderByComparator.isAscending() ^ previous) {
2830                        query.append(ORDER_BY_ASC);
2831                    }
2832                    else {
2833                        query.append(ORDER_BY_DESC);
2834                    }
2835                }
2836            }
2837        }
2838
2839        else {
2840            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
2841        }
2842
2843        String sql = query.toString();
2844
2845        Query q = session.createQuery(sql);
2846
2847        q.setFirstResult(0);
2848        q.setMaxResults(2);
2849
2850        QueryPos qPos = QueryPos.getInstance(q);
2851
2852        qPos.add(nodeId);
2853
2854        if (parentTitle != null) {
2855            qPos.add(parentTitle);
2856        }
2857
2858        if (orderByComparator != null) {
2859            Object[] values = orderByComparator.getOrderByValues(wikiPage);
2860
2861            for (Object value : values) {
2862                qPos.add(value);
2863            }
2864        }
2865
2866        List<WikiPage> list = q.list();
2867
2868        if (list.size() == 2) {
2869            return list.get(1);
2870        }
2871        else {
2872            return null;
2873        }
2874    }
2875
2876    public List<WikiPage> findByN_R(long nodeId, String redirectTitle)
2877        throws SystemException {
2878        return findByN_R(nodeId, redirectTitle, QueryUtil.ALL_POS,
2879            QueryUtil.ALL_POS, null);
2880    }
2881
2882    public List<WikiPage> findByN_R(long nodeId, String redirectTitle,
2883        int start, int end) throws SystemException {
2884        return findByN_R(nodeId, redirectTitle, start, end, null);
2885    }
2886
2887    public List<WikiPage> findByN_R(long nodeId, String redirectTitle,
2888        int start, int end, OrderByComparator orderByComparator)
2889        throws SystemException {
2890        Object[] finderArgs = new Object[] {
2891                new Long(nodeId),
2892                
2893                redirectTitle,
2894                
2895                String.valueOf(start), String.valueOf(end),
2896                String.valueOf(orderByComparator)
2897            };
2898
2899        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_N_R,
2900                finderArgs, this);
2901
2902        if (list == null) {
2903            Session session = null;
2904
2905            try {
2906                session = openSession();
2907
2908                StringBundler query = null;
2909
2910                if (orderByComparator != null) {
2911                    query = new StringBundler(4 +
2912                            (orderByComparator.getOrderByFields().length * 3));
2913                }
2914                else {
2915                    query = new StringBundler(4);
2916                }
2917
2918                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
2919
2920                query.append(_FINDER_COLUMN_N_R_NODEID_2);
2921
2922                if (redirectTitle == null) {
2923                    query.append(_FINDER_COLUMN_N_R_REDIRECTTITLE_1);
2924                }
2925                else {
2926                    if (redirectTitle.equals(StringPool.BLANK)) {
2927                        query.append(_FINDER_COLUMN_N_R_REDIRECTTITLE_3);
2928                    }
2929                    else {
2930                        query.append(_FINDER_COLUMN_N_R_REDIRECTTITLE_2);
2931                    }
2932                }
2933
2934                if (orderByComparator != null) {
2935                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
2936                        orderByComparator);
2937                }
2938
2939                else {
2940                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
2941                }
2942
2943                String sql = query.toString();
2944
2945                Query q = session.createQuery(sql);
2946
2947                QueryPos qPos = QueryPos.getInstance(q);
2948
2949                qPos.add(nodeId);
2950
2951                if (redirectTitle != null) {
2952                    qPos.add(redirectTitle);
2953                }
2954
2955                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
2956                        end);
2957            }
2958            catch (Exception e) {
2959                throw processException(e);
2960            }
2961            finally {
2962                if (list == null) {
2963                    list = new ArrayList<WikiPage>();
2964                }
2965
2966                cacheResult(list);
2967
2968                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_N_R, finderArgs,
2969                    list);
2970
2971                closeSession(session);
2972            }
2973        }
2974
2975        return list;
2976    }
2977
2978    public WikiPage findByN_R_First(long nodeId, String redirectTitle,
2979        OrderByComparator orderByComparator)
2980        throws NoSuchPageException, SystemException {
2981        List<WikiPage> list = findByN_R(nodeId, redirectTitle, 0, 1,
2982                orderByComparator);
2983
2984        if (list.isEmpty()) {
2985            StringBundler msg = new StringBundler(6);
2986
2987            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
2988
2989            msg.append("nodeId=");
2990            msg.append(nodeId);
2991
2992            msg.append(", redirectTitle=");
2993            msg.append(redirectTitle);
2994
2995            msg.append(StringPool.CLOSE_CURLY_BRACE);
2996
2997            throw new NoSuchPageException(msg.toString());
2998        }
2999        else {
3000            return list.get(0);
3001        }
3002    }
3003
3004    public WikiPage findByN_R_Last(long nodeId, String redirectTitle,
3005        OrderByComparator orderByComparator)
3006        throws NoSuchPageException, SystemException {
3007        int count = countByN_R(nodeId, redirectTitle);
3008
3009        List<WikiPage> list = findByN_R(nodeId, redirectTitle, count - 1,
3010                count, orderByComparator);
3011
3012        if (list.isEmpty()) {
3013            StringBundler msg = new StringBundler(6);
3014
3015            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
3016
3017            msg.append("nodeId=");
3018            msg.append(nodeId);
3019
3020            msg.append(", redirectTitle=");
3021            msg.append(redirectTitle);
3022
3023            msg.append(StringPool.CLOSE_CURLY_BRACE);
3024
3025            throw new NoSuchPageException(msg.toString());
3026        }
3027        else {
3028            return list.get(0);
3029        }
3030    }
3031
3032    public WikiPage[] findByN_R_PrevAndNext(long pageId, long nodeId,
3033        String redirectTitle, OrderByComparator orderByComparator)
3034        throws NoSuchPageException, SystemException {
3035        WikiPage wikiPage = findByPrimaryKey(pageId);
3036
3037        Session session = null;
3038
3039        try {
3040            session = openSession();
3041
3042            WikiPage[] array = new WikiPageImpl[3];
3043
3044            array[0] = getByN_R_PrevAndNext(session, wikiPage, nodeId,
3045                    redirectTitle, orderByComparator, true);
3046
3047            array[1] = wikiPage;
3048
3049            array[2] = getByN_R_PrevAndNext(session, wikiPage, nodeId,
3050                    redirectTitle, orderByComparator, false);
3051
3052            return array;
3053        }
3054        catch (Exception e) {
3055            throw processException(e);
3056        }
3057        finally {
3058            closeSession(session);
3059        }
3060    }
3061
3062    protected WikiPage getByN_R_PrevAndNext(Session session, WikiPage wikiPage,
3063        long nodeId, String redirectTitle, OrderByComparator orderByComparator,
3064        boolean previous) {
3065        StringBundler query = null;
3066
3067        if (orderByComparator != null) {
3068            query = new StringBundler(6 +
3069                    (orderByComparator.getOrderByFields().length * 6));
3070        }
3071        else {
3072            query = new StringBundler(3);
3073        }
3074
3075        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
3076
3077        query.append(_FINDER_COLUMN_N_R_NODEID_2);
3078
3079        if (redirectTitle == null) {
3080            query.append(_FINDER_COLUMN_N_R_REDIRECTTITLE_1);
3081        }
3082        else {
3083            if (redirectTitle.equals(StringPool.BLANK)) {
3084                query.append(_FINDER_COLUMN_N_R_REDIRECTTITLE_3);
3085            }
3086            else {
3087                query.append(_FINDER_COLUMN_N_R_REDIRECTTITLE_2);
3088            }
3089        }
3090
3091        if (orderByComparator != null) {
3092            String[] orderByFields = orderByComparator.getOrderByFields();
3093
3094            if (orderByFields.length > 0) {
3095                query.append(WHERE_AND);
3096            }
3097
3098            for (int i = 0; i < orderByFields.length; i++) {
3099                query.append(_ORDER_BY_ENTITY_ALIAS);
3100                query.append(orderByFields[i]);
3101
3102                if ((i + 1) < orderByFields.length) {
3103                    if (orderByComparator.isAscending() ^ previous) {
3104                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
3105                    }
3106                    else {
3107                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
3108                    }
3109                }
3110                else {
3111                    if (orderByComparator.isAscending() ^ previous) {
3112                        query.append(WHERE_GREATER_THAN);
3113                    }
3114                    else {
3115                        query.append(WHERE_LESSER_THAN);
3116                    }
3117                }
3118            }
3119
3120            query.append(ORDER_BY_CLAUSE);
3121
3122            for (int i = 0; i < orderByFields.length; i++) {
3123                query.append(_ORDER_BY_ENTITY_ALIAS);
3124                query.append(orderByFields[i]);
3125
3126                if ((i + 1) < orderByFields.length) {
3127                    if (orderByComparator.isAscending() ^ previous) {
3128                        query.append(ORDER_BY_ASC_HAS_NEXT);
3129                    }
3130                    else {
3131                        query.append(ORDER_BY_DESC_HAS_NEXT);
3132                    }
3133                }
3134                else {
3135                    if (orderByComparator.isAscending() ^ previous) {
3136                        query.append(ORDER_BY_ASC);
3137                    }
3138                    else {
3139                        query.append(ORDER_BY_DESC);
3140                    }
3141                }
3142            }
3143        }
3144
3145        else {
3146            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
3147        }
3148
3149        String sql = query.toString();
3150
3151        Query q = session.createQuery(sql);
3152
3153        q.setFirstResult(0);
3154        q.setMaxResults(2);
3155
3156        QueryPos qPos = QueryPos.getInstance(q);
3157
3158        qPos.add(nodeId);
3159
3160        if (redirectTitle != null) {
3161            qPos.add(redirectTitle);
3162        }
3163
3164        if (orderByComparator != null) {
3165            Object[] values = orderByComparator.getOrderByValues(wikiPage);
3166
3167            for (Object value : values) {
3168                qPos.add(value);
3169            }
3170        }
3171
3172        List<WikiPage> list = q.list();
3173
3174        if (list.size() == 2) {
3175            return list.get(1);
3176        }
3177        else {
3178            return null;
3179        }
3180    }
3181
3182    public List<WikiPage> findByN_S(long nodeId, int status)
3183        throws SystemException {
3184        return findByN_S(nodeId, status, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
3185            null);
3186    }
3187
3188    public List<WikiPage> findByN_S(long nodeId, int status, int start, int end)
3189        throws SystemException {
3190        return findByN_S(nodeId, status, start, end, null);
3191    }
3192
3193    public List<WikiPage> findByN_S(long nodeId, int status, int start,
3194        int end, OrderByComparator orderByComparator) throws SystemException {
3195        Object[] finderArgs = new Object[] {
3196                new Long(nodeId), new Integer(status),
3197                
3198                String.valueOf(start), String.valueOf(end),
3199                String.valueOf(orderByComparator)
3200            };
3201
3202        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_N_S,
3203                finderArgs, this);
3204
3205        if (list == null) {
3206            Session session = null;
3207
3208            try {
3209                session = openSession();
3210
3211                StringBundler query = null;
3212
3213                if (orderByComparator != null) {
3214                    query = new StringBundler(4 +
3215                            (orderByComparator.getOrderByFields().length * 3));
3216                }
3217                else {
3218                    query = new StringBundler(4);
3219                }
3220
3221                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
3222
3223                query.append(_FINDER_COLUMN_N_S_NODEID_2);
3224
3225                query.append(_FINDER_COLUMN_N_S_STATUS_2);
3226
3227                if (orderByComparator != null) {
3228                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
3229                        orderByComparator);
3230                }
3231
3232                else {
3233                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
3234                }
3235
3236                String sql = query.toString();
3237
3238                Query q = session.createQuery(sql);
3239
3240                QueryPos qPos = QueryPos.getInstance(q);
3241
3242                qPos.add(nodeId);
3243
3244                qPos.add(status);
3245
3246                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
3247                        end);
3248            }
3249            catch (Exception e) {
3250                throw processException(e);
3251            }
3252            finally {
3253                if (list == null) {
3254                    list = new ArrayList<WikiPage>();
3255                }
3256
3257                cacheResult(list);
3258
3259                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_N_S, finderArgs,
3260                    list);
3261
3262                closeSession(session);
3263            }
3264        }
3265
3266        return list;
3267    }
3268
3269    public WikiPage findByN_S_First(long nodeId, int status,
3270        OrderByComparator orderByComparator)
3271        throws NoSuchPageException, SystemException {
3272        List<WikiPage> list = findByN_S(nodeId, status, 0, 1, orderByComparator);
3273
3274        if (list.isEmpty()) {
3275            StringBundler msg = new StringBundler(6);
3276
3277            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
3278
3279            msg.append("nodeId=");
3280            msg.append(nodeId);
3281
3282            msg.append(", status=");
3283            msg.append(status);
3284
3285            msg.append(StringPool.CLOSE_CURLY_BRACE);
3286
3287            throw new NoSuchPageException(msg.toString());
3288        }
3289        else {
3290            return list.get(0);
3291        }
3292    }
3293
3294    public WikiPage findByN_S_Last(long nodeId, int status,
3295        OrderByComparator orderByComparator)
3296        throws NoSuchPageException, SystemException {
3297        int count = countByN_S(nodeId, status);
3298
3299        List<WikiPage> list = findByN_S(nodeId, status, count - 1, count,
3300                orderByComparator);
3301
3302        if (list.isEmpty()) {
3303            StringBundler msg = new StringBundler(6);
3304
3305            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
3306
3307            msg.append("nodeId=");
3308            msg.append(nodeId);
3309
3310            msg.append(", status=");
3311            msg.append(status);
3312
3313            msg.append(StringPool.CLOSE_CURLY_BRACE);
3314
3315            throw new NoSuchPageException(msg.toString());
3316        }
3317        else {
3318            return list.get(0);
3319        }
3320    }
3321
3322    public WikiPage[] findByN_S_PrevAndNext(long pageId, long nodeId,
3323        int status, OrderByComparator orderByComparator)
3324        throws NoSuchPageException, SystemException {
3325        WikiPage wikiPage = findByPrimaryKey(pageId);
3326
3327        Session session = null;
3328
3329        try {
3330            session = openSession();
3331
3332            WikiPage[] array = new WikiPageImpl[3];
3333
3334            array[0] = getByN_S_PrevAndNext(session, wikiPage, nodeId, status,
3335                    orderByComparator, true);
3336
3337            array[1] = wikiPage;
3338
3339            array[2] = getByN_S_PrevAndNext(session, wikiPage, nodeId, status,
3340                    orderByComparator, false);
3341
3342            return array;
3343        }
3344        catch (Exception e) {
3345            throw processException(e);
3346        }
3347        finally {
3348            closeSession(session);
3349        }
3350    }
3351
3352    protected WikiPage getByN_S_PrevAndNext(Session session, WikiPage wikiPage,
3353        long nodeId, int status, OrderByComparator orderByComparator,
3354        boolean previous) {
3355        StringBundler query = null;
3356
3357        if (orderByComparator != null) {
3358            query = new StringBundler(6 +
3359                    (orderByComparator.getOrderByFields().length * 6));
3360        }
3361        else {
3362            query = new StringBundler(3);
3363        }
3364
3365        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
3366
3367        query.append(_FINDER_COLUMN_N_S_NODEID_2);
3368
3369        query.append(_FINDER_COLUMN_N_S_STATUS_2);
3370
3371        if (orderByComparator != null) {
3372            String[] orderByFields = orderByComparator.getOrderByFields();
3373
3374            if (orderByFields.length > 0) {
3375                query.append(WHERE_AND);
3376            }
3377
3378            for (int i = 0; i < orderByFields.length; i++) {
3379                query.append(_ORDER_BY_ENTITY_ALIAS);
3380                query.append(orderByFields[i]);
3381
3382                if ((i + 1) < orderByFields.length) {
3383                    if (orderByComparator.isAscending() ^ previous) {
3384                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
3385                    }
3386                    else {
3387                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
3388                    }
3389                }
3390                else {
3391                    if (orderByComparator.isAscending() ^ previous) {
3392                        query.append(WHERE_GREATER_THAN);
3393                    }
3394                    else {
3395                        query.append(WHERE_LESSER_THAN);
3396                    }
3397                }
3398            }
3399
3400            query.append(ORDER_BY_CLAUSE);
3401
3402            for (int i = 0; i < orderByFields.length; i++) {
3403                query.append(_ORDER_BY_ENTITY_ALIAS);
3404                query.append(orderByFields[i]);
3405
3406                if ((i + 1) < orderByFields.length) {
3407                    if (orderByComparator.isAscending() ^ previous) {
3408                        query.append(ORDER_BY_ASC_HAS_NEXT);
3409                    }
3410                    else {
3411                        query.append(ORDER_BY_DESC_HAS_NEXT);
3412                    }
3413                }
3414                else {
3415                    if (orderByComparator.isAscending() ^ previous) {
3416                        query.append(ORDER_BY_ASC);
3417                    }
3418                    else {
3419                        query.append(ORDER_BY_DESC);
3420                    }
3421                }
3422            }
3423        }
3424
3425        else {
3426            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
3427        }
3428
3429        String sql = query.toString();
3430
3431        Query q = session.createQuery(sql);
3432
3433        q.setFirstResult(0);
3434        q.setMaxResults(2);
3435
3436        QueryPos qPos = QueryPos.getInstance(q);
3437
3438        qPos.add(nodeId);
3439
3440        qPos.add(status);
3441
3442        if (orderByComparator != null) {
3443            Object[] values = orderByComparator.getOrderByValues(wikiPage);
3444
3445            for (Object value : values) {
3446                qPos.add(value);
3447            }
3448        }
3449
3450        List<WikiPage> list = q.list();
3451
3452        if (list.size() == 2) {
3453            return list.get(1);
3454        }
3455        else {
3456            return null;
3457        }
3458    }
3459
3460    public WikiPage findByR_N_V(long resourcePrimKey, long nodeId,
3461        double version) throws NoSuchPageException, SystemException {
3462        WikiPage wikiPage = fetchByR_N_V(resourcePrimKey, nodeId, version);
3463
3464        if (wikiPage == null) {
3465            StringBundler msg = new StringBundler(8);
3466
3467            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
3468
3469            msg.append("resourcePrimKey=");
3470            msg.append(resourcePrimKey);
3471
3472            msg.append(", nodeId=");
3473            msg.append(nodeId);
3474
3475            msg.append(", version=");
3476            msg.append(version);
3477
3478            msg.append(StringPool.CLOSE_CURLY_BRACE);
3479
3480            if (_log.isWarnEnabled()) {
3481                _log.warn(msg.toString());
3482            }
3483
3484            throw new NoSuchPageException(msg.toString());
3485        }
3486
3487        return wikiPage;
3488    }
3489
3490    public WikiPage fetchByR_N_V(long resourcePrimKey, long nodeId,
3491        double version) throws SystemException {
3492        return fetchByR_N_V(resourcePrimKey, nodeId, version, true);
3493    }
3494
3495    public WikiPage fetchByR_N_V(long resourcePrimKey, long nodeId,
3496        double version, boolean retrieveFromCache) throws SystemException {
3497        Object[] finderArgs = new Object[] {
3498                new Long(resourcePrimKey), new Long(nodeId), new Double(version)
3499            };
3500
3501        Object result = null;
3502
3503        if (retrieveFromCache) {
3504            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_R_N_V,
3505                    finderArgs, this);
3506        }
3507
3508        if (result == null) {
3509            Session session = null;
3510
3511            try {
3512                session = openSession();
3513
3514                StringBundler query = new StringBundler(5);
3515
3516                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
3517
3518                query.append(_FINDER_COLUMN_R_N_V_RESOURCEPRIMKEY_2);
3519
3520                query.append(_FINDER_COLUMN_R_N_V_NODEID_2);
3521
3522                query.append(_FINDER_COLUMN_R_N_V_VERSION_2);
3523
3524                query.append(WikiPageModelImpl.ORDER_BY_JPQL);
3525
3526                String sql = query.toString();
3527
3528                Query q = session.createQuery(sql);
3529
3530                QueryPos qPos = QueryPos.getInstance(q);
3531
3532                qPos.add(resourcePrimKey);
3533
3534                qPos.add(nodeId);
3535
3536                qPos.add(version);
3537
3538                List<WikiPage> list = q.list();
3539
3540                result = list;
3541
3542                WikiPage wikiPage = null;
3543
3544                if (list.isEmpty()) {
3545                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_R_N_V,
3546                        finderArgs, list);
3547                }
3548                else {
3549                    wikiPage = list.get(0);
3550
3551                    cacheResult(wikiPage);
3552
3553                    if ((wikiPage.getResourcePrimKey() != resourcePrimKey) ||
3554                            (wikiPage.getNodeId() != nodeId) ||
3555                            (wikiPage.getVersion() != version)) {
3556                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_R_N_V,
3557                            finderArgs, wikiPage);
3558                    }
3559                }
3560
3561                return wikiPage;
3562            }
3563            catch (Exception e) {
3564                throw processException(e);
3565            }
3566            finally {
3567                if (result == null) {
3568                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_R_N_V,
3569                        finderArgs, new ArrayList<WikiPage>());
3570                }
3571
3572                closeSession(session);
3573            }
3574        }
3575        else {
3576            if (result instanceof List<?>) {
3577                return null;
3578            }
3579            else {
3580                return (WikiPage)result;
3581            }
3582        }
3583    }
3584
3585    public List<WikiPage> findByR_N_S(long resourcePrimKey, long nodeId,
3586        int status) throws SystemException {
3587        return findByR_N_S(resourcePrimKey, nodeId, status, QueryUtil.ALL_POS,
3588            QueryUtil.ALL_POS, null);
3589    }
3590
3591    public List<WikiPage> findByR_N_S(long resourcePrimKey, long nodeId,
3592        int status, int start, int end) throws SystemException {
3593        return findByR_N_S(resourcePrimKey, nodeId, status, start, end, null);
3594    }
3595
3596    public List<WikiPage> findByR_N_S(long resourcePrimKey, long nodeId,
3597        int status, int start, int end, OrderByComparator orderByComparator)
3598        throws SystemException {
3599        Object[] finderArgs = new Object[] {
3600                new Long(resourcePrimKey), new Long(nodeId), new Integer(status),
3601                
3602                String.valueOf(start), String.valueOf(end),
3603                String.valueOf(orderByComparator)
3604            };
3605
3606        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_R_N_S,
3607                finderArgs, this);
3608
3609        if (list == null) {
3610            Session session = null;
3611
3612            try {
3613                session = openSession();
3614
3615                StringBundler query = null;
3616
3617                if (orderByComparator != null) {
3618                    query = new StringBundler(5 +
3619                            (orderByComparator.getOrderByFields().length * 3));
3620                }
3621                else {
3622                    query = new StringBundler(5);
3623                }
3624
3625                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
3626
3627                query.append(_FINDER_COLUMN_R_N_S_RESOURCEPRIMKEY_2);
3628
3629                query.append(_FINDER_COLUMN_R_N_S_NODEID_2);
3630
3631                query.append(_FINDER_COLUMN_R_N_S_STATUS_2);
3632
3633                if (orderByComparator != null) {
3634                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
3635                        orderByComparator);
3636                }
3637
3638                else {
3639                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
3640                }
3641
3642                String sql = query.toString();
3643
3644                Query q = session.createQuery(sql);
3645
3646                QueryPos qPos = QueryPos.getInstance(q);
3647
3648                qPos.add(resourcePrimKey);
3649
3650                qPos.add(nodeId);
3651
3652                qPos.add(status);
3653
3654                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
3655                        end);
3656            }
3657            catch (Exception e) {
3658                throw processException(e);
3659            }
3660            finally {
3661                if (list == null) {
3662                    list = new ArrayList<WikiPage>();
3663                }
3664
3665                cacheResult(list);
3666
3667                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_R_N_S,
3668                    finderArgs, list);
3669
3670                closeSession(session);
3671            }
3672        }
3673
3674        return list;
3675    }
3676
3677    public WikiPage findByR_N_S_First(long resourcePrimKey, long nodeId,
3678        int status, OrderByComparator orderByComparator)
3679        throws NoSuchPageException, SystemException {
3680        List<WikiPage> list = findByR_N_S(resourcePrimKey, nodeId, status, 0,
3681                1, orderByComparator);
3682
3683        if (list.isEmpty()) {
3684            StringBundler msg = new StringBundler(8);
3685
3686            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
3687
3688            msg.append("resourcePrimKey=");
3689            msg.append(resourcePrimKey);
3690
3691            msg.append(", nodeId=");
3692            msg.append(nodeId);
3693
3694            msg.append(", status=");
3695            msg.append(status);
3696
3697            msg.append(StringPool.CLOSE_CURLY_BRACE);
3698
3699            throw new NoSuchPageException(msg.toString());
3700        }
3701        else {
3702            return list.get(0);
3703        }
3704    }
3705
3706    public WikiPage findByR_N_S_Last(long resourcePrimKey, long nodeId,
3707        int status, OrderByComparator orderByComparator)
3708        throws NoSuchPageException, SystemException {
3709        int count = countByR_N_S(resourcePrimKey, nodeId, status);
3710
3711        List<WikiPage> list = findByR_N_S(resourcePrimKey, nodeId, status,
3712                count - 1, count, orderByComparator);
3713
3714        if (list.isEmpty()) {
3715            StringBundler msg = new StringBundler(8);
3716
3717            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
3718
3719            msg.append("resourcePrimKey=");
3720            msg.append(resourcePrimKey);
3721
3722            msg.append(", nodeId=");
3723            msg.append(nodeId);
3724
3725            msg.append(", status=");
3726            msg.append(status);
3727
3728            msg.append(StringPool.CLOSE_CURLY_BRACE);
3729
3730            throw new NoSuchPageException(msg.toString());
3731        }
3732        else {
3733            return list.get(0);
3734        }
3735    }
3736
3737    public WikiPage[] findByR_N_S_PrevAndNext(long pageId,
3738        long resourcePrimKey, long nodeId, int status,
3739        OrderByComparator orderByComparator)
3740        throws NoSuchPageException, SystemException {
3741        WikiPage wikiPage = findByPrimaryKey(pageId);
3742
3743        Session session = null;
3744
3745        try {
3746            session = openSession();
3747
3748            WikiPage[] array = new WikiPageImpl[3];
3749
3750            array[0] = getByR_N_S_PrevAndNext(session, wikiPage,
3751                    resourcePrimKey, nodeId, status, orderByComparator, true);
3752
3753            array[1] = wikiPage;
3754
3755            array[2] = getByR_N_S_PrevAndNext(session, wikiPage,
3756                    resourcePrimKey, nodeId, status, orderByComparator, false);
3757
3758            return array;
3759        }
3760        catch (Exception e) {
3761            throw processException(e);
3762        }
3763        finally {
3764            closeSession(session);
3765        }
3766    }
3767
3768    protected WikiPage getByR_N_S_PrevAndNext(Session session,
3769        WikiPage wikiPage, long resourcePrimKey, long nodeId, int status,
3770        OrderByComparator orderByComparator, boolean previous) {
3771        StringBundler query = null;
3772
3773        if (orderByComparator != null) {
3774            query = new StringBundler(6 +
3775                    (orderByComparator.getOrderByFields().length * 6));
3776        }
3777        else {
3778            query = new StringBundler(3);
3779        }
3780
3781        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
3782
3783        query.append(_FINDER_COLUMN_R_N_S_RESOURCEPRIMKEY_2);
3784
3785        query.append(_FINDER_COLUMN_R_N_S_NODEID_2);
3786
3787        query.append(_FINDER_COLUMN_R_N_S_STATUS_2);
3788
3789        if (orderByComparator != null) {
3790            String[] orderByFields = orderByComparator.getOrderByFields();
3791
3792            if (orderByFields.length > 0) {
3793                query.append(WHERE_AND);
3794            }
3795
3796            for (int i = 0; i < orderByFields.length; i++) {
3797                query.append(_ORDER_BY_ENTITY_ALIAS);
3798                query.append(orderByFields[i]);
3799
3800                if ((i + 1) < orderByFields.length) {
3801                    if (orderByComparator.isAscending() ^ previous) {
3802                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
3803                    }
3804                    else {
3805                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
3806                    }
3807                }
3808                else {
3809                    if (orderByComparator.isAscending() ^ previous) {
3810                        query.append(WHERE_GREATER_THAN);
3811                    }
3812                    else {
3813                        query.append(WHERE_LESSER_THAN);
3814                    }
3815                }
3816            }
3817
3818            query.append(ORDER_BY_CLAUSE);
3819
3820            for (int i = 0; i < orderByFields.length; i++) {
3821                query.append(_ORDER_BY_ENTITY_ALIAS);
3822                query.append(orderByFields[i]);
3823
3824                if ((i + 1) < orderByFields.length) {
3825                    if (orderByComparator.isAscending() ^ previous) {
3826                        query.append(ORDER_BY_ASC_HAS_NEXT);
3827                    }
3828                    else {
3829                        query.append(ORDER_BY_DESC_HAS_NEXT);
3830                    }
3831                }
3832                else {
3833                    if (orderByComparator.isAscending() ^ previous) {
3834                        query.append(ORDER_BY_ASC);
3835                    }
3836                    else {
3837                        query.append(ORDER_BY_DESC);
3838                    }
3839                }
3840            }
3841        }
3842
3843        else {
3844            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
3845        }
3846
3847        String sql = query.toString();
3848
3849        Query q = session.createQuery(sql);
3850
3851        q.setFirstResult(0);
3852        q.setMaxResults(2);
3853
3854        QueryPos qPos = QueryPos.getInstance(q);
3855
3856        qPos.add(resourcePrimKey);
3857
3858        qPos.add(nodeId);
3859
3860        qPos.add(status);
3861
3862        if (orderByComparator != null) {
3863            Object[] values = orderByComparator.getOrderByValues(wikiPage);
3864
3865            for (Object value : values) {
3866                qPos.add(value);
3867            }
3868        }
3869
3870        List<WikiPage> list = q.list();
3871
3872        if (list.size() == 2) {
3873            return list.get(1);
3874        }
3875        else {
3876            return null;
3877        }
3878    }
3879
3880    public List<WikiPage> findByU_N_S(long userId, long nodeId, int status)
3881        throws SystemException {
3882        return findByU_N_S(userId, nodeId, status, QueryUtil.ALL_POS,
3883            QueryUtil.ALL_POS, null);
3884    }
3885
3886    public List<WikiPage> findByU_N_S(long userId, long nodeId, int status,
3887        int start, int end) throws SystemException {
3888        return findByU_N_S(userId, nodeId, status, start, end, null);
3889    }
3890
3891    public List<WikiPage> findByU_N_S(long userId, long nodeId, int status,
3892        int start, int end, OrderByComparator orderByComparator)
3893        throws SystemException {
3894        Object[] finderArgs = new Object[] {
3895                new Long(userId), new Long(nodeId), new Integer(status),
3896                
3897                String.valueOf(start), String.valueOf(end),
3898                String.valueOf(orderByComparator)
3899            };
3900
3901        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_U_N_S,
3902                finderArgs, this);
3903
3904        if (list == null) {
3905            Session session = null;
3906
3907            try {
3908                session = openSession();
3909
3910                StringBundler query = null;
3911
3912                if (orderByComparator != null) {
3913                    query = new StringBundler(5 +
3914                            (orderByComparator.getOrderByFields().length * 3));
3915                }
3916                else {
3917                    query = new StringBundler(5);
3918                }
3919
3920                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
3921
3922                query.append(_FINDER_COLUMN_U_N_S_USERID_2);
3923
3924                query.append(_FINDER_COLUMN_U_N_S_NODEID_2);
3925
3926                query.append(_FINDER_COLUMN_U_N_S_STATUS_2);
3927
3928                if (orderByComparator != null) {
3929                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
3930                        orderByComparator);
3931                }
3932
3933                else {
3934                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
3935                }
3936
3937                String sql = query.toString();
3938
3939                Query q = session.createQuery(sql);
3940
3941                QueryPos qPos = QueryPos.getInstance(q);
3942
3943                qPos.add(userId);
3944
3945                qPos.add(nodeId);
3946
3947                qPos.add(status);
3948
3949                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
3950                        end);
3951            }
3952            catch (Exception e) {
3953                throw processException(e);
3954            }
3955            finally {
3956                if (list == null) {
3957                    list = new ArrayList<WikiPage>();
3958                }
3959
3960                cacheResult(list);
3961
3962                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_U_N_S,
3963                    finderArgs, list);
3964
3965                closeSession(session);
3966            }
3967        }
3968
3969        return list;
3970    }
3971
3972    public WikiPage findByU_N_S_First(long userId, long nodeId, int status,
3973        OrderByComparator orderByComparator)
3974        throws NoSuchPageException, SystemException {
3975        List<WikiPage> list = findByU_N_S(userId, nodeId, status, 0, 1,
3976                orderByComparator);
3977
3978        if (list.isEmpty()) {
3979            StringBundler msg = new StringBundler(8);
3980
3981            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
3982
3983            msg.append("userId=");
3984            msg.append(userId);
3985
3986            msg.append(", nodeId=");
3987            msg.append(nodeId);
3988
3989            msg.append(", status=");
3990            msg.append(status);
3991
3992            msg.append(StringPool.CLOSE_CURLY_BRACE);
3993
3994            throw new NoSuchPageException(msg.toString());
3995        }
3996        else {
3997            return list.get(0);
3998        }
3999    }
4000
4001    public WikiPage findByU_N_S_Last(long userId, long nodeId, int status,
4002        OrderByComparator orderByComparator)
4003        throws NoSuchPageException, SystemException {
4004        int count = countByU_N_S(userId, nodeId, status);
4005
4006        List<WikiPage> list = findByU_N_S(userId, nodeId, status, count - 1,
4007                count, orderByComparator);
4008
4009        if (list.isEmpty()) {
4010            StringBundler msg = new StringBundler(8);
4011
4012            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
4013
4014            msg.append("userId=");
4015            msg.append(userId);
4016
4017            msg.append(", nodeId=");
4018            msg.append(nodeId);
4019
4020            msg.append(", status=");
4021            msg.append(status);
4022
4023            msg.append(StringPool.CLOSE_CURLY_BRACE);
4024
4025            throw new NoSuchPageException(msg.toString());
4026        }
4027        else {
4028            return list.get(0);
4029        }
4030    }
4031
4032    public WikiPage[] findByU_N_S_PrevAndNext(long pageId, long userId,
4033        long nodeId, int status, OrderByComparator orderByComparator)
4034        throws NoSuchPageException, SystemException {
4035        WikiPage wikiPage = findByPrimaryKey(pageId);
4036
4037        Session session = null;
4038
4039        try {
4040            session = openSession();
4041
4042            WikiPage[] array = new WikiPageImpl[3];
4043
4044            array[0] = getByU_N_S_PrevAndNext(session, wikiPage, userId,
4045                    nodeId, status, orderByComparator, true);
4046
4047            array[1] = wikiPage;
4048
4049            array[2] = getByU_N_S_PrevAndNext(session, wikiPage, userId,
4050                    nodeId, status, orderByComparator, false);
4051
4052            return array;
4053        }
4054        catch (Exception e) {
4055            throw processException(e);
4056        }
4057        finally {
4058            closeSession(session);
4059        }
4060    }
4061
4062    protected WikiPage getByU_N_S_PrevAndNext(Session session,
4063        WikiPage wikiPage, long userId, long nodeId, int status,
4064        OrderByComparator orderByComparator, boolean previous) {
4065        StringBundler query = null;
4066
4067        if (orderByComparator != null) {
4068            query = new StringBundler(6 +
4069                    (orderByComparator.getOrderByFields().length * 6));
4070        }
4071        else {
4072            query = new StringBundler(3);
4073        }
4074
4075        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
4076
4077        query.append(_FINDER_COLUMN_U_N_S_USERID_2);
4078
4079        query.append(_FINDER_COLUMN_U_N_S_NODEID_2);
4080
4081        query.append(_FINDER_COLUMN_U_N_S_STATUS_2);
4082
4083        if (orderByComparator != null) {
4084            String[] orderByFields = orderByComparator.getOrderByFields();
4085
4086            if (orderByFields.length > 0) {
4087                query.append(WHERE_AND);
4088            }
4089
4090            for (int i = 0; i < orderByFields.length; i++) {
4091                query.append(_ORDER_BY_ENTITY_ALIAS);
4092                query.append(orderByFields[i]);
4093
4094                if ((i + 1) < orderByFields.length) {
4095                    if (orderByComparator.isAscending() ^ previous) {
4096                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
4097                    }
4098                    else {
4099                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
4100                    }
4101                }
4102                else {
4103                    if (orderByComparator.isAscending() ^ previous) {
4104                        query.append(WHERE_GREATER_THAN);
4105                    }
4106                    else {
4107                        query.append(WHERE_LESSER_THAN);
4108                    }
4109                }
4110            }
4111
4112            query.append(ORDER_BY_CLAUSE);
4113
4114            for (int i = 0; i < orderByFields.length; i++) {
4115                query.append(_ORDER_BY_ENTITY_ALIAS);
4116                query.append(orderByFields[i]);
4117
4118                if ((i + 1) < orderByFields.length) {
4119                    if (orderByComparator.isAscending() ^ previous) {
4120                        query.append(ORDER_BY_ASC_HAS_NEXT);
4121                    }
4122                    else {
4123                        query.append(ORDER_BY_DESC_HAS_NEXT);
4124                    }
4125                }
4126                else {
4127                    if (orderByComparator.isAscending() ^ previous) {
4128                        query.append(ORDER_BY_ASC);
4129                    }
4130                    else {
4131                        query.append(ORDER_BY_DESC);
4132                    }
4133                }
4134            }
4135        }
4136
4137        else {
4138            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
4139        }
4140
4141        String sql = query.toString();
4142
4143        Query q = session.createQuery(sql);
4144
4145        q.setFirstResult(0);
4146        q.setMaxResults(2);
4147
4148        QueryPos qPos = QueryPos.getInstance(q);
4149
4150        qPos.add(userId);
4151
4152        qPos.add(nodeId);
4153
4154        qPos.add(status);
4155
4156        if (orderByComparator != null) {
4157            Object[] values = orderByComparator.getOrderByValues(wikiPage);
4158
4159            for (Object value : values) {
4160                qPos.add(value);
4161            }
4162        }
4163
4164        List<WikiPage> list = q.list();
4165
4166        if (list.size() == 2) {
4167            return list.get(1);
4168        }
4169        else {
4170            return null;
4171        }
4172    }
4173
4174    public WikiPage findByN_T_V(long nodeId, String title, double version)
4175        throws NoSuchPageException, SystemException {
4176        WikiPage wikiPage = fetchByN_T_V(nodeId, title, version);
4177
4178        if (wikiPage == null) {
4179            StringBundler msg = new StringBundler(8);
4180
4181            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
4182
4183            msg.append("nodeId=");
4184            msg.append(nodeId);
4185
4186            msg.append(", title=");
4187            msg.append(title);
4188
4189            msg.append(", version=");
4190            msg.append(version);
4191
4192            msg.append(StringPool.CLOSE_CURLY_BRACE);
4193
4194            if (_log.isWarnEnabled()) {
4195                _log.warn(msg.toString());
4196            }
4197
4198            throw new NoSuchPageException(msg.toString());
4199        }
4200
4201        return wikiPage;
4202    }
4203
4204    public WikiPage fetchByN_T_V(long nodeId, String title, double version)
4205        throws SystemException {
4206        return fetchByN_T_V(nodeId, title, version, true);
4207    }
4208
4209    public WikiPage fetchByN_T_V(long nodeId, String title, double version,
4210        boolean retrieveFromCache) throws SystemException {
4211        Object[] finderArgs = new Object[] {
4212                new Long(nodeId),
4213                
4214                title, new Double(version)
4215            };
4216
4217        Object result = null;
4218
4219        if (retrieveFromCache) {
4220            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_N_T_V,
4221                    finderArgs, this);
4222        }
4223
4224        if (result == null) {
4225            Session session = null;
4226
4227            try {
4228                session = openSession();
4229
4230                StringBundler query = new StringBundler(5);
4231
4232                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
4233
4234                query.append(_FINDER_COLUMN_N_T_V_NODEID_2);
4235
4236                if (title == null) {
4237                    query.append(_FINDER_COLUMN_N_T_V_TITLE_1);
4238                }
4239                else {
4240                    if (title.equals(StringPool.BLANK)) {
4241                        query.append(_FINDER_COLUMN_N_T_V_TITLE_3);
4242                    }
4243                    else {
4244                        query.append(_FINDER_COLUMN_N_T_V_TITLE_2);
4245                    }
4246                }
4247
4248                query.append(_FINDER_COLUMN_N_T_V_VERSION_2);
4249
4250                query.append(WikiPageModelImpl.ORDER_BY_JPQL);
4251
4252                String sql = query.toString();
4253
4254                Query q = session.createQuery(sql);
4255
4256                QueryPos qPos = QueryPos.getInstance(q);
4257
4258                qPos.add(nodeId);
4259
4260                if (title != null) {
4261                    qPos.add(title);
4262                }
4263
4264                qPos.add(version);
4265
4266                List<WikiPage> list = q.list();
4267
4268                result = list;
4269
4270                WikiPage wikiPage = null;
4271
4272                if (list.isEmpty()) {
4273                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_N_T_V,
4274                        finderArgs, list);
4275                }
4276                else {
4277                    wikiPage = list.get(0);
4278
4279                    cacheResult(wikiPage);
4280
4281                    if ((wikiPage.getNodeId() != nodeId) ||
4282                            (wikiPage.getTitle() == null) ||
4283                            !wikiPage.getTitle().equals(title) ||
4284                            (wikiPage.getVersion() != version)) {
4285                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_N_T_V,
4286                            finderArgs, wikiPage);
4287                    }
4288                }
4289
4290                return wikiPage;
4291            }
4292            catch (Exception e) {
4293                throw processException(e);
4294            }
4295            finally {
4296                if (result == null) {
4297                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_N_T_V,
4298                        finderArgs, new ArrayList<WikiPage>());
4299                }
4300
4301                closeSession(session);
4302            }
4303        }
4304        else {
4305            if (result instanceof List<?>) {
4306                return null;
4307            }
4308            else {
4309                return (WikiPage)result;
4310            }
4311        }
4312    }
4313
4314    public List<WikiPage> findByN_T_H(long nodeId, String title, boolean head)
4315        throws SystemException {
4316        return findByN_T_H(nodeId, title, head, QueryUtil.ALL_POS,
4317            QueryUtil.ALL_POS, null);
4318    }
4319
4320    public List<WikiPage> findByN_T_H(long nodeId, String title, boolean head,
4321        int start, int end) throws SystemException {
4322        return findByN_T_H(nodeId, title, head, start, end, null);
4323    }
4324
4325    public List<WikiPage> findByN_T_H(long nodeId, String title, boolean head,
4326        int start, int end, OrderByComparator orderByComparator)
4327        throws SystemException {
4328        Object[] finderArgs = new Object[] {
4329                new Long(nodeId),
4330                
4331                title, Boolean.valueOf(head),
4332                
4333                String.valueOf(start), String.valueOf(end),
4334                String.valueOf(orderByComparator)
4335            };
4336
4337        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_N_T_H,
4338                finderArgs, this);
4339
4340        if (list == null) {
4341            Session session = null;
4342
4343            try {
4344                session = openSession();
4345
4346                StringBundler query = null;
4347
4348                if (orderByComparator != null) {
4349                    query = new StringBundler(5 +
4350                            (orderByComparator.getOrderByFields().length * 3));
4351                }
4352                else {
4353                    query = new StringBundler(5);
4354                }
4355
4356                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
4357
4358                query.append(_FINDER_COLUMN_N_T_H_NODEID_2);
4359
4360                if (title == null) {
4361                    query.append(_FINDER_COLUMN_N_T_H_TITLE_1);
4362                }
4363                else {
4364                    if (title.equals(StringPool.BLANK)) {
4365                        query.append(_FINDER_COLUMN_N_T_H_TITLE_3);
4366                    }
4367                    else {
4368                        query.append(_FINDER_COLUMN_N_T_H_TITLE_2);
4369                    }
4370                }
4371
4372                query.append(_FINDER_COLUMN_N_T_H_HEAD_2);
4373
4374                if (orderByComparator != null) {
4375                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
4376                        orderByComparator);
4377                }
4378
4379                else {
4380                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
4381                }
4382
4383                String sql = query.toString();
4384
4385                Query q = session.createQuery(sql);
4386
4387                QueryPos qPos = QueryPos.getInstance(q);
4388
4389                qPos.add(nodeId);
4390
4391                if (title != null) {
4392                    qPos.add(title);
4393                }
4394
4395                qPos.add(head);
4396
4397                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
4398                        end);
4399            }
4400            catch (Exception e) {
4401                throw processException(e);
4402            }
4403            finally {
4404                if (list == null) {
4405                    list = new ArrayList<WikiPage>();
4406                }
4407
4408                cacheResult(list);
4409
4410                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_N_T_H,
4411                    finderArgs, list);
4412
4413                closeSession(session);
4414            }
4415        }
4416
4417        return list;
4418    }
4419
4420    public WikiPage findByN_T_H_First(long nodeId, String title, boolean head,
4421        OrderByComparator orderByComparator)
4422        throws NoSuchPageException, SystemException {
4423        List<WikiPage> list = findByN_T_H(nodeId, title, head, 0, 1,
4424                orderByComparator);
4425
4426        if (list.isEmpty()) {
4427            StringBundler msg = new StringBundler(8);
4428
4429            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
4430
4431            msg.append("nodeId=");
4432            msg.append(nodeId);
4433
4434            msg.append(", title=");
4435            msg.append(title);
4436
4437            msg.append(", head=");
4438            msg.append(head);
4439
4440            msg.append(StringPool.CLOSE_CURLY_BRACE);
4441
4442            throw new NoSuchPageException(msg.toString());
4443        }
4444        else {
4445            return list.get(0);
4446        }
4447    }
4448
4449    public WikiPage findByN_T_H_Last(long nodeId, String title, boolean head,
4450        OrderByComparator orderByComparator)
4451        throws NoSuchPageException, SystemException {
4452        int count = countByN_T_H(nodeId, title, head);
4453
4454        List<WikiPage> list = findByN_T_H(nodeId, title, head, count - 1,
4455                count, orderByComparator);
4456
4457        if (list.isEmpty()) {
4458            StringBundler msg = new StringBundler(8);
4459
4460            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
4461
4462            msg.append("nodeId=");
4463            msg.append(nodeId);
4464
4465            msg.append(", title=");
4466            msg.append(title);
4467
4468            msg.append(", head=");
4469            msg.append(head);
4470
4471            msg.append(StringPool.CLOSE_CURLY_BRACE);
4472
4473            throw new NoSuchPageException(msg.toString());
4474        }
4475        else {
4476            return list.get(0);
4477        }
4478    }
4479
4480    public WikiPage[] findByN_T_H_PrevAndNext(long pageId, long nodeId,
4481        String title, boolean head, OrderByComparator orderByComparator)
4482        throws NoSuchPageException, SystemException {
4483        WikiPage wikiPage = findByPrimaryKey(pageId);
4484
4485        Session session = null;
4486
4487        try {
4488            session = openSession();
4489
4490            WikiPage[] array = new WikiPageImpl[3];
4491
4492            array[0] = getByN_T_H_PrevAndNext(session, wikiPage, nodeId, title,
4493                    head, orderByComparator, true);
4494
4495            array[1] = wikiPage;
4496
4497            array[2] = getByN_T_H_PrevAndNext(session, wikiPage, nodeId, title,
4498                    head, orderByComparator, false);
4499
4500            return array;
4501        }
4502        catch (Exception e) {
4503            throw processException(e);
4504        }
4505        finally {
4506            closeSession(session);
4507        }
4508    }
4509
4510    protected WikiPage getByN_T_H_PrevAndNext(Session session,
4511        WikiPage wikiPage, long nodeId, String title, boolean head,
4512        OrderByComparator orderByComparator, boolean previous) {
4513        StringBundler query = null;
4514
4515        if (orderByComparator != null) {
4516            query = new StringBundler(6 +
4517                    (orderByComparator.getOrderByFields().length * 6));
4518        }
4519        else {
4520            query = new StringBundler(3);
4521        }
4522
4523        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
4524
4525        query.append(_FINDER_COLUMN_N_T_H_NODEID_2);
4526
4527        if (title == null) {
4528            query.append(_FINDER_COLUMN_N_T_H_TITLE_1);
4529        }
4530        else {
4531            if (title.equals(StringPool.BLANK)) {
4532                query.append(_FINDER_COLUMN_N_T_H_TITLE_3);
4533            }
4534            else {
4535                query.append(_FINDER_COLUMN_N_T_H_TITLE_2);
4536            }
4537        }
4538
4539        query.append(_FINDER_COLUMN_N_T_H_HEAD_2);
4540
4541        if (orderByComparator != null) {
4542            String[] orderByFields = orderByComparator.getOrderByFields();
4543
4544            if (orderByFields.length > 0) {
4545                query.append(WHERE_AND);
4546            }
4547
4548            for (int i = 0; i < orderByFields.length; i++) {
4549                query.append(_ORDER_BY_ENTITY_ALIAS);
4550                query.append(orderByFields[i]);
4551
4552                if ((i + 1) < orderByFields.length) {
4553                    if (orderByComparator.isAscending() ^ previous) {
4554                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
4555                    }
4556                    else {
4557                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
4558                    }
4559                }
4560                else {
4561                    if (orderByComparator.isAscending() ^ previous) {
4562                        query.append(WHERE_GREATER_THAN);
4563                    }
4564                    else {
4565                        query.append(WHERE_LESSER_THAN);
4566                    }
4567                }
4568            }
4569
4570            query.append(ORDER_BY_CLAUSE);
4571
4572            for (int i = 0; i < orderByFields.length; i++) {
4573                query.append(_ORDER_BY_ENTITY_ALIAS);
4574                query.append(orderByFields[i]);
4575
4576                if ((i + 1) < orderByFields.length) {
4577                    if (orderByComparator.isAscending() ^ previous) {
4578                        query.append(ORDER_BY_ASC_HAS_NEXT);
4579                    }
4580                    else {
4581                        query.append(ORDER_BY_DESC_HAS_NEXT);
4582                    }
4583                }
4584                else {
4585                    if (orderByComparator.isAscending() ^ previous) {
4586                        query.append(ORDER_BY_ASC);
4587                    }
4588                    else {
4589                        query.append(ORDER_BY_DESC);
4590                    }
4591                }
4592            }
4593        }
4594
4595        else {
4596            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
4597        }
4598
4599        String sql = query.toString();
4600
4601        Query q = session.createQuery(sql);
4602
4603        q.setFirstResult(0);
4604        q.setMaxResults(2);
4605
4606        QueryPos qPos = QueryPos.getInstance(q);
4607
4608        qPos.add(nodeId);
4609
4610        if (title != null) {
4611            qPos.add(title);
4612        }
4613
4614        qPos.add(head);
4615
4616        if (orderByComparator != null) {
4617            Object[] values = orderByComparator.getOrderByValues(wikiPage);
4618
4619            for (Object value : values) {
4620                qPos.add(value);
4621            }
4622        }
4623
4624        List<WikiPage> list = q.list();
4625
4626        if (list.size() == 2) {
4627            return list.get(1);
4628        }
4629        else {
4630            return null;
4631        }
4632    }
4633
4634    public List<WikiPage> findByN_T_S(long nodeId, String title, int status)
4635        throws SystemException {
4636        return findByN_T_S(nodeId, title, status, QueryUtil.ALL_POS,
4637            QueryUtil.ALL_POS, null);
4638    }
4639
4640    public List<WikiPage> findByN_T_S(long nodeId, String title, int status,
4641        int start, int end) throws SystemException {
4642        return findByN_T_S(nodeId, title, status, start, end, null);
4643    }
4644
4645    public List<WikiPage> findByN_T_S(long nodeId, String title, int status,
4646        int start, int end, OrderByComparator orderByComparator)
4647        throws SystemException {
4648        Object[] finderArgs = new Object[] {
4649                new Long(nodeId),
4650                
4651                title, new Integer(status),
4652                
4653                String.valueOf(start), String.valueOf(end),
4654                String.valueOf(orderByComparator)
4655            };
4656
4657        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_N_T_S,
4658                finderArgs, this);
4659
4660        if (list == null) {
4661            Session session = null;
4662
4663            try {
4664                session = openSession();
4665
4666                StringBundler query = null;
4667
4668                if (orderByComparator != null) {
4669                    query = new StringBundler(5 +
4670                            (orderByComparator.getOrderByFields().length * 3));
4671                }
4672                else {
4673                    query = new StringBundler(5);
4674                }
4675
4676                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
4677
4678                query.append(_FINDER_COLUMN_N_T_S_NODEID_2);
4679
4680                if (title == null) {
4681                    query.append(_FINDER_COLUMN_N_T_S_TITLE_1);
4682                }
4683                else {
4684                    if (title.equals(StringPool.BLANK)) {
4685                        query.append(_FINDER_COLUMN_N_T_S_TITLE_3);
4686                    }
4687                    else {
4688                        query.append(_FINDER_COLUMN_N_T_S_TITLE_2);
4689                    }
4690                }
4691
4692                query.append(_FINDER_COLUMN_N_T_S_STATUS_2);
4693
4694                if (orderByComparator != null) {
4695                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
4696                        orderByComparator);
4697                }
4698
4699                else {
4700                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
4701                }
4702
4703                String sql = query.toString();
4704
4705                Query q = session.createQuery(sql);
4706
4707                QueryPos qPos = QueryPos.getInstance(q);
4708
4709                qPos.add(nodeId);
4710
4711                if (title != null) {
4712                    qPos.add(title);
4713                }
4714
4715                qPos.add(status);
4716
4717                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
4718                        end);
4719            }
4720            catch (Exception e) {
4721                throw processException(e);
4722            }
4723            finally {
4724                if (list == null) {
4725                    list = new ArrayList<WikiPage>();
4726                }
4727
4728                cacheResult(list);
4729
4730                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_N_T_S,
4731                    finderArgs, list);
4732
4733                closeSession(session);
4734            }
4735        }
4736
4737        return list;
4738    }
4739
4740    public WikiPage findByN_T_S_First(long nodeId, String title, int status,
4741        OrderByComparator orderByComparator)
4742        throws NoSuchPageException, SystemException {
4743        List<WikiPage> list = findByN_T_S(nodeId, title, status, 0, 1,
4744                orderByComparator);
4745
4746        if (list.isEmpty()) {
4747            StringBundler msg = new StringBundler(8);
4748
4749            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
4750
4751            msg.append("nodeId=");
4752            msg.append(nodeId);
4753
4754            msg.append(", title=");
4755            msg.append(title);
4756
4757            msg.append(", status=");
4758            msg.append(status);
4759
4760            msg.append(StringPool.CLOSE_CURLY_BRACE);
4761
4762            throw new NoSuchPageException(msg.toString());
4763        }
4764        else {
4765            return list.get(0);
4766        }
4767    }
4768
4769    public WikiPage findByN_T_S_Last(long nodeId, String title, int status,
4770        OrderByComparator orderByComparator)
4771        throws NoSuchPageException, SystemException {
4772        int count = countByN_T_S(nodeId, title, status);
4773
4774        List<WikiPage> list = findByN_T_S(nodeId, title, status, count - 1,
4775                count, orderByComparator);
4776
4777        if (list.isEmpty()) {
4778            StringBundler msg = new StringBundler(8);
4779
4780            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
4781
4782            msg.append("nodeId=");
4783            msg.append(nodeId);
4784
4785            msg.append(", title=");
4786            msg.append(title);
4787
4788            msg.append(", status=");
4789            msg.append(status);
4790
4791            msg.append(StringPool.CLOSE_CURLY_BRACE);
4792
4793            throw new NoSuchPageException(msg.toString());
4794        }
4795        else {
4796            return list.get(0);
4797        }
4798    }
4799
4800    public WikiPage[] findByN_T_S_PrevAndNext(long pageId, long nodeId,
4801        String title, int status, OrderByComparator orderByComparator)
4802        throws NoSuchPageException, SystemException {
4803        WikiPage wikiPage = findByPrimaryKey(pageId);
4804
4805        Session session = null;
4806
4807        try {
4808            session = openSession();
4809
4810            WikiPage[] array = new WikiPageImpl[3];
4811
4812            array[0] = getByN_T_S_PrevAndNext(session, wikiPage, nodeId, title,
4813                    status, orderByComparator, true);
4814
4815            array[1] = wikiPage;
4816
4817            array[2] = getByN_T_S_PrevAndNext(session, wikiPage, nodeId, title,
4818                    status, orderByComparator, false);
4819
4820            return array;
4821        }
4822        catch (Exception e) {
4823            throw processException(e);
4824        }
4825        finally {
4826            closeSession(session);
4827        }
4828    }
4829
4830    protected WikiPage getByN_T_S_PrevAndNext(Session session,
4831        WikiPage wikiPage, long nodeId, String title, int status,
4832        OrderByComparator orderByComparator, boolean previous) {
4833        StringBundler query = null;
4834
4835        if (orderByComparator != null) {
4836            query = new StringBundler(6 +
4837                    (orderByComparator.getOrderByFields().length * 6));
4838        }
4839        else {
4840            query = new StringBundler(3);
4841        }
4842
4843        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
4844
4845        query.append(_FINDER_COLUMN_N_T_S_NODEID_2);
4846
4847        if (title == null) {
4848            query.append(_FINDER_COLUMN_N_T_S_TITLE_1);
4849        }
4850        else {
4851            if (title.equals(StringPool.BLANK)) {
4852                query.append(_FINDER_COLUMN_N_T_S_TITLE_3);
4853            }
4854            else {
4855                query.append(_FINDER_COLUMN_N_T_S_TITLE_2);
4856            }
4857        }
4858
4859        query.append(_FINDER_COLUMN_N_T_S_STATUS_2);
4860
4861        if (orderByComparator != null) {
4862            String[] orderByFields = orderByComparator.getOrderByFields();
4863
4864            if (orderByFields.length > 0) {
4865                query.append(WHERE_AND);
4866            }
4867
4868            for (int i = 0; i < orderByFields.length; i++) {
4869                query.append(_ORDER_BY_ENTITY_ALIAS);
4870                query.append(orderByFields[i]);
4871
4872                if ((i + 1) < orderByFields.length) {
4873                    if (orderByComparator.isAscending() ^ previous) {
4874                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
4875                    }
4876                    else {
4877                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
4878                    }
4879                }
4880                else {
4881                    if (orderByComparator.isAscending() ^ previous) {
4882                        query.append(WHERE_GREATER_THAN);
4883                    }
4884                    else {
4885                        query.append(WHERE_LESSER_THAN);
4886                    }
4887                }
4888            }
4889
4890            query.append(ORDER_BY_CLAUSE);
4891
4892            for (int i = 0; i < orderByFields.length; i++) {
4893                query.append(_ORDER_BY_ENTITY_ALIAS);
4894                query.append(orderByFields[i]);
4895
4896                if ((i + 1) < orderByFields.length) {
4897                    if (orderByComparator.isAscending() ^ previous) {
4898                        query.append(ORDER_BY_ASC_HAS_NEXT);
4899                    }
4900                    else {
4901                        query.append(ORDER_BY_DESC_HAS_NEXT);
4902                    }
4903                }
4904                else {
4905                    if (orderByComparator.isAscending() ^ previous) {
4906                        query.append(ORDER_BY_ASC);
4907                    }
4908                    else {
4909                        query.append(ORDER_BY_DESC);
4910                    }
4911                }
4912            }
4913        }
4914
4915        else {
4916            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
4917        }
4918
4919        String sql = query.toString();
4920
4921        Query q = session.createQuery(sql);
4922
4923        q.setFirstResult(0);
4924        q.setMaxResults(2);
4925
4926        QueryPos qPos = QueryPos.getInstance(q);
4927
4928        qPos.add(nodeId);
4929
4930        if (title != null) {
4931            qPos.add(title);
4932        }
4933
4934        qPos.add(status);
4935
4936        if (orderByComparator != null) {
4937            Object[] values = orderByComparator.getOrderByValues(wikiPage);
4938
4939            for (Object value : values) {
4940                qPos.add(value);
4941            }
4942        }
4943
4944        List<WikiPage> list = q.list();
4945
4946        if (list.size() == 2) {
4947            return list.get(1);
4948        }
4949        else {
4950            return null;
4951        }
4952    }
4953
4954    public List<WikiPage> findByN_H_P(long nodeId, boolean head,
4955        String parentTitle) throws SystemException {
4956        return findByN_H_P(nodeId, head, parentTitle, QueryUtil.ALL_POS,
4957            QueryUtil.ALL_POS, null);
4958    }
4959
4960    public List<WikiPage> findByN_H_P(long nodeId, boolean head,
4961        String parentTitle, int start, int end) throws SystemException {
4962        return findByN_H_P(nodeId, head, parentTitle, start, end, null);
4963    }
4964
4965    public List<WikiPage> findByN_H_P(long nodeId, boolean head,
4966        String parentTitle, int start, int end,
4967        OrderByComparator orderByComparator) throws SystemException {
4968        Object[] finderArgs = new Object[] {
4969                new Long(nodeId), Boolean.valueOf(head),
4970                
4971                parentTitle,
4972                
4973                String.valueOf(start), String.valueOf(end),
4974                String.valueOf(orderByComparator)
4975            };
4976
4977        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_N_H_P,
4978                finderArgs, this);
4979
4980        if (list == null) {
4981            Session session = null;
4982
4983            try {
4984                session = openSession();
4985
4986                StringBundler query = null;
4987
4988                if (orderByComparator != null) {
4989                    query = new StringBundler(5 +
4990                            (orderByComparator.getOrderByFields().length * 3));
4991                }
4992                else {
4993                    query = new StringBundler(5);
4994                }
4995
4996                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
4997
4998                query.append(_FINDER_COLUMN_N_H_P_NODEID_2);
4999
5000                query.append(_FINDER_COLUMN_N_H_P_HEAD_2);
5001
5002                if (parentTitle == null) {
5003                    query.append(_FINDER_COLUMN_N_H_P_PARENTTITLE_1);
5004                }
5005                else {
5006                    if (parentTitle.equals(StringPool.BLANK)) {
5007                        query.append(_FINDER_COLUMN_N_H_P_PARENTTITLE_3);
5008                    }
5009                    else {
5010                        query.append(_FINDER_COLUMN_N_H_P_PARENTTITLE_2);
5011                    }
5012                }
5013
5014                if (orderByComparator != null) {
5015                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
5016                        orderByComparator);
5017                }
5018
5019                else {
5020                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
5021                }
5022
5023                String sql = query.toString();
5024
5025                Query q = session.createQuery(sql);
5026
5027                QueryPos qPos = QueryPos.getInstance(q);
5028
5029                qPos.add(nodeId);
5030
5031                qPos.add(head);
5032
5033                if (parentTitle != null) {
5034                    qPos.add(parentTitle);
5035                }
5036
5037                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
5038                        end);
5039            }
5040            catch (Exception e) {
5041                throw processException(e);
5042            }
5043            finally {
5044                if (list == null) {
5045                    list = new ArrayList<WikiPage>();
5046                }
5047
5048                cacheResult(list);
5049
5050                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_N_H_P,
5051                    finderArgs, list);
5052
5053                closeSession(session);
5054            }
5055        }
5056
5057        return list;
5058    }
5059
5060    public WikiPage findByN_H_P_First(long nodeId, boolean head,
5061        String parentTitle, OrderByComparator orderByComparator)
5062        throws NoSuchPageException, SystemException {
5063        List<WikiPage> list = findByN_H_P(nodeId, head, parentTitle, 0, 1,
5064                orderByComparator);
5065
5066        if (list.isEmpty()) {
5067            StringBundler msg = new StringBundler(8);
5068
5069            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
5070
5071            msg.append("nodeId=");
5072            msg.append(nodeId);
5073
5074            msg.append(", head=");
5075            msg.append(head);
5076
5077            msg.append(", parentTitle=");
5078            msg.append(parentTitle);
5079
5080            msg.append(StringPool.CLOSE_CURLY_BRACE);
5081
5082            throw new NoSuchPageException(msg.toString());
5083        }
5084        else {
5085            return list.get(0);
5086        }
5087    }
5088
5089    public WikiPage findByN_H_P_Last(long nodeId, boolean head,
5090        String parentTitle, OrderByComparator orderByComparator)
5091        throws NoSuchPageException, SystemException {
5092        int count = countByN_H_P(nodeId, head, parentTitle);
5093
5094        List<WikiPage> list = findByN_H_P(nodeId, head, parentTitle, count - 1,
5095                count, orderByComparator);
5096
5097        if (list.isEmpty()) {
5098            StringBundler msg = new StringBundler(8);
5099
5100            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
5101
5102            msg.append("nodeId=");
5103            msg.append(nodeId);
5104
5105            msg.append(", head=");
5106            msg.append(head);
5107
5108            msg.append(", parentTitle=");
5109            msg.append(parentTitle);
5110
5111            msg.append(StringPool.CLOSE_CURLY_BRACE);
5112
5113            throw new NoSuchPageException(msg.toString());
5114        }
5115        else {
5116            return list.get(0);
5117        }
5118    }
5119
5120    public WikiPage[] findByN_H_P_PrevAndNext(long pageId, long nodeId,
5121        boolean head, String parentTitle, OrderByComparator orderByComparator)
5122        throws NoSuchPageException, SystemException {
5123        WikiPage wikiPage = findByPrimaryKey(pageId);
5124
5125        Session session = null;
5126
5127        try {
5128            session = openSession();
5129
5130            WikiPage[] array = new WikiPageImpl[3];
5131
5132            array[0] = getByN_H_P_PrevAndNext(session, wikiPage, nodeId, head,
5133                    parentTitle, orderByComparator, true);
5134
5135            array[1] = wikiPage;
5136
5137            array[2] = getByN_H_P_PrevAndNext(session, wikiPage, nodeId, head,
5138                    parentTitle, orderByComparator, false);
5139
5140            return array;
5141        }
5142        catch (Exception e) {
5143            throw processException(e);
5144        }
5145        finally {
5146            closeSession(session);
5147        }
5148    }
5149
5150    protected WikiPage getByN_H_P_PrevAndNext(Session session,
5151        WikiPage wikiPage, long nodeId, boolean head, String parentTitle,
5152        OrderByComparator orderByComparator, boolean previous) {
5153        StringBundler query = null;
5154
5155        if (orderByComparator != null) {
5156            query = new StringBundler(6 +
5157                    (orderByComparator.getOrderByFields().length * 6));
5158        }
5159        else {
5160            query = new StringBundler(3);
5161        }
5162
5163        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
5164
5165        query.append(_FINDER_COLUMN_N_H_P_NODEID_2);
5166
5167        query.append(_FINDER_COLUMN_N_H_P_HEAD_2);
5168
5169        if (parentTitle == null) {
5170            query.append(_FINDER_COLUMN_N_H_P_PARENTTITLE_1);
5171        }
5172        else {
5173            if (parentTitle.equals(StringPool.BLANK)) {
5174                query.append(_FINDER_COLUMN_N_H_P_PARENTTITLE_3);
5175            }
5176            else {
5177                query.append(_FINDER_COLUMN_N_H_P_PARENTTITLE_2);
5178            }
5179        }
5180
5181        if (orderByComparator != null) {
5182            String[] orderByFields = orderByComparator.getOrderByFields();
5183
5184            if (orderByFields.length > 0) {
5185                query.append(WHERE_AND);
5186            }
5187
5188            for (int i = 0; i < orderByFields.length; i++) {
5189                query.append(_ORDER_BY_ENTITY_ALIAS);
5190                query.append(orderByFields[i]);
5191
5192                if ((i + 1) < orderByFields.length) {
5193                    if (orderByComparator.isAscending() ^ previous) {
5194                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
5195                    }
5196                    else {
5197                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
5198                    }
5199                }
5200                else {
5201                    if (orderByComparator.isAscending() ^ previous) {
5202                        query.append(WHERE_GREATER_THAN);
5203                    }
5204                    else {
5205                        query.append(WHERE_LESSER_THAN);
5206                    }
5207                }
5208            }
5209
5210            query.append(ORDER_BY_CLAUSE);
5211
5212            for (int i = 0; i < orderByFields.length; i++) {
5213                query.append(_ORDER_BY_ENTITY_ALIAS);
5214                query.append(orderByFields[i]);
5215
5216                if ((i + 1) < orderByFields.length) {
5217                    if (orderByComparator.isAscending() ^ previous) {
5218                        query.append(ORDER_BY_ASC_HAS_NEXT);
5219                    }
5220                    else {
5221                        query.append(ORDER_BY_DESC_HAS_NEXT);
5222                    }
5223                }
5224                else {
5225                    if (orderByComparator.isAscending() ^ previous) {
5226                        query.append(ORDER_BY_ASC);
5227                    }
5228                    else {
5229                        query.append(ORDER_BY_DESC);
5230                    }
5231                }
5232            }
5233        }
5234
5235        else {
5236            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
5237        }
5238
5239        String sql = query.toString();
5240
5241        Query q = session.createQuery(sql);
5242
5243        q.setFirstResult(0);
5244        q.setMaxResults(2);
5245
5246        QueryPos qPos = QueryPos.getInstance(q);
5247
5248        qPos.add(nodeId);
5249
5250        qPos.add(head);
5251
5252        if (parentTitle != null) {
5253            qPos.add(parentTitle);
5254        }
5255
5256        if (orderByComparator != null) {
5257            Object[] values = orderByComparator.getOrderByValues(wikiPage);
5258
5259            for (Object value : values) {
5260                qPos.add(value);
5261            }
5262        }
5263
5264        List<WikiPage> list = q.list();
5265
5266        if (list.size() == 2) {
5267            return list.get(1);
5268        }
5269        else {
5270            return null;
5271        }
5272    }
5273
5274    public List<WikiPage> findByN_H_S(long nodeId, boolean head, int status)
5275        throws SystemException {
5276        return findByN_H_S(nodeId, head, status, QueryUtil.ALL_POS,
5277            QueryUtil.ALL_POS, null);
5278    }
5279
5280    public List<WikiPage> findByN_H_S(long nodeId, boolean head, int status,
5281        int start, int end) throws SystemException {
5282        return findByN_H_S(nodeId, head, status, start, end, null);
5283    }
5284
5285    public List<WikiPage> findByN_H_S(long nodeId, boolean head, int status,
5286        int start, int end, OrderByComparator orderByComparator)
5287        throws SystemException {
5288        Object[] finderArgs = new Object[] {
5289                new Long(nodeId), Boolean.valueOf(head), new Integer(status),
5290                
5291                String.valueOf(start), String.valueOf(end),
5292                String.valueOf(orderByComparator)
5293            };
5294
5295        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_N_H_S,
5296                finderArgs, this);
5297
5298        if (list == null) {
5299            Session session = null;
5300
5301            try {
5302                session = openSession();
5303
5304                StringBundler query = null;
5305
5306                if (orderByComparator != null) {
5307                    query = new StringBundler(5 +
5308                            (orderByComparator.getOrderByFields().length * 3));
5309                }
5310                else {
5311                    query = new StringBundler(5);
5312                }
5313
5314                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
5315
5316                query.append(_FINDER_COLUMN_N_H_S_NODEID_2);
5317
5318                query.append(_FINDER_COLUMN_N_H_S_HEAD_2);
5319
5320                query.append(_FINDER_COLUMN_N_H_S_STATUS_2);
5321
5322                if (orderByComparator != null) {
5323                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
5324                        orderByComparator);
5325                }
5326
5327                else {
5328                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
5329                }
5330
5331                String sql = query.toString();
5332
5333                Query q = session.createQuery(sql);
5334
5335                QueryPos qPos = QueryPos.getInstance(q);
5336
5337                qPos.add(nodeId);
5338
5339                qPos.add(head);
5340
5341                qPos.add(status);
5342
5343                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
5344                        end);
5345            }
5346            catch (Exception e) {
5347                throw processException(e);
5348            }
5349            finally {
5350                if (list == null) {
5351                    list = new ArrayList<WikiPage>();
5352                }
5353
5354                cacheResult(list);
5355
5356                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_N_H_S,
5357                    finderArgs, list);
5358
5359                closeSession(session);
5360            }
5361        }
5362
5363        return list;
5364    }
5365
5366    public WikiPage findByN_H_S_First(long nodeId, boolean head, int status,
5367        OrderByComparator orderByComparator)
5368        throws NoSuchPageException, SystemException {
5369        List<WikiPage> list = findByN_H_S(nodeId, head, status, 0, 1,
5370                orderByComparator);
5371
5372        if (list.isEmpty()) {
5373            StringBundler msg = new StringBundler(8);
5374
5375            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
5376
5377            msg.append("nodeId=");
5378            msg.append(nodeId);
5379
5380            msg.append(", head=");
5381            msg.append(head);
5382
5383            msg.append(", status=");
5384            msg.append(status);
5385
5386            msg.append(StringPool.CLOSE_CURLY_BRACE);
5387
5388            throw new NoSuchPageException(msg.toString());
5389        }
5390        else {
5391            return list.get(0);
5392        }
5393    }
5394
5395    public WikiPage findByN_H_S_Last(long nodeId, boolean head, int status,
5396        OrderByComparator orderByComparator)
5397        throws NoSuchPageException, SystemException {
5398        int count = countByN_H_S(nodeId, head, status);
5399
5400        List<WikiPage> list = findByN_H_S(nodeId, head, status, count - 1,
5401                count, orderByComparator);
5402
5403        if (list.isEmpty()) {
5404            StringBundler msg = new StringBundler(8);
5405
5406            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
5407
5408            msg.append("nodeId=");
5409            msg.append(nodeId);
5410
5411            msg.append(", head=");
5412            msg.append(head);
5413
5414            msg.append(", status=");
5415            msg.append(status);
5416
5417            msg.append(StringPool.CLOSE_CURLY_BRACE);
5418
5419            throw new NoSuchPageException(msg.toString());
5420        }
5421        else {
5422            return list.get(0);
5423        }
5424    }
5425
5426    public WikiPage[] findByN_H_S_PrevAndNext(long pageId, long nodeId,
5427        boolean head, int status, OrderByComparator orderByComparator)
5428        throws NoSuchPageException, SystemException {
5429        WikiPage wikiPage = findByPrimaryKey(pageId);
5430
5431        Session session = null;
5432
5433        try {
5434            session = openSession();
5435
5436            WikiPage[] array = new WikiPageImpl[3];
5437
5438            array[0] = getByN_H_S_PrevAndNext(session, wikiPage, nodeId, head,
5439                    status, orderByComparator, true);
5440
5441            array[1] = wikiPage;
5442
5443            array[2] = getByN_H_S_PrevAndNext(session, wikiPage, nodeId, head,
5444                    status, orderByComparator, false);
5445
5446            return array;
5447        }
5448        catch (Exception e) {
5449            throw processException(e);
5450        }
5451        finally {
5452            closeSession(session);
5453        }
5454    }
5455
5456    protected WikiPage getByN_H_S_PrevAndNext(Session session,
5457        WikiPage wikiPage, long nodeId, boolean head, int status,
5458        OrderByComparator orderByComparator, boolean previous) {
5459        StringBundler query = null;
5460
5461        if (orderByComparator != null) {
5462            query = new StringBundler(6 +
5463                    (orderByComparator.getOrderByFields().length * 6));
5464        }
5465        else {
5466            query = new StringBundler(3);
5467        }
5468
5469        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
5470
5471        query.append(_FINDER_COLUMN_N_H_S_NODEID_2);
5472
5473        query.append(_FINDER_COLUMN_N_H_S_HEAD_2);
5474
5475        query.append(_FINDER_COLUMN_N_H_S_STATUS_2);
5476
5477        if (orderByComparator != null) {
5478            String[] orderByFields = orderByComparator.getOrderByFields();
5479
5480            if (orderByFields.length > 0) {
5481                query.append(WHERE_AND);
5482            }
5483
5484            for (int i = 0; i < orderByFields.length; i++) {
5485                query.append(_ORDER_BY_ENTITY_ALIAS);
5486                query.append(orderByFields[i]);
5487
5488                if ((i + 1) < orderByFields.length) {
5489                    if (orderByComparator.isAscending() ^ previous) {
5490                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
5491                    }
5492                    else {
5493                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
5494                    }
5495                }
5496                else {
5497                    if (orderByComparator.isAscending() ^ previous) {
5498                        query.append(WHERE_GREATER_THAN);
5499                    }
5500                    else {
5501                        query.append(WHERE_LESSER_THAN);
5502                    }
5503                }
5504            }
5505
5506            query.append(ORDER_BY_CLAUSE);
5507
5508            for (int i = 0; i < orderByFields.length; i++) {
5509                query.append(_ORDER_BY_ENTITY_ALIAS);
5510                query.append(orderByFields[i]);
5511
5512                if ((i + 1) < orderByFields.length) {
5513                    if (orderByComparator.isAscending() ^ previous) {
5514                        query.append(ORDER_BY_ASC_HAS_NEXT);
5515                    }
5516                    else {
5517                        query.append(ORDER_BY_DESC_HAS_NEXT);
5518                    }
5519                }
5520                else {
5521                    if (orderByComparator.isAscending() ^ previous) {
5522                        query.append(ORDER_BY_ASC);
5523                    }
5524                    else {
5525                        query.append(ORDER_BY_DESC);
5526                    }
5527                }
5528            }
5529        }
5530
5531        else {
5532            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
5533        }
5534
5535        String sql = query.toString();
5536
5537        Query q = session.createQuery(sql);
5538
5539        q.setFirstResult(0);
5540        q.setMaxResults(2);
5541
5542        QueryPos qPos = QueryPos.getInstance(q);
5543
5544        qPos.add(nodeId);
5545
5546        qPos.add(head);
5547
5548        qPos.add(status);
5549
5550        if (orderByComparator != null) {
5551            Object[] values = orderByComparator.getOrderByValues(wikiPage);
5552
5553            for (Object value : values) {
5554                qPos.add(value);
5555            }
5556        }
5557
5558        List<WikiPage> list = q.list();
5559
5560        if (list.size() == 2) {
5561            return list.get(1);
5562        }
5563        else {
5564            return null;
5565        }
5566    }
5567
5568    public List<WikiPage> findByN_H_P_S(long nodeId, boolean head,
5569        String parentTitle, int status) throws SystemException {
5570        return findByN_H_P_S(nodeId, head, parentTitle, status,
5571            QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
5572    }
5573
5574    public List<WikiPage> findByN_H_P_S(long nodeId, boolean head,
5575        String parentTitle, int status, int start, int end)
5576        throws SystemException {
5577        return findByN_H_P_S(nodeId, head, parentTitle, status, start, end, null);
5578    }
5579
5580    public List<WikiPage> findByN_H_P_S(long nodeId, boolean head,
5581        String parentTitle, int status, int start, int end,
5582        OrderByComparator orderByComparator) throws SystemException {
5583        Object[] finderArgs = new Object[] {
5584                new Long(nodeId), Boolean.valueOf(head),
5585                
5586                parentTitle, new Integer(status),
5587                
5588                String.valueOf(start), String.valueOf(end),
5589                String.valueOf(orderByComparator)
5590            };
5591
5592        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_N_H_P_S,
5593                finderArgs, this);
5594
5595        if (list == null) {
5596            Session session = null;
5597
5598            try {
5599                session = openSession();
5600
5601                StringBundler query = null;
5602
5603                if (orderByComparator != null) {
5604                    query = new StringBundler(6 +
5605                            (orderByComparator.getOrderByFields().length * 3));
5606                }
5607                else {
5608                    query = new StringBundler(6);
5609                }
5610
5611                query.append(_SQL_SELECT_WIKIPAGE_WHERE);
5612
5613                query.append(_FINDER_COLUMN_N_H_P_S_NODEID_2);
5614
5615                query.append(_FINDER_COLUMN_N_H_P_S_HEAD_2);
5616
5617                if (parentTitle == null) {
5618                    query.append(_FINDER_COLUMN_N_H_P_S_PARENTTITLE_1);
5619                }
5620                else {
5621                    if (parentTitle.equals(StringPool.BLANK)) {
5622                        query.append(_FINDER_COLUMN_N_H_P_S_PARENTTITLE_3);
5623                    }
5624                    else {
5625                        query.append(_FINDER_COLUMN_N_H_P_S_PARENTTITLE_2);
5626                    }
5627                }
5628
5629                query.append(_FINDER_COLUMN_N_H_P_S_STATUS_2);
5630
5631                if (orderByComparator != null) {
5632                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
5633                        orderByComparator);
5634                }
5635
5636                else {
5637                    query.append(WikiPageModelImpl.ORDER_BY_JPQL);
5638                }
5639
5640                String sql = query.toString();
5641
5642                Query q = session.createQuery(sql);
5643
5644                QueryPos qPos = QueryPos.getInstance(q);
5645
5646                qPos.add(nodeId);
5647
5648                qPos.add(head);
5649
5650                if (parentTitle != null) {
5651                    qPos.add(parentTitle);
5652                }
5653
5654                qPos.add(status);
5655
5656                list = (List<WikiPage>)QueryUtil.list(q, getDialect(), start,
5657                        end);
5658            }
5659            catch (Exception e) {
5660                throw processException(e);
5661            }
5662            finally {
5663                if (list == null) {
5664                    list = new ArrayList<WikiPage>();
5665                }
5666
5667                cacheResult(list);
5668
5669                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_N_H_P_S,
5670                    finderArgs, list);
5671
5672                closeSession(session);
5673            }
5674        }
5675
5676        return list;
5677    }
5678
5679    public WikiPage findByN_H_P_S_First(long nodeId, boolean head,
5680        String parentTitle, int status, OrderByComparator orderByComparator)
5681        throws NoSuchPageException, SystemException {
5682        List<WikiPage> list = findByN_H_P_S(nodeId, head, parentTitle, status,
5683                0, 1, orderByComparator);
5684
5685        if (list.isEmpty()) {
5686            StringBundler msg = new StringBundler(10);
5687
5688            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
5689
5690            msg.append("nodeId=");
5691            msg.append(nodeId);
5692
5693            msg.append(", head=");
5694            msg.append(head);
5695
5696            msg.append(", parentTitle=");
5697            msg.append(parentTitle);
5698
5699            msg.append(", status=");
5700            msg.append(status);
5701
5702            msg.append(StringPool.CLOSE_CURLY_BRACE);
5703
5704            throw new NoSuchPageException(msg.toString());
5705        }
5706        else {
5707            return list.get(0);
5708        }
5709    }
5710
5711    public WikiPage findByN_H_P_S_Last(long nodeId, boolean head,
5712        String parentTitle, int status, OrderByComparator orderByComparator)
5713        throws NoSuchPageException, SystemException {
5714        int count = countByN_H_P_S(nodeId, head, parentTitle, status);
5715
5716        List<WikiPage> list = findByN_H_P_S(nodeId, head, parentTitle, status,
5717                count - 1, count, orderByComparator);
5718
5719        if (list.isEmpty()) {
5720            StringBundler msg = new StringBundler(10);
5721
5722            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
5723
5724            msg.append("nodeId=");
5725            msg.append(nodeId);
5726
5727            msg.append(", head=");
5728            msg.append(head);
5729
5730            msg.append(", parentTitle=");
5731            msg.append(parentTitle);
5732
5733            msg.append(", status=");
5734            msg.append(status);
5735
5736            msg.append(StringPool.CLOSE_CURLY_BRACE);
5737
5738            throw new NoSuchPageException(msg.toString());
5739        }
5740        else {
5741            return list.get(0);
5742        }
5743    }
5744
5745    public WikiPage[] findByN_H_P_S_PrevAndNext(long pageId, long nodeId,
5746        boolean head, String parentTitle, int status,
5747        OrderByComparator orderByComparator)
5748        throws NoSuchPageException, SystemException {
5749        WikiPage wikiPage = findByPrimaryKey(pageId);
5750
5751        Session session = null;
5752
5753        try {
5754            session = openSession();
5755
5756            WikiPage[] array = new WikiPageImpl[3];
5757
5758            array[0] = getByN_H_P_S_PrevAndNext(session, wikiPage, nodeId,
5759                    head, parentTitle, status, orderByComparator, true);
5760
5761            array[1] = wikiPage;
5762
5763            array[2] = getByN_H_P_S_PrevAndNext(session, wikiPage, nodeId,
5764                    head, parentTitle, status, orderByComparator, false);
5765
5766            return array;
5767        }
5768        catch (Exception e) {
5769            throw processException(e);
5770        }
5771        finally {
5772            closeSession(session);
5773        }
5774    }
5775
5776    protected WikiPage getByN_H_P_S_PrevAndNext(Session session,
5777        WikiPage wikiPage, long nodeId, boolean head, String parentTitle,
5778        int status, OrderByComparator orderByComparator, boolean previous) {
5779        StringBundler query = null;
5780
5781        if (orderByComparator != null) {
5782            query = new StringBundler(6 +
5783                    (orderByComparator.getOrderByFields().length * 6));
5784        }
5785        else {
5786            query = new StringBundler(3);
5787        }
5788
5789        query.append(_SQL_SELECT_WIKIPAGE_WHERE);
5790
5791        query.append(_FINDER_COLUMN_N_H_P_S_NODEID_2);
5792
5793        query.append(_FINDER_COLUMN_N_H_P_S_HEAD_2);
5794
5795        if (parentTitle == null) {
5796            query.append(_FINDER_COLUMN_N_H_P_S_PARENTTITLE_1);
5797        }
5798        else {
5799            if (parentTitle.equals(StringPool.BLANK)) {
5800                query.append(_FINDER_COLUMN_N_H_P_S_PARENTTITLE_3);
5801            }
5802            else {
5803                query.append(_FINDER_COLUMN_N_H_P_S_PARENTTITLE_2);
5804            }
5805        }
5806
5807        query.append(_FINDER_COLUMN_N_H_P_S_STATUS_2);
5808
5809        if (orderByComparator != null) {
5810            String[] orderByFields = orderByComparator.getOrderByFields();
5811
5812            if (orderByFields.length > 0) {
5813                query.append(WHERE_AND);
5814            }
5815
5816            for (int i = 0; i < orderByFields.length; i++) {
5817                query.append(_ORDER_BY_ENTITY_ALIAS);
5818                query.append(orderByFields[i]);
5819
5820                if ((i + 1) < orderByFields.length) {
5821                    if (orderByComparator.isAscending() ^ previous) {
5822                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
5823                    }
5824                    else {
5825                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
5826                    }
5827                }
5828                else {
5829                    if (orderByComparator.isAscending() ^ previous) {
5830                        query.append(WHERE_GREATER_THAN);
5831                    }
5832                    else {
5833                        query.append(WHERE_LESSER_THAN);
5834                    }
5835                }
5836            }
5837
5838            query.append(ORDER_BY_CLAUSE);
5839
5840            for (int i = 0; i < orderByFields.length; i++) {
5841                query.append(_ORDER_BY_ENTITY_ALIAS);
5842                query.append(orderByFields[i]);
5843
5844                if ((i + 1) < orderByFields.length) {
5845                    if (orderByComparator.isAscending() ^ previous) {
5846                        query.append(ORDER_BY_ASC_HAS_NEXT);
5847                    }
5848                    else {
5849                        query.append(ORDER_BY_DESC_HAS_NEXT);
5850                    }
5851                }
5852                else {
5853                    if (orderByComparator.isAscending() ^ previous) {
5854                        query.append(ORDER_BY_ASC);
5855                    }
5856                    else {
5857                        query.append(ORDER_BY_DESC);
5858                    }
5859                }
5860            }
5861        }
5862
5863        else {
5864            query.append(WikiPageModelImpl.ORDER_BY_JPQL);
5865        }
5866
5867        String sql = query.toString();
5868
5869        Query q = session.createQuery(sql);
5870
5871        q.setFirstResult(0);
5872        q.setMaxResults(2);
5873
5874        QueryPos qPos = QueryPos.getInstance(q);
5875
5876        qPos.add(nodeId);
5877
5878        qPos.add(head);
5879
5880        if (parentTitle != null) {
5881            qPos.add(parentTitle);
5882        }
5883
5884        qPos.add(status);
5885
5886        if (orderByComparator != null) {
5887            Object[] values = orderByComparator.getOrderByValues(wikiPage);
5888
5889            for (Object value : values) {
5890                qPos.add(value);
5891            }
5892        }
5893
5894        List<WikiPage> list = q.list();
5895
5896        if (list.size() == 2) {
5897            return list.get(1);
5898        }
5899        else {
5900            return null;
5901        }
5902    }
5903
5904    public List<WikiPage> findAll() throws SystemException {
5905        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
5906    }
5907
5908    public List<WikiPage> findAll(int start, int end) throws SystemException {
5909        return findAll(start, end, null);
5910    }
5911
5912    public List<WikiPage> findAll(int start, int end,
5913        OrderByComparator orderByComparator) throws SystemException {
5914        Object[] finderArgs = new Object[] {
5915                String.valueOf(start), String.valueOf(end),
5916                String.valueOf(orderByComparator)
5917            };
5918
5919        List<WikiPage> list = (List<WikiPage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
5920                finderArgs, this);
5921
5922        if (list == null) {
5923            Session session = null;
5924
5925            try {
5926                session = openSession();
5927
5928                StringBundler query = null;
5929                String sql = null;
5930
5931                if (orderByComparator != null) {
5932                    query = new StringBundler(2 +
5933                            (orderByComparator.getOrderByFields().length * 3));
5934
5935                    query.append(_SQL_SELECT_WIKIPAGE);
5936
5937                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
5938                        orderByComparator);
5939
5940                    sql = query.toString();
5941                }
5942
5943                else {
5944                    sql = _SQL_SELECT_WIKIPAGE.concat(WikiPageModelImpl.ORDER_BY_JPQL);
5945                }
5946
5947                Query q = session.createQuery(sql);
5948
5949                if (orderByComparator == null) {
5950                    list = (List<WikiPage>)QueryUtil.list(q, getDialect(),
5951                            start, end, false);
5952
5953                    Collections.sort(list);
5954                }
5955                else {
5956                    list = (List<WikiPage>)QueryUtil.list(q, getDialect(),
5957                            start, end);
5958                }
5959            }
5960            catch (Exception e) {
5961                throw processException(e);
5962            }
5963            finally {
5964                if (list == null) {
5965                    list = new ArrayList<WikiPage>();
5966                }
5967
5968                cacheResult(list);
5969
5970                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
5971
5972                closeSession(session);
5973            }
5974        }
5975
5976        return list;
5977    }
5978
5979    public void removeByUuid(String uuid) throws SystemException {
5980        for (WikiPage wikiPage : findByUuid(uuid)) {
5981            remove(wikiPage);
5982        }
5983    }
5984
5985    public void removeByUUID_G(String uuid, long groupId)
5986        throws NoSuchPageException, SystemException {
5987        WikiPage wikiPage = findByUUID_G(uuid, groupId);
5988
5989        remove(wikiPage);
5990    }
5991
5992    public void removeByNodeId(long nodeId) throws SystemException {
5993        for (WikiPage wikiPage : findByNodeId(nodeId)) {
5994            remove(wikiPage);
5995        }
5996    }
5997
5998    public void removeByFormat(String format) throws SystemException {
5999        for (WikiPage wikiPage : findByFormat(format)) {
6000            remove(wikiPage);
6001        }
6002    }
6003
6004    public void removeByR_N(long resourcePrimKey, long nodeId)
6005        throws SystemException {
6006        for (WikiPage wikiPage : findByR_N(resourcePrimKey, nodeId)) {
6007            remove(wikiPage);
6008        }
6009    }
6010
6011    public void removeByN_T(long nodeId, String title)
6012        throws SystemException {
6013        for (WikiPage wikiPage : findByN_T(nodeId, title)) {
6014            remove(wikiPage);
6015        }
6016    }
6017
6018    public void removeByN_H(long nodeId, boolean head)
6019        throws SystemException {
6020        for (WikiPage wikiPage : findByN_H(nodeId, head)) {
6021            remove(wikiPage);
6022        }
6023    }
6024
6025    public void removeByN_P(long nodeId, String parentTitle)
6026        throws SystemException {
6027        for (WikiPage wikiPage : findByN_P(nodeId, parentTitle)) {
6028            remove(wikiPage);
6029        }
6030    }
6031
6032    public void removeByN_R(long nodeId, String redirectTitle)
6033        throws SystemException {
6034        for (WikiPage wikiPage : findByN_R(nodeId, redirectTitle)) {
6035            remove(wikiPage);
6036        }
6037    }
6038
6039    public void removeByN_S(long nodeId, int status) throws SystemException {
6040        for (WikiPage wikiPage : findByN_S(nodeId, status)) {
6041            remove(wikiPage);
6042        }
6043    }
6044
6045    public void removeByR_N_V(long resourcePrimKey, long nodeId, double version)
6046        throws NoSuchPageException, SystemException {
6047        WikiPage wikiPage = findByR_N_V(resourcePrimKey, nodeId, version);
6048
6049        remove(wikiPage);
6050    }
6051
6052    public void removeByR_N_S(long resourcePrimKey, long nodeId, int status)
6053        throws SystemException {
6054        for (WikiPage wikiPage : findByR_N_S(resourcePrimKey, nodeId, status)) {
6055            remove(wikiPage);
6056        }
6057    }
6058
6059    public void removeByU_N_S(long userId, long nodeId, int status)
6060        throws SystemException {
6061        for (WikiPage wikiPage : findByU_N_S(userId, nodeId, status)) {
6062            remove(wikiPage);
6063        }
6064    }
6065
6066    public void removeByN_T_V(long nodeId, String title, double version)
6067        throws NoSuchPageException, SystemException {
6068        WikiPage wikiPage = findByN_T_V(nodeId, title, version);
6069
6070        remove(wikiPage);
6071    }
6072
6073    public void removeByN_T_H(long nodeId, String title, boolean head)
6074        throws SystemException {
6075        for (WikiPage wikiPage : findByN_T_H(nodeId, title, head)) {
6076            remove(wikiPage);
6077        }
6078    }
6079
6080    public void removeByN_T_S(long nodeId, String title, int status)
6081        throws SystemException {
6082        for (WikiPage wikiPage : findByN_T_S(nodeId, title, status)) {
6083            remove(wikiPage);
6084        }
6085    }
6086
6087    public void removeByN_H_P(long nodeId, boolean head, String parentTitle)
6088        throws SystemException {
6089        for (WikiPage wikiPage : findByN_H_P(nodeId, head, parentTitle)) {
6090            remove(wikiPage);
6091        }
6092    }
6093
6094    public void removeByN_H_S(long nodeId, boolean head, int status)
6095        throws SystemException {
6096        for (WikiPage wikiPage : findByN_H_S(nodeId, head, status)) {
6097            remove(wikiPage);
6098        }
6099    }
6100
6101    public void removeByN_H_P_S(long nodeId, boolean head, String parentTitle,
6102        int status) throws SystemException {
6103        for (WikiPage wikiPage : findByN_H_P_S(nodeId, head, parentTitle, status)) {
6104            remove(wikiPage);
6105        }
6106    }
6107
6108    public void removeAll() throws SystemException {
6109        for (WikiPage wikiPage : findAll()) {
6110            remove(wikiPage);
6111        }
6112    }
6113
6114    public int countByUuid(String uuid) throws SystemException {
6115        Object[] finderArgs = new Object[] { uuid };
6116
6117        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_UUID,
6118                finderArgs, this);
6119
6120        if (count == null) {
6121            Session session = null;
6122
6123            try {
6124                session = openSession();
6125
6126                StringBundler query = new StringBundler(2);
6127
6128                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6129
6130                if (uuid == null) {
6131                    query.append(_FINDER_COLUMN_UUID_UUID_1);
6132                }
6133                else {
6134                    if (uuid.equals(StringPool.BLANK)) {
6135                        query.append(_FINDER_COLUMN_UUID_UUID_3);
6136                    }
6137                    else {
6138                        query.append(_FINDER_COLUMN_UUID_UUID_2);
6139                    }
6140                }
6141
6142                String sql = query.toString();
6143
6144                Query q = session.createQuery(sql);
6145
6146                QueryPos qPos = QueryPos.getInstance(q);
6147
6148                if (uuid != null) {
6149                    qPos.add(uuid);
6150                }
6151
6152                count = (Long)q.uniqueResult();
6153            }
6154            catch (Exception e) {
6155                throw processException(e);
6156            }
6157            finally {
6158                if (count == null) {
6159                    count = Long.valueOf(0);
6160                }
6161
6162                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_UUID,
6163                    finderArgs, count);
6164
6165                closeSession(session);
6166            }
6167        }
6168
6169        return count.intValue();
6170    }
6171
6172    public int countByUUID_G(String uuid, long groupId)
6173        throws SystemException {
6174        Object[] finderArgs = new Object[] { uuid, new Long(groupId) };
6175
6176        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_UUID_G,
6177                finderArgs, this);
6178
6179        if (count == null) {
6180            Session session = null;
6181
6182            try {
6183                session = openSession();
6184
6185                StringBundler query = new StringBundler(3);
6186
6187                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6188
6189                if (uuid == null) {
6190                    query.append(_FINDER_COLUMN_UUID_G_UUID_1);
6191                }
6192                else {
6193                    if (uuid.equals(StringPool.BLANK)) {
6194                        query.append(_FINDER_COLUMN_UUID_G_UUID_3);
6195                    }
6196                    else {
6197                        query.append(_FINDER_COLUMN_UUID_G_UUID_2);
6198                    }
6199                }
6200
6201                query.append(_FINDER_COLUMN_UUID_G_GROUPID_2);
6202
6203                String sql = query.toString();
6204
6205                Query q = session.createQuery(sql);
6206
6207                QueryPos qPos = QueryPos.getInstance(q);
6208
6209                if (uuid != null) {
6210                    qPos.add(uuid);
6211                }
6212
6213                qPos.add(groupId);
6214
6215                count = (Long)q.uniqueResult();
6216            }
6217            catch (Exception e) {
6218                throw processException(e);
6219            }
6220            finally {
6221                if (count == null) {
6222                    count = Long.valueOf(0);
6223                }
6224
6225                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_UUID_G,
6226                    finderArgs, count);
6227
6228                closeSession(session);
6229            }
6230        }
6231
6232        return count.intValue();
6233    }
6234
6235    public int countByNodeId(long nodeId) throws SystemException {
6236        Object[] finderArgs = new Object[] { new Long(nodeId) };
6237
6238        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_NODEID,
6239                finderArgs, this);
6240
6241        if (count == null) {
6242            Session session = null;
6243
6244            try {
6245                session = openSession();
6246
6247                StringBundler query = new StringBundler(2);
6248
6249                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6250
6251                query.append(_FINDER_COLUMN_NODEID_NODEID_2);
6252
6253                String sql = query.toString();
6254
6255                Query q = session.createQuery(sql);
6256
6257                QueryPos qPos = QueryPos.getInstance(q);
6258
6259                qPos.add(nodeId);
6260
6261                count = (Long)q.uniqueResult();
6262            }
6263            catch (Exception e) {
6264                throw processException(e);
6265            }
6266            finally {
6267                if (count == null) {
6268                    count = Long.valueOf(0);
6269                }
6270
6271                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_NODEID,
6272                    finderArgs, count);
6273
6274                closeSession(session);
6275            }
6276        }
6277
6278        return count.intValue();
6279    }
6280
6281    public int countByFormat(String format) throws SystemException {
6282        Object[] finderArgs = new Object[] { format };
6283
6284        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_FORMAT,
6285                finderArgs, this);
6286
6287        if (count == null) {
6288            Session session = null;
6289
6290            try {
6291                session = openSession();
6292
6293                StringBundler query = new StringBundler(2);
6294
6295                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6296
6297                if (format == null) {
6298                    query.append(_FINDER_COLUMN_FORMAT_FORMAT_1);
6299                }
6300                else {
6301                    if (format.equals(StringPool.BLANK)) {
6302                        query.append(_FINDER_COLUMN_FORMAT_FORMAT_3);
6303                    }
6304                    else {
6305                        query.append(_FINDER_COLUMN_FORMAT_FORMAT_2);
6306                    }
6307                }
6308
6309                String sql = query.toString();
6310
6311                Query q = session.createQuery(sql);
6312
6313                QueryPos qPos = QueryPos.getInstance(q);
6314
6315                if (format != null) {
6316                    qPos.add(format);
6317                }
6318
6319                count = (Long)q.uniqueResult();
6320            }
6321            catch (Exception e) {
6322                throw processException(e);
6323            }
6324            finally {
6325                if (count == null) {
6326                    count = Long.valueOf(0);
6327                }
6328
6329                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_FORMAT,
6330                    finderArgs, count);
6331
6332                closeSession(session);
6333            }
6334        }
6335
6336        return count.intValue();
6337    }
6338
6339    public int countByR_N(long resourcePrimKey, long nodeId)
6340        throws SystemException {
6341        Object[] finderArgs = new Object[] {
6342                new Long(resourcePrimKey), new Long(nodeId)
6343            };
6344
6345        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_R_N,
6346                finderArgs, this);
6347
6348        if (count == null) {
6349            Session session = null;
6350
6351            try {
6352                session = openSession();
6353
6354                StringBundler query = new StringBundler(3);
6355
6356                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6357
6358                query.append(_FINDER_COLUMN_R_N_RESOURCEPRIMKEY_2);
6359
6360                query.append(_FINDER_COLUMN_R_N_NODEID_2);
6361
6362                String sql = query.toString();
6363
6364                Query q = session.createQuery(sql);
6365
6366                QueryPos qPos = QueryPos.getInstance(q);
6367
6368                qPos.add(resourcePrimKey);
6369
6370                qPos.add(nodeId);
6371
6372                count = (Long)q.uniqueResult();
6373            }
6374            catch (Exception e) {
6375                throw processException(e);
6376            }
6377            finally {
6378                if (count == null) {
6379                    count = Long.valueOf(0);
6380                }
6381
6382                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_R_N, finderArgs,
6383                    count);
6384
6385                closeSession(session);
6386            }
6387        }
6388
6389        return count.intValue();
6390    }
6391
6392    public int countByN_T(long nodeId, String title) throws SystemException {
6393        Object[] finderArgs = new Object[] { new Long(nodeId), title };
6394
6395        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_N_T,
6396                finderArgs, this);
6397
6398        if (count == null) {
6399            Session session = null;
6400
6401            try {
6402                session = openSession();
6403
6404                StringBundler query = new StringBundler(3);
6405
6406                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6407
6408                query.append(_FINDER_COLUMN_N_T_NODEID_2);
6409
6410                if (title == null) {
6411                    query.append(_FINDER_COLUMN_N_T_TITLE_1);
6412                }
6413                else {
6414                    if (title.equals(StringPool.BLANK)) {
6415                        query.append(_FINDER_COLUMN_N_T_TITLE_3);
6416                    }
6417                    else {
6418                        query.append(_FINDER_COLUMN_N_T_TITLE_2);
6419                    }
6420                }
6421
6422                String sql = query.toString();
6423
6424                Query q = session.createQuery(sql);
6425
6426                QueryPos qPos = QueryPos.getInstance(q);
6427
6428                qPos.add(nodeId);
6429
6430                if (title != null) {
6431                    qPos.add(title);
6432                }
6433
6434                count = (Long)q.uniqueResult();
6435            }
6436            catch (Exception e) {
6437                throw processException(e);
6438            }
6439            finally {
6440                if (count == null) {
6441                    count = Long.valueOf(0);
6442                }
6443
6444                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_N_T, finderArgs,
6445                    count);
6446
6447                closeSession(session);
6448            }
6449        }
6450
6451        return count.intValue();
6452    }
6453
6454    public int countByN_H(long nodeId, boolean head) throws SystemException {
6455        Object[] finderArgs = new Object[] {
6456                new Long(nodeId), Boolean.valueOf(head)
6457            };
6458
6459        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_N_H,
6460                finderArgs, this);
6461
6462        if (count == null) {
6463            Session session = null;
6464
6465            try {
6466                session = openSession();
6467
6468                StringBundler query = new StringBundler(3);
6469
6470                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6471
6472                query.append(_FINDER_COLUMN_N_H_NODEID_2);
6473
6474                query.append(_FINDER_COLUMN_N_H_HEAD_2);
6475
6476                String sql = query.toString();
6477
6478                Query q = session.createQuery(sql);
6479
6480                QueryPos qPos = QueryPos.getInstance(q);
6481
6482                qPos.add(nodeId);
6483
6484                qPos.add(head);
6485
6486                count = (Long)q.uniqueResult();
6487            }
6488            catch (Exception e) {
6489                throw processException(e);
6490            }
6491            finally {
6492                if (count == null) {
6493                    count = Long.valueOf(0);
6494                }
6495
6496                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_N_H, finderArgs,
6497                    count);
6498
6499                closeSession(session);
6500            }
6501        }
6502
6503        return count.intValue();
6504    }
6505
6506    public int countByN_P(long nodeId, String parentTitle)
6507        throws SystemException {
6508        Object[] finderArgs = new Object[] { new Long(nodeId), parentTitle };
6509
6510        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_N_P,
6511                finderArgs, this);
6512
6513        if (count == null) {
6514            Session session = null;
6515
6516            try {
6517                session = openSession();
6518
6519                StringBundler query = new StringBundler(3);
6520
6521                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6522
6523                query.append(_FINDER_COLUMN_N_P_NODEID_2);
6524
6525                if (parentTitle == null) {
6526                    query.append(_FINDER_COLUMN_N_P_PARENTTITLE_1);
6527                }
6528                else {
6529                    if (parentTitle.equals(StringPool.BLANK)) {
6530                        query.append(_FINDER_COLUMN_N_P_PARENTTITLE_3);
6531                    }
6532                    else {
6533                        query.append(_FINDER_COLUMN_N_P_PARENTTITLE_2);
6534                    }
6535                }
6536
6537                String sql = query.toString();
6538
6539                Query q = session.createQuery(sql);
6540
6541                QueryPos qPos = QueryPos.getInstance(q);
6542
6543                qPos.add(nodeId);
6544
6545                if (parentTitle != null) {
6546                    qPos.add(parentTitle);
6547                }
6548
6549                count = (Long)q.uniqueResult();
6550            }
6551            catch (Exception e) {
6552                throw processException(e);
6553            }
6554            finally {
6555                if (count == null) {
6556                    count = Long.valueOf(0);
6557                }
6558
6559                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_N_P, finderArgs,
6560                    count);
6561
6562                closeSession(session);
6563            }
6564        }
6565
6566        return count.intValue();
6567    }
6568
6569    public int countByN_R(long nodeId, String redirectTitle)
6570        throws SystemException {
6571        Object[] finderArgs = new Object[] { new Long(nodeId), redirectTitle };
6572
6573        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_N_R,
6574                finderArgs, this);
6575
6576        if (count == null) {
6577            Session session = null;
6578
6579            try {
6580                session = openSession();
6581
6582                StringBundler query = new StringBundler(3);
6583
6584                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6585
6586                query.append(_FINDER_COLUMN_N_R_NODEID_2);
6587
6588                if (redirectTitle == null) {
6589                    query.append(_FINDER_COLUMN_N_R_REDIRECTTITLE_1);
6590                }
6591                else {
6592                    if (redirectTitle.equals(StringPool.BLANK)) {
6593                        query.append(_FINDER_COLUMN_N_R_REDIRECTTITLE_3);
6594                    }
6595                    else {
6596                        query.append(_FINDER_COLUMN_N_R_REDIRECTTITLE_2);
6597                    }
6598                }
6599
6600                String sql = query.toString();
6601
6602                Query q = session.createQuery(sql);
6603
6604                QueryPos qPos = QueryPos.getInstance(q);
6605
6606                qPos.add(nodeId);
6607
6608                if (redirectTitle != null) {
6609                    qPos.add(redirectTitle);
6610                }
6611
6612                count = (Long)q.uniqueResult();
6613            }
6614            catch (Exception e) {
6615                throw processException(e);
6616            }
6617            finally {
6618                if (count == null) {
6619                    count = Long.valueOf(0);
6620                }
6621
6622                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_N_R, finderArgs,
6623                    count);
6624
6625                closeSession(session);
6626            }
6627        }
6628
6629        return count.intValue();
6630    }
6631
6632    public int countByN_S(long nodeId, int status) throws SystemException {
6633        Object[] finderArgs = new Object[] { new Long(nodeId), new Integer(status) };
6634
6635        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_N_S,
6636                finderArgs, this);
6637
6638        if (count == null) {
6639            Session session = null;
6640
6641            try {
6642                session = openSession();
6643
6644                StringBundler query = new StringBundler(3);
6645
6646                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6647
6648                query.append(_FINDER_COLUMN_N_S_NODEID_2);
6649
6650                query.append(_FINDER_COLUMN_N_S_STATUS_2);
6651
6652                String sql = query.toString();
6653
6654                Query q = session.createQuery(sql);
6655
6656                QueryPos qPos = QueryPos.getInstance(q);
6657
6658                qPos.add(nodeId);
6659
6660                qPos.add(status);
6661
6662                count = (Long)q.uniqueResult();
6663            }
6664            catch (Exception e) {
6665                throw processException(e);
6666            }
6667            finally {
6668                if (count == null) {
6669                    count = Long.valueOf(0);
6670                }
6671
6672                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_N_S, finderArgs,
6673                    count);
6674
6675                closeSession(session);
6676            }
6677        }
6678
6679        return count.intValue();
6680    }
6681
6682    public int countByR_N_V(long resourcePrimKey, long nodeId, double version)
6683        throws SystemException {
6684        Object[] finderArgs = new Object[] {
6685                new Long(resourcePrimKey), new Long(nodeId), new Double(version)
6686            };
6687
6688        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_R_N_V,
6689                finderArgs, this);
6690
6691        if (count == null) {
6692            Session session = null;
6693
6694            try {
6695                session = openSession();
6696
6697                StringBundler query = new StringBundler(4);
6698
6699                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6700
6701                query.append(_FINDER_COLUMN_R_N_V_RESOURCEPRIMKEY_2);
6702
6703                query.append(_FINDER_COLUMN_R_N_V_NODEID_2);
6704
6705                query.append(_FINDER_COLUMN_R_N_V_VERSION_2);
6706
6707                String sql = query.toString();
6708
6709                Query q = session.createQuery(sql);
6710
6711                QueryPos qPos = QueryPos.getInstance(q);
6712
6713                qPos.add(resourcePrimKey);
6714
6715                qPos.add(nodeId);
6716
6717                qPos.add(version);
6718
6719                count = (Long)q.uniqueResult();
6720            }
6721            catch (Exception e) {
6722                throw processException(e);
6723            }
6724            finally {
6725                if (count == null) {
6726                    count = Long.valueOf(0);
6727                }
6728
6729                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_R_N_V,
6730                    finderArgs, count);
6731
6732                closeSession(session);
6733            }
6734        }
6735
6736        return count.intValue();
6737    }
6738
6739    public int countByR_N_S(long resourcePrimKey, long nodeId, int status)
6740        throws SystemException {
6741        Object[] finderArgs = new Object[] {
6742                new Long(resourcePrimKey), new Long(nodeId), new Integer(status)
6743            };
6744
6745        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_R_N_S,
6746                finderArgs, this);
6747
6748        if (count == null) {
6749            Session session = null;
6750
6751            try {
6752                session = openSession();
6753
6754                StringBundler query = new StringBundler(4);
6755
6756                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6757
6758                query.append(_FINDER_COLUMN_R_N_S_RESOURCEPRIMKEY_2);
6759
6760                query.append(_FINDER_COLUMN_R_N_S_NODEID_2);
6761
6762                query.append(_FINDER_COLUMN_R_N_S_STATUS_2);
6763
6764                String sql = query.toString();
6765
6766                Query q = session.createQuery(sql);
6767
6768                QueryPos qPos = QueryPos.getInstance(q);
6769
6770                qPos.add(resourcePrimKey);
6771
6772                qPos.add(nodeId);
6773
6774                qPos.add(status);
6775
6776                count = (Long)q.uniqueResult();
6777            }
6778            catch (Exception e) {
6779                throw processException(e);
6780            }
6781            finally {
6782                if (count == null) {
6783                    count = Long.valueOf(0);
6784                }
6785
6786                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_R_N_S,
6787                    finderArgs, count);
6788
6789                closeSession(session);
6790            }
6791        }
6792
6793        return count.intValue();
6794    }
6795
6796    public int countByU_N_S(long userId, long nodeId, int status)
6797        throws SystemException {
6798        Object[] finderArgs = new Object[] {
6799                new Long(userId), new Long(nodeId), new Integer(status)
6800            };
6801
6802        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_U_N_S,
6803                finderArgs, this);
6804
6805        if (count == null) {
6806            Session session = null;
6807
6808            try {
6809                session = openSession();
6810
6811                StringBundler query = new StringBundler(4);
6812
6813                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6814
6815                query.append(_FINDER_COLUMN_U_N_S_USERID_2);
6816
6817                query.append(_FINDER_COLUMN_U_N_S_NODEID_2);
6818
6819                query.append(_FINDER_COLUMN_U_N_S_STATUS_2);
6820
6821                String sql = query.toString();
6822
6823                Query q = session.createQuery(sql);
6824
6825                QueryPos qPos = QueryPos.getInstance(q);
6826
6827                qPos.add(userId);
6828
6829                qPos.add(nodeId);
6830
6831                qPos.add(status);
6832
6833                count = (Long)q.uniqueResult();
6834            }
6835            catch (Exception e) {
6836                throw processException(e);
6837            }
6838            finally {
6839                if (count == null) {
6840                    count = Long.valueOf(0);
6841                }
6842
6843                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_U_N_S,
6844                    finderArgs, count);
6845
6846                closeSession(session);
6847            }
6848        }
6849
6850        return count.intValue();
6851    }
6852
6853    public int countByN_T_V(long nodeId, String title, double version)
6854        throws SystemException {
6855        Object[] finderArgs = new Object[] {
6856                new Long(nodeId),
6857                
6858                title, new Double(version)
6859            };
6860
6861        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_N_T_V,
6862                finderArgs, this);
6863
6864        if (count == null) {
6865            Session session = null;
6866
6867            try {
6868                session = openSession();
6869
6870                StringBundler query = new StringBundler(4);
6871
6872                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6873
6874                query.append(_FINDER_COLUMN_N_T_V_NODEID_2);
6875
6876                if (title == null) {
6877                    query.append(_FINDER_COLUMN_N_T_V_TITLE_1);
6878                }
6879                else {
6880                    if (title.equals(StringPool.BLANK)) {
6881                        query.append(_FINDER_COLUMN_N_T_V_TITLE_3);
6882                    }
6883                    else {
6884                        query.append(_FINDER_COLUMN_N_T_V_TITLE_2);
6885                    }
6886                }
6887
6888                query.append(_FINDER_COLUMN_N_T_V_VERSION_2);
6889
6890                String sql = query.toString();
6891
6892                Query q = session.createQuery(sql);
6893
6894                QueryPos qPos = QueryPos.getInstance(q);
6895
6896                qPos.add(nodeId);
6897
6898                if (title != null) {
6899                    qPos.add(title);
6900                }
6901
6902                qPos.add(version);
6903
6904                count = (Long)q.uniqueResult();
6905            }
6906            catch (Exception e) {
6907                throw processException(e);
6908            }
6909            finally {
6910                if (count == null) {
6911                    count = Long.valueOf(0);
6912                }
6913
6914                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_N_T_V,
6915                    finderArgs, count);
6916
6917                closeSession(session);
6918            }
6919        }
6920
6921        return count.intValue();
6922    }
6923
6924    public int countByN_T_H(long nodeId, String title, boolean head)
6925        throws SystemException {
6926        Object[] finderArgs = new Object[] {
6927                new Long(nodeId),
6928                
6929                title, Boolean.valueOf(head)
6930            };
6931
6932        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_N_T_H,
6933                finderArgs, this);
6934
6935        if (count == null) {
6936            Session session = null;
6937
6938            try {
6939                session = openSession();
6940
6941                StringBundler query = new StringBundler(4);
6942
6943                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
6944
6945                query.append(_FINDER_COLUMN_N_T_H_NODEID_2);
6946
6947                if (title == null) {
6948                    query.append(_FINDER_COLUMN_N_T_H_TITLE_1);
6949                }
6950                else {
6951                    if (title.equals(StringPool.BLANK)) {
6952                        query.append(_FINDER_COLUMN_N_T_H_TITLE_3);
6953                    }
6954                    else {
6955                        query.append(_FINDER_COLUMN_N_T_H_TITLE_2);
6956                    }
6957                }
6958
6959                query.append(_FINDER_COLUMN_N_T_H_HEAD_2);
6960
6961                String sql = query.toString();
6962
6963                Query q = session.createQuery(sql);
6964
6965                QueryPos qPos = QueryPos.getInstance(q);
6966
6967                qPos.add(nodeId);
6968
6969                if (title != null) {
6970                    qPos.add(title);
6971                }
6972
6973                qPos.add(head);
6974
6975                count = (Long)q.uniqueResult();
6976            }
6977            catch (Exception e) {
6978                throw processException(e);
6979            }
6980            finally {
6981                if (count == null) {
6982                    count = Long.valueOf(0);
6983                }
6984
6985                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_N_T_H,
6986                    finderArgs, count);
6987
6988                closeSession(session);
6989            }
6990        }
6991
6992        return count.intValue();
6993    }
6994
6995    public int countByN_T_S(long nodeId, String title, int status)
6996        throws SystemException {
6997        Object[] finderArgs = new Object[] {
6998                new Long(nodeId),
6999                
7000                title, new Integer(status)
7001            };
7002
7003        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_N_T_S,
7004                finderArgs, this);
7005
7006        if (count == null) {
7007            Session session = null;
7008
7009            try {
7010                session = openSession();
7011
7012                StringBundler query = new StringBundler(4);
7013
7014                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
7015
7016                query.append(_FINDER_COLUMN_N_T_S_NODEID_2);
7017
7018                if (title == null) {
7019                    query.append(_FINDER_COLUMN_N_T_S_TITLE_1);
7020                }
7021                else {
7022                    if (title.equals(StringPool.BLANK)) {
7023                        query.append(_FINDER_COLUMN_N_T_S_TITLE_3);
7024                    }
7025                    else {
7026                        query.append(_FINDER_COLUMN_N_T_S_TITLE_2);
7027                    }
7028                }
7029
7030                query.append(_FINDER_COLUMN_N_T_S_STATUS_2);
7031
7032                String sql = query.toString();
7033
7034                Query q = session.createQuery(sql);
7035
7036                QueryPos qPos = QueryPos.getInstance(q);
7037
7038                qPos.add(nodeId);
7039
7040                if (title != null) {
7041                    qPos.add(title);
7042                }
7043
7044                qPos.add(status);
7045
7046                count = (Long)q.uniqueResult();
7047            }
7048            catch (Exception e) {
7049                throw processException(e);
7050            }
7051            finally {
7052                if (count == null) {
7053                    count = Long.valueOf(0);
7054                }
7055
7056                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_N_T_S,
7057                    finderArgs, count);
7058
7059                closeSession(session);
7060            }
7061        }
7062
7063        return count.intValue();
7064    }
7065
7066    public int countByN_H_P(long nodeId, boolean head, String parentTitle)
7067        throws SystemException {
7068        Object[] finderArgs = new Object[] {
7069                new Long(nodeId), Boolean.valueOf(head),
7070                
7071                parentTitle
7072            };
7073
7074        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_N_H_P,
7075                finderArgs, this);
7076
7077        if (count == null) {
7078            Session session = null;
7079
7080            try {
7081                session = openSession();
7082
7083                StringBundler query = new StringBundler(4);
7084
7085                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
7086
7087                query.append(_FINDER_COLUMN_N_H_P_NODEID_2);
7088
7089                query.append(_FINDER_COLUMN_N_H_P_HEAD_2);
7090
7091                if (parentTitle == null) {
7092                    query.append(_FINDER_COLUMN_N_H_P_PARENTTITLE_1);
7093                }
7094                else {
7095                    if (parentTitle.equals(StringPool.BLANK)) {
7096                        query.append(_FINDER_COLUMN_N_H_P_PARENTTITLE_3);
7097                    }
7098                    else {
7099                        query.append(_FINDER_COLUMN_N_H_P_PARENTTITLE_2);
7100                    }
7101                }
7102
7103                String sql = query.toString();
7104
7105                Query q = session.createQuery(sql);
7106
7107                QueryPos qPos = QueryPos.getInstance(q);
7108
7109                qPos.add(nodeId);
7110
7111                qPos.add(head);
7112
7113                if (parentTitle != null) {
7114                    qPos.add(parentTitle);
7115                }
7116
7117                count = (Long)q.uniqueResult();
7118            }
7119            catch (Exception e) {
7120                throw processException(e);
7121            }
7122            finally {
7123                if (count == null) {
7124                    count = Long.valueOf(0);
7125                }
7126
7127                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_N_H_P,
7128                    finderArgs, count);
7129
7130                closeSession(session);
7131            }
7132        }
7133
7134        return count.intValue();
7135    }
7136
7137    public int countByN_H_S(long nodeId, boolean head, int status)
7138        throws SystemException {
7139        Object[] finderArgs = new Object[] {
7140                new Long(nodeId), Boolean.valueOf(head), new Integer(status)
7141            };
7142
7143        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_N_H_S,
7144                finderArgs, this);
7145
7146        if (count == null) {
7147            Session session = null;
7148
7149            try {
7150                session = openSession();
7151
7152                StringBundler query = new StringBundler(4);
7153
7154                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
7155
7156                query.append(_FINDER_COLUMN_N_H_S_NODEID_2);
7157
7158                query.append(_FINDER_COLUMN_N_H_S_HEAD_2);
7159
7160                query.append(_FINDER_COLUMN_N_H_S_STATUS_2);
7161
7162                String sql = query.toString();
7163
7164                Query q = session.createQuery(sql);
7165
7166                QueryPos qPos = QueryPos.getInstance(q);
7167
7168                qPos.add(nodeId);
7169
7170                qPos.add(head);
7171
7172                qPos.add(status);
7173
7174                count = (Long)q.uniqueResult();
7175            }
7176            catch (Exception e) {
7177                throw processException(e);
7178            }
7179            finally {
7180                if (count == null) {
7181                    count = Long.valueOf(0);
7182                }
7183
7184                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_N_H_S,
7185                    finderArgs, count);
7186
7187                closeSession(session);
7188            }
7189        }
7190
7191        return count.intValue();
7192    }
7193
7194    public int countByN_H_P_S(long nodeId, boolean head, String parentTitle,
7195        int status) throws SystemException {
7196        Object[] finderArgs = new Object[] {
7197                new Long(nodeId), Boolean.valueOf(head),
7198                
7199                parentTitle, new Integer(status)
7200            };
7201
7202        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_N_H_P_S,
7203                finderArgs, this);
7204
7205        if (count == null) {
7206            Session session = null;
7207
7208            try {
7209                session = openSession();
7210
7211                StringBundler query = new StringBundler(5);
7212
7213                query.append(_SQL_COUNT_WIKIPAGE_WHERE);
7214
7215                query.append(_FINDER_COLUMN_N_H_P_S_NODEID_2);
7216
7217                query.append(_FINDER_COLUMN_N_H_P_S_HEAD_2);
7218
7219                if (parentTitle == null) {
7220                    query.append(_FINDER_COLUMN_N_H_P_S_PARENTTITLE_1);
7221                }
7222                else {
7223                    if (parentTitle.equals(StringPool.BLANK)) {
7224                        query.append(_FINDER_COLUMN_N_H_P_S_PARENTTITLE_3);
7225                    }
7226                    else {
7227                        query.append(_FINDER_COLUMN_N_H_P_S_PARENTTITLE_2);
7228                    }
7229                }
7230
7231                query.append(_FINDER_COLUMN_N_H_P_S_STATUS_2);
7232
7233                String sql = query.toString();
7234
7235                Query q = session.createQuery(sql);
7236
7237                QueryPos qPos = QueryPos.getInstance(q);
7238
7239                qPos.add(nodeId);
7240
7241                qPos.add(head);
7242
7243                if (parentTitle != null) {
7244                    qPos.add(parentTitle);
7245                }
7246
7247                qPos.add(status);
7248
7249                count = (Long)q.uniqueResult();
7250            }
7251            catch (Exception e) {
7252                throw processException(e);
7253            }
7254            finally {
7255                if (count == null) {
7256                    count = Long.valueOf(0);
7257                }
7258
7259                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_N_H_P_S,
7260                    finderArgs, count);
7261
7262                closeSession(session);
7263            }
7264        }
7265
7266        return count.intValue();
7267    }
7268
7269    public int countAll() throws SystemException {
7270        Object[] finderArgs = new Object[0];
7271
7272        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
7273                finderArgs, this);
7274
7275        if (count == null) {
7276            Session session = null;
7277
7278            try {
7279                session = openSession();
7280
7281                Query q = session.createQuery(_SQL_COUNT_WIKIPAGE);
7282
7283                count = (Long)q.uniqueResult();
7284            }
7285            catch (Exception e) {
7286                throw processException(e);
7287            }
7288            finally {
7289                if (count == null) {
7290                    count = Long.valueOf(0);
7291                }
7292
7293                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
7294                    count);
7295
7296                closeSession(session);
7297            }
7298        }
7299
7300        return count.intValue();
7301    }
7302
7303    public void afterPropertiesSet() {
7304        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
7305                    com.liferay.portal.util.PropsUtil.get(
7306                        "value.object.listener.com.liferay.portlet.wiki.model.WikiPage")));
7307
7308        if (listenerClassNames.length > 0) {
7309            try {
7310                List<ModelListener<WikiPage>> listenersList = new ArrayList<ModelListener<WikiPage>>();
7311
7312                for (String listenerClassName : listenerClassNames) {
7313                    listenersList.add((ModelListener<WikiPage>)InstanceFactory.newInstance(
7314                            listenerClassName));
7315                }
7316
7317                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
7318            }
7319            catch (Exception e) {
7320                _log.error(e);
7321            }
7322        }
7323    }
7324
7325    @BeanReference(type = WikiNodePersistence.class)
7326    protected WikiNodePersistence wikiNodePersistence;
7327    @BeanReference(type = WikiPagePersistence.class)
7328    protected WikiPagePersistence wikiPagePersistence;
7329    @BeanReference(type = WikiPageResourcePersistence.class)
7330    protected WikiPageResourcePersistence wikiPageResourcePersistence;
7331    @BeanReference(type = CompanyPersistence.class)
7332    protected CompanyPersistence companyPersistence;
7333    @BeanReference(type = GroupPersistence.class)
7334    protected GroupPersistence groupPersistence;
7335    @BeanReference(type = PortletPreferencesPersistence.class)
7336    protected PortletPreferencesPersistence portletPreferencesPersistence;
7337    @BeanReference(type = ResourcePersistence.class)
7338    protected ResourcePersistence resourcePersistence;
7339    @BeanReference(type = SubscriptionPersistence.class)
7340    protected SubscriptionPersistence subscriptionPersistence;
7341    @BeanReference(type = UserPersistence.class)
7342    protected UserPersistence userPersistence;
7343    @BeanReference(type = WorkflowInstanceLinkPersistence.class)
7344    protected WorkflowInstanceLinkPersistence workflowInstanceLinkPersistence;
7345    @BeanReference(type = AssetCategoryPersistence.class)
7346    protected AssetCategoryPersistence assetCategoryPersistence;
7347    @BeanReference(type = AssetEntryPersistence.class)
7348    protected AssetEntryPersistence assetEntryPersistence;
7349    @BeanReference(type = AssetTagPersistence.class)
7350    protected AssetTagPersistence assetTagPersistence;
7351    @BeanReference(type = ExpandoValuePersistence.class)
7352    protected ExpandoValuePersistence expandoValuePersistence;
7353    @BeanReference(type = MBMessagePersistence.class)
7354    protected MBMessagePersistence mbMessagePersistence;
7355    @BeanReference(type = SocialActivityPersistence.class)
7356    protected SocialActivityPersistence socialActivityPersistence;
7357    @BeanReference(type = SocialEquityLogPersistence.class)
7358    protected SocialEquityLogPersistence socialEquityLogPersistence;
7359    private static final String _SQL_SELECT_WIKIPAGE = "SELECT wikiPage FROM WikiPage wikiPage";
7360    private static final String _SQL_SELECT_WIKIPAGE_WHERE = "SELECT wikiPage FROM WikiPage wikiPage WHERE ";
7361    private static final String _SQL_COUNT_WIKIPAGE = "SELECT COUNT(wikiPage) FROM WikiPage wikiPage";
7362    private static final String _SQL_COUNT_WIKIPAGE_WHERE = "SELECT COUNT(wikiPage) FROM WikiPage wikiPage WHERE ";
7363    private static final String _FINDER_COLUMN_UUID_UUID_1 = "wikiPage.uuid IS NULL";
7364    private static final String _FINDER_COLUMN_UUID_UUID_2 = "wikiPage.uuid = ?";
7365    private static final String _FINDER_COLUMN_UUID_UUID_3 = "(wikiPage.uuid IS NULL OR wikiPage.uuid = ?)";
7366    private static final String _FINDER_COLUMN_UUID_G_UUID_1 = "wikiPage.uuid IS NULL AND ";
7367    private static final String _FINDER_COLUMN_UUID_G_UUID_2 = "wikiPage.uuid = ? AND ";
7368    private static final String _FINDER_COLUMN_UUID_G_UUID_3 = "(wikiPage.uuid IS NULL OR wikiPage.uuid = ?) AND ";
7369    private static final String _FINDER_COLUMN_UUID_G_GROUPID_2 = "wikiPage.groupId = ?";
7370    private static final String _FINDER_COLUMN_NODEID_NODEID_2 = "wikiPage.nodeId = ?";
7371    private static final String _FINDER_COLUMN_FORMAT_FORMAT_1 = "wikiPage.format IS NULL";
7372    private static final String _FINDER_COLUMN_FORMAT_FORMAT_2 = "wikiPage.format = ?";
7373    private static final String _FINDER_COLUMN_FORMAT_FORMAT_3 = "(wikiPage.format IS NULL OR wikiPage.format = ?)";
7374    private static final String _FINDER_COLUMN_R_N_RESOURCEPRIMKEY_2 = "wikiPage.resourcePrimKey = ? AND ";
7375    private static final String _FINDER_COLUMN_R_N_NODEID_2 = "wikiPage.nodeId = ?";
7376    private static final String _FINDER_COLUMN_N_T_NODEID_2 = "wikiPage.nodeId = ? AND ";
7377    private static final String _FINDER_COLUMN_N_T_TITLE_1 = "wikiPage.title IS NULL";
7378    private static final String _FINDER_COLUMN_N_T_TITLE_2 = "lower(wikiPage.title) = lower(?)";
7379    private static final String _FINDER_COLUMN_N_T_TITLE_3 = "(wikiPage.title IS NULL OR lower(wikiPage.title) = lower(?))";
7380    private static final String _FINDER_COLUMN_N_H_NODEID_2 = "wikiPage.nodeId = ? AND ";
7381    private static final String _FINDER_COLUMN_N_H_HEAD_2 = "wikiPage.head = ?";
7382    private static final String _FINDER_COLUMN_N_P_NODEID_2 = "wikiPage.nodeId = ? AND ";
7383    private static final String _FINDER_COLUMN_N_P_PARENTTITLE_1 = "wikiPage.parentTitle IS NULL";
7384    private static final String _FINDER_COLUMN_N_P_PARENTTITLE_2 = "lower(wikiPage.parentTitle) = lower(?)";
7385    private static final String _FINDER_COLUMN_N_P_PARENTTITLE_3 = "(wikiPage.parentTitle IS NULL OR lower(wikiPage.parentTitle) = lower(?))";
7386    private static final String _FINDER_COLUMN_N_R_NODEID_2 = "wikiPage.nodeId = ? AND ";
7387    private static final String _FINDER_COLUMN_N_R_REDIRECTTITLE_1 = "wikiPage.redirectTitle IS NULL";
7388    private static final String _FINDER_COLUMN_N_R_REDIRECTTITLE_2 = "lower(wikiPage.redirectTitle) = lower(?)";
7389    private static final String _FINDER_COLUMN_N_R_REDIRECTTITLE_3 = "(wikiPage.redirectTitle IS NULL OR lower(wikiPage.redirectTitle) = lower(?))";
7390    private static final String _FINDER_COLUMN_N_S_NODEID_2 = "wikiPage.nodeId = ? AND ";
7391    private static final String _FINDER_COLUMN_N_S_STATUS_2 = "wikiPage.status = ?";
7392    private static final String _FINDER_COLUMN_R_N_V_RESOURCEPRIMKEY_2 = "wikiPage.resourcePrimKey = ? AND ";
7393    private static final String _FINDER_COLUMN_R_N_V_NODEID_2 = "wikiPage.nodeId = ? AND ";
7394    private static final String _FINDER_COLUMN_R_N_V_VERSION_2 = "wikiPage.version = ?";
7395    private static final String _FINDER_COLUMN_R_N_S_RESOURCEPRIMKEY_2 = "wikiPage.resourcePrimKey = ? AND ";
7396    private static final String _FINDER_COLUMN_R_N_S_NODEID_2 = "wikiPage.nodeId = ? AND ";
7397    private static final String _FINDER_COLUMN_R_N_S_STATUS_2 = "wikiPage.status = ?";
7398    private static final String _FINDER_COLUMN_U_N_S_USERID_2 = "wikiPage.userId = ? AND ";
7399    private static final String _FINDER_COLUMN_U_N_S_NODEID_2 = "wikiPage.nodeId = ? AND ";
7400    private static final String _FINDER_COLUMN_U_N_S_STATUS_2 = "wikiPage.status = ?";
7401    private static final String _FINDER_COLUMN_N_T_V_NODEID_2 = "wikiPage.nodeId = ? AND ";
7402    private static final String _FINDER_COLUMN_N_T_V_TITLE_1 = "wikiPage.title IS NULL AND ";
7403    private static final String _FINDER_COLUMN_N_T_V_TITLE_2 = "lower(wikiPage.title) = lower(?) AND ";
7404    private static final String _FINDER_COLUMN_N_T_V_TITLE_3 = "(wikiPage.title IS NULL OR lower(wikiPage.title) = lower(?)) AND ";
7405    private static final String _FINDER_COLUMN_N_T_V_VERSION_2 = "wikiPage.version = ?";
7406    private static final String _FINDER_COLUMN_N_T_H_NODEID_2 = "wikiPage.nodeId = ? AND ";
7407    private static final String _FINDER_COLUMN_N_T_H_TITLE_1 = "wikiPage.title IS NULL AND ";
7408    private static final String _FINDER_COLUMN_N_T_H_TITLE_2 = "lower(wikiPage.title) = lower(?) AND ";
7409    private static final String _FINDER_COLUMN_N_T_H_TITLE_3 = "(wikiPage.title IS NULL OR lower(wikiPage.title) = lower(?)) AND ";
7410    private static final String _FINDER_COLUMN_N_T_H_HEAD_2 = "wikiPage.head = ?";
7411    private static final String _FINDER_COLUMN_N_T_S_NODEID_2 = "wikiPage.nodeId = ? AND ";
7412    private static final String _FINDER_COLUMN_N_T_S_TITLE_1 = "wikiPage.title IS NULL AND ";
7413    private static final String _FINDER_COLUMN_N_T_S_TITLE_2 = "lower(wikiPage.title) = lower(?) AND ";
7414    private static final String _FINDER_COLUMN_N_T_S_TITLE_3 = "(wikiPage.title IS NULL OR lower(wikiPage.title) = lower(?)) AND ";
7415    private static final String _FINDER_COLUMN_N_T_S_STATUS_2 = "wikiPage.status = ?";
7416    private static final String _FINDER_COLUMN_N_H_P_NODEID_2 = "wikiPage.nodeId = ? AND ";
7417    private static final String _FINDER_COLUMN_N_H_P_HEAD_2 = "wikiPage.head = ? AND ";
7418    private static final String _FINDER_COLUMN_N_H_P_PARENTTITLE_1 = "wikiPage.parentTitle IS NULL";
7419    private static final String _FINDER_COLUMN_N_H_P_PARENTTITLE_2 = "lower(wikiPage.parentTitle) = lower(?)";
7420    private static final String _FINDER_COLUMN_N_H_P_PARENTTITLE_3 = "(wikiPage.parentTitle IS NULL OR lower(wikiPage.parentTitle) = lower(?))";
7421    private static final String _FINDER_COLUMN_N_H_S_NODEID_2 = "wikiPage.nodeId = ? AND ";
7422    private static final String _FINDER_COLUMN_N_H_S_HEAD_2 = "wikiPage.head = ? AND ";
7423    private static final String _FINDER_COLUMN_N_H_S_STATUS_2 = "wikiPage.status = ?";
7424    private static final String _FINDER_COLUMN_N_H_P_S_NODEID_2 = "wikiPage.nodeId = ? AND ";
7425    private static final String _FINDER_COLUMN_N_H_P_S_HEAD_2 = "wikiPage.head = ? AND ";
7426    private static final String _FINDER_COLUMN_N_H_P_S_PARENTTITLE_1 = "wikiPage.parentTitle IS NULL AND ";
7427    private static final String _FINDER_COLUMN_N_H_P_S_PARENTTITLE_2 = "lower(wikiPage.parentTitle) = lower(?) AND ";
7428    private static final String _FINDER_COLUMN_N_H_P_S_PARENTTITLE_3 = "(wikiPage.parentTitle IS NULL OR lower(wikiPage.parentTitle) = lower(?)) AND ";
7429    private static final String _FINDER_COLUMN_N_H_P_S_STATUS_2 = "wikiPage.status = ?";
7430    private static final String _ORDER_BY_ENTITY_ALIAS = "wikiPage.";
7431    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No WikiPage exists with the primary key ";
7432    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No WikiPage exists with the key {";
7433    private static Log _log = LogFactoryUtil.getLog(WikiPagePersistenceImpl.class);
7434}