/**
* Copyright (C) 2015 Orange
* 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 com.francetelecom.clara.cloud.paas.activation.v1;
import java.io.Serializable;
import com.francetelecom.clara.cloud.commons.TechnicalException;
import com.francetelecom.clara.cloud.model.ModelItem;
import com.francetelecom.clara.cloud.paas.activation.ActivationStepEnum;
/**
* Represent a task to execute in activation (created from activiti ServiceTask)
*/
public class ActivationTask implements Serializable {
private static final long serialVersionUID = -5480362458387499317L;
private ActivationStepEnum activationStep;
private String processInstanceId;
private String activitiTaskId;
private int tdiId;
private int entityId;
private Class<? extends ModelItem> entityClass;
private String errMessage;
private int taskIndex;
private int taskCount;
@SuppressWarnings("unused")
private ActivationTask() {
super();
}
public ActivationTask(String processInstanceId, String activationStep, String activitiTaskId, int tdiId, int entityId, String entityClassName) {
this(processInstanceId, activationStep, activitiTaskId, tdiId, entityId, entityClassName, null);
}
public ActivationTask(String processInstanceId, String activationStep, String activitiTaskId, int tdiId, int entityId, String entityClassName, String errMessage) {
this(processInstanceId, activationStep, activitiTaskId, tdiId, entityId, entityClassName, errMessage, -1, -1);
}
public ActivationTask(String processInstanceId, String activationStep, String activitiTaskId, int tdiId, int entityId, String entityClassName, String errMessage, int taskIndex, int taskCount) {
super();
this.errMessage = errMessage;
this.activitiTaskId = activitiTaskId;
this.tdiId = tdiId;
this.entityId = entityId;
this.taskIndex = taskIndex;
this.taskCount = taskCount;
this.processInstanceId = processInstanceId;
try {
this.entityClass = (Class<? extends ModelItem>) Class.forName(entityClassName);
if (!(ModelItem.class.isAssignableFrom(this.entityClass))) {
throw new TechnicalException("Class is not a ModelItem: "+entityClassName);
}
} catch (ClassNotFoundException e) {
throw new TechnicalException("Class not found for entity: "+entityClassName);
}
if (ActivationStepEnum.INIT.getName().equals(activationStep)) {
this.activationStep = ActivationStepEnum.INIT;
}
else if (ActivationStepEnum.ACTIVATE.getName().equals(activationStep)) {
this.activationStep = ActivationStepEnum.ACTIVATE;
}
else if (ActivationStepEnum.FIRSTSTART.getName().equals(activationStep)) {
this.activationStep = ActivationStepEnum.FIRSTSTART;
}
else if (ActivationStepEnum.START.getName().equals(activationStep)) {
this.activationStep = ActivationStepEnum.START;
}
else if (ActivationStepEnum.STOP.getName().equals(activationStep)) {
this.activationStep = ActivationStepEnum.STOP;
}
else if (ActivationStepEnum.DELETE.getName().equals(activationStep)) {
this.activationStep = ActivationStepEnum.DELETE;
}
else {
throw new TechnicalException("activationStep '"+activationStep+"' unknown");
}
}
public ActivationStepEnum getActivationStep() {
return activationStep;
}
public String getActivitiTaskId() {
return activitiTaskId;
}
public int getTdiId() {
return tdiId;
}
public int getEntityId() {
return entityId;
}
public Class<? extends ModelItem> getEntityClass() {
return entityClass;
}
public String getErrMessage() {
return errMessage;
}
public void setErrMessage(String errMessage) {
this.errMessage = errMessage;
}
public int getTaskIndex() {
return taskIndex;
}
public void setTaskIndex(int taskIndex) {
this.taskIndex = taskIndex;
}
public int getTaskCount() {
return taskCount;
}
public void setTaskCount(int taskCount) {
this.taskCount = taskCount;
}
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
}