Esempio n. 1
0
 /// <summary>
 /// This <c>readConstructor</c> method performs deserialization of
 /// the XML schema class type by traversing the contacts and creating
 /// them using details from the provided XML element. Because this will
 /// convert a non-primitive value it delegates to other converters to
 /// perform deserialization of lists and primitives.
 /// <p>
 /// This takes the approach of reading the XML elements and attributes
 /// before instantiating the object. Instantiation is performed using a
 /// declared constructor. The parameters for the constructor are taken
 /// from the deserialized objects.
 /// </summary>
 /// <param name="node">
 /// the XML element contact values are deserialized from
 /// </param>
 /// <param name="schema">
 /// this is the schema for the class to be deserialized
 /// </param>
 /// <param name="value">
 /// this is the value used for the deserialization
 /// </param>
 /// <returns>
 /// this returns the fully deserialized object graph
 /// </returns>
 public Object ReadConstructor(InputNode node, Schema schema, Instance value) {
    Creator creator = schema.getCreator();
    Object source = creator.GetInstance(criteria);
    if(value != null) {
       value.setInstance(source);
       criteria.Commit(source);
    }
    return source;
 }
Esempio n. 2
0
 /// <summary>
 /// This <c>read</c> method performs deserialization of the XML
 /// schema class type by traversing the contacts and instantiating them
 /// using details from the provided XML element. Because this will
 /// convert a non-primitive value it delegates to other converters to
 /// perform deserialization of lists and primitives.
 /// <p>
 /// If any of the required contacts are not present within the provided
 /// XML element this will terminate deserialization and throw an
 /// exception. The annotation missing is reported in the exception.
 /// </summary>
 /// <param name="node">
 /// the XML element contact values are deserialized from
 /// </param>
 /// <param name="schema">
 /// this is the schema for the class to be deserialized
 /// </param>
 /// <param name="value">
 /// this is the value used for the deserialization
 /// </param>
 /// <returns>
 /// this returns the fully deserialized object graph
 /// </returns>
 public Object Read(InputNode node, Schema schema, Instance value) {
    Creator creator = schema.getCreator();
    if(creator.isDefault()) {
       return ReadDefault(node, schema, value);
    } else {
       Read(node, null, schema);
    }
    return ReadConstructor(node, schema, value);
 }