|
Rule Execution Server API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IlrSerializer
This interface has methods to write an object model to an output stream and to read it back.
Method Summary | |
---|---|
ClassLoader |
getClassLoader()
Returns the class loader set by a call to setClassLoader . |
String |
getName()
Returns the serializer name |
boolean |
isCompactMode()
Returns true if compact mode is enabled when
writing an object model. |
boolean |
isJavaClassLookupEnabled()
Returns true if Java class lookup is enabled when reading
an object model definition. |
IlrDynamicObjectModel |
readObjectModel(Reader reader)
Reads an object model from a reader. |
void |
setClassLoader(ClassLoader classLoader)
Sets the class loader used by the serializer to define native classes. |
void |
setCompactMode(boolean compactMode)
Sets compact mode to compactMode . |
void |
setJavaClassLookupEnabled(boolean flag)
Enables or disables Java class lookup. |
void |
writeObjectModel(IlrObjectModel model,
Writer writer)
Writes an object model to a writer. |
void |
writeObjectModel(IlrObjectModel model,
Writer writer,
IlrSelector selector)
Writes parts of an object model to a writer. |
void |
writeObjectModel(IlrObjectModel model,
Writer writer,
IlrSelector selector,
Iterator initialTypes)
Writes parts of an object model to a writer. |
Method Detail |
---|
String getName()
ClassLoader getClassLoader()
setClassLoader
.
void setClassLoader(ClassLoader classLoader)
null
then the
Class.forName
method is used to load classes.
Initially this property is null
.
boolean isJavaClassLookupEnabled()
true
if Java class lookup is enabled when reading
an object model definition. When enabled, classes declared as native
are mapped to the corresponding Java class.
Initially this property is false
.
void setJavaClassLookupEnabled(boolean flag)
boolean isCompactMode()
true
if compact mode is enabled when
writing an object model. When enabled classes bound to actual
Java classes (those for which IlrType.getJavaClass
has a non null
return value) are not written to the
output stream by the writeObjectModel
method.
Note that when reading streams that were produced in
compact mode, Java class lookup must be enabled (see
setJavaClassLookupEnabled
.
Initially this property is not enabled.
void setCompactMode(boolean compactMode)
compactMode
.
void writeObjectModel(IlrObjectModel model, Writer writer) throws IOException
IOException
- if an I/O error occursmodel
- an object modelvoid writeObjectModel(IlrObjectModel model, Writer writer, IlrSelector selector) throws IOException
selector
For a model element to be serialized it must be accepted by the selector along with all other model elements on which it depends.
It follows that if the given selector rejects a class (say C
)
but accepts an attribute of another class having type C
then the attribute will not be serialized since its type
has been rejected. The same goes for methods with respect to their
parameter types, return type and exception types and also for
classes with respect to their superclasses and superinterfaces.
IOException
- if an I/O error occursmodel
- an object modelwriter
- a writerselector
- a selector which specifies which elements of the
object model will be serialized. If null
the object model is completely serialized.void writeObjectModel(IlrObjectModel model, Writer writer, IlrSelector selector, Iterator initialTypes) throws IOException
selector
This method writes the classes and enums given by the initialTypes
iterator along with their members (attributes, methods and tags). Other
types, not present in initialTypes
but indirectly required
(such as the types of attribute, etc...) are also written but their members
are omitted.
Note that for a model element to be serialized it must also be accepted by the given selector along with all other model elements on which it depends.
It is recommended to use IlrSelectors.dynamicTypes(model)
as
the value of the initialTypes
parameter so that classes bound to
actual Java classes are not serialized.
IOException
model
- an object modelwriter
- a writerselector
- an object model subset selector. If null
, then
IlrSelectors.AllElements
is used.initialTypes
- an iterator which iterates over the classes and enums that
must be fully serialized.IlrDynamicObjectModel readObjectModel(Reader reader) throws IOException, IlrSyntaxError
IOException
- if an I/O error occurs
IlrSyntaxError
- if a syntax error occursreader
- a reader.
|
Rule Execution Server API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |