Interface OpaqueObject<T extends OpaqueObject<T>>

  • Type Parameters:
    T - Generated interface
    All Superinterfaces:
    BindingObject, DataContainer, ValueAware<OpaqueData<?>>
    All Known Implementing Classes:
    AbstractOpaqueObject, CodecOpaqueObject

    @Beta
    public interface OpaqueObject<T extends OpaqueObject<T>>
    extends BindingObject, DataContainer, ValueAware<OpaqueData<?>>
    An opaque object. This interface supports code generation for both anyxml and anydata. Both of these statements essentially share the same characteristic of storing data whose actual schema and representation is not known at compile-time. Schema may be unknown even at runtime, and furthermore the representation may vary during run-time, based on source of the data.

    The code generation is therefore limited to a single interface, which only provides the default implementation of implementedInterface() bound to itself. The value is communicated through ValueAware.getValue(), which is only an encapsulation holding information about the object model and the data in that object model.

    Implementations are strongly encouraged to use AbstractOpaqueObject as their base implementation class.