public void parseHierarchy(String hCode,Properties props,SymbolPart parent){
  List codePositionList=null;
  if (nextPosition != null) {
    codePositionList=nextPosition.getPositionChoices();
  }
  if (codePositionList == null || codePositionList.isEmpty()) {
    Debug.output(prettyName + ".parseHierarchy(): codePositionList.size = 0");
    return;
  }
  List parentList=null;
  for (Iterator it=codePositionList.iterator(); it.hasNext(); ) {
    CodePosition cp=(CodePosition)it.next();
    String newHCode=hCode + "." + cp.getHierarchyNumber();
    if (DEBUG) {
      Debug.output("CodeScheme.parse: " + newHCode + " with "+ cp.getPrettyName());
    }
    String entry=props.getProperty(newHCode);
    if (entry != null) {
      SymbolPart sp=new SymbolPart(cp,entry,props,parent);
      if (parentList == null) {
        parentList=parent.getSubs();
        if (parentList == null) {
          parentList=new ArrayList();
          parent.setSubs(parentList);
        }
      }
      if (DEBUG) {
        Debug.output("CodeScheme.parse: adding " + sp.getPrettyName() + " to "+ parent.getPrettyName());
      }
      parentList.add(sp);
      if (DEBUG) {
        Debug.output("CodeScheme.parse: handling " + cp.getPrettyName() + " children for "+ sp.getPrettyName());
      }
      cp.parseHierarchy(newHCode,props,sp);
    }
 else {
      if (DEBUG) {
        Debug.output("CodeScheme.parse: no entry found for " + newHCode);
      }
    }
  }
}

public void parseHierarchy ( String hCode , Properties props , SymbolPart parent ) { List codePositionList = null ; if ( nextPosition != null ) { codePositionList = nextPosition . getPositionChoices ( ) ; } if ( codePositionList == null || codePositionList . isEmpty ( ) ) { Debug . output ( prettyName + ".parseHierarchy(): codePositionList.size = 0" ) ; return ; } List parentList = null ; for ( Iterator it = codePositionList . iterator ( ) ; it . hasNext ( ) ; ) { CodePosition cp = ( CodePosition ) it . next ( ) ; String newHCode = hCode + "." + cp . getHierarchyNumber ( ) ; if ( DEBUG ) { Debug . output ( "CodeScheme.parse: " + newHCode + " with " + cp . getPrettyName ( ) ) ; } String entry = props . getProperty ( newHCode ) ; if ( entry != null ) { SymbolPart sp = new SymbolPart ( cp , entry , props , parent ) ; if ( parentList == null ) { parentList = parent . getSubs ( ) ; if ( parentList == null ) { parentList = new ArrayList ( ) ; parent . setSubs ( parentList ) ; } } if ( DEBUG ) { Debug . output ( "CodeScheme.parse: adding " + sp . getPrettyName ( ) + " to " + parent . getPrettyName ( ) ) ; } parentList . add ( sp ) ; if ( DEBUG ) { Debug . output ( "CodeScheme.parse: handling " + cp . getPrettyName ( ) + " children for " + sp . getPrettyName ( ) ) ; } cp . parseHierarchy ( newHCode , props , sp ) ; } else { if ( DEBUG ) { Debug . output ( "CodeScheme.parse: no entry found for " + newHCode ) ; } } } }
parse the hierarchy properties to create symbolparts for those parts under a particular scheme represented by this instance of codescheme .
