private void buildBranch(TreeNode parent,String[] values,int lvl){
  if (lvl == values.length) {
    parent.children=null;
    return;
  }
  if (lvl > (m_Depth - 1)) {
    m_Depth=lvl + 1;
  }
  Vector<TreeNode> kids=parent.children;
  int index=search(kids,values[lvl]);
  if (index != -1) {
    TreeNode newParent=kids.elementAt(index);
    if (newParent.children == null) {
      newParent.children=new Vector<TreeNode>();
    }
    buildBranch(newParent,values,lvl + 1);
  }
 else {
    TreeNode added=new TreeNode();
    added.parent=parent;
    added.value=values[lvl];
    added.children=new Vector<TreeNode>();
    added.level=lvl;
    if (parent != m_Root) {
      added.context=parent.context + m_Seperator + parent.value;
    }
 else {
      added.context=parent.value;
    }
    kids.addElement(added);
    buildBranch(added,values,lvl + 1);
  }
}

private void buildBranch ( TreeNode parent , String [ ] values , int lvl ) { if ( lvl == values . length ) { parent . children = null ; return ; } if ( lvl > ( m_Depth - 1 ) ) { m_Depth = lvl + 1 ; } Vector < TreeNode > kids = parent . children ; int index = search ( kids , values [ lvl ] ) ; if ( index != - 1 ) { TreeNode newParent = kids . elementAt ( index ) ; if ( newParent . children == null ) { newParent . children = new Vector < TreeNode > ( ) ; } buildBranch ( newParent , values , lvl + 1 ) ; } else { TreeNode added = new TreeNode ( ) ; added . parent = parent ; added . value = values [ lvl ] ; added . children = new Vector < TreeNode > ( ) ; added . level = lvl ; if ( parent != m_Root ) { added . context = parent . context + m_Seperator + parent . value ; } else { added . context = parent . value ; } kids . addElement ( added ) ; buildBranch ( added , values , lvl + 1 ) ; } }
private function to build one branch of the tree based on one property
