All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.liferay.change.tracking.service.persistence.impl.CTMessagePersistenceImpl Maven / Gradle / Ivy

There is a newer version: 3.0.108
Show newest version
/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.change.tracking.service.persistence.impl;

import com.liferay.change.tracking.exception.NoSuchMessageException;
import com.liferay.change.tracking.model.CTMessage;
import com.liferay.change.tracking.model.CTMessageTable;
import com.liferay.change.tracking.model.impl.CTMessageImpl;
import com.liferay.change.tracking.model.impl.CTMessageModelImpl;
import com.liferay.change.tracking.service.persistence.CTMessagePersistence;
import com.liferay.change.tracking.service.persistence.CTMessageUtil;
import com.liferay.change.tracking.service.persistence.impl.constants.CTPersistenceConstants;
import com.liferay.petra.string.StringBundler;
import com.liferay.portal.kernel.configuration.Configuration;
import com.liferay.portal.kernel.dao.orm.ArgumentsResolver;
import com.liferay.portal.kernel.dao.orm.EntityCache;
import com.liferay.portal.kernel.dao.orm.FinderCache;
import com.liferay.portal.kernel.dao.orm.FinderPath;
import com.liferay.portal.kernel.dao.orm.Query;
import com.liferay.portal.kernel.dao.orm.QueryPos;
import com.liferay.portal.kernel.dao.orm.QueryUtil;
import com.liferay.portal.kernel.dao.orm.Session;
import com.liferay.portal.kernel.dao.orm.SessionFactory;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.model.BaseModel;
import com.liferay.portal.kernel.security.auth.CompanyThreadLocal;
import com.liferay.portal.kernel.service.persistence.impl.BasePersistenceImpl;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.MapUtil;
import com.liferay.portal.kernel.util.OrderByComparator;
import com.liferay.portal.kernel.util.PropsKeys;
import com.liferay.portal.kernel.util.PropsUtil;
import com.liferay.portal.kernel.util.ProxyUtil;

import java.io.Serializable;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationHandler;

import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;

import javax.sql.DataSource;

import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;

