public override bool Equals(object obj) { if (!(obj is StandardReferenceTypeHandler)) { return(false); } StandardReferenceTypeHandler other = (StandardReferenceTypeHandler)obj; if (ClassMetadata() == null) { return(other.ClassMetadata() == null); } return(ClassMetadata().Equals(other.ClassMetadata())); }
public virtual object DeepClone(object context) { TypeHandlerCloneContext typeHandlerCloneContext = (TypeHandlerCloneContext)context; StandardReferenceTypeHandler cloned = (StandardReferenceTypeHandler)Reflection4.NewInstance (this); if (typeHandlerCloneContext.original is StandardReferenceTypeHandler) { StandardReferenceTypeHandler original = (StandardReferenceTypeHandler)typeHandlerCloneContext .original; cloned.ClassMetadata(original.ClassMetadata()); } else { // New logic: ClassMetadata takes the responsibility in // #correctHandlerVersion() to set the // ClassMetadata directly on cloned handler. // if(_classMetadata == null){ // throw new IllegalStateException(); // } cloned.ClassMetadata(_classMetadata); } return(cloned); }