public boolean equalsContents(Object o){
  if (this == o) {
    return true;
  }
  if (o == null) {
    return false;
  }
  if (o.getClass() != getClass()) {
    return false;
  }
  if (!super.equalsContents(o)) {
    return false;
  }
  Referenceable obj=(Referenceable)o;
  if (!traitNames.equals(obj.getTraits())) {
    return false;
  }
  return true;
}

public boolean equalsContents ( Object o ) { if ( this == o ) { return true ; } if ( o == null ) { return false ; } if ( o . getClass ( ) != getClass ( ) ) { return false ; } if ( ! super . equalsContents ( o ) ) { return false ; } Referenceable obj = ( Referenceable ) o ; if ( ! traitNames . equals ( obj . getTraits ( ) ) ) { return false ; } return true ; }
matches traits , values associated with this referenceable and skips the id match
