protected MultistepExprHolder createMultistepExprList(Vector paths){
  MultistepExprHolder first=null;
  int n=paths.size();
  for (int i=0; i < n; i++) {
    ExpressionOwner eo=(ExpressionOwner)paths.elementAt(i);
    if (null == eo)     continue;
    LocPathIterator lpi=(LocPathIterator)eo.getExpression();
    int numPaths=countSteps(lpi);
    if (numPaths > 1) {
      if (null == first)       first=new MultistepExprHolder(eo,numPaths,null);
 else       first=first.addInSortedOrder(eo,numPaths);
    }
  }
  if ((null == first) || (first.getLength() <= 1))   return null;
 else   return first;
}

protected MultistepExprHolder createMultistepExprList ( Vector paths ) { MultistepExprHolder first = null ; int n = paths . size ( ) ; for ( int i = 0 ; i < n ; i ++ ) { ExpressionOwner eo = ( ExpressionOwner ) paths . elementAt ( i ) ; if ( null == eo ) continue ; LocPathIterator lpi = ( LocPathIterator ) eo . getExpression ( ) ; int numPaths = countSteps ( lpi ) ; if ( numPaths > 1 ) { if ( null == first ) first = new MultistepExprHolder ( eo , numPaths , null ) ; else first = first . addInSortedOrder ( eo , numPaths ) ; } } if ( ( null == first ) || ( first . getLength ( ) <= 1 ) ) return null ; else return first ; }
for the reduction of location path parts , create a list of all the multistep paths with more than one step , sorted by the number of steps , with the most steps occuring earlier in the list . if the list is only one member , don ' t bother returning it .
