Example usage for com.liferay.portal.kernel.util StringPool CLOSE_PARENTHESIS

List of usage examples for com.liferay.portal.kernel.util StringPool CLOSE_PARENTHESIS

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util StringPool CLOSE_PARENTHESIS.

Prototype

String CLOSE_PARENTHESIS

To view the source code for com.liferay.portal.kernel.util StringPool CLOSE_PARENTHESIS.

Click Source Link

Usage

From source file:com.liferay.knowledgebase.service.persistence.KBArticlePersistenceImpl.java

License:Open Source License

/**
 * Returns the number of k b articles that the user has permission to view where resourcePrimKey = any ? and groupId = ? and main = ?.
 *
 * @param resourcePrimKeies the resource prim keies
 * @param groupId the group ID//w w w. j  a  va2 s  . c om
 * @param main the main
 * @return the number of matching k b articles that the user has permission to view
 * @throws SystemException if a system exception occurred
 */
public int filterCountByR_G_M(long[] resourcePrimKeies, long groupId, boolean main) throws SystemException {
    if (!InlineSQLHelperUtil.isEnabled(groupId)) {
        return countByR_G_M(resourcePrimKeies, groupId, main);
    }

    StringBundler query = new StringBundler();

    query.append(_FILTER_SQL_COUNT_KBARTICLE_WHERE);

    boolean conjunctionable = false;

    if ((resourcePrimKeies == null) || (resourcePrimKeies.length > 0)) {
        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(StringPool.OPEN_PARENTHESIS);

        for (int i = 0; i < resourcePrimKeies.length; i++) {
            query.append(_FINDER_COLUMN_R_G_M_RESOURCEPRIMKEY_5);

            if ((i + 1) < resourcePrimKeies.length) {
                query.append(WHERE_OR);
            }
        }

        query.append(StringPool.CLOSE_PARENTHESIS);

        conjunctionable = true;
    }

    if (conjunctionable) {
        query.append(WHERE_AND);
    }

    query.append(_FINDER_COLUMN_R_G_M_GROUPID_5);

    conjunctionable = true;

    if (conjunctionable) {
        query.append(WHERE_AND);
    }

    query.append(_FINDER_COLUMN_R_G_M_MAIN_5);

    conjunctionable = true;

    String sql = InlineSQLHelperUtil.replacePermissionCheck(query.toString(), KBArticle.class.getName(),
            _FILTER_ENTITY_TABLE_FILTER_PK_COLUMN, groupId);

    Session session = null;

    try {
        session = openSession();

        SQLQuery q = session.createSQLQuery(sql);

        q.addScalar(COUNT_COLUMN_NAME, com.liferay.portal.kernel.dao.orm.Type.LONG);

        QueryPos qPos = QueryPos.getInstance(q);

        if (resourcePrimKeies != null) {
            qPos.add(resourcePrimKeies);
        }

        qPos.add(groupId);

        qPos.add(main);

        Long count = (Long) q.uniqueResult();

        return count.intValue();
    } catch (Exception e) {
        throw processException(e);
    } finally {
        closeSession(session);
    }
}

From source file:com.liferay.knowledgebase.service.persistence.KBArticlePersistenceImpl.java

License:Open Source License

/**
 * Returns the number of k b articles where resourcePrimKey = any &#63; and groupId = &#63; and status = &#63;.
 *
 * @param resourcePrimKeies the resource prim keies
 * @param groupId the group ID/*from w  w  w.j ava 2  s. c  o m*/
 * @param status the status
 * @return the number of matching k b articles
 * @throws SystemException if a system exception occurred
 */
