/**
* Copyright 2007-2010 非也
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation。
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see http://www.gnu.org/licenses. *
*/
package org.fireflow.pvm.kernel;
import org.fireflow.engine.entity.WorkflowEntity;
/**
*
* @author 非也
* @version 2.0
*/
public interface Token extends WorkflowEntity{
///////////////////////////////////////////////////////////
///////////////// 下面是token的 图属性 ////////////
//////////////////////////////////////////////////////////
public void setId(String id);
/**
* 设置token的值,该值表示token的数量,在petri 网中表示资源的数量。
* @param value
*/
public void setValue(Integer value);
public Integer getValue();
/**
* 指示业务逻辑是否可以被启动。
* 等价于fpdl1.0的alive属性
* @param b
*/
public void setBusinessPermitted(Boolean b);
public Boolean isBusinessPermitted();
///////////////////////////////////////////////////////////
///////////////// 下面是token的业务属性 ////////////
//////////////////////////////////////////////////////////
/**
* token状态
*/
public TokenState getState();
public void setState(TokenState state);
/**
* 步数
* @param stepNumber
*/
public void setStepNumber(Integer stepNumber);
public Integer getStepNumber();
/**
* 流程元素的Id;流程元素可能是结点,也可能是边。
* @param workflowElementId
*/
public void setElementId(String workflowElementId);
public String getElementId();
/**
* 流程Id
* @param processId
*/
public void setProcessId(String processId);
public String getProcessId();
/**
* 流程版本
* @param version
*/
public void setVersion(Integer version);
public Integer getVersion();
/**
* 流程类别,BPEL,FPDL,BPMN等等
* @return
*/
public String getProcessType();
public void setProcessType(String processType);
/**
* 流程实例的Id
* @param procInstId
*/
public void setProcessInstanceId(String procInstId);
public String getProcessInstanceId();
/**
* 节点实例Id
* @param elementInstanceId
*/
public void setElementInstanceId(String elementInstanceId);
public String getElementInstanceId();
/**
* 父tokenId
* @return
*/
public String getParentTokenId();
public void setParentTokenId(String pid);
/**
* 取值为NORMAL,FAULT,CANCELLATION,COMPENSATION
*/
public OperationContextName getOperationContextName();
public void setOperationContextName(OperationContextName opCtxName);
/**
* 回调token的键值
* @return
*/
public String getCallbackTokenId();
public void setCallbackTokenId(String id);
public String getFromToken();
public void setFromToken(String tokenId);
public String getAttachedToToken();
public void setAttachedToToken(String tokenId);
/**
* 下一个补偿节点对应的Token
* @return
*/
public String getNextCompensationToken();
public void setNextCompensationToken(String tokenId);
/**
*
* @return
*/
public String getCompensationCode();
public void setCompensationCode(String compensationCode);
/**
* 对应的PObject是否为容器,NetInstance显然是容器,
* NodeInstance由其承载的Service决定,只有承载子流程类型的Service时才是容器
* @return
*/
public Boolean isContainer();
public void setContainer(Boolean b);
}