public class Asn1PerEncodeBuffer extends Asn1EncodeBitBuffer implements Asn1PerMessageBuffer, Asn1PerEncoder
mByteIndex, mData, mTraceHandler
INITIAL_SIZE
context, mTypeCode
Constructor and Description |
---|
Asn1PerEncodeBuffer(boolean aligned)
This constructor creates a PER encode buffer object with the
default initial size.
|
Asn1PerEncodeBuffer(boolean aligned,
int size)
This constructor creates a PER encode buffer object with the
given initial size.
|
Modifier and Type | Method and Description |
---|---|
void |
byteAlign()
This method byte-aligns the buffer if the buffer is set
to be aligned.
|
void |
encodeBit(boolean value)
This method encodes a single bit value.
|
void |
encodeBit(boolean value,
java.lang.String ident)
This method encodes a single bit value.
|
void |
encodeBits(byte[] value,
int offset,
int nbits)
This method encodes bit values from an array of octets.
|
void |
encodeBits(byte[] value,
int offset,
int bitOffset,
int nbits)
This method encodes bit values from an array of octets.
|
void |
encodeBits(byte[] value,
int offset,
int bitOffset,
int nbits,
java.lang.String ident)
This method encodes bit values from an array of octets.
|
void |
encodeBits(byte[] value,
int offset,
int nbits,
java.lang.String ident)
This method encodes bit values from an array of octets.
|
void |
encodeCharString(java.lang.String value,
int nchars,
int offset,
int abpc,
int ubpc,
Asn1CharSet charSet)
This method encodes the contents of a known-multiplier character
string type.
|
void |
encodeConsWholeNumber(long adjustedValue,
long rangeValue)
This method implements the rules to encode a constrained whole
number as specified in section 10.5 of the X.691 standard.
|
void |
encodeConsWholeNumber(long adjustedValue,
long rangeValue,
java.lang.String ident)
This method implements the rules to encode a constrained whole
number as specified in section 10.5 of the X.691 standard.
|
void |
encodeInt(long value,
boolean encodeLen,
boolean signExtend)
This method implements the rules to encode either a
non-negative binary integer as specified in section 10.3 or
a two's complement binary integer as specified in section 10.4
of the X.691 standard.
|
void |
encodeInt(long value,
boolean encodeLen,
boolean signExtend,
java.lang.String ident)
This method implements the rules to encode either a
non-negative binary integer as specified in section 10.3 or
a two's complement binary integer as specified in section 10.4
of the X.691 standard.
|
void |
encodeInt(long value,
int nbits)
This method encodes bit values from an integer value.
|
void |
encodeInt(long value,
int nbits,
java.lang.String ident)
This method encodes bit values from an integer value.
|
long |
encodeLength(long value)
This method encodes either a constrained or unconstrained
length depending on whether a size constraint object is set
in this object.
|
void |
encodeLength(long value,
long lower,
long upper)
This method encodes a constrained length determinant value.
|
void |
encodeLengthEOM(long value)
This method checks to see if a zero byte needs to be added
after a fragmented length has been encoded.
|
void |
encodeOctetString(byte[] value,
int offset,
int nbytes)
This method encodes the given array of bytes as an unconstrained
octet string value.
|
void |
encodeOIDLengthAndValue(int[] value)
This method encodes the length and contents of an object
identifier value.
|
void |
encodeOpenType(Asn1PerEncodeBuffer buffer,
java.lang.String elemName)
This overloaded version of encodeOpenType will encode the
componet in the given PER encode buffer into this PER encode
buffer.
|
void |
encodeOpenType(byte[] value,
int offset,
int nbytes)
This method encodes the given array of bytes as an open type.
|
void |
encodeRelOIDLengthAndValue(int[] value)
This method encodes the length and contents of a relative
object identifier value.
|
void |
encodeSmallLength(int value)
This method implements the rules to encode a normally small length
as specified in section 11.9 of the X.691 standard.
|
void |
encodeSmallNonNegWholeNumber(int value)
This method implements the rules to encode a small non-negative
whole number as specified in section 10.6 of the X.691 standard.
|
long |
encodeUnconsLength(long value)
This method encodes a general (unconstrained) length
determinant value as described in section 10.9 or the
X.691 standard.
|
boolean |
isAligned()
This method is used to test if PER aligned encoding has been
specified.
|
void |
setAligned(boolean value)
This method is used to turn PER aligned encoding on or off
|
void |
setSizeConstraint(long lower,
long upper)
This method is used to set a size constraint within the
buffer object.
|
void |
setSizeConstraintExt(long lower,
long upper,
long extLower,
long extUpper)
This method is used to set an extensible size constraint within
the buffer object.
|
binDump, checkSize, copy, copy, encodeBits, encodeLongBits, encodeLongBits, getBitOffsetInByte, getBuffer, getByteArrayInputStream, getByteIndex, getMsgBitCnt, getMsgByteCnt, getMsgCopy, getMsgLength, getTraceHandler, hexDump, isByteAligned, reset, reverseBytes, setMsgBitCnt, toString, write, write, write, write
binDump, copy, encodeIntSigned, encodeIntUnsigned, getInputStream, getMinimalOctetsSigned, getMinimalOctetsUnsigned, getOutputStream, hexDump
addNamedEventHandler, getEventHandlerListCount, hasEventHandlers, invokeCharacters, invokeEndElement, invokeStartElement, setEventHandlerList
getContext, hexDump, hexDump, setKey, setTypeCode
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getInputStream, getMsgBitCnt, getTraceHandler
encodeBits
public Asn1PerEncodeBuffer(boolean aligned)
aligned
- Indicates whether PER aligned or unaligned encoding
should be done.public Asn1PerEncodeBuffer(boolean aligned, int size)
aligned
- Indicates whether PER aligned or unaligned encoding
should be done.size
- The initial size in bytes of an encode buffer.public void byteAlign()
byteAlign
in interface Asn1BitMessageBuffer
byteAlign
in class Asn1EncodeBitBuffer
public void encodeBit(boolean value, java.lang.String ident)
encodeBit
in interface Asn1PerEncoder
value
- Boolean value of bit to be encoded.ident
- Bit field identifier name for tracing.public void encodeBit(boolean value)
encodeBit
in interface Asn1PerEncoder
encodeBit
in class Asn1EncodeBitBuffer
value
- Boolean value of bit to be encoded.public void encodeBits(byte[] value, int offset, int nbits, java.lang.String ident) throws Asn1InvalidArgException
encodeBits
in interface Asn1PerEncoder
value
- Octet array containing bits to be encodedoffset
- Starting byte offset in valuenbits
- Number of bits to encodeident
- Bit field identifier name for tracing, or null.Asn1InvalidArgException
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeBits(byte[] value, int offset, int bitOffset, int nbits, java.lang.String ident) throws Asn1InvalidArgException
value
- Octet array containing bits to be encodedoffset
- Starting byte offset in valuebitOffset
- Starting bit offset in first byte. Pass 0 to begin
encoding with the most significant bit. Pass 7 to begin with the
least significant bit.nbits
- Number of bits to encodeident
- Bit field identifier name for tracing, or null.Asn1InvalidArgException
public void encodeBits(byte[] value, int offset, int bitOffset, int nbits)
encodeBits
in class Asn1EncodeBitBuffer
value
- Octet array containing bits to be encodedoffset
- Starting byte offset in valuebitOffset
- Starting bit offset in first byte. Pass 0 to begin
encoding with the most significant bit. Pass 7 to begin with the
least significant bit.nbits
- Number of bits to encodepublic void encodeBits(byte[] value, int offset, int nbits) throws Asn1InvalidArgException
encodeBits
in interface Asn1PerEncoder
encodeBits
in class Asn1EncodeBitBuffer
value
- Octet array containing bits to be encodedoffset
- Starting byte offset in valuenbits
- Number of bits to encodeAsn1InvalidArgException
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeCharString(java.lang.String value, int nchars, int offset, int abpc, int ubpc, Asn1CharSet charSet) throws Asn1Exception
encodeCharString
in interface Asn1PerEncoder
value
- String containing characters to encodenchars
- Number of characters from string to encodeoffset
- Offset to first char in string to encodeabpc
- Number of bits per character (aligned)ubpc
- Number of bits per character (unaligned)charSet
- Object representing permitted alphabet
constraint character set (optional)Asn1Exception
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeConsWholeNumber(long adjustedValue, long rangeValue, java.lang.String ident) throws Asn1InvalidArgException
encodeConsWholeNumber
in interface Asn1PerEncoder
adjustedValue
- Adjusted value to be encoded =
value - lower range endpoint value. Negative
values are interpreted as unsigned integers.rangeValue
- upper - lower + 1. Negative values are
interpreted as unsigned integers. Zero is
used to represent 2^64.ident
- Tracing identifierAsn1InvalidArgException
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeConsWholeNumber(long adjustedValue, long rangeValue) throws Asn1InvalidArgException
encodeConsWholeNumber
in interface Asn1PerEncoder
adjustedValue
- Adjusted value to be encoded =
value - lower range endpoint valuerangeValue
- upper - lower + 1. Negative values are
interpreted as unsigned integers. Zero is
used to represent 2^64.Asn1InvalidArgException
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeInt(long value, int nbits, java.lang.String ident) throws Asn1InvalidArgException
encodeInt
in interface Asn1PerEncoder
value
- Integer containing bits to be encodednbits
- Number of bits to encodeident
- Tracing identifierAsn1InvalidArgException
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeInt(long value, int nbits) throws Asn1InvalidArgException
encodeInt
in interface Asn1PerEncoder
value
- Integer containing bits to be encodednbits
- Number of bits to encodeAsn1InvalidArgException
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeInt(long value, boolean encodeLen, boolean signExtend, java.lang.String ident) throws Asn1InvalidArgException
encodeInt
in interface Asn1PerEncoder
value
- Integer value to be encodedencodeLen
- Flag indicating length determinant should be
encoded before encoding integer value.signExtend
- Flag indicating if sign extension should be performed.ident
- Tracing identifierAsn1InvalidArgException
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeInt(long value, boolean encodeLen, boolean signExtend) throws Asn1InvalidArgException
encodeInt
in interface Asn1PerEncoder
value
- Integer value to be encodedencodeLen
- Flag indicating length determinant should be
encoded before encoding integer value.signExtend
- Flag indicating if sign extension should be performed.Asn1InvalidArgException
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public long encodeLength(long value) throws Asn1InvalidArgException
encodeLength
in interface Asn1PerEncoder
value
- Length value to be encodedAsn1InvalidArgException
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public long encodeUnconsLength(long value) throws Asn1InvalidArgException
value
- Length value to be encodedAsn1InvalidArgException
public void encodeLength(long value, long lower, long upper) throws Asn1Exception
encodeLength
in interface Asn1PerEncoder
value
- Length value to be encodedlower
- Lower bound (inclusive) of length value rangeupper
- Upper bound (inclusive) of length value rangeAsn1Exception
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeLengthEOM(long value)
encodeLengthEOM
in interface Asn1PerEncoder
value
- Original length value that was encoded.public void encodeOIDLengthAndValue(int[] value) throws Asn1Exception
encodeOIDLengthAndValue
in interface Asn1PerEncoder
value
- Integer array containing arcs to encodeAsn1Exception
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeRelOIDLengthAndValue(int[] value) throws Asn1Exception
encodeRelOIDLengthAndValue
in interface Asn1PerEncoder
value
- Integer array containing arcs to encodeAsn1Exception
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeOctetString(byte[] value, int offset, int nbytes) throws Asn1Exception
encodeOctetString
in interface Asn1PerEncoder
value
- Byte array containing data to encode. This is
assumed to contain a previously encoded PER
component.offset
- Starting offset in byte array valuenbytes
- Number of bytes to encodeAsn1Exception
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeOpenType(byte[] value, int offset, int nbytes) throws Asn1Exception
encodeOpenType
in interface Asn1PerEncoder
value
- Byte array containing data to encode. This is
assumed to contain a previously encoded PER
component.offset
- Starting offset in byte array valuenbytes
- Number of bytes to encodeAsn1Exception
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeOpenType(Asn1PerEncodeBuffer buffer, java.lang.String elemName) throws Asn1Exception
buffer
- PER encode buffer containing encoded message
component.elemName
- Name of element being encoded.Asn1Exception
public void encodeSmallLength(int value) throws Asn1InvalidArgException
encodeSmallLength
in interface Asn1PerEncoder
value
- Value to be encodedAsn1InvalidArgException
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public void encodeSmallNonNegWholeNumber(int value) throws Asn1InvalidArgException
encodeSmallNonNegWholeNumber
in interface Asn1PerEncoder
value
- Value to be encodedAsn1InvalidArgException
- Any exception thrown by the underlying
Asn1PerEncodeBuffer.public boolean isAligned()
isAligned
in interface Asn1PerMessageBuffer
public void setAligned(boolean value)
public void setSizeConstraint(long lower, long upper)
lower
- Lower bound of root constraintupper
- Upper bound of root constraintpublic void setSizeConstraintExt(long lower, long upper, long extLower, long extUpper)
lower
- Lower bound of root constraintupper
- Upper bound of root constraintextLower
- Lower bound of extension constraintextUpper
- Upper bound of extension constraint