public int countByR_G_S(long[] resourcePrimKeies, long groupId, int status) throws SystemException {
    Object[] finderArgs = new Object[] { StringUtil.merge(resourcePrimKeies), groupId, status };

    Long count = (Long) FinderCacheUtil.getResult(FINDER_PATH_WITH_PAGINATION_COUNT_BY_R_G_S, finderArgs, this);

    if (count == null) {
        StringBundler query = new StringBundler();

        query.append(_SQL_COUNT_KBARTICLE_WHERE);

        boolean conjunctionable = false;

        if ((resourcePrimKeies == null) || (resourcePrimKeies.length > 0)) {
            if (conjunctionable) {
                query.append(WHERE_AND);
            }

            query.append(StringPool.OPEN_PARENTHESIS);

            for (int i = 0; i < resourcePrimKeies.length; i++) {
                query.append(_FINDER_COLUMN_R_G_S_RESOURCEPRIMKEY_5);

                if ((i + 1) < resourcePrimKeies.length) {
                    query.append(WHERE_OR);
                }
            }

            query.append(StringPool.CLOSE_PARENTHESIS);

            conjunctionable = true;
        }

        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(_FINDER_COLUMN_R_G_S_GROUPID_5);

        conjunctionable = true;

        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(_FINDER_COLUMN_R_G_S_STATUS_5);

        conjunctionable = true;

        String sql = query.toString();

        Session session = null;

        try {
            session = openSession();

            Query q = session.createQuery(sql);

            QueryPos qPos = QueryPos.getInstance(q);

            if (resourcePrimKeies != null) {
                qPos.add(resourcePrimKeies);
            }

            qPos.add(groupId);

            qPos.add(status);

            count = (Long) q.uniqueResult();
        } catch (Exception e) {
            throw processException(e);
        } finally {
            if (count == null) {
                count = Long.valueOf(0);
            }

            FinderCacheUtil.putResult(FINDER_PATH_WITH_PAGINATION_COUNT_BY_R_G_S, finderArgs, count);

            closeSession(session);
        }
    }

    return count.intValue();
}

From source file:com.liferay.knowledgebase.service.persistence.KBArticlePersistenceImpl.java

License:Open Source License

/**
 * Returns the number of k b articles that the user has permission to view where resourcePrimKey = any &#63; and groupId = &#63; and status = &#63;.
 *
 * @param resourcePrimKeies the resource prim keies
 * @param groupId the group ID/* ww w.  j a v a2  s.c o  m*/
 * @param status the status
 * @return the number of matching k b articles that the user has permission to view
 * @throws SystemException if a system exception occurred
 */
public int filterCountByR_G_S(long[] resourcePrimKeies, long groupId, int status) throws SystemException {
    if (!InlineSQLHelperUtil.isEnabled(groupId)) {
        return countByR_G_S(resourcePrimKeies, groupId, status);
    }

    StringBundler query = new StringBundler();

    query.append(_FILTER_SQL_COUNT_KBARTICLE_WHERE);

    boolean conjunctionable = false;

    if ((resourcePrimKeies == null) || (resourcePrimKeies.length > 0)) {
        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(StringPool.OPEN_PARENTHESIS);

        for (int i = 0; i < resourcePrimKeies.length; i++) {
            query.append(_FINDER_COLUMN_R_G_S_RESOURCEPRIMKEY_5);

            if ((i + 1) < resourcePrimKeies.length) {
                query.append(WHERE_OR);
            }
        }

        query.append(StringPool.CLOSE_PARENTHESIS);

        conjunctionable = true;
    }

    if (conjunctionable) {
        query.append(WHERE_AND);
    }

    query.append(_FINDER_COLUMN_R_G_S_GROUPID_5);

    conjunctionable = true;

    if (conjunctionable) {
        query.append(WHERE_AND);
    }

    query.append(_FINDER_COLUMN_R_G_S_STATUS_5);

    conjunctionable = true;

    String sql = InlineSQLHelperUtil.replacePermissionCheck(query.toString(), KBArticle.class.getName(),
            _FILTER_ENTITY_TABLE_FILTER_PK_COLUMN, groupId);

    Session session = null;

    try {
        session = openSession();

        SQLQuery q = session.createSQLQuery(sql);

        q.addScalar(COUNT_COLUMN_NAME, com.liferay.portal.kernel.dao.orm.Type.LONG);

        QueryPos qPos = QueryPos.getInstance(q);

        if (resourcePrimKeies != null) {
            qPos.add(resourcePrimKeies);
        }

        qPos.add(groupId);

        qPos.add(status);

        Long count = (Long) q.uniqueResult();

        return count.intValue();
    } catch (Exception e) {
        throw processException(e);
    } finally {
        closeSession(session);
    }
}

