private AbstractNode createHigherLevels(List boundablesOfALevel,int level){
  Assert.isTrue(!boundablesOfALevel.isEmpty());
  List parentBoundables=createParentBoundables(boundablesOfALevel,level + 1);
  if (parentBoundables.size() == 1) {
    return (AbstractNode)parentBoundables.get(0);
  }
  return createHigherLevels(parentBoundables,level + 1);
}

private AbstractNode createHigherLevels ( List boundablesOfALevel , int level ) { Assert . isTrue ( ! boundablesOfALevel . isEmpty ( ) ) ; List parentBoundables = createParentBoundables ( boundablesOfALevel , level + 1 ) ; if ( parentBoundables . size ( ) == 1 ) { return ( AbstractNode ) parentBoundables . get ( 0 ) ; } return createHigherLevels ( parentBoundables , level + 1 ) ; }
creates the levels higher than the given level
