trait HasProtocolVersionedWithValidationCompanion[ValueClass <: HasRepresentativeProtocolVersion] extends HasProtocolVersionedWithContextCompanion[ValueClass, ProtocolVersion]
Similar to HasProtocolVersionedWithContextAndValidationCompanion but the deserialization context contains only the protocol version for validation.
- Alphabetic
- By Inheritance
- HasProtocolVersionedWithValidationCompanion
- HasProtocolVersionedWithContextCompanion
- HasProtocolVersionedWrapperWithContextCompanion
- HasProtocolVersionedWrapperCompanion
- Serializable
- HasSupportedProtoVersions
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- type DataByteString = ByteString
- Definition Classes
- HasProtocolVersionedWrapperCompanion
- type Deserializer = (ProtocolVersion, DataByteString) => ParsingResult[ValueClass]
- Definition Classes
- HasProtocolVersionedWithContextCompanion → HasSupportedProtoVersions
- type OriginalByteString = ByteString
- Definition Classes
- HasProtocolVersionedWrapperCompanion
- type Serializer = (ValueClass) => ByteString
- Definition Classes
- HasSupportedProtoVersions
- type ThisRepresentativeProtocolVersion = RepresentativeProtocolVersion[HasProtocolVersionedWithValidationCompanion.this.type]
- Attributes
- protected
- Definition Classes
- HasSupportedProtoVersions
- case class DefaultValueFromInclusive[T](attribute: (ValueClass) => T, attributeName: String, startInclusive: ThisRepresentativeProtocolVersion, defaultValue: T) extends DefaultValue[T] with Product with Serializable
- Definition Classes
- HasSupportedProtoVersions
- case class DefaultValueUntilExclusive[T](attribute: (ValueClass) => T, attributeName: String, untilExclusive: ThisRepresentativeProtocolVersion, defaultValue: T) extends DefaultValue[T] with Product with Serializable
- Definition Classes
- HasSupportedProtoVersions
- case class EmptyOptionExactlyUntilExclusive[T](attribute: (ValueClass) => Option[T], attributeName: String, untilExclusive: ThisRepresentativeProtocolVersion) extends DefaultValue[Option[T]] with Product with Serializable
- Definition Classes
- HasSupportedProtoVersions
- trait Invariant extends AnyRef
- Definition Classes
- HasSupportedProtoVersions
- case class LegacyProtoConverter extends ProtoCodec with PrettyPrinting with Product with Serializable
Used to (de)serialize classes which for legacy reasons where not wrapped in VersionedMessage Chances are this is NOT the class you want to use, use VersionedProtoConverter instead when adding serialization to a new class
Used to (de)serialize classes which for legacy reasons where not wrapped in VersionedMessage Chances are this is NOT the class you want to use, use VersionedProtoConverter instead when adding serialization to a new class
- Attributes
- protected[this]
- Definition Classes
- HasSupportedProtoVersions
- case class OneElementSeqExactlyUntilExclusive[T](attribute: (ValueClass) => Seq[T], attributeName: String, untilExclusive: ThisRepresentativeProtocolVersion) extends DefaultValue[Seq[T]] with Product with Serializable
- Definition Classes
- HasSupportedProtoVersions
- sealed trait ProtoCodec extends AnyRef
Base class for (de)serializing from/to protobuf of ValueClass from a specific PV
Base class for (de)serializing from/to protobuf of ValueClass from a specific PV
- Definition Classes
- HasSupportedProtoVersions
- case class SupportedProtoVersions extends Product with Serializable
- Definition Classes
- HasSupportedProtoVersions
- case class UnsupportedProtoCodec(fromInclusive: RepresentativeProtocolVersion[HasSupportedProtoVersions.this.type]) extends ProtoCodec with PrettyPrinting with Product with Serializable
- Attributes
- protected[this]
- Definition Classes
- HasSupportedProtoVersions
- case class VersionedProtoConverter extends ProtoCodec with PrettyPrinting with Product with Serializable
Supported Proto version
Supported Proto version
- Attributes
- protected[this]
- Definition Classes
- HasSupportedProtoVersions
Abstract Value Members
- abstract def name: String
The name of the class as used for pretty-printing and error reporting
The name of the class as used for pretty-printing and error reporting
- Definition Classes
- HasProtocolVersionedWrapperCompanion → HasSupportedProtoVersions
- abstract def supportedProtoVersions: SupportedProtoVersions
Proto versions that are supported by
fromByteString
See the helpersupportedProtoVersion
below to define aParser
.Proto versions that are supported by
fromByteString
See the helpersupportedProtoVersion
below to define aParser
.- Definition Classes
- HasSupportedProtoVersions
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- def deserializationErrorK(error: ProtoDeserializationError): (ProtocolVersion, DataByteString) => ParsingResult[ValueClass]
- Attributes
- protected
- Definition Classes
- HasProtocolVersionedWithContextCompanion → HasSupportedProtoVersions
- def deserializeForVersion(rpv: RepresentativeProtocolVersion[HasProtocolVersionedWithValidationCompanion.this.type], deserializeLegacyProto: (Deserializer) => ParsingResult[ValueClass], deserializeVersionedProto: => ParsingResult[ValueClass]): ParsingResult[ValueClass]
- Attributes
- protected
- Definition Classes
- HasProtocolVersionedWrapperCompanion
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def fromByteString(expectedProtocolVersion: ProtocolVersion)(bytes: OriginalByteString): ParsingResult[ValueClass]
- def fromByteString(expectedProtocolVersion: ProtocolVersionValidation)(context: ProtocolVersion)(bytes: OriginalByteString): ParsingResult[ValueClass]
Variation of
fromByteString
that takes aProtocolVersionValidation
instead of aProtocolVersion
.Variation of
fromByteString
that takes aProtocolVersionValidation
instead of aProtocolVersion
.Use this method when sometimes no protocol version can be passed for the
expectedProtocolVersion
. For these cases useProtocolVersionValidation.NoValidation
. - def fromByteString(expectedProtocolVersion: ProtocolVersion)(context: ProtocolVersion)(bytes: OriginalByteString): ParsingResult[ValueClass]
Deserializes the given bytes and checks that the therein embedded proto version matches the
expectedProtocolVersion
.Deserializes the given bytes and checks that the therein embedded proto version matches the
expectedProtocolVersion
.Use this method whenever the origin of the given bytes cannot be trusted, and for example the proto version message field may be set maliciously. This should be your default choice for deserialization.
Hint: If the
ValueClass
requires the domain protocol version for its implementation, pass it as part of the deserialization context and consider using one of the traits suffixed withValidationCompanion
to avoid possibly confusing argument duplication of the domain protocol version.- expectedProtocolVersion
the protocol version on which the sync domain is running on
- context
additional information which is required for the deserialization
- bytes
an untrusted byte string with an embedded proto version
- def fromByteStringLegacy(protocolVersion: ProtocolVersion)(context: ProtocolVersion)(bytes: OriginalByteString): ParsingResult[ValueClass]
Use this method when deserializing bytes for classes that have a legacy proto converter to explicitly set the protocol version to use for the deserialization.
Use this method when deserializing bytes for classes that have a legacy proto converter to explicitly set the protocol version to use for the deserialization.
- protocolVersion
protocol version of the bytes to be deserialized
- bytes
data
- Definition Classes
- HasProtocolVersionedWithContextCompanion
- def fromByteStringLegacy(protoVersion: ProtoVersion)(context: ProtocolVersion)(bytes: OriginalByteString): ParsingResult[ValueClass]
Use this method when deserializing bytes for classes that have a legacy proto converter to explicitly set the Proto version to use for the deserialization.
Use this method when deserializing bytes for classes that have a legacy proto converter to explicitly set the Proto version to use for the deserialization.
- protoVersion
Proto version of the bytes to be deserialized
- bytes
data
- Definition Classes
- HasProtocolVersionedWithContextCompanion
- def fromByteStringUnsafe(context: ProtocolVersion)(bytes: OriginalByteString): ParsingResult[ValueClass]
Deserializes the given bytes without validation!
Deserializes the given bytes without validation!
Unsafe! Do NOT use this method unless you can justify that the given bytes originate from a trusted source.
Hint: If the
ValueClass
requires the domain protocol version for its implementation, pass it as part of the deserialization context and consider using one of the traits suffixed withValidationCompanion
to avoid possibly confusing argument duplication of the domain protocol version.- context
additional information which required for the deserialization
- bytes
a trusted byte string with an embedded proto version
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def invariants: Seq[Invariant]
- Definition Classes
- HasSupportedProtoVersions
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def protoVersionFor(protocolVersion: ProtocolVersion): ProtoVersion
Return the Proto version corresponding to the protocol version
Return the Proto version corresponding to the protocol version
- Definition Classes
- HasSupportedProtoVersions
- def protoVersionFor(protocolVersion: RepresentativeProtocolVersion[HasProtocolVersionedWithValidationCompanion.this.type]): ProtoVersion
Return the Proto version corresponding to the representative protocol version
Return the Proto version corresponding to the representative protocol version
- Definition Classes
- HasSupportedProtoVersions
- def protocolVersionRepresentativeFor(protoVersion: ProtoVersion): ParsingResult[RepresentativeProtocolVersion[HasProtocolVersionedWithValidationCompanion.this.type]]
Return the representative protocol version corresponding to the proto version
Return the representative protocol version corresponding to the proto version
- Definition Classes
- HasSupportedProtoVersions
- def protocolVersionRepresentativeFor(protocolVersion: ProtocolVersion): RepresentativeProtocolVersion[HasProtocolVersionedWithValidationCompanion.this.type]
- Definition Classes
- HasSupportedProtoVersions
- def supportedProtoVersion[Proto <: GeneratedMessage](p: GeneratedMessageCompanion[Proto])(fromProto: (ProtocolVersion, Proto) => ParsingResult[ValueClass]): Deserializer
- Attributes
- protected
- Definition Classes
- HasProtocolVersionedWithContextCompanion
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def tryProtocolVersionRepresentativeFor(protoVersion: ProtoVersion): RepresentativeProtocolVersion[HasProtocolVersionedWithValidationCompanion.this.type]
Returns the representative protocol version corresponding to the proto version, throws otherwise.
Returns the representative protocol version corresponding to the proto version, throws otherwise.
- Definition Classes
- HasSupportedProtoVersions
- def validateInstance(instance: ValueClass, representativeProtocolVersion: ThisRepresentativeProtocolVersion): Either[String, Unit]
Will check that default value rules defined in
companionObj.defaultValues
hold.Will check that default value rules defined in
companionObj.defaultValues
hold.- Definition Classes
- HasProtocolVersionedWrapperCompanion
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- object LegacyProtoConverter extends Serializable
- Definition Classes
- HasSupportedProtoVersions
- object SupportedProtoVersions extends Serializable
- Definition Classes
- HasSupportedProtoVersions
- object UnsupportedProtoCodec extends Serializable
- Definition Classes
- HasSupportedProtoVersions
- object VersionedProtoConverter extends Serializable
- Definition Classes
- HasSupportedProtoVersions