From source file:com.liferay.knowledgebase.service.persistence.KBArticlePersistenceImpl.java

License:Open Source License

/**
 * Returns the number of k b articles where groupId = &#63; and parentResourcePrimKey = any &#63; and latest = &#63;.
 *
 * @param groupId the group ID//from ww  w  .  ja  v a  2s . c  om
 * @param parentResourcePrimKeies the parent resource prim keies
 * @param latest the latest
 * @return the number of matching k b articles
 * @throws SystemException if a system exception occurred
 */
public int countByG_P_L(long groupId, long[] parentResourcePrimKeies, boolean latest) throws SystemException {
    Object[] finderArgs = new Object[] { groupId, StringUtil.merge(parentResourcePrimKeies), latest };

    Long count = (Long) FinderCacheUtil.getResult(FINDER_PATH_WITH_PAGINATION_COUNT_BY_G_P_L, finderArgs, this);

    if (count == null) {
        StringBundler query = new StringBundler();

        query.append(_SQL_COUNT_KBARTICLE_WHERE);

        boolean conjunctionable = false;

        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(_FINDER_COLUMN_G_P_L_GROUPID_5);

        conjunctionable = true;

        if ((parentResourcePrimKeies == null) || (parentResourcePrimKeies.length > 0)) {
            if (conjunctionable) {
                query.append(WHERE_AND);
            }

            query.append(StringPool.OPEN_PARENTHESIS);

            for (int i = 0; i < parentResourcePrimKeies.length; i++) {
                query.append(_FINDER_COLUMN_G_P_L_PARENTRESOURCEPRIMKEY_5);

                if ((i + 1) < parentResourcePrimKeies.length) {
                    query.append(WHERE_OR);
                }
            }

            query.append(StringPool.CLOSE_PARENTHESIS);

            conjunctionable = true;
        }

        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(_FINDER_COLUMN_G_P_L_LATEST_5);

        conjunctionable = true;

        String sql = query.toString();

        Session session = null;

        try {
            session = openSession();

            Query q = session.createQuery(sql);

            QueryPos qPos = QueryPos.getInstance(q);

            qPos.add(groupId);

            if (parentResourcePrimKeies != null) {
                qPos.add(parentResourcePrimKeies);
            }

            qPos.add(latest);

            count = (Long) q.uniqueResult();
        } catch (Exception e) {
            throw processException(e);
        } finally {
            if (count == null) {
                count = Long.valueOf(0);
            }

            FinderCacheUtil.putResult(FINDER_PATH_WITH_PAGINATION_COUNT_BY_G_P_L, finderArgs, count);

            closeSession(session);
        }
    }

    return count.intValue();
}

From source file:com.liferay.knowledgebase.service.persistence.KBArticlePersistenceImpl.java

License:Open Source License

/**
 * Returns the number of k b articles that the user has permission to view where groupId = &#63; and parentResourcePrimKey = any &#63; and latest = &#63;.
 *
 * @param groupId the group ID/*from w  w w . j  av a  2  s .  co  m*/
 * @param parentResourcePrimKeies the parent resource prim keies
 * @param latest the latest
 * @return the number of matching k b articles that the user has permission to view
 * @throws SystemException if a system exception occurred
 */
