@Override
 public boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   NodeKey other = (NodeKey) obj;
   if (_nodeKey == null) {
     if (other._nodeKey != null) return false;
   } else if (other._nodeKey == null) {
     return false;
   } else if (!Arrays.equals(_nodeKey.getEncoded(), other._nodeKey.getEncoded())) {
     return false;
   }
   if (_nodeName == null) {
     if (other._nodeName != null) return false;
   } else if (!_nodeName.equals(other._nodeName)) return false;
   if (!Arrays.equals(_storedNodeKeyID, other._storedNodeKeyID)) return false;
   if (_storedNodeKeyName == null) {
     if (other._storedNodeKeyName != null) return false;
   } else if (!_storedNodeKeyName.equals(other._storedNodeKeyName)) return false;
   return true;
 }