public boolean isConsistent(){
  final TaxonNode root=getRoot();
  if (root == null) {
    mReason="No root node.";
    return false;
  }
  for (  final TaxonNode node : mNodes.values()) {
    if (node.getName() == null) {
      mReason="Node " + node.getId() + " does not have a name.";
      return false;
    }
    if (node.getRank() == null) {
      mReason="Node " + node.getId() + " does not have a rank.";
      return false;
    }
    TaxonNode x=node;
    final HashSet<TaxonNode> seen=new HashSet<>();
    while (x != null && x != root && !seen.contains(x)) {
      seen.add(x);
      x=x.getParent();
    }
    if (x != root) {
      mReason="Node " + node.getId() + " does not link to root.";
      return false;
    }
  }
  return true;
}

public boolean isConsistent ( ) { final TaxonNode root = getRoot ( ) ; if ( root == null ) { mReason = "No root node." ; return false ; } for ( final TaxonNode node : mNodes . values ( ) ) { if ( node . getName ( ) == null ) { mReason = "Node " + node . getId ( ) + " does not have a name." ; return false ; } if ( node . getRank ( ) == null ) { mReason = "Node " + node . getId ( ) + " does not have a rank." ; return false ; } TaxonNode x = node ; final HashSet < TaxonNode > seen = new HashSet < > ( ) ; while ( x != null && x != root && ! seen . contains ( x ) ) { seen . add ( x ) ; x = x . getParent ( ) ; } if ( x != root ) { mReason = "Node " + node . getId ( ) + " does not link to root." ; return false ; } } return true ; }
returns whether the taxonomy is currently consistent or not .
