JBPM的Token路径问题

JBPM的Token路径问题

ProcessInstance里面有一个findToken(String tokenPath)方法。这里面写的是tokenPath。 tokenPath跟文件系统的规则差不多。类似 /fork1/fork2 这样的。

那么,怎么到fork2下的一个分支token ?

token自己也有findToken这个方法,不同的是ProcessInstance的是以rootToken为起点,token自己的是以自己为起点。那么取到token2下面的分支

token2.findToken("token")
如果有返回token,没有返回null


至于token的名字,我刚才查源码才发现,只有在Fork节点才会给token赋予名字。。。

那么token2.findToken("token") 这里"token"那里来

命名的规则,如下。。 

    String tokenName  =   null ;
    
if  ( transitionName  !=   null  )  {
      
if ( ! parent.hasChild( transitionName ) ) {
        tokenName 
= transitionName;
      }
 else {
        
int i = 2;
        tokenName 
= transitionName + Integer.toString( i );
        
while ( parent.hasChild( tokenName ) ) {
          i
++;
          tokenName 
= transitionName + Integer.toString( i );
        }

      }

    }
  else   // no transition name
      int size = ( parent.getChildren()!=null ? parent.getChildren().size()+1 : 1 );
      tokenName 
= Integer.toString(size);
    }

    
return  tokenName; 



这里"token"那里来?这个token名字,你自己可以根据命名规则得到 。看到这里应该很明了了

token的命名规则;首先根据transitionName的名字命名,这个transitionName的名字是你自己的写的你不可能不知道。 如果transitionName的名字重名了,加自然数区分 当然,如果transitionName没有名字,用分支的个数+1作为名字。

应该比较清楚了。

PS:这个是qq聊天记录的整理版,所以说话比较诡异。为的是记录下来避免忘记,也感谢群里的朋友。发现互相解决问题是提高水平的一个捷径。。

你可能感兴趣的:(JBPM的Token路径问题)