public int filterCountByG_P_L(long groupId, long[] parentResourcePrimKeies, boolean latest)
        throws SystemException {
    if (!InlineSQLHelperUtil.isEnabled(groupId)) {
        return countByG_P_L(groupId, parentResourcePrimKeies, latest);
    }

    StringBundler query = new StringBundler();

    query.append(_FILTER_SQL_COUNT_KBARTICLE_WHERE);

    boolean conjunctionable = false;

    if (conjunctionable) {
        query.append(WHERE_AND);
    }

    query.append(_FINDER_COLUMN_G_P_L_GROUPID_5);

    conjunctionable = true;

    if ((parentResourcePrimKeies == null) || (parentResourcePrimKeies.length > 0)) {
        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(StringPool.OPEN_PARENTHESIS);

        for (int i = 0; i < parentResourcePrimKeies.length; i++) {
            query.append(_FINDER_COLUMN_G_P_L_PARENTRESOURCEPRIMKEY_5);

            if ((i + 1) < parentResourcePrimKeies.length) {
                query.append(WHERE_OR);
            }
        }

        query.append(StringPool.CLOSE_PARENTHESIS);

        conjunctionable = true;
    }

    if (conjunctionable) {
        query.append(WHERE_AND);
    }

    query.append(_FINDER_COLUMN_G_P_L_LATEST_5);

    conjunctionable = true;

    String sql = InlineSQLHelperUtil.replacePermissionCheck(query.toString(), KBArticle.class.getName(),
            _FILTER_ENTITY_TABLE_FILTER_PK_COLUMN, groupId);

    Session session = null;

    try {
        session = openSession();

        SQLQuery q = session.createSQLQuery(sql);

        q.addScalar(COUNT_COLUMN_NAME, com.liferay.portal.kernel.dao.orm.Type.LONG);

        QueryPos qPos = QueryPos.getInstance(q);

        qPos.add(groupId);

        if (parentResourcePrimKeies != null) {
            qPos.add(parentResourcePrimKeies);
        }

        qPos.add(latest);

        Long count = (Long) q.uniqueResult();

        return count.intValue();
    } catch (Exception e) {
        throw processException(e);
    } finally {
        closeSession(session);
    }
}

From source file:com.liferay.knowledgebase.service.persistence.KBArticlePersistenceImpl.java

License:Open Source License

/**
 * Returns the number of k b articles where groupId = &#63; and parentResourcePrimKey = any &#63; and main = &#63;.
 *
 * @param groupId the group ID//from   w w w  . j  a v a 2 s  . c o  m
 * @param parentResourcePrimKeies the parent resource prim keies
 * @param main the main
 * @return the number of matching k b articles
 * @throws SystemException if a system exception occurred
 */
public int countByG_P_M(long groupId, long[] parentResourcePrimKeies, boolean main) throws SystemException {
    Object[] finderArgs = new Object[] { groupId, StringUtil.merge(parentResourcePrimKeies), main };

    Long count = (Long) FinderCacheUtil.getResult(FINDER_PATH_WITH_PAGINATION_COUNT_BY_G_P_M, finderArgs, this);

    if (count == null) {
        StringBundler query = new StringBundler();

        query.append(_SQL_COUNT_KBARTICLE_WHERE);

        boolean conjunctionable = false;

        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(_FINDER_COLUMN_G_P_M_GROUPID_5);

        conjunctionable = true;

        if ((parentResourcePrimKeies == null) || (parentResourcePrimKeies.length > 0)) {
            if (conjunctionable) {
                query.append(WHERE_AND);
            }

            query.append(StringPool.OPEN_PARENTHESIS);

            for (int i = 0; i < parentResourcePrimKeies.length; i++) {
                query.append(_FINDER_COLUMN_G_P_M_PARENTRESOURCEPRIMKEY_5);

                if ((i + 1) < parentResourcePrimKeies.length) {
                    query.append(WHERE_OR);
                }
            }

            query.append(StringPool.CLOSE_PARENTHESIS);

            conjunctionable = true;
        }

        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(_FINDER_COLUMN_G_P_M_MAIN_5);

        conjunctionable = true;

        String sql = query.toString();

        Session session = null;

        try {
            session = openSession();

            Query q = session.createQuery(sql);

            QueryPos qPos = QueryPos.getInstance(q);

            qPos.add(groupId);

            if (parentResourcePrimKeies != null) {
                qPos.add(parentResourcePrimKeies);
            }

            qPos.add(main);

            count = (Long) q.uniqueResult();
        } catch (Exception e) {
            throw processException(e);
        } finally {
            if (count == null) {
                count = Long.valueOf(0);
            }

            FinderCacheUtil.putResult(FINDER_PATH_WITH_PAGINATION_COUNT_BY_G_P_M, finderArgs, count);

            closeSession(session);
        }
    }

    return count.intValue();
}

