if( areaTree.getChild(runStart).getNode().getChildCount() > 0 ) System.out.println(areaTree.getChild(runStart).getNode().getChild(0).toString() );
  private void solveAmbiguity( AreaNode areaTree, int runStart, int runStop, int startPos, int stopPos,    ElementNode srcParent ) {    System.out.println("$$$Solving ambiguity " + runStart  +        "-" + runStop+ ": " +areaTree.getChild(runStart).toString());    ONode left=null, right=null;    if( runStart == startPos )      left = START;    else if (areaTree.getChild(runStart-1).getCandidateCount() != 1 )      left = DONT_CARE; // left of run is ambigous (=not below srcParent) => can't be used for anchoring    else      left = areaTree.getChild(runStart-1).getCandidate(0);    if( runStop == stopPos )      right = END;    else if (areaTree.getChild(runStop+1).getCandidateCount() != 1 )      right = DONT_CARE; // left of run is ambigous (=not below srcParent) => can't be used for anchoring    else      right = areaTree.getChild(runStop+1).getCandidate(0);    if( left == DONT_CARE && right == DONT_CARE ) {      System.out.println("Both sides DC => leaving unsolved... CAN MAYBE BE SOLVED, THINK!");      return;    }    int start=-1,end=-1, runLength = runStop-runStart; // 0 based: 0 => run length = 1    if( left == START )      start = 0;    else if (left != DONT_CARE )      start = left.childNo+1;    if( right == END )      end = srcParent.children.size()-1;    else if (right != DONT_CARE )      end = right.childNo-1;    if( left == DONT_CARE )      start = end - runLength;    else if (right==DONT_CARE)      end = start + runLength;    // Check if the ambiguity can be solved    Vector solved = new  Vector();    int runPos = runStart;    for( int pos = start; pos <= end; pos++) {      int foundIx = -1;      for( int i = 0;foundIx == -1 && i<areaTree.getChild(runPos).getCandidateCount(); i ++ ) {        ONode c= areaTree.getChild(runPos).getCandidate(i);        if( c == srcParent.getChild(pos) ) {          solved.addElement(c);          foundIx = i;        }      }      if( foundIx == -1 )        return; // No match for this one, give up...      else        runPos++;    }    System.out.println("!!!Solved ambiguity!");    // Found match for all, lets resolve    for( int i =0;i<solved.size();i++) {      areaTree.getChild(runStart+i).clearCandidates();      areaTree.getChild(runStart+i).addCandidate((ONode) solved.elementAt(i));    }  }