Remove binding spec2
[mdsal.git] / binding2 / mdsal-binding2-generator-util / src / main / java / org / opendaylight / mdsal / binding / javav2 / generator / util / generated / type / builder / AnnotationTypeBuilderImpl.java
diff --git a/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/AnnotationTypeBuilderImpl.java b/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/AnnotationTypeBuilderImpl.java
deleted file mode 100644 (file)
index 526437f..0000000
+++ /dev/null
@@ -1,318 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco Systems, Inc. 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.generator.util.generated.type.builder;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.ComparisonChain;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Ordering;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
-import org.opendaylight.mdsal.binding.javav2.generator.util.AbstractBaseType;
-import org.opendaylight.mdsal.binding.javav2.model.api.AnnotationType;
-import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.AnnotationTypeBuilder;
-import org.opendaylight.yangtools.util.LazyCollections;
-
-@Beta
-final class AnnotationTypeBuilderImpl extends AbstractBaseType implements AnnotationTypeBuilder {
-
-    private final String packageName;
-    private final String name;
-    private List<AnnotationTypeBuilder> annotationBuilders = ImmutableList.of();
-    private List<AnnotationType.Parameter> parameters = ImmutableList.of();
-
-    AnnotationTypeBuilderImpl(final String packageName, final String name) {
-        super(packageName, name, true, null);
-        this.packageName = packageName;
-        this.name = name;
-    }
-
-    @Override
-    public AnnotationTypeBuilder addAnnotation(final String pkgName, final String typeName) {
-        if (pkgName != null && typeName != null) {
-            final AnnotationTypeBuilder builder = new AnnotationTypeBuilderImpl(pkgName, typeName);
-            if (!annotationBuilders.contains(builder)) {
-                annotationBuilders = LazyCollections.lazyAdd(annotationBuilders, builder);
-                return builder;
-            }
-        }
-        return null;
-    }
-
-    private boolean addParameter(final ParameterImpl param) {
-        if (!parameters.contains(param)) {
-            parameters = LazyCollections.lazyAdd(parameters, param);
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    @Override
-    public boolean addParameter(final String paramName, final String value) {
-        if (paramName != null && value != null) {
-            final ParameterImpl param = new ParameterImpl(paramName, value);
-            return addParameter(param);
-        }
-        return false;
-    }
-
-    @Override
-    public boolean addParameters(final String paramName, final List<String> values) {
-        if (paramName != null && values != null) {
-            final ParameterImpl param = new ParameterImpl(paramName, values);
-            return addParameter(param);
-        }
-        return false;
-    }
-
-    @Override
-    public AnnotationType toInstance() {
-        return new AnnotationTypeImpl(packageName, name, annotationBuilders, parameters);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(name, packageName);
-    }
-
-    @Override
-    public boolean equals(final Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (getClass() != obj.getClass()) {
-            return false;
-        }
-        if (!(obj instanceof AnnotationTypeBuilderImpl)) {
-            return false;
-        }
-
-        AnnotationTypeBuilderImpl other = (AnnotationTypeBuilderImpl) obj;
-        return Objects.equals(name, other.name) && Objects.equals(packageName, other.packageName);
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder builder = new StringBuilder();
-        builder.append("AnnotationTypeBuilder [packageName=");
-        builder.append(packageName);
-        builder.append(", name=");
-        builder.append(name);
-        builder.append(", annotationBuilders=");
-        builder.append(annotationBuilders);
-        builder.append(", parameters=");
-        builder.append(parameters);
-        builder.append("]");
-        return builder.toString();
-    }
-
-    private static final class AnnotationTypeImpl implements AnnotationType {
-
-        private final String packageName;
-        private final String name;
-        private final List<AnnotationType> annotations;
-        private final List<AnnotationType.Parameter> parameters;
-        private final List<String> paramNames;
-
-        AnnotationTypeImpl(final String packageName, final String name,
-                final List<AnnotationTypeBuilder> annotationBuilders,
-                final List<AnnotationType.Parameter> parameters) {
-            this.packageName = packageName;
-            this.name = name;
-
-            final List<AnnotationType> a = new ArrayList<>();
-            for (final AnnotationTypeBuilder builder : annotationBuilders) {
-                a.add(builder.toInstance());
-            }
-            this.annotations = ImmutableList.copyOf(a);
-
-            final List<String> p = new ArrayList<>();
-            for (final AnnotationType.Parameter parameter : parameters) {
-                p.add(parameter.getName());
-            }
-            this.paramNames = ImmutableList.copyOf(p);
-
-            this.parameters = parameters.isEmpty() ? ImmutableList.of()
-                    : Collections.unmodifiableList(parameters);
-        }
-
-        @Override
-        public String getPackageName() {
-            return packageName;
-        }
-
-        @Override
-        public String getName() {
-            return name;
-        }
-
-        @Override
-        public String getFullyQualifiedName() {
-            return packageName + "." + name;
-        }
-
-        @Override
-        public List<AnnotationType> getAnnotations() {
-            return annotations;
-        }
-
-        @Override
-        public Parameter getParameter(final String paramName) {
-            if (paramName != null) {
-                for (final AnnotationType.Parameter parameter : parameters) {
-                    if (parameter.getName().equals(paramName)) {
-                        return parameter;
-                    }
-                }
-            }
-            return null;
-        }
-
-        @Override
-        public List<Parameter> getParameters() {
-            return parameters;
-        }
-
-        @Override
-        public List<String> getParameterNames() {
-            return paramNames;
-        }
-
-        @Override
-        public boolean containsParameters() {
-            return !parameters.isEmpty();
-        }
-
-        @Override
-        public int hashCode() {
-            return Objects.hash(name, packageName);
-        }
-
-        @Override
-        public int compareTo(AnnotationType other) {
-            return ComparisonChain.start()
-                    .compare(this.name, other.getName())
-                    .compare(this.packageName, other.getPackageName())
-                    //FIXME: what is natural ordering for AnnotationType?
-                    .compare(this.annotations, other.getAnnotations(),
-                            Ordering.<AnnotationType>natural().lexicographical())
-                    .compare(this.paramNames, other.getParameterNames(), Ordering.<String>natural().lexicographical())
-                    .result();
-        }
-
-        @Override
-        public boolean equals(final Object obj) {
-            if (this == obj) {
-                return true;
-            }
-            if (obj == null) {
-                return false;
-            }
-            if (getClass() != obj.getClass()) {
-                return false;
-            }
-            if (!(obj instanceof AnnotationTypeImpl)) {
-                return false;
-            }
-
-            AnnotationTypeImpl other = (AnnotationTypeImpl) obj;
-            return Objects.equals(name, other.name) && Objects.equals(packageName, other.packageName);
-        }
-
-        @Override
-        public String toString() {
-            StringBuilder builder = new StringBuilder();
-            builder.append("AnnotationType [packageName=");
-            builder.append(packageName);
-            builder.append(", name=");
-            builder.append(name);
-            builder.append(", annotations=");
-            builder.append(annotations);
-            builder.append(", parameters=");
-            builder.append(parameters);
-            builder.append("]");
-            return builder.toString();
-        }
-    }
-
-    private static final class ParameterImpl implements AnnotationType.Parameter {
-
-        private final String name;
-        private final String value;
-        private final List<String> values;
-
-        ParameterImpl(final String name, final String value) {
-            this.name = name;
-            this.value = value;
-            this.values = ImmutableList.of();
-        }
-
-        ParameterImpl(final String name, final List<String> values) {
-            this.name = name;
-            this.values = values;
-            this.value = null;
-        }
-
-        @Override
-        public String getName() {
-            return name;
-        }
-
-        @Override
-        public String getSingleValue() {
-            return value;
-        }
-
-        @Override
-        public List<String> getValues() {
-            return values;
-        }
-
-        @Override
-        public int hashCode() {
-            return Objects.hash(name);
-        }
-
-        @Override
-        public boolean equals(final Object obj) {
-            if (this == obj) {
-                return true;
-            }
-            if (obj == null) {
-                return false;
-            }
-            if (getClass() != obj.getClass()) {
-                return false;
-            }
-            if (!(obj instanceof ParameterImpl)) {
-                return false;
-            }
-            ParameterImpl other = (ParameterImpl) obj;
-            return Objects.equals(name, other.name);
-        }
-
-        @Override
-        public String toString() {
-            StringBuilder builder = new StringBuilder();
-            builder.append("ParameterImpl [name=");
-            builder.append(name);
-            builder.append(", value=");
-            builder.append(value);
-            builder.append(", values=");
-            builder.append(values);
-            builder.append("]");
-            return builder.toString();
-        }
-    }
-}