/**
* Wrapper of AutomationCompositionElementListener.
* Valid since Montreal release.
*/
public abstract class AcElementListenerMontreal implements AutomationCompositionElementListener {
private final ParticipantIntermediaryApi intermediaryApi;
protected AcElementListenerVer7 AcElementListenerMontreal(ParticipantIntermediaryApi intermediaryApi) {
this.intermediaryApi = intermediaryApi;
}
@Override
public void deploy(CompositionElementDto compositionElement, InstanceElementDto instanceElement)
throws PfModelException {
var element = new AcElementDeploy();
element.setId(instanceElement.elementId());
element.setDefinition(compositionElement.elementDefinitionId());
element.setOrderedState(instanceElement.orderedState());
element.setProperties(instanceElement.inProperties());
Map<String, Object> properties = new HashMap<>(instanceElement.inProperties());
properties.putAll(compositionElement.inProperties());
deploy(instanceElement.instanceId(), element, properties);
}
public abstract void deploy(UUID instanceId, AcElementDeploy element, Map<String, Object> properties)
throws PfModelException;
@Override
public void undeploy(CompositionElementDto compositionElement, InstanceElementDto instanceElement)
throws PfModelException {
undeploy(instanceElement.instanceId(), instanceElement.elementId());
}
public abstract void undeploy(UUID instanceId, UUID elementId) throws PfModelException;
@Override
public void lock(CompositionElementDto compositionElement, InstanceElementDto instanceElement)
throws PfModelException {
lock(instanceElement.instanceId(), instanceElement.elementId());
}
public abstract void lock(UUID instanceId, UUID elementId) throws PfModelException;
@Override
public void unlock(CompositionElementDto compositionElement, InstanceElementDto instanceElement)
throws PfModelException {
unlock(instanceElement.instanceId(), instanceElement.elementId());
}
public abstract void unlock(UUID instanceId, UUID elementId) throws PfModelException;
@Override
public void delete(CompositionElementDto compositionElement, InstanceElementDto instanceElement)
throws PfModelException {
delete(instanceElement.instanceId(), instanceElement.elementId());
}
public abstract void delete(UUID instanceId, UUID elementId) throws PfModelException;
@Override
public void update(CompositionElementDto compositionElement, InstanceElementDto instanceElement,
InstanceElementDto instanceElementUpdated) throws PfModelException {
var element = new AcElementDeploy();
element.setId(instanceElementUpdated.elementId());
element.setDefinition(compositionElement.elementDefinitionId());
element.setOrderedState(instanceElement.orderedState());
element.setProperties(instanceElementUpdated.inProperties());
update(instanceElementUpdated.instanceId(), element, element.getProperties());
}
public abstract void update(UUID instanceId, AcElementDeploy element, Map<String, Object> properties)
throws PfModelException;
@Override
public void prime(CompositionDto composition) throws PfModelException {
prime(composition.compositionId(), composition.elementDefinitionList());
}
public abstract void prime(UUID compositionId, List<AutomationCompositionElementDefinition> elementDefinitionList)
throws PfModelException;
@Override
public void deprime(CompositionDto composition) throws PfModelException {
deprime(composition.compositionId());
}
public abstract void deprime(UUID compositionId) throws PfModelException;
@Override
public void handleRestartComposition(CompositionDto composition, AcTypeState state) throws PfModelException {
handleRestartComposition(composition.compositionId(), composition.elementDefinitionList(), state);
}
public abstract void handleRestartComposition(UUID compositionId,
List<AutomationCompositionElementDefinition> elementDefinitionList,
AcTypeState state) throws PfModelException;
@Override
public void handleRestartInstance(CompositionElementDto compositionElement, InstanceElementDto instanceElement,
DeployState deployState, LockState lockState) throws PfModelException {
var element = new AcElementDeploy();
element.setId(instanceElement.elementId());
element.setDefinition(compositionElement.elementDefinitionId());
element.setOrderedState(instanceElement.orderedState());
element.setProperties(instanceElement.inProperties());
Map<String, Object> properties = new HashMap<>(instanceElement.inProperties());
properties.putAll(compositionElement.inProperties());
handleRestartInstance(instanceElement.instanceId(), element, properties, deployState, lockState);
}
public abstract void handleRestartInstance(UUID instanceId, AcElementDeploy element,
Map<String, Object> properties, DeployState deployState, LockState lockState) throws PfModelException;
@Override
public void migrate(CompositionElementDto compositionElement, CompositionElementDto compositionElementTarget,
InstanceElementDto instanceElement, InstanceElementDto instanceElementMigrate) throws PfModelException {
var element = new AcElementDeploy();
element.setId(instanceElement.elementId());
element.setDefinition(compositionElement.elementDefinitionId());
element.setOrderedState(instanceElement.orderedState());
element.setProperties(instanceElement.inProperties());
migrate(instanceElementMigrate.instanceId(), element, compositionElementTarget.compositionId(),
element.getProperties());
}
public abstract void migrate(UUID instanceId, AcElementDeploy element, UUID compositionTargetId,
Map<String, Object> properties) throws PfModelException;
@Override
public void migratePrecheck(CompositionElementDto compositionElement,
CompositionElementDto compositionElementTarget, InstanceElementDto instanceElement,
InstanceElementDto instanceElementMigrate) throws PfModelException {
intermediaryApi.updateAutomationCompositionElementState(instanceElementMigrate.instanceId(),
instanceElementMigrate.elementId(), DeployState.DEPLOYED, null, StateChangeResult.NO_ERROR,
"Migrate precheck not supported");
}
}
|