public class MetadataCoder extends AtomicCoder<MatchResult.Metadata>
Coder
for MatchResult.Metadata
.
The MatchResult.Metadata.lastModifiedMillis()
field was added after this coder was already
deployed, so this class decodes a default value for backwards compatibility. See MetadataCoderV2
for retaining timestamp information.
Coder.Context, Coder.NonDeterministicException
Modifier and Type | Method and Description |
---|---|
boolean |
consistentWithEquals()
|
MatchResult.Metadata |
decode(java.io.InputStream is)
Decodes a value of type
T from the given input stream in the given context. |
void |
encode(MatchResult.Metadata value,
java.io.OutputStream os)
Encodes the given value of type
T onto the given output stream. |
static MetadataCoder |
of()
Returns the singleton
MetadataCoder instance. |
equals, getCoderArguments, getComponents, hashCode, verifyDeterministic
toString
decode, encode, getEncodedElementByteSize, getEncodedTypeDescriptor, isRegisterByteSizeObserverCheap, registerByteSizeObserver, structuralValue, verifyDeterministic, verifyDeterministic
public static MetadataCoder of()
MetadataCoder
instance.public void encode(MatchResult.Metadata value, java.io.OutputStream os) throws java.io.IOException
Coder
T
onto the given output stream.encode
in class Coder<MatchResult.Metadata>
java.io.IOException
- if writing to the OutputStream
fails for some reasonCoderException
- if the value could not be encoded for some reasonpublic MatchResult.Metadata decode(java.io.InputStream is) throws java.io.IOException
Coder
T
from the given input stream in the given context. Returns the
decoded value.decode
in class Coder<MatchResult.Metadata>
java.io.IOException
- if reading from the InputStream
fails for some reasonCoderException
- if the value could not be decoded for some reasonpublic boolean consistentWithEquals()
Coder
true
if this Coder
is injective with respect to Object.equals(java.lang.Object)
.
Whenever the encoded bytes of two values are equal, then the original values are equal
according to Objects.equals()
. Note that this is well-defined for null
.
This condition is most notably false for arrays. More generally, this condition is false
whenever equals()
compares object identity, rather than performing a
semantic/structural comparison.
By default, returns false.
consistentWithEquals
in class Coder<MatchResult.Metadata>