上下文特定谓词
如果自定义状态转变谓词仅适用于特定上下文,例如,仅适用于特定类型的跟踪器/项,则实现类应声明附加的谓词/方法,且使用 @PredicateApplicable进行注释。例如:
package com.intland.codebeamer.example.predicates;
import com.intland.codebeamer.manager.workflow.TransitionPredicate;
import com.intland.codebeamer.manager.workflow.PredicateApplicable;
import com.intland.codebeamer.persistence.dto.TrackerDto;
import com.intland.codebeamer.persistence.dto.TrackerTypeDto;
@TransitionPredicate("customPredicate")
public classCustomPredicate {
@PredicateApplicable
public boolean isApplicable(TrackerDto tracker) {
return tracker.isA(TackerTypeDto.REQUIREMENT, TrackerTypeDto.USERSTORY);
}
}
使用 @PredicateApplicable 注释的方法必须是
• 公共的
• 如果谓词在指定上下文中适用,则返回布尔值 true,否则返回 false。
方法必须声明所有必需上下文信息的参数,才能做出决策。
以下上下文信息可供使用:
• ProjectDto 为项目,可在其中配置状态转变
• TrackerDto 为跟踪器,可在其中配置状态转变
• TrackerTypeDto 为跟踪器类型,可在其中配置状态转变
• TrackerTypeDto.Kind 为跟踪器种类,可在其中配置状态转变
◦ 工作项的跟踪器。
◦ 配置项的类别。
◦ 源代码提交或推送的存储库。