public Attr encode( Object value, XSDAttributeDeclaration attribute, Document document, XSDTypeDefinition container) { AttributeEncodeExecutor executor = new AttributeEncodeExecutor(value, attribute, document, logger); BindingVisitorDispatch.walk(value, bindingWalker, attribute, executor, container, context); return executor.getEncodedAttribute(); }
/** * Encodes a value corresponding to an element in a schema. * * @param value The value to encode. * @param element The declaration of the element corresponding to the value. * @param document The document used to create the encoded element. * @return The encoded value as an element. */ public Element encode( Object value, XSDElementDeclaration element, Document document, XSDTypeDefinition container) { ElementEncodeExecutor executor = new ElementEncodeExecutor( value, element, document, logger, (NamespaceSupport) context.getComponentInstanceOfType(NamespaceSupport.class)); BindingVisitorDispatch.walk(value, bindingWalker, element, executor, container, context); return executor.getEncodedElement(); }
new GetPropertyExecutor(entry.object, attribute); BindingVisitorDispatch.walk( object, bindingWalker, entry.element, executor, context);
public static void walk( Object object, BindingWalker bindingWalker, XSDFeature component, Visitor visitor, XSDTypeDefinition container, MutablePicoContainer context) { // do not test simple bindings as they are often mismatched and rely on converters if (object instanceof ComplexAttribute) { MismatchedBindingFinder finder = new MismatchedBindingFinder(object); bindingWalker.walk(component, finder, container, context); if (finder.foundMismatchedBinding()) { // if a mismatched binding is found, just visit xs:anyType binding visitor.visit(bindingWalker.getAnyTypeBinding()); return; } } bindingWalker.walk(component, visitor, container, context); } }