@Override public boolean equals(Object obj){
  if (this == obj) {
    return true;
  }
  if (obj == null) {
    return false;
  }
  if (getClass() != obj.getClass()) {
    return false;
  }
  AddOn other=(AddOn)obj;
  if (id == null) {
    if (other.id != null) {
      return false;
    }
  }
 else   if (!id.equals(other.id)) {
    return false;
  }
  if (fileVersion != other.fileVersion) {
    return false;
  }
  if (version == null) {
    if (other.version != null) {
      return false;
    }
  }
 else   if (!version.equals(other.version)) {
    return false;
  }
  return true;
}

@ Override public boolean equals ( Object obj ) { if ( this == obj ) { return true ; } if ( obj == null ) { return false ; } if ( getClass ( ) != obj . getClass ( ) ) { return false ; } AddOn other = ( AddOn ) obj ; if ( id == null ) { if ( other . id != null ) { return false ; } } else if ( ! id . equals ( other . id ) ) { return false ; } if ( fileVersion != other . fileVersion ) { return false ; } if ( version == null ) { if ( other . version != null ) { return false ; } } else if ( ! version . equals ( other . version ) ) { return false ; } return true ; }
two add - ons are considered equal if both add - ons have the same id , file version and semantic version .
