Class CharacterStreamDescriptor
java.lang.Object
org.apache.derby.iapi.jdbc.CharacterStreamDescriptor
A description of a byte stream representing characters. The description is
used by decoders to properly configure themselves. Note that encoding is not
included in the description, because all internal byte streams are expected
to be using the modified UTF-8 encoding (see DataInput).
The information in the description is only guaranteed to be valid at the moment it is passed to the decoder object. As the decoder works on the stream, the information in the descriptor will be outdated.
To create a stream descriptor, obtain a Builder instance and set the
required parameters.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThe builder for theCharacterStreamDescriptorclass. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final longConstant for the character position, when it is positioned before the first character in the stream (i.e. at the very beginning of the stream or in the header).private final booleanTells if the stream can be buffered or not.private final longThe byte length of the stream,0if unknown.private final longThe character length of the stream,0if unknown.private final longThe current byte position.private final longThe current character position.private final longFirst data byte in the byte stream.private final longThe maximum allowed character length.private final booleanTells if the stream is aware of its own position.private final InputStreamReference to the stream we are describing. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateCreates a character stream descriptor, using the supplied builder. -
Method Summary
Modifier and TypeMethodDescriptionlonglonglonglongReturns the current character position.longReturns the first index of the described stream that contains real data.longReturns the imposed maximum character length on the described stream.Returns the associated positioned stream, if the stream is position aware.Returns the associated stream.booleanTells if the described stream should be buffered or not.booleanTells if the described stream is aware of its own position, and that it can reposition itself on request.toString()
-
Field Details
-
BEFORE_FIRST
public static final long BEFORE_FIRSTConstant for the character position, when it is positioned before the first character in the stream (i.e. at the very beginning of the stream or in the header).- See Also:
-
dataOffset
private final long dataOffsetFirst data byte in the byte stream. -
curBytePos
private final long curBytePosThe current byte position. -
curCharPos
private final long curCharPosThe current character position. -
byteLength
private final long byteLengthThe byte length of the stream,0if unknown. -
charLength
private final long charLengthThe character length of the stream,0if unknown. -
maxCharLength
private final long maxCharLengthThe maximum allowed character length. -
bufferable
private final boolean bufferableTells if the stream can be buffered or not. -
positionAware
private final boolean positionAwareTells if the stream is aware of its own position. -
stream
Reference to the stream we are describing.
-
-
Constructor Details
-
CharacterStreamDescriptor
Creates a character stream descriptor, using the supplied builder.Use the builder to create instances of this class.
- Parameters:
b- object builder- See Also:
-
-
Method Details
-
isBufferable
public boolean isBufferable()Tells if the described stream should be buffered or not.Some of the reasons a stream should not be buffered at this level, are the stream is already buffered, or it serves bytes directly from a byte array in memory.
- Returns:
trueif the stream should be buffered for improved performance,falseif it should not be buffered.
-
isPositionAware
public boolean isPositionAware()Tells if the described stream is aware of its own position, and that it can reposition itself on request.- Returns:
trueif the stream is position aware, @{code false} otherwise.
-
getByteLength
public long getByteLength() -
getCharLength
public long getCharLength() -
getCurBytePos
public long getCurBytePos() -
getCurCharPos
public long getCurCharPos()Returns the current character position.- Returns:
- The current character position, where the first character is at
position
1, orBEFORE_FIRSTif the stream is positioned before the first character.
-
getDataOffset
public long getDataOffset()Returns the first index of the described stream that contains real data.The information is typically used to filter out meta data at the head of the stream, and to correctly reset the stream.
- Returns:
- The first position in the stream containing real data.
-
getMaxCharLength
public long getMaxCharLength()Returns the imposed maximum character length on the described stream.The default value is
Long.MAX_VALUE.- Returns:
- The max allowed character length of the stream, or
0if no limit has been set.
-
getStream
-
getPositionedStream
Returns the associated positioned stream, if the stream is position aware.- Returns:
- A
PositionedStreamreference. - Throws:
ClassCastException- if the stream cannot be cast toPositionedStreamIllegalArgumentException- if the method is called and the assoicated stream isn't described as position aware.- See Also:
-
toString
-