/*
* Copyright 2015 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* 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.kie.server.api.model.definition;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "user-task-definition")
public class UserTaskDefinition {
@XmlElement(name="task-name")
private String name;
@XmlElement(name="task-priority")
private Integer priority;
@XmlElement(name="task-comment")
private String comment;
@XmlElement(name="task-created-by")
private String createdBy;
@XmlElement(name="task-skippable")
private boolean skippable;
@XmlElementWrapper(name="associated-entities")
private String[] associatedEntities;
@XmlElementWrapper(name="task-inputs")
private Map<String, String> taskInputMappings;
@XmlElementWrapper(name="task-outputs")
private Map<String, String> taskOutputMappings;
public static Builder builder() {
return new Builder();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public boolean isSkippable() {
return skippable;
}
public void setSkippable(boolean skippable) {
this.skippable = skippable;
}
public String[] getAssociatedEntities() {
return associatedEntities;
}
public void setAssociatedEntities(String[] associatedEntities) {
this.associatedEntities = associatedEntities;
}
public Map<String, String> getTaskInputMappings() {
return taskInputMappings;
}
public void setTaskInputMappings(Map<String, String> taskInputMappings) {
this.taskInputMappings = taskInputMappings;
}
public Map<String, String> getTaskOutputMappings() {
return taskOutputMappings;
}
public void setTaskOutputMappings(Map<String, String> taskOutputMappings) {
this.taskOutputMappings = taskOutputMappings;
}
@Override
public String toString() {
return "UserTaskDefinition{" +
"name='" + name + '\'' +
", priority=" + priority +
", skippable=" + skippable +
", createdBy='" + createdBy + '\'' +
", comment='" + comment + '\'' +
'}';
}
public static class Builder {
private UserTaskDefinition definition = new UserTaskDefinition();
public UserTaskDefinition build() {
return definition;
}
public Builder name(String name) {
definition.setName(name);
return this;
}
public Builder priority(int priority) {
definition.setPriority(priority);
return this;
}
public Builder comment(String comment) {
definition.setComment(comment);
return this;
}
public Builder createdBy(String createdBy) {
definition.setCreatedBy(createdBy);
return this;
}
public Builder skippable(boolean skippable) {
definition.setSkippable(skippable);
return this;
}
public Builder taskInputs(Map<String, String> taskInputs) {
definition.setTaskInputMappings(taskInputs);
return this;
}
public Builder taskOutputs(Map<String, String> taskOutputs) {
definition.setTaskOutputMappings(taskOutputs);
return this;
}
public Builder entities(String[] entities) {
definition.setAssociatedEntities(entities);
return this;
}
}
}