From source file:com.liferay.knowledgebase.service.persistence.KBArticlePersistenceImpl.java

License:Open Source License

/**
 * Returns the number of k b articles that the user has permission to view where groupId = &#63; and parentResourcePrimKey = any &#63; and main = &#63;.
 *
 * @param groupId the group ID//from   www. java  2s  .com
 * @param parentResourcePrimKeies the parent resource prim keies
 * @param main the main
 * @return the number of matching k b articles that the user has permission to view
 * @throws SystemException if a system exception occurred
 */
public int filterCountByG_P_M(long groupId, long[] parentResourcePrimKeies, boolean main)
        throws SystemException {
    if (!InlineSQLHelperUtil.isEnabled(groupId)) {
        return countByG_P_M(groupId, parentResourcePrimKeies, main);
    }

    StringBundler query = new StringBundler();

    query.append(_FILTER_SQL_COUNT_KBARTICLE_WHERE);

    boolean conjunctionable = false;

    if (conjunctionable) {
        query.append(WHERE_AND);
    }

    query.append(_FINDER_COLUMN_G_P_M_GROUPID_5);

    conjunctionable = true;

    if ((parentResourcePrimKeies == null) || (parentResourcePrimKeies.length > 0)) {
        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(StringPool.OPEN_PARENTHESIS);

        for (int i = 0; i < parentResourcePrimKeies.length; i++) {
            query.append(_FINDER_COLUMN_G_P_M_PARENTRESOURCEPRIMKEY_5);

            if ((i + 1) < parentResourcePrimKeies.length) {
                query.append(WHERE_OR);
            }
        }

        query.append(StringPool.CLOSE_PARENTHESIS);

        conjunctionable = true;
    }

    if (conjunctionable) {
        query.append(WHERE_AND);
    }

    query.append(_FINDER_COLUMN_G_P_M_MAIN_5);

    conjunctionable = true;

    String sql = InlineSQLHelperUtil.replacePermissionCheck(query.toString(), KBArticle.class.getName(),
            _FILTER_ENTITY_TABLE_FILTER_PK_COLUMN, groupId);

    Session session = null;

    try {
        session = openSession();

        SQLQuery q = session.createSQLQuery(sql);

        q.addScalar(COUNT_COLUMN_NAME, com.liferay.portal.kernel.dao.orm.Type.LONG);

        QueryPos qPos = QueryPos.getInstance(q);

        qPos.add(groupId);

        if (parentResourcePrimKeies != null) {
            qPos.add(parentResourcePrimKeies);
        }

        qPos.add(main);

        Long count = (Long) q.uniqueResult();

        return count.intValue();
    } catch (Exception e) {
        throw processException(e);
    } finally {
        closeSession(session);
    }
}

From source file:com.liferay.knowledgebase.service.persistence.KBArticlePersistenceImpl.java

License:Open Source License

/**
 * Returns the number of k b articles where groupId = &#63; and parentResourcePrimKey = any &#63; and status = &#63;.
 *
 * @param groupId the group ID/*from w w  w  .j a  v a2s .c  o  m*/
 * @param parentResourcePrimKeies the parent resource prim keies
 * @param status the status
 * @return the number of matching k b articles
 * @throws SystemException if a system exception occurred
 */
