public int hashCode(){
  if (!isHashCodeChosen) {
    if (name != null & type != null)     fixedHashCode=name.hashCode() + 19 * type.hashCode();
 else     if (name != null)     fixedHashCode=name.hashCode();
 else     if (type != null)     fixedHashCode=type.hashCode();
 else     fixedHashCode=1;
    isHashCodeChosen=true;
  }
  return fixedHashCode;
}

public int hashCode ( ) { if ( ! isHashCodeChosen ) { if ( name != null & type != null ) fixedHashCode = name . hashCode ( ) + 19 * type . hashCode ( ) ; else if ( name != null ) fixedHashCode = name . hashCode ( ) ; else if ( type != null ) fixedHashCode = type . hashCode ( ) ; else fixedHashCode = 1 ; isHashCodeChosen = true ; } return fixedHashCode ; }
returns a hashcode consistent with object equality .
