org.opcfoundation.ua.encoding.binary
Class EncodeableReflectionSerializer

java.lang.Object
  extended by org.opcfoundation.ua.encoding.binary.EncodeableReflectionSerializer
All Implemented Interfaces:
IEncodeableSerializer

public class EncodeableReflectionSerializer
extends Object
implements IEncodeableSerializer

Serializes IEncodeables using reflection. This class can encode anything that implements IEncodeable.

Author:
Toni Kalajainen (toni.kalajainen@vtt.fi)

Constructor Summary
EncodeableReflectionSerializer(EncodeableDescTable table)
          Constructor for EncodeableReflectionSerializer.
 
Method Summary
 void calcEncodeable(Class<? extends IEncodeable> clazz, IEncodeable encodeable, IEncoder calculator)
          Calculate encodeable size in bytes.
 Class<? extends IEncodeable> getClass(ExpandedNodeId id)
          getClass.
 IEncodeable getEncodeable(Class<? extends IEncodeable> clazz, IDecoder decoder)
          Deserialize an object from a binary stream.
 ExpandedNodeId getNodeId(Class<? extends IEncodeable> clazz, EncodeType type)
          getNodeId.
 void getSupportedClasses(Collection<Class<? extends IEncodeable>> result)
          Returns a set of classes this serializes knows how to encode
 void getSupportedNodeIds(Collection<ExpandedNodeId> result)
          Get the set of node ids this serializes knows how to decode.
 void putEncodeable(Class<? extends IEncodeable> clazz, IEncodeable encodeable, IEncoder encoder)
          Serialize object to encoder.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EncodeableReflectionSerializer

public EncodeableReflectionSerializer(EncodeableDescTable table)

Constructor for EncodeableReflectionSerializer.

Parameters:
table - a EncodeableDescTable object.
Method Detail

calcEncodeable

public void calcEncodeable(Class<? extends IEncodeable> clazz,
                           IEncodeable encodeable,
                           IEncoder calculator)
                    throws EncodingException
Calculate encodeable size in bytes. Omit NodeId.

Specified by:
calcEncodeable in interface IEncodeableSerializer
Parameters:
clazz - a Class object.
encodeable - a IEncodeable object.
calculator - a IEncoder object.
Throws:
EncodingException - if any.

getEncodeable

public IEncodeable getEncodeable(Class<? extends IEncodeable> clazz,
                                 IDecoder decoder)
                          throws DecodingException
Deserialize an object from a binary stream. Reading NodeId must be omited.

Specified by:
getEncodeable in interface IEncodeableSerializer
Parameters:
clazz - a Class object.
decoder - a IDecoder object.
Returns:
deserialized object
Throws:
DecodingException - if any.

putEncodeable

public void putEncodeable(Class<? extends IEncodeable> clazz,
                          IEncodeable encodeable,
                          IEncoder encoder)
                   throws EncodingException
Serialize object to encoder. Serialization of NodeId is omited.

Specified by:
putEncodeable in interface IEncodeableSerializer
Parameters:
clazz - a Class object.
encodeable - a IEncodeable object.
encoder - a IEncoder object.
Throws:
EncodingException - if any.

getSupportedNodeIds

public void getSupportedNodeIds(Collection<ExpandedNodeId> result)
Get the set of node ids this serializes knows how to decode.

Specified by:
getSupportedNodeIds in interface IEncodeableSerializer
Parameters:
result - a collection to be filled with node ids

getSupportedClasses

public void getSupportedClasses(Collection<Class<? extends IEncodeable>> result)
Returns a set of classes this serializes knows how to encode

Specified by:
getSupportedClasses in interface IEncodeableSerializer
Parameters:
result - a Collection object.

getClass

public Class<? extends IEncodeable> getClass(ExpandedNodeId id)

getClass.

Specified by:
getClass in interface IEncodeableSerializer
Parameters:
id - a ExpandedNodeId object.
Returns:
a Class object.

getNodeId

public ExpandedNodeId getNodeId(Class<? extends IEncodeable> clazz,
                                EncodeType type)

getNodeId.

Specified by:
getNodeId in interface IEncodeableSerializer
Parameters:
clazz - a Class object.
type - a EncodeType object.
Returns:
a ExpandedNodeId object.


Copyright © 2018. All rights reserved.