package ru.hflabs.rcd.model.task;
import lombok.Getter;
import lombok.Setter;
import ru.hflabs.rcd.model.Permissioned;
import ru.hflabs.rcd.model.definition.ModelDefinition;
import javax.xml.bind.annotation.XmlTransient;
import java.util.Map;
import static ru.hflabs.rcd.model.ModelUtils.hasPermission;
/**
* Класс <class>TaskDefinition</class> описывает модель задачи
*
* @see ModelDefinition
* @see Permissioned
*/
@Getter
@Setter
public class TaskDefinition extends ModelDefinition implements Permissioned {
private static final long serialVersionUID = -8824129565701458933L;
/** Права безопасности задачи */
private int permissions;
/** Класс параметров */
private transient Class<? extends Map<String, Object>> parametersClass;
public TaskDefinition() {
this.permissions = Permissioned.PERMISSION_ALL;
}
@Override
public void injectId(String targetId) {
setId(targetId);
}
@XmlTransient
public Class<? extends Map<String, Object>> getParametersClass() {
return parametersClass;
}
public boolean isDeletable() {
return hasPermission(this, Permissioned.PERMISSION_WRITE);
}
}