public CodePosition addPositionChoice(int index,String entry,String prefix,Properties props){
  CodeScheme cs=(CodeScheme)super.addPositionChoice(index,entry,prefix,props);
  prefix=PropUtils.getScopedPropertyPrefix(prefix) + entry + ".";
  String next=props.getProperty(prefix + NextProperty);
  if (next != null) {
    String nextClassName=props.getProperty(next + ".class");
    if (nextClassName != null) {
      CodePosition cp=(CodePosition)ComponentFactory.create(nextClassName);
      if (DEBUG) {
        Debug.output("CodeScheme created next class(" + next + "), "+ nextClassName);
      }
      if (cp != null) {
        cs.nextPosition=cp;
        cp.parsePositions(next,props);
      }
    }
 else {
      if (DEBUG) {
        Debug.output("CodeScheme couldn't create next class(" + next + "), "+ nextClassName);
      }
    }
  }
  cs.defaultSymbolCode=props.getProperty(prefix + DefaultSymbolCodeProperty);
  cs.hierarchyAddition=props.getProperty(prefix + HierarchyCodeAdditionProperty,"");
  return cs;
}

public CodePosition addPositionChoice ( int index , String entry , String prefix , Properties props ) { CodeScheme cs = ( CodeScheme ) super . addPositionChoice ( index , entry , prefix , props ) ; prefix = PropUtils . getScopedPropertyPrefix ( prefix ) + entry + "." ; String next = props . getProperty ( prefix + NextProperty ) ; if ( next != null ) { String nextClassName = props . getProperty ( next + ".class" ) ; if ( nextClassName != null ) { CodePosition cp = ( CodePosition ) ComponentFactory . create ( nextClassName ) ; if ( DEBUG ) { Debug . output ( "CodeScheme created next class(" + next + "), " + nextClassName ) ; } if ( cp != null ) { cs . nextPosition = cp ; cp . parsePositions ( next , props ) ; } } else { if ( DEBUG ) { Debug . output ( "CodeScheme couldn't create next class(" + next + "), " + nextClassName ) ; } } } cs . defaultSymbolCode = props . getProperty ( prefix + DefaultSymbolCodeProperty ) ; cs . hierarchyAddition = props . getProperty ( prefix + HierarchyCodeAdditionProperty , "" ) ; return cs ; }
the method needs more information from the properties than the codeposition version of this method provides , like getting the base symbol code for the scheme and the hierarchy addition .
