public synchronized boolean equals(java.lang.Object obj) {
        if (!(obj instanceof ProjectVersionData)) return false;
        ProjectVersionData other = (ProjectVersionData) obj;
        if (obj == null) return false;
        if (this == obj) return true;
        if (__equalsCalc != null) {
            return (__equalsCalc == obj);
        }
        __equalsCalc = obj;
        boolean _equals;
        _equals = true && 
            ((this.id==null && other.getId()==null) || 
             (this.id!=null &&
              this.id.equals(other.getId()))) &&
            ((this.name==null && other.getName()==null) || 
             (this.name!=null &&
              this.name.equals(other.getName()))) &&
            ((this.project_id==null && other.getProject_id()==null) || 
             (this.project_id!=null &&
              this.project_id.equals(other.getProject_id()))) &&
            ((this.date_order==null && other.getDate_order()==null) || 
             (this.date_order!=null &&
              this.date_order.equals(other.getDate_order()))) &&
            ((this.description==null && other.getDescription()==null) || 
             (this.description!=null &&
              this.description.equals(other.getDescription()))) &&
            ((this.released==null && other.getReleased()==null) || 
             (this.released!=null &&
              this.released.equals(other.getReleased()))) &&
            ((this.obsolete==null && other.getObsolete()==null) || 
             (this.obsolete!=null &&
              this.obsolete.equals(other.getObsolete())));
        __equalsCalc = null;
        return _equals;
    }
public synchronized boolean equals(java.lang.Object obj)