- NormalizedNode<?, ?> create(final PathArgument first, final Iterator<PathArgument> others,
- final Optional<NormalizedNode<?, ?>> deepestChild) {
- final NormalizedNodeBuilder<NodeIdentifier, DOMSource, AnyXmlNode> builder = Builders.anyXmlBuilder()
+ final boolean isMixin() {
+ return false;
+ }
+ }
+
+ private static final class AnydataNormalization extends AbstractOpaqueNormalization {
+ AnydataNormalization(final AnydataSchemaNode schema) {
+ super(schema);
+ }
+
+ @Override
+ NormalizedNode create(final PathArgument first, final Iterator<PathArgument> others,
+ final Optional<NormalizedNode> deepestChild) {
+ checkState(deepestChild.isPresent(), "Cannot instantiate anydata node without a value");
+ final NormalizedNode child = deepestChild.get();
+ checkState(child instanceof AnydataNode, "Invalid child %s", child);
+ return createAnydata((AnydataNode<?>) child);
+ }
+
+ private <T> AnydataNode<T> createAnydata(final AnydataNode<T> child) {
+ return Builders.anydataBuilder(child.bodyObjectModel()).withValue(child.body())
+ .withNodeIdentifier(getIdentifier()).build();
+ }
+ }
+
+ private static final class AnyXmlNormalization extends AbstractOpaqueNormalization {
+ AnyXmlNormalization(final AnyxmlSchemaNode schema) {
+ super(schema);
+ }
+
+ @Override
+ NormalizedNode create(final PathArgument first, final Iterator<PathArgument> others,
+ final Optional<NormalizedNode> deepestChild) {
+ final NormalizedNodeBuilder<NodeIdentifier, DOMSource, DOMSourceAnyxmlNode> builder =
+ Builders.anyXmlBuilder()