@Override
 public void onRemove(T child) {
   child.removePropertyChangeListener(validListener);
   child.removePropertyChangeListener(nameListener);
   child.removePropertyChangeListener(childrenListener);
   validateNode();
 }
 @SuppressWarnings("unchecked")
 public void validateTree() {
   for (T t : this) {
     ((AbstractMetaDataModelNode) t).validateTree();
   }
   validateNode();
 };
 public void propertyChange(PropertyChangeEvent arg0) {
   validateNode();
 }