Package jadex.binary
Class AbstractEncodingContext
java.lang.Object
jadex.binary.AbstractEncodingContext
- All Implemented Interfaces:
IEncodingContext
,jadex.common.transformation.traverser.IRootObjectContext
,jadex.common.transformation.traverser.IUserContextContainer
- Direct Known Subclasses:
DataOutputEncodingContext
,EncodingContext
,FramingEncodingContext
Abstract encoding context that provides base functionality.
-
Field Summary
FieldsModifier and TypeFieldDescriptionCache for class IDs.protected ClassLoader
The classloaderThe class name pool.protected boolean
Flag indicating class names should not be written (can be temporarily disabled for one write).Map with known objects and their IDsprotected Object
The last input object.The cache for non-inner classes.protected List
<jadex.common.transformation.traverser.ITraverseProcessor> The preprocessors.protected Object
The root object.The string pool.protected Object
A user context.protected long
The bytes written to the output. -
Constructor Summary
ConstructorsConstructorDescriptionAbstractEncodingContext
(Object rootobject, Object usercontext, List<jadex.common.transformation.traverser.ITraverseProcessor> preprocessors, ClassLoader classloader, SerializationConfig config) -
Method Summary
Modifier and TypeMethodDescriptionlong
Creates ID for an object.Gets the classloader.Returns the non-inner class cache.getObjectId
(Object object) Gets the ID of a known object.List
<jadex.common.transformation.traverser.ITraverseProcessor> Returns the preprocessors.Get the rootobject.Returns the user context.long
Returns the number of bytes written.protected boolean
protected void
pooledWrite
(Map<String, Integer> pool, String string) Writes a string using a pool.void
setIgnoreNextClassWrite
(boolean state) Puts the context in a state where the next call to writeClass is ignored.void
setInputObject
(Object object) Sets the object for which the next createObjectId() call creates an ID.void
Starts an object frame when using a context with framing support.void
startObjectFrame
(boolean fixedsize) Starts an object frame when using a context with framing support.void
Stops an object frame when using a context with framing support.void
writeBoolean
(boolean bool) Writes a boolean.void
writeClass
(Class<?> clazz) Writes a class to the context.int
writeClassname
(String name) Writes the name of a class.void
writeSignedVarInt
(long value) Writes a signed VarInt.void
writeString
(String string) Writes a string to the context.void
writeVarInt
(long value) Writes a VarInt.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface jadex.binary.IEncodingContext
write, writeByte
-
Field Details
-
knownobjects
Map with known objects and their IDs -
lastinputobject
The last input object. -
preprocessors
The preprocessors. -
classloader
The classloader -
rootobject
The root object. -
usercontext
A user context. -
ignorewriteclass
protected boolean ignorewriteclassFlag indicating class names should not be written (can be temporarily disabled for one write). -
nonanonclasscache
The cache for non-inner classes. -
stringpool
The string pool. -
classidcache
Cache for class IDs. -
classnamepool
The class name pool. -
writtenbytes
protected long writtenbytesThe bytes written to the output.
-
-
Constructor Details
-
AbstractEncodingContext
public AbstractEncodingContext(Object rootobject, Object usercontext, List<jadex.common.transformation.traverser.ITraverseProcessor> preprocessors, ClassLoader classloader, SerializationConfig config)
-
-
Method Details
-
getPreprocessors
Returns the preprocessors.- Specified by:
getPreprocessors
in interfaceIEncodingContext
- Returns:
- The preprocessors
-
getClassLoader
Gets the classloader.- Specified by:
getClassLoader
in interfaceIEncodingContext
- Returns:
- The classloader.
-
getRootObject
Get the rootobject.- Specified by:
getRootObject
in interfacejadex.common.transformation.traverser.IRootObjectContext
- Returns:
- the rootobject.
-
getWrittenBytes
public long getWrittenBytes()Returns the number of bytes written.- Specified by:
getWrittenBytes
in interfaceIEncodingContext
- Returns:
- The number of bytes written.
-
getUserContext
Returns the user context.- Specified by:
getUserContext
in interfacejadex.common.transformation.traverser.IUserContextContainer
- Returns:
- The user context.
-
getNonInnerClassCache
Returns the non-inner class cache.- Specified by:
getNonInnerClassCache
in interfaceIEncodingContext
- Returns:
- The non-inner class cache.
-
createObjectId
public long createObjectId()Creates ID for an object.- Specified by:
createObjectId
in interfaceIEncodingContext
- Parameters:
object
- The object- Returns:
- The ID.
-
setInputObject
Sets the object for which the next createObjectId() call creates an ID.- Specified by:
setInputObject
in interfaceIEncodingContext
- Parameters:
object
- The object.
-
getObjectId
Gets the ID of a known object.- Specified by:
getObjectId
in interfaceIEncodingContext
- Parameters:
object
- The object- Returns:
- The ID.
-
setIgnoreNextClassWrite
public void setIgnoreNextClassWrite(boolean state) Puts the context in a state where the next call to writeClass is ignored.- Specified by:
setIgnoreNextClassWrite
in interfaceIEncodingContext
- Parameters:
state
- If true, the next class write will be ignored and the state reset.
-
isIgnoreNextClassWrite
protected boolean isIgnoreNextClassWrite() -
writeVarInt
public void writeVarInt(long value) Writes a VarInt.- Specified by:
writeVarInt
in interfaceIEncodingContext
- Parameters:
value
- Value being written.
-
writeSignedVarInt
public void writeSignedVarInt(long value) Writes a signed VarInt.- Specified by:
writeSignedVarInt
in interfaceIEncodingContext
- Parameters:
value
- Value being written.
-
writeString
Description copied from interface:IEncodingContext
Writes a string to the context.- Specified by:
writeString
in interfaceIEncodingContext
- Parameters:
string
-
-
writeClass
Description copied from interface:IEncodingContext
Writes a class to the context.- Specified by:
writeClass
in interfaceIEncodingContext
- Parameters:
clazz
-
-
writeClassname
Description copied from interface:IEncodingContext
Writes the name of a class.- Specified by:
writeClassname
in interfaceIEncodingContext
- Parameters:
name
- The name of the class.
-
writeBoolean
public void writeBoolean(boolean bool) Writes a boolean.- Specified by:
writeBoolean
in interfaceIEncodingContext
- Parameters:
bool
- The boolean.
-
startObjectFrame
public void startObjectFrame()Starts an object frame when using a context with framing support.- Specified by:
startObjectFrame
in interfaceIEncodingContext
-
startObjectFrame
public void startObjectFrame(boolean fixedsize) Starts an object frame when using a context with framing support.- Specified by:
startObjectFrame
in interfaceIEncodingContext
- Parameters:
fixedsize
- If true, use fixed-size (integer) framing. Set true if the object being framed is expected to be larger than 127 bytes (same type of object MUST use either fixed OR variable framing).
-
stopObjectFrame
public void stopObjectFrame()Stops an object frame when using a context with framing support.- Specified by:
stopObjectFrame
in interfaceIEncodingContext
-
pooledWrite
Writes a string using a pool.- Parameters:
string
-
-