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