public int countByG_P_S(long groupId, long[] parentResourcePrimKeies, int status) throws SystemException {
    Object[] finderArgs = new Object[] { groupId, StringUtil.merge(parentResourcePrimKeies), status };

    Long count = (Long) FinderCacheUtil.getResult(FINDER_PATH_WITH_PAGINATION_COUNT_BY_G_P_S, finderArgs, this);

    if (count == null) {
        StringBundler query = new StringBundler();

        query.append(_SQL_COUNT_KBARTICLE_WHERE);

        boolean conjunctionable = false;

        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(_FINDER_COLUMN_G_P_S_GROUPID_5);

        conjunctionable = true;

        if ((parentResourcePrimKeies == null) || (parentResourcePrimKeies.length > 0)) {
            if (conjunctionable) {
                query.append(WHERE_AND);
            }

            query.append(StringPool.OPEN_PARENTHESIS);

            for (int i = 0; i < parentResourcePrimKeies.length; i++) {
                query.append(_FINDER_COLUMN_G_P_S_PARENTRESOURCEPRIMKEY_5);

                if ((i + 1) < parentResourcePrimKeies.length) {
                    query.append(WHERE_OR);
                }
            }

            query.append(StringPool.CLOSE_PARENTHESIS);

            conjunctionable = true;
        }

        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(_FINDER_COLUMN_G_P_S_STATUS_5);

        conjunctionable = true;

        String sql = query.toString();

        Session session = null;

        try {
            session = openSession();

            Query q = session.createQuery(sql);

            QueryPos qPos = QueryPos.getInstance(q);

            qPos.add(groupId);

            if (parentResourcePrimKeies != null) {
                qPos.add(parentResourcePrimKeies);
            }

            qPos.add(status);

            count = (Long) q.uniqueResult();
        } catch (Exception e) {
            throw processException(e);
        } finally {
            if (count == null) {
                count = Long.valueOf(0);
            }

            FinderCacheUtil.putResult(FINDER_PATH_WITH_PAGINATION_COUNT_BY_G_P_S, finderArgs, count);

            closeSession(session);
        }
    }

    return count.intValue();
}

From source file:com.liferay.knowledgebase.service.persistence.KBArticlePersistenceImpl.java

License:Open Source License

/**
 * Returns the number of k b articles that the user has permission to view where groupId = &#63; and parentResourcePrimKey = any &#63; and status = &#63;.
 *
 * @param groupId the group ID// w w w  .j a v  a 2 s. c o m
 * @param parentResourcePrimKeies the parent resource prim keies
 * @param status the status
 * @return the number of matching k b articles that the user has permission to view
 * @throws SystemException if a system exception occurred
 */
public int filterCountByG_P_S(long groupId, long[] parentResourcePrimKeies, int status) throws SystemException {
    if (!InlineSQLHelperUtil.isEnabled(groupId)) {
        return countByG_P_S(groupId, parentResourcePrimKeies, status);
    }

    StringBundler query = new StringBundler();

    query.append(_FILTER_SQL_COUNT_KBARTICLE_WHERE);

    boolean conjunctionable = false;

    if (conjunctionable) {
        query.append(WHERE_AND);
    }

    query.append(_FINDER_COLUMN_G_P_S_GROUPID_5);

    conjunctionable = true;

    if ((parentResourcePrimKeies == null) || (parentResourcePrimKeies.length > 0)) {
        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(StringPool.OPEN_PARENTHESIS);

        for (int i = 0; i < parentResourcePrimKeies.length; i++) {
            query.append(_FINDER_COLUMN_G_P_S_PARENTRESOURCEPRIMKEY_5);

            if ((i + 1) < parentResourcePrimKeies.length) {
                query.append(WHERE_OR);
            }
        }

        query.append(StringPool.CLOSE_PARENTHESIS);

        conjunctionable = true;
    }

    if (conjunctionable) {
        query.append(WHERE_AND);
    }

    query.append(_FINDER_COLUMN_G_P_S_STATUS_5);

    conjunctionable = true;

    String sql = InlineSQLHelperUtil.replacePermissionCheck(query.toString(), KBArticle.class.getName(),
            _FILTER_ENTITY_TABLE_FILTER_PK_COLUMN, groupId);

    Session session = null;

    try {
        session = openSession();

        SQLQuery q = session.createSQLQuery(sql);

        q.addScalar(COUNT_COLUMN_NAME, com.liferay.portal.kernel.dao.orm.Type.LONG);

        QueryPos qPos = QueryPos.getInstance(q);

        qPos.add(groupId);

        if (parentResourcePrimKeies != null) {
            qPos.add(parentResourcePrimKeies);
        }

        qPos.add(status);

        Long count = (Long) q.uniqueResult();

        return count.intValue();
    } catch (Exception e) {
        throw processException(e);
    } finally {
        closeSession(session);
    }
}

