- java.lang.Object
-
- org.refcodes.component.AbstractConnectableAutomaton
-
- org.refcodes.codec.BaseEncoder
-
- All Implemented Interfaces:
Flushable
,BaseMetricsAccessor
,BaseMetricsAccessor.BaseMetricsBuilder<BaseEncoder>
,BaseMetricsAccessor.BaseMetricsMutator
,BaseMetricsAccessor.BaseMetricsProperty
,Encoder
,org.refcodes.component.Closable
,org.refcodes.component.Closable.CloseAutomaton
,org.refcodes.component.ClosedAccessor
,org.refcodes.component.ConnectableComponent
,org.refcodes.component.ConnectableComponent.ConnectableAutomaton
,org.refcodes.component.ConnectionStatusAccessor
,org.refcodes.component.Flushable
,org.refcodes.component.OpenedAccessor
,org.refcodes.io.ByteSource
,org.refcodes.io.BytesSource
,org.refcodes.io.BytesTransmitter
,org.refcodes.io.ByteTransmitter
,org.refcodes.io.Transmittable
,org.refcodes.mixin.OutputStreamAccessor
- Direct Known Subclasses:
BaseEncoder.BaseEncoderConnection
public class BaseEncoder extends org.refcodes.component.AbstractConnectableAutomaton implements BaseMetricsAccessor.BaseMetricsProperty, BaseMetricsAccessor.BaseMetricsBuilder<BaseEncoder>, Encoder
TheBaseEncoder
implements theBaseBuilder
functionality in terms of aBytesTransmitter
. Make sure to callclose()
when done as the final padding bytes are appended to the end!
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BaseEncoder.BaseEncoderConnection
TheBaseEncoder.BaseEncoderConnection
implements theBaseEncoder
functionality in terms of aConnectionComponent
.-
Nested classes/interfaces inherited from interface org.refcodes.codec.BaseMetricsAccessor
BaseMetricsAccessor.BaseMetricsBuilder<B extends BaseMetricsAccessor.BaseMetricsBuilder<B>>, BaseMetricsAccessor.BaseMetricsMutator, BaseMetricsAccessor.BaseMetricsProperty
-
Nested classes/interfaces inherited from interface org.refcodes.io.BytesTransmitter
org.refcodes.io.BytesTransmitter.TransmitterOutputStream
-
Nested classes/interfaces inherited from interface org.refcodes.component.Closable
org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>
-
Nested classes/interfaces inherited from interface org.refcodes.component.ClosedAccessor
org.refcodes.component.ClosedAccessor.ClosedMutator, org.refcodes.component.ClosedAccessor.ClosedProperty
-
Nested classes/interfaces inherited from interface org.refcodes.component.ConnectableComponent
org.refcodes.component.ConnectableComponent.ConnectableAutomaton
-
Nested classes/interfaces inherited from interface org.refcodes.component.ConnectionStatusAccessor
org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusProperty
-
Nested classes/interfaces inherited from interface org.refcodes.component.Flushable
org.refcodes.component.Flushable.FlushBuilder<B extends org.refcodes.component.Flushable.FlushBuilder<B>>
-
Nested classes/interfaces inherited from interface org.refcodes.component.OpenedAccessor
org.refcodes.component.OpenedAccessor.OpenedMutator, org.refcodes.component.OpenedAccessor.OpenedProperty
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.OutputStreamAccessor
org.refcodes.mixin.OutputStreamAccessor.OutputStreamBuilder<B extends org.refcodes.mixin.OutputStreamAccessor.OutputStreamBuilder<?>>, org.refcodes.mixin.OutputStreamAccessor.OutputStreamMutator, org.refcodes.mixin.OutputStreamAccessor.OutputStreamProperty
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseEncoder()
Explicit default constructor.BaseEncoder(OutputStream aOutputStream)
Constructs theBaseEncoder
instance using the providedOutputStream
to receive the encoded data.BaseEncoder(OutputStream aOutputStream, BaseMetrics aBaseMetrics)
Constructs theBaseEncoder
instance using the providedOutputStream
to receive the encoded data.BaseEncoder(org.refcodes.io.BytesSource aByteConsumer)
Constructs theBaseEncoder
instance using the providedBytesSource
to receive the encoded data.BaseEncoder(org.refcodes.io.BytesTransmitter aByteSender)
Constructs theBaseEncoder
instance using the providedBytesTransmitter
to receive the encoded data.BaseEncoder(org.refcodes.io.OutputStreamBytesTransmitter aOutputStreamBytesTransmitter, BaseMetrics aBaseMetrics)
Constructs theBaseEncoder
instance using the providedOutputStreamBytesTransmitter
to receive the encoded data.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Make sure to callclose()
when done as the final padding bytes are appended to the end!void
flush()
BaseMetrics
getBaseMetrics()
Retrieves the base codec metrics from the base codec metrics property.protected void
open(org.refcodes.io.BytesSource aConnection)
Open.void
setBaseMetrics(BaseMetrics aBaseMetrics)
Sets the base codec metrics for the base codec metrics property.void
transmitAllBytes(byte[] aDatagram)
void
transmitByte(byte aByte)
void
transmitBytes(byte[] aDatagram, int aOffset, int aLength)
BaseEncoder
withBaseMetrics(BaseMetrics aBaseMetrics)
Sets the base codec metrics for the base codec metrics property.-
Methods inherited from class org.refcodes.component.AbstractConnectableAutomaton
getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatus
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.refcodes.codec.BaseMetricsAccessor.BaseMetricsProperty
letBaseMetrics
-
Methods inherited from interface org.refcodes.component.Closable
closeIn, closeQuietly, closeUnchecked
-
-
-
-
Constructor Detail
-
BaseEncoder
public BaseEncoder(OutputStream aOutputStream) throws IOException
Constructs theBaseEncoder
instance using the providedOutputStream
to receive the encoded data.- Parameters:
aOutputStream
- the output stream- Throws:
IOException
- throw in case using theOutputStream
caused I/O related problems.
-
BaseEncoder
public BaseEncoder(OutputStream aOutputStream, BaseMetrics aBaseMetrics) throws IOException
Constructs theBaseEncoder
instance using the providedOutputStream
to receive the encoded data.- Parameters:
aOutputStream
- the output streamaBaseMetrics
- TheBaseMetrics
to use.- Throws:
IOException
- throw in case using theOutputStream
caused I/O related problems.
-
BaseEncoder
public BaseEncoder(org.refcodes.io.BytesSource aByteConsumer)
Constructs theBaseEncoder
instance using the providedBytesSource
to receive the encoded data.- Parameters:
aByteConsumer
- TheBytesSource
to be fed with the encoded data.
-
BaseEncoder
public BaseEncoder(org.refcodes.io.BytesTransmitter aByteSender) throws IOException
Constructs theBaseEncoder
instance using the providedBytesTransmitter
to receive the encoded data.- Parameters:
aByteSender
- TheBytesTransmitter
to be fed with the encoded data.- Throws:
IOException
- in case opening or accessing an open line (connection, junction, link) caused problems.
-
BaseEncoder
public BaseEncoder(org.refcodes.io.OutputStreamBytesTransmitter aOutputStreamBytesTransmitter, BaseMetrics aBaseMetrics) throws IOException
Constructs theBaseEncoder
instance using the providedOutputStreamBytesTransmitter
to receive the encoded data.- Parameters:
aOutputStreamBytesTransmitter
- TheOutputStreamBytesTransmitter
to use.aBaseMetrics
- TheBaseMetrics
to use.- Throws:
IOException
- in case opening or accessing an open line (connection, junction, link) caused problems.
-
BaseEncoder
protected BaseEncoder()
Explicit default constructor.
-
-
Method Detail
-
getBaseMetrics
public BaseMetrics getBaseMetrics()
Retrieves the base codec metrics from the base codec metrics property.- Specified by:
getBaseMetrics
in interfaceBaseMetricsAccessor
- Returns:
- The base codec metrics stored by the base codec metrics property.
-
setBaseMetrics
public void setBaseMetrics(BaseMetrics aBaseMetrics)
Sets the base codec metrics for the base codec metrics property.- Specified by:
setBaseMetrics
in interfaceBaseMetricsAccessor.BaseMetricsMutator
- Parameters:
aBaseMetrics
- The base codec metrics to be stored by the font style property.
-
withBaseMetrics
public BaseEncoder withBaseMetrics(BaseMetrics aBaseMetrics)
Sets the base codec metrics for the base codec metrics property.- Specified by:
withBaseMetrics
in interfaceBaseMetricsAccessor.BaseMetricsBuilder<BaseEncoder>
- Parameters:
aBaseMetrics
- The base codec metrics to be stored by the font style property.- Returns:
- The builder for applying multiple build operations.
-
transmitByte
public void transmitByte(byte aByte) throws IOException
- Specified by:
transmitByte
in interfaceorg.refcodes.io.ByteSource
- Specified by:
transmitByte
in interfaceorg.refcodes.io.BytesSource
- Throws:
IOException
-
transmitAllBytes
public void transmitAllBytes(byte[] aDatagram) throws IOException
- Specified by:
transmitAllBytes
in interfaceorg.refcodes.io.BytesSource
- Throws:
IOException
-
transmitBytes
public void transmitBytes(byte[] aDatagram, int aOffset, int aLength) throws IOException
- Specified by:
transmitBytes
in interfaceorg.refcodes.io.BytesSource
- Specified by:
transmitBytes
in interfaceorg.refcodes.io.BytesTransmitter
- Throws:
IOException
-
flush
public void flush() throws IOException
- Specified by:
flush
in interfaceorg.refcodes.io.ByteTransmitter
- Specified by:
flush
in interfaceFlushable
- Specified by:
flush
in interfaceorg.refcodes.component.Flushable
- Throws:
IOException
-
close
public void close() throws IOException
Make sure to callclose()
when done as the final padding bytes are appended to the end!- Specified by:
close
in interfaceorg.refcodes.component.Closable
- Overrides:
close
in classorg.refcodes.component.AbstractConnectableAutomaton
- Throws:
IOException
-
open
protected void open(org.refcodes.io.BytesSource aConnection) throws IOException
Open.- Parameters:
aConnection
- the connection- Throws:
IOException
- the open exception
-
-