/**
 * The persistence implementation for the ct message service.
 *
 * 

* Caching information and settings can be found in portal.properties *

* * @author Brian Wing Shun Chan * @generated */ @Component(service = CTMessagePersistence.class) public class CTMessagePersistenceImpl extends BasePersistenceImpl implements CTMessagePersistence { /* * NOTE FOR DEVELOPERS: * * Never modify or reference this class directly. Always use CTMessageUtil to access the ct message persistence. Modify service.xml and rerun ServiceBuilder to regenerate this class. */ public static final String FINDER_CLASS_NAME_ENTITY = CTMessageImpl.class.getName(); public static final String FINDER_CLASS_NAME_LIST_WITH_PAGINATION = FINDER_CLASS_NAME_ENTITY + ".List1"; public static final String FINDER_CLASS_NAME_LIST_WITHOUT_PAGINATION = FINDER_CLASS_NAME_ENTITY + ".List2"; private FinderPath _finderPathWithPaginationFindAll; private FinderPath _finderPathWithoutPaginationFindAll; private FinderPath _finderPathCountAll; private FinderPath _finderPathWithPaginationFindByCTCollectionId; private FinderPath _finderPathWithoutPaginationFindByCTCollectionId; private FinderPath _finderPathCountByCTCollectionId; /** * Returns all the ct messages where ctCollectionId = ?. * * @param ctCollectionId the ct collection ID * @return the matching ct messages */ @Override public List findByCTCollectionId(long ctCollectionId) { return findByCTCollectionId( ctCollectionId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); } /** * Returns a range of all the ct messages where ctCollectionId = ?. * *

* Useful when paginating results. Returns a maximum of end - start instances. start and end are not primary keys, they are indexes in the result set. Thus, 0 refers to the first result in the set. Setting both start and end to QueryUtil#ALL_POS will return the full result set. If orderByComparator is specified, then the query will include the given ORDER BY logic. If orderByComparator is absent, then the query will include the default ORDER BY logic from CTMessageModelImpl. *

* * @param ctCollectionId the ct collection ID * @param start the lower bound of the range of ct messages * @param end the upper bound of the range of ct messages (not inclusive) * @return the range of matching ct messages */ @Override public List findByCTCollectionId( long ctCollectionId, int start, int end) { return findByCTCollectionId(ctCollectionId, start, end, null); } /** * Returns an ordered range of all the ct messages where ctCollectionId = ?. * *

* Useful when paginating results. Returns a maximum of end - start instances. start and end are not primary keys, they are indexes in the result set. Thus, 0 refers to the first result in the set. Setting both start and end to QueryUtil#ALL_POS will return the full result set. If orderByComparator is specified, then the query will include the given ORDER BY logic. If orderByComparator is absent, then the query will include the default ORDER BY logic from CTMessageModelImpl. *

* * @param ctCollectionId the ct collection ID * @param start the lower bound of the range of ct messages * @param end the upper bound of the range of ct messages (not inclusive) * @param orderByComparator the comparator to order the results by (optionally null) * @return the ordered range of matching ct messages */ @Override public List findByCTCollectionId( long ctCollectionId, int start, int end, OrderByComparator orderByComparator) { return findByCTCollectionId( ctCollectionId, start, end, orderByComparator, true); } /** * Returns an ordered range of all the ct messages where ctCollectionId = ?. * *

* Useful when paginating results. Returns a maximum of end - start instances. start and end are not primary keys, they are indexes in the result set. Thus, 0 refers to the first result in the set. Setting both start and end to QueryUtil#ALL_POS will return the full result set. If orderByComparator is specified, then the query will include the given ORDER BY logic. If orderByComparator is absent, then the query will include the default ORDER BY logic from CTMessageModelImpl. *

* * @param ctCollectionId the ct collection ID * @param start the lower bound of the range of ct messages * @param end the upper bound of the range of ct messages (not inclusive) * @param orderByComparator the comparator to order the results by (optionally null) * @param useFinderCache whether to use the finder cache * @return the ordered range of matching ct messages */ @Override public List findByCTCollectionId( long ctCollectionId, int start, int end, OrderByComparator orderByComparator, boolean useFinderCache) { FinderPath finderPath = null; Object[] finderArgs = null; if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) && (orderByComparator == null)) { if (useFinderCache) { finderPath = _finderPathWithoutPaginationFindByCTCollectionId; finderArgs = new Object[] {ctCollectionId}; } } else if (useFinderCache) { finderPath = _finderPathWithPaginationFindByCTCollectionId; finderArgs = new Object[] { ctCollectionId, start, end, orderByComparator }; } List list = null; if (useFinderCache) { list = (List)finderCache.getResult( finderPath, finderArgs, this); if ((list != null) && !list.isEmpty()) { for (CTMessage ctMessage : list) { if (ctCollectionId != ctMessage.getCtCollectionId()) { list = null; break; } } } } if (list == null) { StringBundler sb = null; if (orderByComparator != null) { sb = new StringBundler( 3 + (orderByComparator.getOrderByFields().length * 2)); } else { sb = new StringBundler(3); } sb.append(_SQL_SELECT_CTMESSAGE_WHERE); sb.append(_FINDER_COLUMN_CTCOLLECTIONID_CTCOLLECTIONID_2); if (orderByComparator != null) { appendOrderByComparator( sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator); } else { sb.append(CTMessageModelImpl.ORDER_BY_JPQL); } String sql = sb.toString(); Session session = null; try { session = openSession(); Query query = session.createQuery(sql); QueryPos queryPos = QueryPos.getInstance(query); queryPos.add(ctCollectionId); list = (List)QueryUtil.list( query, getDialect(), start, end); cacheResult(list); if (useFinderCache) { finderCache.putResult(finderPath, finderArgs, list); } } catch (Exception exception) { throw processException(exception); } finally { closeSession(session); } } return list; } /** * Returns the first ct message in the ordered set where ctCollectionId = ?. * * @param ctCollectionId the ct collection ID * @param orderByComparator the comparator to order the set by (optionally null) * @return the first matching ct message * @throws NoSuchMessageException if a matching ct message could not be found */ @Override public CTMessage findByCTCollectionId_First( long ctCollectionId, OrderByComparator orderByComparator) throws NoSuchMessageException { CTMessage ctMessage = fetchByCTCollectionId_First( ctCollectionId, orderByComparator); if (ctMessage != null) { return ctMessage; } StringBundler sb = new StringBundler(4); sb.append(_NO_SUCH_ENTITY_WITH_KEY); sb.append("ctCollectionId="); sb.append(ctCollectionId); sb.append("}"); throw new NoSuchMessageException(sb.toString()); } /** * Returns the first ct message in the ordered set where ctCollectionId = ?. * * @param ctCollectionId the ct collection ID * @param orderByComparator the comparator to order the set by (optionally null) * @return the first matching ct message, or null if a matching ct message could not be found */ @Override public CTMessage fetchByCTCollectionId_First( long ctCollectionId, OrderByComparator orderByComparator) { List list = findByCTCollectionId( ctCollectionId, 0, 1, orderByComparator); if (!list.isEmpty()) { return list.get(0); } return null; } /** * Returns the last ct message in the ordered set where ctCollectionId = ?. * * @param ctCollectionId the ct collection ID * @param orderByComparator the comparator to order the set by (optionally null) * @return the last matching ct message * @throws NoSuchMessageException if a matching ct message could not be found */ @Override public CTMessage findByCTCollectionId_Last( long ctCollectionId, OrderByComparator orderByComparator) throws NoSuchMessageException { CTMessage ctMessage = fetchByCTCollectionId_Last( ctCollectionId, orderByComparator); if (ctMessage != null) { return ctMessage; } StringBundler sb = new StringBundler(4); sb.append(_NO_SUCH_ENTITY_WITH_KEY); sb.append("ctCollectionId="); sb.append(ctCollectionId); sb.append("}"); throw new NoSuchMessageException(sb.toString()); } /** * Returns the last ct message in the ordered set where ctCollectionId = ?. * * @param ctCollectionId the ct collection ID * @param orderByComparator the comparator to order the set by (optionally null) * @return the last matching ct message, or null if a matching ct message could not be found */ @Override public CTMessage fetchByCTCollectionId_Last( long ctCollectionId, OrderByComparator orderByComparator) { int count = countByCTCollectionId(ctCollectionId); if (count == 0) { return null; } List list = findByCTCollectionId( ctCollectionId, count - 1, count, orderByComparator); if (!list.isEmpty()) { return list.get(0); } return null; } /** * Returns the ct messages before and after the current ct message in the ordered set where ctCollectionId = ?. * * @param ctMessageId the primary key of the current ct message * @param ctCollectionId the ct collection ID * @param orderByComparator the comparator to order the set by (optionally null) * @return the previous, current, and next ct message * @throws NoSuchMessageException if a ct message with the primary key could not be found */ @Override public CTMessage[] findByCTCollectionId_PrevAndNext( long ctMessageId, long ctCollectionId, OrderByComparator orderByComparator) throws NoSuchMessageException { CTMessage ctMessage = findByPrimaryKey(ctMessageId); Session session = null; try { session = openSession(); CTMessage[] array = new CTMessageImpl[3]; array[0] = getByCTCollectionId_PrevAndNext( session, ctMessage, ctCollectionId, orderByComparator, true); array[1] = ctMessage; array[2] = getByCTCollectionId_PrevAndNext( session, ctMessage, ctCollectionId, orderByComparator, false); return array; } catch (Exception exception) { throw processException(exception); } finally { closeSession(session); } } protected CTMessage getByCTCollectionId_PrevAndNext( Session session, CTMessage ctMessage, long ctCollectionId, OrderByComparator orderByComparator, boolean previous) { StringBundler sb = null; if (orderByComparator != null) { sb = new StringBundler( 4 + (orderByComparator.getOrderByConditionFields().length * 3) + (orderByComparator.getOrderByFields().length * 3)); } else { sb = new StringBundler(3); } sb.append(_SQL_SELECT_CTMESSAGE_WHERE); sb.append(_FINDER_COLUMN_CTCOLLECTIONID_CTCOLLECTIONID_2); if (orderByComparator != null) { String[] orderByConditionFields = orderByComparator.getOrderByConditionFields(); if (orderByConditionFields.length > 0) { sb.append(WHERE_AND); } for (int i = 0; i < orderByConditionFields.length; i++) { sb.append(_ORDER_BY_ENTITY_ALIAS); sb.append(orderByConditionFields[i]); if ((i + 1) < orderByConditionFields.length) { if (orderByComparator.isAscending() ^ previous) { sb.append(WHERE_GREATER_THAN_HAS_NEXT); } else { sb.append(WHERE_LESSER_THAN_HAS_NEXT); } } else { if (orderByComparator.isAscending() ^ previous) { sb.append(WHERE_GREATER_THAN); } else { sb.append(WHERE_LESSER_THAN); } } } sb.append(ORDER_BY_CLAUSE); String[] orderByFields = orderByComparator.getOrderByFields(); for (int i = 0; i < orderByFields.length; i++) { sb.append(_ORDER_BY_ENTITY_ALIAS); sb.append(orderByFields[i]); if ((i + 1) < orderByFields.length) { if (orderByComparator.isAscending() ^ previous) { sb.append(ORDER_BY_ASC_HAS_NEXT); } else { sb.append(ORDER_BY_DESC_HAS_NEXT); } } else { if (orderByComparator.isAscending() ^ previous) { sb.append(ORDER_BY_ASC); } else { sb.append(ORDER_BY_DESC); } } } } else { sb.append(CTMessageModelImpl.ORDER_BY_JPQL); } String sql = sb.toString(); Query query = session.createQuery(sql); query.setFirstResult(0); query.setMaxResults(2); QueryPos queryPos = QueryPos.getInstance(query); queryPos.add(ctCollectionId); if (orderByComparator != null) { for (Object orderByConditionValue : orderByComparator.getOrderByConditionValues(ctMessage)) { queryPos.add(orderByConditionValue); } } List list = query.list(); if (list.size() == 2) { return list.get(1); } else { return null; } } /** * Removes all the ct messages where ctCollectionId = ? from the database. * * @param ctCollectionId the ct collection ID */ @Override public void removeByCTCollectionId(long ctCollectionId) { for (CTMessage ctMessage : findByCTCollectionId( ctCollectionId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null)) { remove(ctMessage); } } /** * Returns the number of ct messages where ctCollectionId = ?. * * @param ctCollectionId the ct collection ID * @return the number of matching ct messages */ @Override public int countByCTCollectionId(long ctCollectionId) { FinderPath finderPath = _finderPathCountByCTCollectionId; Object[] finderArgs = new Object[] {ctCollectionId}; Long count = (Long)finderCache.getResult(finderPath, finderArgs, this); if (count == null) { StringBundler sb = new StringBundler(2); sb.append(_SQL_COUNT_CTMESSAGE_WHERE); sb.append(_FINDER_COLUMN_CTCOLLECTIONID_CTCOLLECTIONID_2); String sql = sb.toString(); Session session = null; try { session = openSession(); Query query = session.createQuery(sql); QueryPos queryPos = QueryPos.getInstance(query); queryPos.add(ctCollectionId); count = (Long)query.uniqueResult(); finderCache.putResult(finderPath, finderArgs, count); } catch (Exception exception) { throw processException(exception); } finally { closeSession(session); } } return count.intValue(); } private static final String _FINDER_COLUMN_CTCOLLECTIONID_CTCOLLECTIONID_2 = "ctMessage.ctCollectionId = ?"; public CTMessagePersistenceImpl() { setModelClass(CTMessage.class); setModelImplClass(CTMessageImpl.class); setModelPKClass(long.class); setTable(CTMessageTable.INSTANCE); } /** * Caches the ct message in the entity cache if it is enabled. * * @param ctMessage the ct message */ @Override public void cacheResult(CTMessage ctMessage) { entityCache.putResult( CTMessageImpl.class, ctMessage.getPrimaryKey(), ctMessage); } private int _valueObjectFinderCacheListThreshold; /** * Caches the ct messages in the entity cache if it is enabled. * * @param ctMessages the ct messages */ @Override public void cacheResult(List ctMessages) { if ((_valueObjectFinderCacheListThreshold == 0) || ((_valueObjectFinderCacheListThreshold > 0) && (ctMessages.size() > _valueObjectFinderCacheListThreshold))) { return; } for (CTMessage ctMessage : ctMessages) { if (entityCache.getResult( CTMessageImpl.class, ctMessage.getPrimaryKey()) == null) { cacheResult(ctMessage); } } } /** * Clears the cache for all ct messages. * *

* The EntityCache and FinderCache are both cleared by this method. *

*/ @Override public void clearCache() { entityCache.clearCache(CTMessageImpl.class); finderCache.clearCache(FINDER_CLASS_NAME_ENTITY); finderCache.clearCache(FINDER_CLASS_NAME_LIST_WITH_PAGINATION); finderCache.clearCache(FINDER_CLASS_NAME_LIST_WITHOUT_PAGINATION); } /** * Clears the cache for the ct message. * *

* The EntityCache and FinderCache are both cleared by this method. *

*/ @Override public void clearCache(CTMessage ctMessage) { entityCache.removeResult(CTMessageImpl.class, ctMessage); } @Override public void clearCache(List ctMessages) { for (CTMessage ctMessage : ctMessages) { entityCache.removeResult(CTMessageImpl.class, ctMessage); } } @Override public void clearCache(Set primaryKeys) { finderCache.clearCache(FINDER_CLASS_NAME_ENTITY); finderCache.clearCache(FINDER_CLASS_NAME_LIST_WITH_PAGINATION); finderCache.clearCache(FINDER_CLASS_NAME_LIST_WITHOUT_PAGINATION); for (Serializable primaryKey : primaryKeys) { entityCache.removeResult(CTMessageImpl.class, primaryKey); } } /** * Creates a new ct message with the primary key. Does not add the ct message to the database. * * @param ctMessageId the primary key for the new ct message * @return the new ct message */ @Override public CTMessage create(long ctMessageId) { CTMessage ctMessage = new CTMessageImpl(); ctMessage.setNew(true); ctMessage.setPrimaryKey(ctMessageId); ctMessage.setCompanyId(CompanyThreadLocal.getCompanyId()); return ctMessage; } /** * Removes the ct message with the primary key from the database. Also notifies the appropriate model listeners. * * @param ctMessageId the primary key of the ct message * @return the ct message that was removed * @throws NoSuchMessageException if a ct message with the primary key could not be found */ @Override public CTMessage remove(long ctMessageId) throws NoSuchMessageException { return remove((Serializable)ctMessageId); } /** * Removes the ct message with the primary key from the database. Also notifies the appropriate model listeners. * * @param primaryKey the primary key of the ct message * @return the ct message that was removed * @throws NoSuchMessageException if a ct message with the primary key could not be found */ @Override public CTMessage remove(Serializable primaryKey) throws NoSuchMessageException { Session session = null; try { session = openSession(); CTMessage ctMessage = (CTMessage)session.get( CTMessageImpl.class, primaryKey); if (ctMessage == null) { if (_log.isDebugEnabled()) { _log.debug(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + primaryKey); } throw new NoSuchMessageException( _NO_SUCH_ENTITY_WITH_PRIMARY_KEY + primaryKey); } return remove(ctMessage); } catch (NoSuchMessageException noSuchEntityException) { throw noSuchEntityException; } catch (Exception exception) { throw processException(exception); } finally { closeSession(session); } } @Override protected CTMessage removeImpl(CTMessage ctMessage) { Session session = null; try { session = openSession(); if (!session.contains(ctMessage)) { ctMessage = (CTMessage)session.get( CTMessageImpl.class, ctMessage.getPrimaryKeyObj()); } if (ctMessage != null) { session.delete(ctMessage); } } catch (Exception exception) { throw processException(exception); } finally { closeSession(session); } if (ctMessage != null) { clearCache(ctMessage); } return ctMessage; } @Override public CTMessage updateImpl(CTMessage ctMessage) { boolean isNew = ctMessage.isNew(); if (!(ctMessage instanceof CTMessageModelImpl)) { InvocationHandler invocationHandler = null; if (ProxyUtil.isProxyClass(ctMessage.getClass())) { invocationHandler = ProxyUtil.getInvocationHandler(ctMessage); throw new IllegalArgumentException( "Implement ModelWrapper in ctMessage proxy " + invocationHandler.getClass()); } throw new IllegalArgumentException( "Implement ModelWrapper in custom CTMessage implementation " + ctMessage.getClass()); } CTMessageModelImpl ctMessageModelImpl = (CTMessageModelImpl)ctMessage; Session session = null; try { session = openSession(); if (isNew) { session.save(ctMessage); } else { ctMessage = (CTMessage)session.merge(ctMessage); } } catch (Exception exception) { throw processException(exception); } finally { closeSession(session); } entityCache.putResult( CTMessageImpl.class, ctMessageModelImpl, false, true); if (isNew) { ctMessage.setNew(false); } ctMessage.resetOriginalValues(); return ctMessage; } /** * Returns the ct message with the primary key or throws a com.liferay.portal.kernel.exception.NoSuchModelException if it could not be found. * * @param primaryKey the primary key of the ct message * @return the ct message * @throws NoSuchMessageException if a ct message with the primary key could not be found */ @Override public CTMessage findByPrimaryKey(Serializable primaryKey) throws NoSuchMessageException { CTMessage ctMessage = fetchByPrimaryKey(primaryKey); if (ctMessage == null) { if (_log.isDebugEnabled()) { _log.debug(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + primaryKey); } throw new NoSuchMessageException( _NO_SUCH_ENTITY_WITH_PRIMARY_KEY + primaryKey); } return ctMessage; } /** * Returns the ct message with the primary key or throws a NoSuchMessageException if it could not be found. * * @param ctMessageId the primary key of the ct message * @return the ct message * @throws NoSuchMessageException if a ct message with the primary key could not be found */ @Override public CTMessage findByPrimaryKey(long ctMessageId) throws NoSuchMessageException { return findByPrimaryKey((Serializable)ctMessageId); } /** * Returns the ct message with the primary key or returns null if it could not be found. * * @param ctMessageId the primary key of the ct message * @return the ct message, or null if a ct message with the primary key could not be found */ @Override public CTMessage fetchByPrimaryKey(long ctMessageId) { return fetchByPrimaryKey((Serializable)ctMessageId); } /** * Returns all the ct messages. * * @return the ct messages */ @Override public List findAll() { return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); } /** * Returns a range of all the ct messages. * *

* Useful when paginating results. Returns a maximum of end - start instances. start and end are not primary keys, they are indexes in the result set. Thus, 0 refers to the first result in the set. Setting both start and end to QueryUtil#ALL_POS will return the full result set. If orderByComparator is specified, then the query will include the given ORDER BY logic. If orderByComparator is absent, then the query will include the default ORDER BY logic from CTMessageModelImpl. *

* * @param start the lower bound of the range of ct messages * @param end the upper bound of the range of ct messages (not inclusive) * @return the range of ct messages */ @Override public List findAll(int start, int end) { return findAll(start, end, null); } /** * Returns an ordered range of all the ct messages. * *

* Useful when paginating results. Returns a maximum of end - start instances. start and end are not primary keys, they are indexes in the result set. Thus, 0 refers to the first result in the set. Setting both start and end to QueryUtil#ALL_POS will return the full result set. If orderByComparator is specified, then the query will include the given ORDER BY logic. If orderByComparator is absent, then the query will include the default ORDER BY logic from CTMessageModelImpl. *

* * @param start the lower bound of the range of ct messages * @param end the upper bound of the range of ct messages (not inclusive) * @param orderByComparator the comparator to order the results by (optionally null) * @return the ordered range of ct messages */ @Override public List findAll( int start, int end, OrderByComparator orderByComparator) { return findAll(start, end, orderByComparator, true); } /** * Returns an ordered range of all the ct messages. * *

* Useful when paginating results. Returns a maximum of end - start instances. start and end are not primary keys, they are indexes in the result set. Thus, 0 refers to the first result in the set. Setting both start and end to QueryUtil#ALL_POS will return the full result set. If orderByComparator is specified, then the query will include the given ORDER BY logic. If orderByComparator is absent, then the query will include the default ORDER BY logic from CTMessageModelImpl. *

* * @param start the lower bound of the range of ct messages * @param end the upper bound of the range of ct messages (not inclusive) * @param orderByComparator the comparator to order the results by (optionally null) * @param useFinderCache whether to use the finder cache * @return the ordered range of ct messages */ @Override public List findAll( int start, int end, OrderByComparator orderByComparator, boolean useFinderCache) { FinderPath finderPath = null; Object[] finderArgs = null; if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) && (orderByComparator == null)) { if (useFinderCache) { finderPath = _finderPathWithoutPaginationFindAll; finderArgs = FINDER_ARGS_EMPTY; } } else if (useFinderCache) { finderPath = _finderPathWithPaginationFindAll; finderArgs = new Object[] {start, end, orderByComparator}; } List list = null; if (useFinderCache) { list = (List)finderCache.getResult( finderPath, finderArgs, this); } if (list == null) { StringBundler sb = null; String sql = null; if (orderByComparator != null) { sb = new StringBundler( 2 + (orderByComparator.getOrderByFields().length * 2)); sb.append(_SQL_SELECT_CTMESSAGE); appendOrderByComparator( sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator); sql = sb.toString(); } else { sql = _SQL_SELECT_CTMESSAGE; sql = sql.concat(CTMessageModelImpl.ORDER_BY_JPQL); } Session session = null; try { session = openSession(); Query query = session.createQuery(sql); list = (List)QueryUtil.list( query, getDialect(), start, end); cacheResult(list); if (useFinderCache) { finderCache.putResult(finderPath, finderArgs, list); } } catch (Exception exception) { throw processException(exception); } finally { closeSession(session); } } return list; } /** * Removes all the ct messages from the database. * */ @Override public void removeAll() { for (CTMessage ctMessage : findAll()) { remove(ctMessage); } } /** * Returns the number of ct messages. * * @return the number of ct messages */ @Override public int countAll() { Long count = (Long)finderCache.getResult( _finderPathCountAll, FINDER_ARGS_EMPTY, this); if (count == null) { Session session = null; try { session = openSession(); Query query = session.createQuery(_SQL_COUNT_CTMESSAGE); count = (Long)query.uniqueResult(); finderCache.putResult( _finderPathCountAll, FINDER_ARGS_EMPTY, count); } catch (Exception exception) { throw processException(exception); } finally { closeSession(session); } } return count.intValue(); } @Override protected EntityCache getEntityCache() { return entityCache; } @Override protected String getPKDBName() { return "ctMessageId"; } @Override protected String getSelectSQL() { return _SQL_SELECT_CTMESSAGE; } @Override protected Map getTableColumnsMap() { return CTMessageModelImpl.TABLE_COLUMNS_MAP; } /** * Initializes the ct message persistence. */ @Activate public void activate(BundleContext bundleContext) { _bundleContext = bundleContext; _argumentsResolverServiceRegistration = _bundleContext.registerService( ArgumentsResolver.class, new CTMessageModelArgumentsResolver(), MapUtil.singletonDictionary( "model.class.name", CTMessage.class.getName())); _valueObjectFinderCacheListThreshold = GetterUtil.getInteger( PropsUtil.get(PropsKeys.VALUE_OBJECT_FINDER_CACHE_LIST_THRESHOLD)); _finderPathWithPaginationFindAll = _createFinderPath( FINDER_CLASS_NAME_LIST_WITH_PAGINATION, "findAll", new String[0], new String[0], true); _finderPathWithoutPaginationFindAll = _createFinderPath( FINDER_CLASS_NAME_LIST_WITHOUT_PAGINATION, "findAll", new String[0], new String[0], true); _finderPathCountAll = _createFinderPath( FINDER_CLASS_NAME_LIST_WITHOUT_PAGINATION, "countAll", new String[0], new String[0], false); _finderPathWithPaginationFindByCTCollectionId = _createFinderPath( FINDER_CLASS_NAME_LIST_WITH_PAGINATION, "findByCTCollectionId", new String[] { Long.class.getName(), Integer.class.getName(), Integer.class.getName(), OrderByComparator.class.getName() }, new String[] {"ctCollectionId"}, true); _finderPathWithoutPaginationFindByCTCollectionId = _createFinderPath( FINDER_CLASS_NAME_LIST_WITHOUT_PAGINATION, "findByCTCollectionId", new String[] {Long.class.getName()}, new String[] {"ctCollectionId"}, true); _finderPathCountByCTCollectionId = _createFinderPath( FINDER_CLASS_NAME_LIST_WITHOUT_PAGINATION, "countByCTCollectionId", new String[] {Long.class.getName()}, new String[] {"ctCollectionId"}, false); _setCTMessageUtilPersistence(this); } @Deactivate public void deactivate() { _setCTMessageUtilPersistence(null); entityCache.removeCache(CTMessageImpl.class.getName()); _argumentsResolverServiceRegistration.unregister(); for (ServiceRegistration serviceRegistration : _serviceRegistrations) { serviceRegistration.unregister(); } } private void _setCTMessageUtilPersistence( CTMessagePersistence ctMessagePersistence) { try { Field field = CTMessageUtil.class.getDeclaredField("_persistence"); field.setAccessible(true); field.set(null, ctMessagePersistence); } catch (ReflectiveOperationException reflectiveOperationException) { throw new RuntimeException(reflectiveOperationException); } } @Override @Reference( target = CTPersistenceConstants.SERVICE_CONFIGURATION_FILTER, unbind = "-" ) public void setConfiguration(Configuration configuration) { } @Override @Reference( target = CTPersistenceConstants.ORIGIN_BUNDLE_SYMBOLIC_NAME_FILTER, unbind = "-" ) public void setDataSource(DataSource dataSource) { super.setDataSource(dataSource); } @Override @Reference( target = CTPersistenceConstants.ORIGIN_BUNDLE_SYMBOLIC_NAME_FILTER, unbind = "-" ) public void setSessionFactory(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory); } private BundleContext _bundleContext; @Reference protected EntityCache entityCache; @Reference protected FinderCache finderCache; private static final String _SQL_SELECT_CTMESSAGE = "SELECT ctMessage FROM CTMessage ctMessage"; private static final String _SQL_SELECT_CTMESSAGE_WHERE = "SELECT ctMessage FROM CTMessage ctMessage WHERE "; private static final String _SQL_COUNT_CTMESSAGE = "SELECT COUNT(ctMessage) FROM CTMessage ctMessage"; private static final String _SQL_COUNT_CTMESSAGE_WHERE = "SELECT COUNT(ctMessage) FROM CTMessage ctMessage WHERE "; private static final String _ORDER_BY_ENTITY_ALIAS = "ctMessage."; private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No CTMessage exists with the primary key "; private static final String _NO_SUCH_ENTITY_WITH_KEY = "No CTMessage exists with the key {"; private static final Log _log = LogFactoryUtil.getLog( CTMessagePersistenceImpl.class); private FinderPath _createFinderPath( String cacheName, String methodName, String[] params, String[] columnNames, boolean baseModelResult) { FinderPath finderPath = new FinderPath( cacheName, methodName, params, columnNames, baseModelResult); if (!cacheName.equals(FINDER_CLASS_NAME_LIST_WITH_PAGINATION)) { _serviceRegistrations.add( _bundleContext.registerService( FinderPath.class, finderPath, MapUtil.singletonDictionary("cache.name", cacheName))); } return finderPath; } private Set> _serviceRegistrations = new HashSet<>(); private ServiceRegistration _argumentsResolverServiceRegistration; private static class CTMessageModelArgumentsResolver implements ArgumentsResolver { @Override public Object[] getArguments( FinderPath finderPath, BaseModel baseModel, boolean checkColumn, boolean original) { String[] columnNames = finderPath.getColumnNames(); if ((columnNames == null) || (columnNames.length == 0)) { if (baseModel.isNew()) { return new Object[0]; } return null; } CTMessageModelImpl ctMessageModelImpl = (CTMessageModelImpl)baseModel; long columnBitmask = ctMessageModelImpl.getColumnBitmask(); if (!checkColumn || (columnBitmask == 0)) { return _getValue(ctMessageModelImpl, columnNames, original); } Long finderPathColumnBitmask = _finderPathColumnBitmasksCache.get( finderPath); if (finderPathColumnBitmask == null) { finderPathColumnBitmask = 0L; for (String columnName : columnNames) { finderPathColumnBitmask |= ctMessageModelImpl.getColumnBitmask(columnName); } _finderPathColumnBitmasksCache.put( finderPath, finderPathColumnBitmask); } if ((columnBitmask & finderPathColumnBitmask) != 0) { return _getValue(ctMessageModelImpl, columnNames, original); } return null; } private static Object[] _getValue( CTMessageModelImpl ctMessageModelImpl, String[] columnNames, boolean original) { Object[] arguments = new Object[columnNames.length]; for (int i = 0; i < arguments.length; i++) { String columnName = columnNames[i]; if (original) { arguments[i] = ctMessageModelImpl.getColumnOriginalValue( columnName); } else { arguments[i] = ctMessageModelImpl.getColumnValue( columnName); } } return arguments; } private static final Map _finderPathColumnBitmasksCache = new ConcurrentHashMap<>(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy