/*
* 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.jbpm.services.task.commands;
import org.kie.api.runtime.Context;
import org.kie.internal.task.api.TaskInstanceService;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSchemaType;
@XmlRootElement(name="get-task-property-command")
@XmlAccessorType(XmlAccessType.NONE)
public class GetTaskPropertyCommand extends UserGroupCallbackTaskCommand<Object> {
private static final long serialVersionUID = -836520791223188840L;
@XmlElement
@XmlSchemaType(name="integer")
private Integer property;
public GetTaskPropertyCommand() {
}
public GetTaskPropertyCommand(long taskId, String userId, Integer property) {
this.taskId = taskId;
this.userId = userId;
this.property = property;
}
public Integer getProperty() {
return property;
}
public void setProperty(Integer name) {
this.property = name;
}
public Object execute(Context cntxt) {
TaskContext context = (TaskContext) cntxt;
TaskInstanceService service = context.getTaskInstanceService();
Object result = null;
switch (property) {
case SetTaskPropertyCommand.PRIORITY_PROPERTY:
result = service.getPriority(taskId);
break;
case SetTaskPropertyCommand.EXPIRATION_DATE_PROPERTY:
result = service.getExpirationDate(taskId);
break;
case SetTaskPropertyCommand.DESCRIPTION_PROPERTY:
result = service.getDescriptions(taskId);
break;
case SetTaskPropertyCommand.SKIPPABLE_PROPERTY:
result = service.isSkipable(taskId);
break;
case SetTaskPropertyCommand.SUB_TASK_STRATEGY_PROPERTY:
result = service.getSubTaskStrategy(taskId);
break;
default:
break;
}
return result;
}
}