org.activiti.engine.impl.persistence.entity.EventSubscriptionEntityManager Maven / Gradle / Ivy
The newest version!
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.activiti.engine.impl.persistence.entity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.impl.EventSubscriptionQueryImpl;
import org.activiti.engine.impl.Page;
import org.activiti.engine.impl.persistence.AbstractManager;
/**
* @author Daniel Meyer
* @author Joram Barrez
*/
public class EventSubscriptionEntityManager extends AbstractManager {
/** keep track of subscriptions created in the current command */
protected List createdSignalSubscriptions = new ArrayList();
public void insert(EventSubscriptionEntity persistentObject) {
super.insert(persistentObject);
if(persistentObject instanceof SignalEventSubscriptionEntity) {
createdSignalSubscriptions.add((SignalEventSubscriptionEntity)persistentObject);
}
}
public void deleteEventSubscription(EventSubscriptionEntity persistentObject) {
getDbSqlSession().delete(persistentObject);
if(persistentObject instanceof SignalEventSubscriptionEntity) {
createdSignalSubscriptions.remove(persistentObject);
}
}
public void deleteEventSubscriptionsForProcessDefinition(String processDefinitionId) {
getDbSqlSession().delete("deleteEventSubscriptionsForProcessDefinition", processDefinitionId);
}
public EventSubscriptionEntity findEventSubscriptionbyId(String id) {
return (EventSubscriptionEntity) getDbSqlSession().selectOne("selectEventSubscription", id);
}
public long findEventSubscriptionCountByQueryCriteria(EventSubscriptionQueryImpl eventSubscriptionQueryImpl) {
final String query = "selectEventSubscriptionCountByQueryCriteria";
return (Long) getDbSqlSession().selectOne(query, eventSubscriptionQueryImpl);
}
@SuppressWarnings("unchecked")
public List findEventSubscriptionsByQueryCriteria(EventSubscriptionQueryImpl eventSubscriptionQueryImpl, Page page) {
final String query = "selectEventSubscriptionByQueryCriteria";
return getDbSqlSession().selectList(query, eventSubscriptionQueryImpl, page);
}
@SuppressWarnings("unchecked")
public List findSignalEventSubscriptionsByEventName(String eventName, String tenantId) {
final String query = "selectSignalEventSubscriptionsByEventName";
Set selectList = null;
Map params = new HashMap();
params.put("eventName", eventName);
if (tenantId != null && !tenantId.equals(ProcessEngineConfiguration.NO_TENANT_ID)) {
params.put("tenantId", tenantId);
selectList = new HashSet(getDbSqlSession().selectList(query, params));
} else {
selectList = new HashSet(getDbSqlSession().selectList(query, params));
}
// add events created in this command (not visible yet in query)
for (SignalEventSubscriptionEntity entity : createdSignalSubscriptions) {
if(eventName.equals(entity.getEventName())) {
selectList.add(entity);
}
}
return new ArrayList(selectList);
}
@SuppressWarnings("unchecked")
public List findSignalEventSubscriptionsByProcessInstanceAndEventName(String processInstanceId, String eventName) {
final String query = "selectSignalEventSubscriptionsByProcessInstanceAndEventName";
Map params = new HashMap();
params.put("processInstanceId", processInstanceId);
params.put("eventName", eventName);
Set selectList = new HashSet( getDbSqlSession().selectList(query, params));
// add events created in this command (not visible yet in query)
for (SignalEventSubscriptionEntity entity : createdSignalSubscriptions) {
if(processInstanceId.equals(entity.getProcessInstanceId()) && eventName.equals(entity.getEventName())) {
selectList.add(entity);
}
}
return new ArrayList(selectList);
}
@SuppressWarnings("unchecked")
public List findSignalEventSubscriptionsByExecution(String executionId) {
final String query = "selectSignalEventSubscriptionsByExecution";
Set selectList = new HashSet( getDbSqlSession().selectList(query, executionId));
// add events created in this command (not visible yet in query)
for (SignalEventSubscriptionEntity entity : createdSignalSubscriptions) {
if(executionId.equals(entity.getExecutionId())) {
selectList.add((SignalEventSubscriptionEntity) entity);
}
}
return new ArrayList(selectList);
}
@SuppressWarnings("unchecked")
public List findSignalEventSubscriptionsByNameAndExecution(String name, String executionId) {
final String query = "selectSignalEventSubscriptionsByNameAndExecution";
Map params = new HashMap();
params.put("executionId", executionId);
params.put("eventName", name);
Set selectList = new HashSet( getDbSqlSession().selectList(query, params));
// add events created in this command (not visible yet in query)
for (SignalEventSubscriptionEntity entity : createdSignalSubscriptions) {
if(executionId.equals(entity.getExecutionId())
&& name.equals(entity.getEventName())) {
selectList.add((SignalEventSubscriptionEntity) entity);
}
}
return new ArrayList(selectList);
}
public List findEventSubscriptionsByExecutionAndType(String executionId, String type) {
final String query = "selectEventSubscriptionsByExecutionAndType";
Map params = new HashMap();
params.put("executionId", executionId);
params.put("eventType", type);
return getDbSqlSession().selectList(query, params);
}
public List findEventSubscriptionsByExecution(String executionId) {
final String query = "selectEventSubscriptionsByExecution";
return getDbSqlSession().selectList(query, executionId);
}
public List findEventSubscriptions(String executionId, String type, String activityId) {
final String query = "selectEventSubscriptionsByExecutionTypeAndActivity";
Map params = new HashMap();
params.put("executionId", executionId);
params.put("eventType", type);
params.put("activityId", activityId);
return getDbSqlSession().selectList(query, params);
}
public List findEventSubscriptionsByConfiguration(String type, String configuration, String tenantId) {
final String query = "selectEventSubscriptionsByConfiguration";
Map params = new HashMap();
params.put("eventType", type);
params.put("configuration", configuration);
if (tenantId != null && !tenantId.equals(ProcessEngineConfiguration.NO_TENANT_ID)) {
params.put("tenantId", tenantId);
}
return getDbSqlSession().selectList(query, params);
}
public List findEventSubscriptionsByName(String type, String eventName, String tenantId) {
final String query = "selectEventSubscriptionsByName";
Map params = new HashMap();
params.put("eventType", type);
params.put("eventName", eventName);
if (tenantId != null && !tenantId.equals(ProcessEngineConfiguration.NO_TENANT_ID)) {
params.put("tenantId", tenantId);
}
return getDbSqlSession().selectList(query, params);
}
public List findEventSubscriptionsByNameAndExecution(String type, String eventName, String executionId) {
final String query = "selectEventSubscriptionsByNameAndExecution";
Map params = new HashMap();
params.put("eventType", type);
params.put("eventName", eventName);
params.put("executionId", executionId);
return getDbSqlSession().selectList(query, params);
}
public MessageEventSubscriptionEntity findMessageStartEventSubscriptionByName(String messageName, String tenantId) {
Map params = new HashMap();
params.put("eventName", messageName);
if (tenantId != null && !tenantId.equals(ProcessEngineConfiguration.NO_TENANT_ID)) {
params.put("tenantId", tenantId);
}
MessageEventSubscriptionEntity entity = (MessageEventSubscriptionEntity) getDbSqlSession().selectOne("selectMessageStartEventSubscriptionByName", params);
return entity;
}
public void updateEventSubscriptionTenantId(String oldTenantId, String newTenantId) {
Map params = new HashMap();
params.put("oldTenantId", oldTenantId);
params.put("newTenantId", newTenantId);
getDbSqlSession().update("updateTenantIdOfEventSubscriptions", params);
}
}