class TimeoutCondition extends WhenCondition {

    @Override
    public void executeCondition(Integer slotIndex) throws Exception {
        try {
            super.executeCondition(slotIndex);
        } catch (WhenTimeoutException ex) {
            // 将 WhenTimeoutException 转换为 TimeoutException
            String errMsg = StrFormatter.format("Timed out when executing the chain [{}] because [{}] exceeded {} {}.",
                    this.getCurrChainId(), this.getCurrentExecutableId(), this.getMaxWaitTime(), this.getMaxWaitTimeUnit().toString().toLowerCase());
            throw new TimeoutException(errMsg);
        }
    }

    /**
     * 获取当前组件的 id
     *
     * @return
     */
    private String getCurrentExecutableId() {<FILL_FUNCTION_BODY>}
}

        // TimeoutCondition 只有一个 Executable
        Executable executable = this.getExecutableList().get(0);
        if (ObjectUtil.isNotNull(executable.getId())) {
            // 已经有 id 了
            return executable.getId();
        }
        // 定义 id
        switch (executable.getExecuteType()) {
            // chain 和 node 一般都有 id
            case CHAIN:
                return ((Chain) executable).getChainId();
            case CONDITION:
                return "condition-" + ((Condition) executable).getConditionType().getName();
            case NODE:
                return "node-" + ((Node) executable).getType().getCode();
            default:
                return "unknown-executable";
        }
    
<methods>public non-sealed void <init>() ,public void executeCondition(java.lang.Integer) throws java.lang.Exception,public com.yomahub.liteflow.enums.ConditionTypeEnum getConditionType() ,public java.lang.String getGroup() ,public java.lang.Integer getMaxWaitTime() ,public java.util.concurrent.TimeUnit getMaxWaitTimeUnit() ,public com.yomahub.liteflow.enums.ParallelStrategyEnum getParallelStrategy() ,public Set<java.lang.String> getSpecifyIdSet() ,public java.lang.String getThreadExecutorClass() ,public boolean isIgnoreError() ,public void setGroup(java.lang.String) ,public void setIgnoreError(boolean) ,public void setMaxWaitTime(java.lang.Integer) ,public void setMaxWaitTimeUnit(java.util.concurrent.TimeUnit) ,public void setParallelStrategy(com.yomahub.liteflow.enums.ParallelStrategyEnum) ,public void setSpecifyIdSet(Set<java.lang.String>) ,public void setThreadExecutorClass(java.lang.String) <variables>private final com.yomahub.liteflow.log.LFLog LOG,private java.lang.String group,private boolean ignoreError,private java.lang.Integer maxWaitTime,private java.util.concurrent.TimeUnit maxWaitTimeUnit,private com.yomahub.liteflow.enums.ParallelStrategyEnum parallelStrategy,private Set<java.lang.String> specifyIdSet,private java.lang.String threadExecutorClass