public boolean equals(final Object o) {if (!(o instanceof Property)) {return false;}final Property p = (Property) o;final Object pValue = p.getValue();final long pId = p.getID();if (id != pId || (id != 0 && !typesAreEqual(type, p.getType()))) {return false;}if (value == null && pValue == null) {return true;}if (value == null || pValue == null) {return false;}final Class<?> valueClass = value.getClass();final Class<?> pValueClass = pValue.getClass();if (!(valueClass.isAssignableFrom(pValueClass)) &&!(pValueClass.isAssignableFrom(valueClass))) {return false;}if (value instanceof byte[]) {byte[] thisVal = (byte[]) value, otherVal = (byte[]) pValue;int len = unpaddedLength(thisVal);if (len != unpaddedLength(otherVal)) {return false;}for (int i=0; i<len; i++) {if (thisVal[i] != otherVal[i]) {return false;}}return true;}return value.equals(pValue);}

public boolean equals ( final Object o ) { if ( ! ( o instanceof Property ) ) { return false ; } final Property p = ( Property ) o ; final Object pValue = p . getValue ( ) ; final long pId = p . getID ( ) ; if ( id != pId || ( id != 0 && ! typesAreEqual ( type , p . getType ( ) ) ) ) { return false ; } if ( value == null && pValue == null ) { return true ; } if ( value == null || pValue == null ) { return false ; } final Class < ? > valueClass = value . getClass ( ) ; final Class < ? > pValueClass = pValue . getClass ( ) ; if ( ! ( valueClass . isAssignableFrom ( pValueClass ) ) && ! ( pValueClass . isAssignableFrom ( valueClass ) ) ) { return false ; } if ( value instanceof byte [ ] ) { byte [ ] thisVal = ( byte [ ] ) value , otherVal = ( byte [ ] ) pValue ; int len = unpaddedLength ( thisVal ) ; if ( len != unpaddedLength ( otherVal ) ) { return false ; } for ( int i = 0 ; i < len ; i ++ ) { if ( thisVal [ i ] != otherVal [ i ] ) { return false ; } } return true ; } return value . equals ( pValue ) ; }
public override bool Equals(Object o){if (!(o is Property))return false;Property p = (Property)o;Object pValue = p.Value;long pId = p.ID;if (id != pId || (id != 0 && !TypesAreEqual(type, p.Type)))return false;if (value == null && pValue == null)return true;if (value == null || pValue == null)return false;Type valueClass = value.GetType();Type pValueClass = pValue.GetType();if (!(valueClass.IsAssignableFrom(pValueClass)) &&!(pValueClass.IsAssignableFrom(valueClass)))return false;if (value is byte[])return Arrays.Equals((byte[])value, (byte[])pValue);return value.Equals(pValue);}
