java.lang.Object
org.refcodes.serial.AbstractPayloadSegment<T>
- Type Parameters:
T
- The type of the segment's payload.
- All Implemented Interfaces:
Serializable
,org.refcodes.mixin.AliasAccessor
,org.refcodes.mixin.LengthAccessor
,org.refcodes.mixin.PayloadAccessor<T>
,org.refcodes.mixin.PayloadAccessor.PayloadBuilder<T,
,PayloadTransmission<T>> org.refcodes.mixin.PayloadAccessor.PayloadMutator<T>
,org.refcodes.mixin.PayloadAccessor.PayloadProperty<T>
,org.refcodes.mixin.Resetable
,org.refcodes.schema.Schemable
,PayloadSegment<T>
,PayloadTransmission<T>
,Segment
,Segment.SegmentMixin
,Transmission
,Transmission.TransmissionMixin
- Direct Known Subclasses:
AsciizArraySegment
,AsciizSegment
,BooleanSegment
,ByteSegment
,DoubleSegment
,EnumSegment
,FloatSegment
,IntSegment
,LongSegment
,NumberSegment
,ShortSegment
public abstract class AbstractPayloadSegment<T>
extends Object
implements PayloadSegment<T>, Segment.SegmentMixin
An abstract implementation of a
Segment
with payload.- See Also:
-
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
-
Field Summary
-
Constructor Summary
ModifierConstructorDescriptionprotected
Empty constructor fur sub-classes.AbstractPayloadSegment
(String aAlias) Constructs an emptySegment
to be initialized viaSegment.fromTransmission(Sequence)
orSegment.fromTransmission(Sequence, int)
.AbstractPayloadSegment
(String aAlias, T aValue) Constructs aSegment
instance with the given value. -
Method Summary
Modifier and TypeMethodDescriptionboolean
getAlias()
int
hashCode()
void
reset()
Resets any dynamic data (e.g. values such as payloads or checksums) and must not(!)void
setPayload
(T aValue) org.refcodes.struct.SimpleTypeMap
Returns theSimpleTypeMap
representation of thisTransmission
.toString()
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.refcodes.mixin.PayloadAccessor
getPayloadOr
Methods inherited from interface org.refcodes.mixin.PayloadAccessor.PayloadBuilder
withPayload
Methods inherited from interface org.refcodes.mixin.PayloadAccessor.PayloadProperty
letPayload
Methods inherited from interface org.refcodes.serial.Segment
fromTransmission, fromTransmission, fromTransmission, fromTransmission, receiveFrom, receiveFrom
Methods inherited from interface org.refcodes.serial.Segment.SegmentMixin
receiveFrom
Methods inherited from interface org.refcodes.serial.Transmission
getLength, toSchema, toSequence, transmitTo, transmitTo
Methods inherited from interface org.refcodes.serial.Transmission.TransmissionMixin
transmitTo
-
Field Details
-
_payload
-
_alias
-
-
Constructor Details
-
AbstractPayloadSegment
protected AbstractPayloadSegment()Empty constructor fur sub-classes. -
AbstractPayloadSegment
Constructs an emptySegment
to be initialized viaSegment.fromTransmission(Sequence)
orSegment.fromTransmission(Sequence, int)
.- Parameters:
aAlias
- The alias which identifies the content of this segment.
-
AbstractPayloadSegment
Constructs aSegment
instance with the given value.- Parameters:
aAlias
- The alias which identifies the content of this segment.aValue
- The value (payload) to be contained by theSegment
.
-
-
Method Details
-
setPayload
- Specified by:
setPayload
in interfaceorg.refcodes.mixin.PayloadAccessor.PayloadMutator<T>
-
getPayload
- Specified by:
getPayload
in interfaceorg.refcodes.mixin.PayloadAccessor<T>
-
getAlias
- Specified by:
getAlias
in interfaceorg.refcodes.mixin.AliasAccessor
-
reset
public void reset()Resets any dynamic data (e.g. values such as payloads or checksums) and must not(!) reset any configurations or settings required to produce the dynamic data (e.g. theTransmissionMetrics
).- Specified by:
reset
in interfaceorg.refcodes.mixin.Resetable
- Specified by:
reset
in interfaceTransmission
-
toString
-
hashCode
public int hashCode() -
equals
-
toSimpleTypeMap
public org.refcodes.struct.SimpleTypeMap toSimpleTypeMap()Returns theSimpleTypeMap
representation of thisTransmission
. In case this Transmission hasTransmission
children, then the children are queried as well and contained in the resultingSimpleTypeMap
. The aliases of the accordingTransmission
instances represent the resulting path to aTransmission
's final simple type.- Specified by:
toSimpleTypeMap
in interfaceTransmission
- Returns:
- The
SimpleTypeMap
representing thisTransmission
and (if any) its children, with the according aliases forming the paths to theTransmission
's values.
-