- java.lang.Object
-
- org.refcodes.serial.AbstractPayloadSegment<Enum<E>>
-
- org.refcodes.serial.EnumSegment<E>
-
- Type Parameters:
E
- The type of the enumeration.
- All Implemented Interfaces:
Serializable
,org.refcodes.mixin.AliasAccessor
,org.refcodes.mixin.LengthAccessor
,org.refcodes.mixin.PayloadAccessor<Enum<E>>
,org.refcodes.mixin.PayloadAccessor.PayloadBuilder<Enum<E>,PayloadTransmission<Enum<E>>>
,org.refcodes.mixin.PayloadAccessor.PayloadMutator<Enum<E>>
,org.refcodes.mixin.PayloadAccessor.PayloadProperty<Enum<E>>
,org.refcodes.mixin.TypeAccessor<E>
,PayloadSegment<Enum<E>>
,PayloadTransmission<Enum<E>>
,Segment
,Segment.SegmentMixin
,Transmission
,Transmission.TransmissionMixin
public class EnumSegment<E extends Enum<E>> extends AbstractPayloadSegment<Enum<E>> implements Segment, org.refcodes.mixin.TypeAccessor<E>
TheEnumSegment
is an implementation of aSegment
carrying an enumeration value as payload.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.AliasAccessor
org.refcodes.mixin.AliasAccessor.AliasBuilder<B extends org.refcodes.mixin.AliasAccessor.AliasBuilder<B>>, org.refcodes.mixin.AliasAccessor.AliasMutator, org.refcodes.mixin.AliasAccessor.AliasProperty
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.LengthAccessor
org.refcodes.mixin.LengthAccessor.LengthBuilder<B extends org.refcodes.mixin.LengthAccessor.LengthBuilder<B>>, org.refcodes.mixin.LengthAccessor.LengthMutator, org.refcodes.mixin.LengthAccessor.LengthProperty
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.PayloadAccessor
org.refcodes.mixin.PayloadAccessor.PayloadBuilder<P extends Object,B extends org.refcodes.mixin.PayloadAccessor.PayloadBuilder<P,B>>, org.refcodes.mixin.PayloadAccessor.PayloadMutator<P extends Object>, org.refcodes.mixin.PayloadAccessor.PayloadProperty<P extends Object>
-
Nested classes/interfaces inherited from interface org.refcodes.serial.Segment
Segment.SegmentMixin
-
Nested classes/interfaces inherited from interface org.refcodes.serial.Transmission
Transmission.TransmissionMixin
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.TypeAccessor
org.refcodes.mixin.TypeAccessor.TypeBuilder<T extends Object,B extends org.refcodes.mixin.TypeAccessor.TypeBuilder<T,B>>, org.refcodes.mixin.TypeAccessor.TypeMutator<T extends Object>, org.refcodes.mixin.TypeAccessor.TypeProperty<T extends Object>
-
-
Constructor Summary
Constructors Constructor Description EnumSegment(Class<E> aType)
Constructs an emptyEnumSegment
with aTransmissionMetrics.DEFAULT_ENDIANESS
endian representation of theEnumSegment
's value.EnumSegment(Class<E> aType, org.refcodes.numerical.Endianess aEndianess)
Constructs an emptyEnumSegment
with the givenEndianess
.EnumSegment(Class<E> aType, TransmissionMetrics aTransmissionMetrics)
Constructs an according instance from the given configuration.EnumSegment(Enum<E> aValue, org.refcodes.numerical.Endianess aEndianess)
Constructs aEnumSegment
with the given enumeration value (payload) and the givenEndianess
for the representation of theEnumSegment
's value.EnumSegment(Enum<E> aValue, TransmissionMetrics aTransmissionMetrics)
Constructs an according instance from the given configuration.EnumSegment(String aAlias, Class<E> aType)
Constructs an emptyEnumSegment
with aTransmissionMetrics.DEFAULT_ENDIANESS
endian representation of theEnumSegment
's value.EnumSegment(String aAlias, Class<E> aType, Enum<E> aValue, org.refcodes.numerical.Endianess aEndianess)
Constructs aEnumSegment
with the given enumeration value (payload) and the givenEndianess
for the representation of theEnumSegment
's value.EnumSegment(String aAlias, Class<E> aType, org.refcodes.numerical.Endianess aEndianess)
Constructs an emptyEnumSegment
with the givenEndianess
.EnumSegment(String aAlias, Class<E> aType, TransmissionMetrics aTransmissionMetrics)
Constructs an according instance from the given configuration.EnumSegment(String aAlias, Enum<E> aValue, org.refcodes.numerical.Endianess aEndianess)
Constructs aEnumSegment
with the given enumeration value (payload) and the givenEndianess
for the representation of theEnumSegment
's value.EnumSegment(String aAlias, Enum<E> aValue, TransmissionMetrics aTransmissionMetrics)
Constructs an according instance from the given configuration.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
fromTransmission(Sequence aSequence, int aOffset)
(Re-)initializes this instance with the the givenSequence
data.int
getLength()
Determines the overall length of thisTransmission
.Class<E>
getType()
Schema
toSchema()
Retrieves theSchema
representing theTransmission
.Sequence
toSequence()
Provides theSequence
representation of thisTransmission
.EnumSegment<E>
withPayload(Enum<E> aValue)
-
Methods inherited from class org.refcodes.serial.AbstractPayloadSegment
equals, getAlias, getPayload, hashCode, setPayload, toSimpleTypeMap, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.refcodes.serial.Segment
fromTransmission, fromTransmission, fromTransmission, receiveFrom, receiveFrom
-
Methods inherited from interface org.refcodes.serial.Segment.SegmentMixin
receiveFrom
-
Methods inherited from interface org.refcodes.serial.Transmission
toSimpleTypeMap, transmitTo, transmitTo
-
Methods inherited from interface org.refcodes.serial.Transmission.TransmissionMixin
transmitTo
-
-
-
-
Field Detail
-
ENDIANESS
public static final String ENDIANESS
- See Also:
- Constant Field Values
-
BYTES
public static final int BYTES
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
EnumSegment
public EnumSegment(Class<E> aType, TransmissionMetrics aTransmissionMetrics)
Constructs an according instance from the given configuration. The configuration attributes are taken from theTransmissionMetrics
configuration object, though only those attributes are supported which are also supported by the other constructors!- Parameters:
aType
- the enumeratrion's typeaTransmissionMetrics
- TheTransmissionMetrics
to be used for configuring this instance.
-
EnumSegment
public EnumSegment(Enum<E> aValue, TransmissionMetrics aTransmissionMetrics)
Constructs an according instance from the given configuration. The configuration attributes are taken from theTransmissionMetrics
configuration object, though only those attributes are supported which are also supported by the other constructors!- Parameters:
aValue
- The payload to be contained by theDoubleArraySection
.aTransmissionMetrics
- TheTransmissionMetrics
to be used for configuring this instance.
-
EnumSegment
public EnumSegment(String aAlias, Class<E> aType, TransmissionMetrics aTransmissionMetrics)
Constructs an according instance from the given configuration. The configuration attributes are taken from theTransmissionMetrics
configuration object, though only those attributes are supported which are also supported by the other constructors!- Parameters:
aAlias
- The alias which identifies the content of this instance.aType
- the enumeratrion's typeaTransmissionMetrics
- TheTransmissionMetrics
to be used for configuring this instance.
-
EnumSegment
public EnumSegment(String aAlias, Enum<E> aValue, TransmissionMetrics aTransmissionMetrics)
Constructs an according instance from the given configuration. The configuration attributes are taken from theTransmissionMetrics
configuration object, though only those attributes are supported which are also supported by the other constructors!- Parameters:
aAlias
- The alias which identifies the content of this instance.aValue
- The payload to be contained by theDoubleArraySection
.aTransmissionMetrics
- TheTransmissionMetrics
to be used for configuring this instance.
-
EnumSegment
public EnumSegment(Class<E> aType)
Constructs an emptyEnumSegment
with aTransmissionMetrics.DEFAULT_ENDIANESS
endian representation of theEnumSegment
's value.- Parameters:
aType
- the enumeratrion's type
-
EnumSegment
public EnumSegment(Class<E> aType, org.refcodes.numerical.Endianess aEndianess)
Constructs an emptyEnumSegment
with the givenEndianess
.- Parameters:
aType
- the enumeratrion's typeaEndianess
- TheEndianess
to be used for payload values.
-
EnumSegment
public EnumSegment(Enum<E> aValue, org.refcodes.numerical.Endianess aEndianess)
Constructs aEnumSegment
with the given enumeration value (payload) and the givenEndianess
for the representation of theEnumSegment
's value.- Parameters:
aValue
- The value (payload) to be contained by theEnumSegment
.aEndianess
- TheEndianess
to be used for payload values.
-
EnumSegment
public EnumSegment(String aAlias, Class<E> aType)
Constructs an emptyEnumSegment
with aTransmissionMetrics.DEFAULT_ENDIANESS
endian representation of theEnumSegment
's value.- Parameters:
aAlias
- The alias which identifies the content of this segment.aType
- the enumeratrion's type
-
EnumSegment
public EnumSegment(String aAlias, Class<E> aType, org.refcodes.numerical.Endianess aEndianess)
Constructs an emptyEnumSegment
with the givenEndianess
.- Parameters:
aAlias
- The alias which identifies the content of this segment.aType
- the enumeratrion's typeaEndianess
- TheEndianess
to be used for payload values.
-
EnumSegment
public EnumSegment(String aAlias, Enum<E> aValue, org.refcodes.numerical.Endianess aEndianess)
Constructs aEnumSegment
with the given enumeration value (payload) and the givenEndianess
for the representation of theEnumSegment
's value.- Parameters:
aAlias
- The alias which identifies the content of this segment.aValue
- The value (payload) to be contained by theEnumSegment
.aEndianess
- TheEndianess
to be used for payload values.
-
EnumSegment
public EnumSegment(String aAlias, Class<E> aType, Enum<E> aValue, org.refcodes.numerical.Endianess aEndianess)
Constructs aEnumSegment
with the given enumeration value (payload) and the givenEndianess
for the representation of theEnumSegment
's value.- Parameters:
aAlias
- The alias which identifies the content of this segment.aType
- the enumeration's typeaValue
- The value (payload) to be contained by theEnumSegment
.aEndianess
- TheEndianess
to be used for payload values.
-
-
Method Detail
-
toSequence
public Sequence toSequence()
Provides theSequence
representation of thisTransmission
. In case of nestedTransmission
instances, allSequence
representations from all sub-segments are accumulated to the result as well. Caution, the Transmission (or its nestedTransmission
instances) may be backed by the returnedSequence
.- Specified by:
toSequence
in interfaceTransmission
- Returns:
- The according instance's
Sequence
.
-
fromTransmission
public int fromTransmission(Sequence aSequence, int aOffset) throws TransmissionException
(Re-)initializes this instance with the the givenSequence
data.- Specified by:
fromTransmission
in interfaceSegment
- Parameters:
aSequence
- TheSequence
data from which to (re-)initialize this instance.aOffset
- The offset where to start processing the providedSequence
.- Returns:
- The index after the last offset into the given
Sequence
processed by this method. - Throws:
TransmissionException
- thrown in case a givenSequence
cannot be processed.
-
getLength
public int getLength()
Determines the overall length of thisTransmission
. In case of nestedTransmission
instances, all length values from all sub-segments are accumulated to the result as well.- Specified by:
getLength
in interfaceorg.refcodes.mixin.LengthAccessor
- Specified by:
getLength
in interfaceTransmission
- Returns:
- The (overall) length of the
Transmission
(including any sub-segments).
-
toSchema
public Schema toSchema()
Retrieves theSchema
representing theTransmission
. Retrieving aSchema
is useful when analyzing and debugging data structures such as aAllocSectionDecoratorSegment
instance to help document, learn and verify on the structure (as well as the content) of that veryAllocSectionDecoratorSegment
.- Specified by:
toSchema
in interfaceTransmission
- Returns:
- The
Schema
representation of the implementing type for debugging and verification (or documentation) purposes.
-
withPayload
public EnumSegment<E> withPayload(Enum<E> aValue)
-
-