From source file:com.liferay.knowledgebase.service.persistence.KBArticlePersistenceImpl.java

License:Open Source License

/**
 * Returns the number of k b articles where groupId = &#63; and parentResourcePrimKey = &#63; and sections LIKE any &#63; and latest = &#63;.
 *
 * @param groupId the group ID/*  w w w .jav a2s .  com*/
 * @param parentResourcePrimKey the parent resource prim key
 * @param sectionses the sectionses
 * @param latest the latest
 * @return the number of matching k b articles
 * @throws SystemException if a system exception occurred
 */
public int countByG_P_S_L(long groupId, long parentResourcePrimKey, String[] sectionses, boolean latest)
        throws SystemException {
    Object[] finderArgs = new Object[] { groupId, parentResourcePrimKey, StringUtil.merge(sectionses), latest };

    Long count = (Long) FinderCacheUtil.getResult(FINDER_PATH_WITH_PAGINATION_COUNT_BY_G_P_S_L, finderArgs,
            this);

    if (count == null) {
        StringBundler query = new StringBundler();

        query.append(_SQL_COUNT_KBARTICLE_WHERE);

        boolean conjunctionable = false;

        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(_FINDER_COLUMN_G_P_S_L_GROUPID_5);

        conjunctionable = true;

        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(_FINDER_COLUMN_G_P_S_L_PARENTRESOURCEPRIMKEY_5);

        conjunctionable = true;

        if ((sectionses == null) || (sectionses.length > 0)) {
            if (conjunctionable) {
                query.append(WHERE_AND);
            }

            query.append(StringPool.OPEN_PARENTHESIS);

            for (int i = 0; i < sectionses.length; i++) {
                String sections = sectionses[i];

                if (sections == null) {
                    query.append(_FINDER_COLUMN_G_P_S_L_SECTIONS_4);
                } else {
                    if (sections.equals(StringPool.BLANK)) {
                        query.append(_FINDER_COLUMN_G_P_S_L_SECTIONS_6);
                    } else {
                        query.append(_FINDER_COLUMN_G_P_S_L_SECTIONS_5);
                    }
                }

                if ((i + 1) < sectionses.length) {
                    query.append(WHERE_OR);
                }
            }

            query.append(StringPool.CLOSE_PARENTHESIS);

            conjunctionable = true;
        }

        if (conjunctionable) {
            query.append(WHERE_AND);
        }

        query.append(_FINDER_COLUMN_G_P_S_L_LATEST_5);

        conjunctionable = true;

        String sql = query.toString();

        Session session = null;

        try {
            session = openSession();

            Query q = session.createQuery(sql);

            QueryPos qPos = QueryPos.getInstance(q);

            qPos.add(groupId);

            qPos.add(parentResourcePrimKey);

            if (sectionses != null) {
                qPos.add(sectionses);
            }

            qPos.add(latest);

            count = (Long) q.uniqueResult();
        } catch (Exception e) {
            throw processException(e);
        } finally {
            if (count == null) {
                count = Long.valueOf(0);
            }

            FinderCacheUtil.putResult(FINDER_PATH_WITH_PAGINATION_COUNT_BY_G_P_S_L, finderArgs, count);

            closeSession(session);
        }
    }

    return count.intValue();
}