Interface ObjectExtension<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>

Type Parameters:
O - Extensible object type
E - Extension type
All Known Subinterfaces:
NormalizedNodeStreamWriter.Extension, NormalizedNodeStreamWriter.MetadataExtension, NormalizedNodeStreamWriter.MountPointExtension
All Known Implementing Classes:
ImmutableMetadataExtension, ImmutableMetadataNormalizedNodeStreamWriter, ImmutableMountPointNormalizedNodeStreamWriter, JSONNormalizedNodeStreamWriter, XMLStreamNormalizedNodeStreamWriter

public interface ObjectExtension<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
An extension to a concrete ExtensibleObject. This is a marker interface to introduce type safety and unlike full Extensible Objects, does not specify how extensions are attached to an extensible object.

ObjectExtension instances are attached to their host object and share its state, which means they work in concert and care must be taken to ensure consistency, such as thread safety and observable effects.