Remove binding spec2
[mdsal.git] / binding2 / mdsal-binding2-dom-codec / src / main / java / org / opendaylight / mdsal / binding / javav2 / dom / codec / generator / spi / source / AbstractTreeNodeSerializerSource.java
diff --git a/binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/generator/spi/source/AbstractTreeNodeSerializerSource.java b/binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/generator/spi/source/AbstractTreeNodeSerializerSource.java
deleted file mode 100644 (file)
index 487d6d2..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * Copyright (c) 2017 Pantheon Technologies s.r.o. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.mdsal.binding.javav2.dom.codec.generator.spi.source;
-
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.annotations.Beta;
-import org.opendaylight.mdsal.binding.javav2.dom.codec.generator.spi.generator.AbstractGenerator;
-import org.opendaylight.mdsal.binding.javav2.dom.codec.generator.spi.generator.AbstractStreamWriterGenerator;
-import org.opendaylight.mdsal.binding.javav2.generator.api.ClassLoadingStrategy;
-import org.opendaylight.mdsal.binding.javav2.generator.impl.GeneratedClassLoadingStrategy;
-import org.opendaylight.mdsal.binding.javav2.model.api.Type;
-import org.opendaylight.mdsal.binding.javav2.spec.base.Instantiable;
-import org.opendaylight.mdsal.binding.javav2.spec.base.TreeNode;
-import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingStreamEventWriter;
-import org.opendaylight.mdsal.binding.javav2.spec.runtime.TreeNodeSerializerRegistry;
-
-@Beta
-public abstract class AbstractTreeNodeSerializerSource extends AbstractSource {
-
-    private static final ClassLoadingStrategy STRATEGY = GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy();
-
-    static final String SERIALIZER = "_serializer";
-    static final String STREAM = "_stream";
-    static final String ITERATOR = "_iterator";
-    static final String CURRENT = "_current";
-    static final String REGISTRY = "_registry";
-
-    private final AbstractGenerator generator;
-
-    /**
-     * Set up generator.
-     *
-     * @param generator
-     *            -parent generator
-     */
-    AbstractTreeNodeSerializerSource(final AbstractGenerator generator) {
-        this.generator = requireNonNull(generator);
-    }
-
-    @SuppressWarnings("unchecked")
-    Class<? extends Instantiable<?>> loadClass(final Type childType) {
-        try {
-            return (Class<? extends Instantiable<?>>) STRATEGY.loadClass(childType);
-        } catch (final ClassNotFoundException e) {
-            throw new IllegalStateException("Could not load referenced class ", e);
-        }
-    }
-
-    /**
-     * Returns body of static serialize method.
-     *
-     * <ul>
-     * <li>{@link TreeNodeSerializerRegistry} - registry of serializers
-     * <li>{@link TreeNode} - node to be serialized
-     * <li>{@link BindingStreamEventWriter} - writer to which events should be
-     * serialized
-     * </ul>
-     *
-     * @return valid javassist code describing static serialization body
-     */
-    public abstract CharSequence getSerializerBody();
-
-    /**
-     * Invoking leafNode method of stream with arguments local name and value.
-     *
-     * @param localName
-     *            - argument for invoking leafNode
-     * @param value
-     *            - argument for invoking leafNode
-     * @return invoking leafNode method as String
-     */
-    static final CharSequence leafNode(final String localName, final CharSequence value) {
-        return invoke(STREAM, "leafNode", escape(localName), value);
-    }
-
-    /**
-     * Invoking startLeafSet method of stream with arguments local name and
-     * expected.
-     *
-     * @param localName
-     *            - argument for invoking startLeafSet
-     * @param expected
-     *            - argument for invoking startLeafSet
-     * @return invoking startLeafSet method as String
-     */
-    static final CharSequence startLeafSet(final String localName, final CharSequence expected) {
-        return invoke(STREAM, "startLeafSet", escape(localName), expected);
-    }
-
-    /**
-     * Invoking startOrderedLeafSet method of stream with arguments localname
-     * and expected.
-     *
-     * @param localName
-     *            - argument for invoking startOrderedLeafSet
-     * @param expected
-     *            - argument for invoking startOrderedLeafSet
-     * @return invoking startOrderedLeafSet method as String
-     */
-    static final CharSequence startOrderedLeafSet(final String localName, final CharSequence expected) {
-        return invoke(STREAM, "startOrderedLeafSet", escape(localName), expected);
-    }
-
-    /**
-     * Bound local name by quotes.
-     *
-     * @param localName
-     *            - to be bounded
-     * @return bounded local name
-     */
-    static final CharSequence escape(final String localName) {
-        return '"' + localName + '"';
-    }
-
-    /**
-     * Invoking leafSetEntryNode method of stream with argument value.
-     *
-     * @param value
-     *            - argument for invoking leafSetEntryNode
-     * @return invoking leafSetEntryNode method as String
-     */
-    static final CharSequence leafSetEntryNode(final CharSequence value) {
-        return invoke(STREAM, "leafSetEntryNode", value);
-    }
-
-    /**
-     * Invoking startContainerNode method of stream with arguments type and
-     * expected.
-     *
-     * @param type
-     *            - argument for invoking startContainerNode
-     * @param expected
-     *            - argument for invoking startContainerNode
-     * @return invoking startContainerNode method as String
-     */
-    public static final CharSequence startContainerNode(final CharSequence type, final CharSequence expected) {
-        return invoke(STREAM, "startContainerNode", type, expected);
-    }
-
-    /**
-     * Invoking startUnkeyedList method of stream with arguments type and
-     * expected.
-     *
-     * @param type
-     *            - argument for invoking startUnkeyedList
-     * @param expected
-     *            - argument for invoking startUnkeyedList
-     * @return invoking startUnkeyedList method as String
-     */
-    static final CharSequence startUnkeyedList(final CharSequence type, final CharSequence expected) {
-        return invoke(STREAM, "startUnkeyedList", type, expected);
-    }
-
-    /**
-     * Invoking startUnkeyedListItem of stream with argument expected.
-     *
-     * @param expected
-     *            - argument for invoking startUnkeyedListItem
-     * @return invoking startUnkeyedListItem method as String
-     */
-    protected static final CharSequence startUnkeyedListItem(final CharSequence expected) {
-        return invoke(STREAM, "startUnkeyedListItem", expected);
-    }
-
-    /**
-     * Invoking startMapNode method of stream with arguments type and expected.
-     *
-     * @param type
-     *            - argument for invoking startMapNode
-     * @param expected
-     *            - argument for invoking startMapNode
-     * @return invoking startMapNode method as String
-     */
-    static final CharSequence startMapNode(final CharSequence type, final CharSequence expected) {
-        return invoke(STREAM, "startMapNode", type, expected);
-    }
-
-    /**
-     * Invoking startOrderedMapNode method of stream with arguments type and
-     * expected.
-     *
-     * @param type
-     *            - argument for invoking startOrderedMapNode
-     * @param expected
-     *            - argument for invoking startOrderedMapNode
-     * @return invoking startOrderedMapNode method as String
-     */
-    static final CharSequence startOrderedMapNode(final CharSequence type, final CharSequence expected) {
-        return invoke(STREAM, "startOrderedMapNode", type, expected);
-    }
-
-    /**
-     * Invoking startMapEntryNode method of stream with arguments key and
-     * expected.
-     *
-     * @param key
-     *            - argument for invoking startMapEntryNode
-     * @param expected
-     *            - argument for invoking startMapEntryNode
-     * @return invoking startMapEntryNode method as String
-     */
-    protected static final CharSequence startMapEntryNode(final CharSequence key, final CharSequence expected) {
-        return invoke(STREAM, "startMapEntryNode", key, expected);
-    }
-
-    /**
-     * Invoking startAugmentationNode of stream with argument key.
-     *
-     * @param key
-     *            - argument for invoking startAugmentationNode
-     * @return invoking startAugmentationNode method as String
-     */
-    protected static final CharSequence startAugmentationNode(final CharSequence key) {
-        return invoke(STREAM, "startAugmentationNode", key);
-    }
-
-    /**
-     * Invoking startChoiceNode method of stream with arguments localname and
-     * expected.
-     *
-     * @param localName
-     *            - argument for invoking startChoiceNode
-     * @param expected
-     *            - argument for invoking startChoiceNode
-     * @return invoking startChoiceNode method as String
-     */
-    static final CharSequence startChoiceNode(final CharSequence localName, final CharSequence expected) {
-        return invoke(STREAM, "startChoiceNode", localName, expected);
-    }
-
-    /**
-     * Invoking startCaseNode method of stream with arguments localname and
-     * expected.
-     *
-     * @param localName
-     *            - argument for invoking startCaseNode
-     * @param expected
-     *            - argument for invoking startCaseNode
-     * @return invoking startCaseNode method as String
-     */
-    protected static final CharSequence startCaseNode(final CharSequence localName, final CharSequence expected) {
-        return invoke(STREAM, "startCase", localName, expected);
-    }
-
-    /**
-     * Invoking anyxmlNode method of stream with arguments name and
-     * value.
-     *
-     * @param name
-     *            - argument for invoking anyxmlNode
-     * @param value
-     *            - argument for invoking anyxmlNode
-     * @return invoking anyxmlNode method as String
-     */
-    static final CharSequence anyxmlNode(final String name, final String value)
-            throws IllegalArgumentException {
-        return invoke(STREAM, "anyxmlNode", escape(name), value);
-    }
-
-    /**
-     * Invoking anydataNode method of stream with arguments name and
-     * value.
-     *
-     * @param name
-     *            - argument for invoking anydataNode
-     * @param value
-     *            - argument for invoking anydataNode
-     * @return invoking anydataNode method as String
-     */
-    static final CharSequence anydataNode(final String name, final String value)
-            throws IllegalArgumentException {
-        return invoke(STREAM, "anydataNode", escape(name), name);
-    }
-
-    /**
-     * Invoking endNode method of stream without any arguments.
-     *
-     * @return invoking andNode method as String
-     */
-    static final CharSequence endNode() {
-        return invoke(STREAM, "endNode");
-    }
-
-    /**
-     * Prepare loop through iterable object with specific body.
-     *
-     * @param iterable
-     *            - name of iterable object
-     * @param valueType
-     *            - type of iterate objects
-     * @param body
-     *            - specific body of loop
-     * @return loop through iterable object as String
-     */
-    static final CharSequence forEach(final String iterable, final Type valueType, final CharSequence body) {
-        return forEach(iterable, ITERATOR, valueType.getFullyQualifiedName(), CURRENT, body);
-    }
-
-    /**
-     * Returns class reference for type.
-     *
-     * @param type
-     *            - type for referencing class
-     * @return referenced class of type
-     */
-    protected static final CharSequence classReference(final Type type) {
-        return type.getFullyQualifiedName() + ".class";
-    }
-
-    /**
-     * After getting class of childType from class loader, prepare invoking of
-     * serialize() method from instance of reached class of childType with
-     * arguments {@link #REGISTRY}, name and {@link #STREAM}.
-     *
-     * @param childType
-     *            - type of child for getting class from classloader
-     * @param name
-     *            - argument for invoking serialize method of instance childType
-     *            class
-     * @return invoking serialize method with specific arguments as String
-     */
-    final CharSequence staticInvokeEmitter(final Type childType, final String name) {
-        final Class<?> cls;
-        try {
-            cls = STRATEGY.loadClass(childType);
-        } catch (final ClassNotFoundException e) {
-            throw new IllegalStateException("Failed to invoke emitter", e);
-        }
-
-        final String className = this.generator.loadSerializerFor(cls) + ".getInstance()";
-        return invoke(className, AbstractStreamWriterGenerator.SERIALIZE_METHOD_NAME, REGISTRY, name, STREAM);
-    }
-}
-