package org.orienteer.bpm.camunda.handler.history;
import com.orientechnologies.orient.core.metadata.schema.OType;
import org.camunda.bpm.engine.history.HistoricDecisionInstanceQuery;
import org.camunda.bpm.engine.impl.db.ListQueryParameterObject;
import org.camunda.bpm.engine.impl.history.event.HistoricDecisionInstanceEntity;
import org.orienteer.bpm.camunda.OPersistenceSession;
import org.orienteer.bpm.camunda.handler.DecisionDefinitionEntityHandler;
import org.orienteer.bpm.camunda.handler.IEntityHandler;
import org.orienteer.bpm.camunda.handler.Statement;
import org.orienteer.core.OClassDomain;
import org.orienteer.core.util.OSchemaHelper;
import java.util.List;
/**
* {@link IEntityHandler} for {@link HistoricDecisionInstanceEntity}
*/
public class HistoricDecisionInstanceEntityHandler extends HistoricEventHandler<HistoricDecisionInstanceEntity> {
public static final String OCLASS_NAME = "BPMHistoricDecisionInstance";
public HistoricDecisionInstanceEntityHandler() {
super(OCLASS_NAME);
}
@Override
public void applySchema(OSchemaHelper helper) {
super.applySchema(helper);
helper.oClass(OCLASS_NAME, HistoricEventHandler.OCLASS_NAME).domain(OClassDomain.SYSTEM)
.oProperty("decisionDefinition", OType.LINK, 10)
.oProperty("decisionDefinitionKey", OType.STRING, 20)
.oProperty("decisionDefinitionName", OType.STRING, 30)
.oProperty("activityInstanceId", OType.STRING, 100)
.oProperty("activityId", OType.STRING, 110)
.oProperty("evaluationTime", OType.DATETIME, 120)
.oProperty("collectResultValue", OType.DOUBLE, 130)
.oProperty("userId", OType.STRING, 140);
}
@Override
public void applyRelationships(OSchemaHelper helper) {
super.applyRelationships(helper);
helper.setupRelationship(OCLASS_NAME, "decisionDefinition", DecisionDefinitionEntityHandler.OCLASS_NAME, "historyDecisionInstances");
}
@Statement
public List<HistoricDecisionInstanceEntity> selectHistoricDecisionInstancesByDecisionDefinitionId(
OPersistenceSession session, ListQueryParameterObject parameter) {
return queryList(session, "select from " + getSchemaClass() + " where decisionDefinition.id=?", parameter.getParameter());
}
@Statement
public List<HistoricDecisionInstanceEntity> selectHistoricDecisionInstancesByQueryCriteria(
OPersistenceSession session, HistoricDecisionInstanceQuery query) {
return query(session, query);
}
}