Class BinaryObjectEncoder
- java.lang.Object
-
- org.identityconnectors.framework.impl.serializer.binary.BinaryObjectEncoder
-
- All Implemented Interfaces:
BinaryObjectSerializer
,ObjectEncoder
public class BinaryObjectEncoder extends Object implements ObjectEncoder, BinaryObjectSerializer
-
-
Field Summary
Fields Modifier and Type Field Description static int
ENCODING_VERSION
Version for the overall encoding - if we need to change anything in the encoder, we will need to bump this and handle appropriatelystatic byte
FIELD_TYPE_ANONYMOUS_FIELD
static byte
FIELD_TYPE_END_OBJECT
static byte
FIELD_TYPE_NAMED_FIELD
static int
OBJECT_MAGIC
static byte
OBJECT_TYPE_ARRAY
static byte
OBJECT_TYPE_CLASS
static byte
OBJECT_TYPE_NULL
-
Constructor Summary
Constructors Constructor Description BinaryObjectEncoder(OutputStream output)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes the underylying stream after first flushing it.void
flush()
Flushes the underlying stream.void
writeBooleanContents(boolean v)
Writes the value in-line.void
writeBooleanField(String fieldName, boolean v)
Writes a boolean.void
writeByteArrayContents(byte[] v)
Special case for byte [] that uses base64 encoding for XMLvoid
writeByteContents(byte v)
Writes the value in-line.void
writeClassContents(Class<?> v)
Writes the value in-line.void
writeClassField(String fieldName, Class<?> v)
Writes a Class.void
writeDoubleContents(double v)
Writes the value in-line.void
writeDoubleField(String fieldName, double v)
Writes a double.void
writeFloatContents(float v)
Writes the value in-line.void
writeFloatField(String fieldName, float v)
Writes a float.void
writeIntContents(int v)
Writes the value in-line.void
writeIntField(String fieldName, int v)
Writes an int.void
writeLongContents(long v)
Writes the value in-line.void
writeLongField(String fieldName, long v)
Writes a long.void
writeObject(Object o)
Writes the next object to the stream.void
writeObjectContents(Object object)
Writes a sub-objectvoid
writeObjectField(String fieldName, Object object, boolean inline)
Writes an object using the appropriate serializer for that objectvoid
writeStringContents(String str)
Writes the value in-line.void
writeStringField(String fieldName, String v)
Writes a String.
-
-
-
Field Detail
-
ENCODING_VERSION
public static final int ENCODING_VERSION
Version for the overall encoding - if we need to change anything in the encoder, we will need to bump this and handle appropriately- See Also:
- Constant Field Values
-
OBJECT_MAGIC
public static final int OBJECT_MAGIC
- See Also:
- Constant Field Values
-
OBJECT_TYPE_NULL
public static final byte OBJECT_TYPE_NULL
- See Also:
- Constant Field Values
-
OBJECT_TYPE_CLASS
public static final byte OBJECT_TYPE_CLASS
- See Also:
- Constant Field Values
-
OBJECT_TYPE_ARRAY
public static final byte OBJECT_TYPE_ARRAY
- See Also:
- Constant Field Values
-
FIELD_TYPE_ANONYMOUS_FIELD
public static final byte FIELD_TYPE_ANONYMOUS_FIELD
- See Also:
- Constant Field Values
-
FIELD_TYPE_NAMED_FIELD
public static final byte FIELD_TYPE_NAMED_FIELD
- See Also:
- Constant Field Values
-
FIELD_TYPE_END_OBJECT
public static final byte FIELD_TYPE_END_OBJECT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
BinaryObjectEncoder
public BinaryObjectEncoder(OutputStream output)
-
-
Method Detail
-
flush
public void flush()
Description copied from interface:BinaryObjectSerializer
Flushes the underlying stream.- Specified by:
flush
in interfaceBinaryObjectSerializer
-
close
public void close()
Description copied from interface:BinaryObjectSerializer
Closes the underylying stream after first flushing it.- Specified by:
close
in interfaceBinaryObjectSerializer
-
writeObject
public void writeObject(Object o)
Description copied from interface:BinaryObjectSerializer
Writes the next object to the stream.- Specified by:
writeObject
in interfaceBinaryObjectSerializer
- Parameters:
o
- The object to write.- See Also:
for a list of supported types.
-
writeBooleanContents
public void writeBooleanContents(boolean v)
Description copied from interface:ObjectEncoder
Writes the value in-line.- Specified by:
writeBooleanContents
in interfaceObjectEncoder
-
writeBooleanField
public void writeBooleanField(String fieldName, boolean v)
Description copied from interface:ObjectEncoder
Writes a boolean.- Specified by:
writeBooleanField
in interfaceObjectEncoder
- Parameters:
fieldName
- A hint of the field name. Ignored for binary serialization. Becomes the attribute name for xml serializationv
- The value to serialize
-
writeByteContents
public void writeByteContents(byte v)
Description copied from interface:ObjectEncoder
Writes the value in-line.- Specified by:
writeByteContents
in interfaceObjectEncoder
-
writeByteArrayContents
public void writeByteArrayContents(byte[] v)
Description copied from interface:ObjectEncoder
Special case for byte [] that uses base64 encoding for XML- Specified by:
writeByteArrayContents
in interfaceObjectEncoder
-
writeClassContents
public void writeClassContents(Class<?> v)
Description copied from interface:ObjectEncoder
Writes the value in-line.- Specified by:
writeClassContents
in interfaceObjectEncoder
-
writeClassField
public void writeClassField(String fieldName, Class<?> v)
Description copied from interface:ObjectEncoder
Writes a Class.- Specified by:
writeClassField
in interfaceObjectEncoder
- Parameters:
fieldName
- A hint of the field name. Ignored for binary serialization. Becomes the attribute name for xml serializationv
- The value to serialize
-
writeDoubleContents
public void writeDoubleContents(double v)
Description copied from interface:ObjectEncoder
Writes the value in-line.- Specified by:
writeDoubleContents
in interfaceObjectEncoder
-
writeDoubleField
public void writeDoubleField(String fieldName, double v)
Description copied from interface:ObjectEncoder
Writes a double.- Specified by:
writeDoubleField
in interfaceObjectEncoder
- Parameters:
fieldName
- A hint of the field name. Ignored for binary serialization. Becomes the attribute name for xml serializationv
- The value to serialize
-
writeFloatContents
public void writeFloatContents(float v)
Description copied from interface:ObjectEncoder
Writes the value in-line.- Specified by:
writeFloatContents
in interfaceObjectEncoder
-
writeFloatField
public void writeFloatField(String fieldName, float v)
Description copied from interface:ObjectEncoder
Writes a float.- Specified by:
writeFloatField
in interfaceObjectEncoder
- Parameters:
fieldName
- A hint of the field name. Ignored for binary serialization. Becomes the attribute name for xml serializationv
- The value to serialize
-
writeIntContents
public void writeIntContents(int v)
Description copied from interface:ObjectEncoder
Writes the value in-line.- Specified by:
writeIntContents
in interfaceObjectEncoder
-
writeIntField
public void writeIntField(String fieldName, int v)
Description copied from interface:ObjectEncoder
Writes an int.- Specified by:
writeIntField
in interfaceObjectEncoder
- Parameters:
fieldName
- A hint of the field name. Ignored for binary serialization. Becomes the attribute name for xml serializationv
- The value to serialize
-
writeLongContents
public void writeLongContents(long v)
Description copied from interface:ObjectEncoder
Writes the value in-line.- Specified by:
writeLongContents
in interfaceObjectEncoder
-
writeLongField
public void writeLongField(String fieldName, long v)
Description copied from interface:ObjectEncoder
Writes a long.- Specified by:
writeLongField
in interfaceObjectEncoder
- Parameters:
fieldName
- A hint of the field name. Ignored for binary serialization. Becomes the attribute name for xml serializationv
- The value to serialize
-
writeObjectContents
public void writeObjectContents(Object object)
Description copied from interface:ObjectEncoder
Writes a sub-object- Specified by:
writeObjectContents
in interfaceObjectEncoder
- Parameters:
object
- The object to write
-
writeObjectField
public void writeObjectField(String fieldName, Object object, boolean inline)
Description copied from interface:ObjectEncoder
Writes an object using the appropriate serializer for that object- Specified by:
writeObjectField
in interfaceObjectEncoder
- Parameters:
fieldName
- A hint of the field name. Ignored for binary serialization. Becomes the subelement name for xml serializationobject
- The object to serializeinline
- Ignore for binary serialization. For xml serialization, this causes us not to have a sub-element. When inlining, polymorphic typing is not supported.
-
writeStringContents
public void writeStringContents(String str)
Description copied from interface:ObjectEncoder
Writes the value in-line.- Specified by:
writeStringContents
in interfaceObjectEncoder
-
writeStringField
public void writeStringField(String fieldName, String v)
Description copied from interface:ObjectEncoder
Writes a String.- Specified by:
writeStringField
in interfaceObjectEncoder
- Parameters:
fieldName
- A hint of the field name. Ignored for binary serialization. Becomes the attribute name for xml serializationv
- The value to serialize
-
-