Thomas Groh created BEAM-3807:
---------------------------------

             Summary: SerializableCoder#structuralValue should be more 
effective for types which don't define an equals method
                 Key: BEAM-3807
                 URL: https://issues.apache.org/jira/browse/BEAM-3807
             Project: Beam
          Issue Type: Bug
          Components: sdk-java-core
            Reporter: Thomas Groh


Specifically, types which don't implement an equals method (or more loosely, 
types which use the Object equals method) should either implement 
{{#structuralValue}} via using encoded bytes, or require the use of an 
{{Equivalence}} (like the guava definition).

 

It should always be that the following snippet (or its approximation) returns 
{{true}}:

{{<T> expected(Coder<T> myCoder, }}{{T myElement)}}

{{byte[] elementBytes = CoderUtils.serializeToByteArray(myCoder, myElement);}}

{{T decodedFirst = CoderUtils.deserializeFromByteArray(myCoder, elementBytes);}}

{{T decodedSecond = CoderUtils.deserializeFromByteArray(myCoder, 
elementBytes);}}

{{myCoder.structuralValue(decodedFirst).equals(myCoder.structuralValue(decodedScond));}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to