/* 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.crystalball.simulator.impl; import org.activiti.crystalball.simulator.impl.interceptor.CommandContext; import org.activiti.crystalball.simulator.impl.interceptor.CommandExecutor; import org.activiti.crystalball.simulator.impl.persistence.entity.SimulationInstanceEntity; import org.activiti.crystalball.simulator.runtime.SimulationInstanceQuery; import org.activiti.crystalball.simulator.runtime.SuspensionState; import org.activiti.engine.ActivitiException; import org.activiti.engine.impl.EventSubscriptionQueryValue; import org.activiti.engine.impl.Page; import java.io.Serializable; import java.util.List; import java.util.Set; /** * @author Tom Baeyens * @author Joram Barrez * @author Frederik Heremans * @author Falko Menge * @author Daniel Meyer */ public class SimulationInstanceQueryImpl extends AbstractVariableQueryImpl<SimulationInstanceQuery, SimulationInstanceEntity> implements SimulationInstanceQuery, Serializable { private static final long serialVersionUID = 1L; protected String simulationInstanceId; protected String simulationDefinitionId; protected String name; protected Set<String> simulationInstanceIds; protected SuspensionState suspensionState; // Unused, see dynamic query protected String activityId; protected List<EventSubscriptionQueryValue> eventSubscriptions; public SimulationInstanceQueryImpl() { } public SimulationInstanceQueryImpl(CommandContext commandContext) { super(commandContext); } public SimulationInstanceQueryImpl(CommandExecutor commandExecutor) { super(commandExecutor); } public SimulationInstanceQueryImpl simulationInstanceId(String processInstanceId) { if (processInstanceId == null) { throw new ActivitiException("Process instance id is null"); } this.simulationInstanceId = processInstanceId; return this; } public SimulationInstanceQuery simulationInstanceIds(Set<String> simulationInstanceIds) { if (simulationInstanceIds == null) { throw new ActivitiException("Set of process instance ids is null"); } if (simulationInstanceIds.isEmpty()) { throw new ActivitiException("Set of process instance ids is empty"); } this.simulationInstanceIds = simulationInstanceIds; return this; } public SimulationInstanceQuery simulationInstanceName(String name) { if (name == null) { throw new ActivitiException("Business key is null"); } this.name = name; return this; } public SimulationInstanceQuery simulationInstanceBusinessKey(String name, String simulationDefinitionId) { if (name == null) { throw new ActivitiException("Business key is null"); } this.name = name; this.simulationDefinitionId = simulationDefinitionId; return this; } public SimulationInstanceQueryImpl processDefinitionId(String simulationDefinitionId) { if (simulationDefinitionId == null) { throw new ActivitiException("Process definition id is null"); } this.simulationDefinitionId = simulationDefinitionId; return this; } public SimulationInstanceQuery orderBySimulationInstanceId() { this.orderProperty = SimulationInstanceQueryProperty.SIMULATION_INSTANCE_ID; return this; } public SimulationInstanceQuery orderByProcessDefinitionId() { this.orderProperty = SimulationInstanceQueryProperty.SIMULATION_DEFINITION_ID; return this; } public SimulationInstanceQuery active() { this.suspensionState = SuspensionState.ACTIVE; return this; } public SimulationInstanceQuery suspended() { this.suspensionState = SuspensionState.SUSPENDED; return this; } public SimulationInstanceQuery ended() { this.suspensionState = SuspensionState.FINISHED; return this; } //results ///////////////////////////////////////////////////////////////// public long executeCount(CommandContext commandContext) { checkQueryOk(); ensureVariablesInitialized(); return commandContext .getSimulationInstanceManager() .findSimulationInstanceCountByQueryCriteria(this); } public List<SimulationInstanceEntity> executeList(CommandContext commandContext, Page page) { checkQueryOk(); ensureVariablesInitialized(); return commandContext .getSimulationInstanceManager() .findSimulationInstancesByQueryCriteria(this, page); } //getters ///////////////////////////////////////////////////////////////// public boolean getOnlyProcessInstances() { return true; // See dynamic query in runtime.mapping.xml } public String getProcessInstanceId() { return simulationInstanceId; } public Set<String> getProcessInstanceIds() { return simulationInstanceIds; } public String getProcessDefinitionId() { return simulationDefinitionId; } public String getActivityId() { return null; // Unused, see dynamic query } public SuspensionState getSuspensionState() { return suspensionState; } public void setSuspensionState(SuspensionState suspensionState) { this.suspensionState = suspensionState; } public List<EventSubscriptionQueryValue> getEventSubscriptions() { return eventSubscriptions; } public void setEventSubscriptions(List<EventSubscriptionQueryValue> eventSubscriptions) { this.eventSubscriptions = eventSubscriptions; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public SimulationInstanceQuery simulationInstanceName( String simulationNameInstanceBusinessKey, String simulationDefinitionKey) { // TODO Auto-generated method stub return null; } @Override public SimulationInstanceQuery simulationConfigurationId( String simulationConfigurationId) { // TODO Auto-generated method stub return null; } @Override public SimulationInstanceQuery orderBySimulationConfigurationId() { // TODO Auto-generated method stub return null; } }