Do not generate union builders 96/100496/7
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 8 Apr 2022 21:00:37 +0000 (23:00 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 14 Apr 2022 18:16:39 +0000 (20:16 +0200)
Union builds are not referenced by generated code anymore and have a
number of issues which need to be addressed separately. Just do not
generate them at all, pending a proper factory replacement.

JIRA: MDSAL-49
Change-Id: I6b769ca4d82da16b9f48720e8a17d7c4e1b4e8ef
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
67 files changed:
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/UnionTypeTest.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/UnionTypeWithIdentityrefTest.java [deleted file]
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractTypeObjectGenerator.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/BinaryTypeTest.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/BindingGeneratorImplTest.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Bug1862Test.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/ControllerTest.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/GenerateInnerClassForBitsAndUnionInLeavesTest.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/GeneratedTypesLeafrefTest.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/GeneratedTypesTest.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal161Test.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal269Test.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal320Test.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal324Test.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal458Test.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal572Test.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/UnionTypeDefTest.java
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/JavaFileGenerator.java
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/TOGenerator.java
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/UnionBuilderTemplate.xtend [deleted file]
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderGeneratorTest.java
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/CompilationTest.java
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/TypedefCompilationTest.java
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/UnionTypedefUnusedImportTest.java
binding/mdsal-binding-model-api/src/main/java/org/opendaylight/mdsal/binding/model/api/GeneratedTransferObject.java
binding/mdsal-binding-model-api/src/main/java/org/opendaylight/mdsal/binding/model/api/type/builder/GeneratedTOBuilder.java
binding/mdsal-binding-model-ri/src/main/java/org/opendaylight/mdsal/binding/model/ri/generated/type/builder/AbstractGeneratedTOBuilder.java
binding/mdsal-binding-model-ri/src/test/java/org/opendaylight/mdsal/binding/model/ri/generated/type/builder/GeneratedTOBuilderImplTest.java
binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/bug5446/rev151105/IpAddressBinaryBuilder.java [deleted file]
binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/bug8449/rev170516/ContInt32RefUnionInt32Builder.java [deleted file]
binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/bug8449/rev170516/ContRefBuilder.java [deleted file]
binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/mdsal/test/binding/rev140701/Int32StringUnionBuilder.java [deleted file]
binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/mdsal/test/bug/_6006/rev160607/UnionTypeBuilder.java [deleted file]
binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/yangtools/test/union/rev150121/TopLevelBuilder.java [deleted file]
binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/yangtools/test/union/rev150121/UnionTestTypeBuilder.java [deleted file]
binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/test/rev170101/ContVlanIdBuilder.java [deleted file]
binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/test/unsigned/rev180408/NumberUnionBuilder.java [deleted file]
model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/HostBuilder.java [deleted file]
model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IetfInetUtil.java
model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressBuilder.java [deleted file]
model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressNoZoneBuilder.java [deleted file]
model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpPrefixBuilder.java [deleted file]
model/ietf/rfc6991-ietf-inet-types/src/test/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/HostBuilderTest.java
model/ietf/rfc6991-ietf-inet-types/src/test/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressBuilderTest.java
model/ietf/rfc6991-ietf-inet-types/src/test/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressNoZoneBuilderTest.java
model/ietf/rfc6991-ietf-inet-types/src/test/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpPrefixBuilderTest.java
model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/IetfRoutingUtils.java [new file with mode: 0644]
model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/IpMulticastGroupAddressBuilder.java [deleted file]
model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/Ipv4MulticastSourceAddressBuilder.java [deleted file]
model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/Ipv6MulticastSourceAddressBuilder.java [deleted file]
model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/MplsLabelBuilder.java [deleted file]
model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/TimerValueMillisecondsBuilder.java [deleted file]
model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/TimerValueSeconds16Builder.java [deleted file]
model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/TimerValueSeconds32Builder.java [deleted file]
model/ietf/rfc8519-ietf-ethertypes/pom.xml
model/ietf/rfc8519-ietf-ethertypes/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/ethertypes/rev190304/EthertypeUtils.java [moved from model/ietf/rfc8519-ietf-ethertypes/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/ethertypes/rev190304/EthertypeBuilder.java with 97% similarity]
model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/LegacyRevisionUtils.java [new file with mode: 0644]
model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/RevisionUtils.java [new file with mode: 0644]
model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/module/list/CommonLeafsRevisionBuilder.java [deleted file]
model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/module/set/parameters/ImportOnlyModuleRevisionBuilder.java [deleted file]
model/ietf/rfc8776-ietf-te-types/pom.xml
model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/AdminGroupsBuilder.java [deleted file]
model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/IetfTeUtil.java [new file with mode: 0644]
model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/PathAttributeFlagsBuilder.java [deleted file]
model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/TeTopologyIdBuilder.java [deleted file]
model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/TeTpIdBuilder.java [deleted file]
yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/MountPointContextFactoryImpl.java

index 99ad1587f9797124409e0072a9093867742b313b..e40b37f928d0a602c788eb27e0f310c6630fe321 100644 (file)
@@ -7,63 +7,40 @@
  */
 package org.opendaylight.mdsal.binding.dom.codec.impl;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Map.Entry;
-import org.junit.Assert;
-import org.junit.Test;
-import org.opendaylight.yang.gen.v1.bug5446.rev151105.IpAddressBinary;
-import org.opendaylight.yang.gen.v1.bug5446.rev151105.IpAddressBinaryBuilder;
-import org.opendaylight.yang.gen.v1.bug5446.rev151105.Root;
-import org.opendaylight.yang.gen.v1.bug5446.rev151105.RootBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.yangtools.test.union.rev150121.TopLevel;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.yangtools.test.union.rev150121.TopLevelBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.yangtools.test.union.rev150121.Wrapper;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.yangtools.test.union.rev150121.WrapperBuilder;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
-
 public class UnionTypeTest extends AbstractBindingCodecTest {
-    private static final String TEST_STRING = "testtesttest";
-    private static final QName WRAPPER_QNAME = QName.create("urn:opendaylight:params:xml:ns:yang:yangtools:test:union",
-        "2015-01-21", "wrapper");
-    private static final QName WRAP_LEAF_QNAME = QName.create(WRAPPER_QNAME, "wrap");
-
-    @Test
-    public void unionTest() {
-        TopLevel topLevel = TopLevelBuilder.getDefaultInstance(TEST_STRING);
-        Wrapper wrapper = new WrapperBuilder().setWrap(topLevel).build();
-        NormalizedNode topLevelEntry = codecContext.toNormalizedNode(InstanceIdentifier.create(Wrapper.class),
-            wrapper).getValue();
-
-        ContainerNode containerNode = ImmutableContainerNodeBuilder.create()
-                .withNodeIdentifier(new NodeIdentifier(WRAPPER_QNAME))
-                .withChild(ImmutableNodes.leafNode(WRAP_LEAF_QNAME, TEST_STRING))
-                .build();
-        Assert.assertEquals(topLevelEntry, containerNode);
-    }
-
-    @Test
-    public void bug5446Test() {
-        IpAddressBinary ipAddress = IpAddressBinaryBuilder.getDefaultInstance("fwAAAQ==");
-        Root root = new RootBuilder().setIpAddress(ipAddress).build();
-        NormalizedNode rootNode = codecContext.toNormalizedNode(InstanceIdentifier.create(Root.class), root)
-                .getValue();
-
-        Entry<InstanceIdentifier<?>, DataObject> rootEntry = codecContext.fromNormalizedNode(
-                YangInstanceIdentifier.of(rootNode.getIdentifier().getNodeType()), rootNode);
-
-        DataObject rootObj = rootEntry.getValue();
-        assertTrue(rootObj instanceof Root);
-        IpAddressBinary desIpAddress = ((Root) rootObj).getIpAddress();
-        assertEquals(ipAddress, desIpAddress);
-    }
+    // FIXME: MDSAL-741: re-enable this test
+    //    private static final String TEST_STRING = "testtesttest";
+    //    private static final QName WRAPPER_QNAME = QName.create(
+    //        "urn:opendaylight:params:xml:ns:yang:yangtools:test:union", "2015-01-21", "wrapper");
+    //    private static final QName WRAP_LEAF_QNAME = QName.create(WRAPPER_QNAME, "wrap");
+
+    //    @Test
+    //    public void unionTest() {
+    //        TopLevel topLevel = TopLevelBuilder.getDefaultInstance(TEST_STRING);
+    //        Wrapper wrapper = new WrapperBuilder().setWrap(topLevel).build();
+    //        NormalizedNode topLevelEntry = codecContext.toNormalizedNode(InstanceIdentifier.create(Wrapper.class),
+    //            wrapper).getValue();
+    //
+    //        ContainerNode containerNode = ImmutableContainerNodeBuilder.create()
+    //                .withNodeIdentifier(new NodeIdentifier(WRAPPER_QNAME))
+    //                .withChild(ImmutableNodes.leafNode(WRAP_LEAF_QNAME, TEST_STRING))
+    //                .build();
+    //        Assert.assertEquals(topLevelEntry, containerNode);
+    //    }
+    //
+    //    @Test
+    //    public void bug5446Test() {
+    //        IpAddressBinary ipAddress = IpAddressBinaryBuilder.getDefaultInstance("fwAAAQ==");
+    //        Root root = new RootBuilder().setIpAddress(ipAddress).build();
+    //        NormalizedNode rootNode = codecContext.toNormalizedNode(InstanceIdentifier.create(Root.class), root)
+    //                .getValue();
+    //
+    //        Entry<InstanceIdentifier<?>, DataObject> rootEntry = codecContext.fromNormalizedNode(
+    //                YangInstanceIdentifier.of(rootNode.getIdentifier().getNodeType()), rootNode);
+    //
+    //        DataObject rootObj = rootEntry.getValue();
+    //        assertTrue(rootObj instanceof Root);
+    //        IpAddressBinary desIpAddress = ((Root) rootObj).getIpAddress();
+    //        assertEquals(ipAddress, desIpAddress);
+    //    }
 }
diff --git a/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/UnionTypeWithIdentityrefTest.java b/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/UnionTypeWithIdentityrefTest.java
deleted file mode 100644 (file)
index 918c4b6..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2016 Intel Corporation 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.dom.codec.impl;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Map.Entry;
-import org.junit.Test;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.bug._6006.rev160607.IdentOne;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.bug._6006.rev160607.UnionNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.bug._6006.rev160607.UnionNodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.bug._6006.rev160607.UnionType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.bug._6006.rev160607.UnionTypeBuilder;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.Uint8;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-
-public class UnionTypeWithIdentityrefTest extends AbstractBindingCodecTest {
-    private static final String IDENT_ONE_STRING = "IdentOne";
-    public static final QName NODE_QNAME = QName.create("urn:opendaylight:params:xml:ns:yang:mdsal:test:bug:6066",
-        "2016-06-07", "union-node");
-    public static final QName NODE_LEAF_QNAME = QName.create(NODE_QNAME, "value");
-
-    private DataObject createValueNode(final String valueString) {
-        UnionType unionType = UnionTypeBuilder.getDefaultInstance(valueString);
-        UnionNode unionNode = new UnionNodeBuilder().setValue(unionType).build();
-        NormalizedNode normalizedUnionNode = codecContext
-            .toNormalizedNode(InstanceIdentifier.builder(UnionNode.class).build(), unionNode)
-            .getValue();
-
-        Entry<InstanceIdentifier<?>, DataObject> unionNodeEntry = codecContext.fromNormalizedNode(
-                YangInstanceIdentifier.of(normalizedUnionNode.getIdentifier().getNodeType()), normalizedUnionNode);
-        DataObject unionNodeObj = unionNodeEntry.getValue();
-        assertTrue(unionNodeObj instanceof UnionNode);
-        return unionNodeObj;
-    }
-
-    @Test
-    public void bug6006Test() {
-        DataObject unionNodeObj = createValueNode(IDENT_ONE_STRING);
-        UnionType unionTypeObj = ((UnionNode) unionNodeObj).getValue();
-        assertEquals(null, unionTypeObj.getUint8());
-        assertEquals(IdentOne.class, unionTypeObj.getIdentityref());
-    }
-
-    @Test
-    public void bug6112Test() {
-        DataObject unionNodeObj = createValueNode("1");
-        UnionType unionTypeObj = ((UnionNode) unionNodeObj).getValue();
-        assertEquals(Uint8.valueOf(1), unionTypeObj.getUint8());
-        assertEquals(null, unionTypeObj.getIdentityref());
-    }
-}
index 845fb0dcba8b4f785f946ff92d50966b9c676581..0ee7b438831283373285838e1f7c634f955c5da0 100644 (file)
@@ -23,7 +23,6 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.mdsal.binding.generator.BindingGeneratorUtil;
 import org.opendaylight.mdsal.binding.generator.impl.reactor.TypeReference.ResolvedLeafref;
-import org.opendaylight.mdsal.binding.model.api.AccessModifier;
 import org.opendaylight.mdsal.binding.model.api.ConcreteType;
 import org.opendaylight.mdsal.binding.model.api.Enumeration;
 import org.opendaylight.mdsal.binding.model.api.GeneratedProperty;
@@ -819,29 +818,7 @@ abstract class AbstractTypeObjectGenerator<S extends EffectiveStatement<?, ?>, R
         addUnits(builder, typedef);
 
         makeSerializable(builder);
-        final GeneratedTransferObject ret = builder.build();
-
-        // Define a corresponding union builder. Typedefs are always anchored at a Java package root,
-        // so we are placing the builder alongside the union.
-        final GeneratedTOBuilder unionBuilder = builderFactory.newGeneratedTOBuilder(unionBuilderName(typeName));
-        unionBuilder.setIsUnionBuilder(true);
-        unionBuilder.addMethod("getDefaultInstance")
-            .setAccessModifier(AccessModifier.PUBLIC)
-            .setStatic(true)
-            .setReturnType(ret)
-            .addParameter(Types.STRING, "defaultValue");
-        auxiliaryGeneratedTypes.add(unionBuilder.build());
-
-        return ret;
-    }
-
-    // FIXME: this can be a source of conflicts as we are not guarding against nesting
-    private static @NonNull JavaTypeName unionBuilderName(final JavaTypeName unionName) {
-        final StringBuilder sb = new StringBuilder();
-        for (String part : unionName.localNameComponents()) {
-            sb.append(part);
-        }
-        return JavaTypeName.create(unionName.packageName(), sb.append(BindingMapping.BUILDER_SUFFIX).toString());
+        return builder.build();
     }
 
     // FIXME: we should not rely on TypeDefinition
index 9efaaa1684ef757bf2b31e1525a08e01acac17ad..ccc90b4974f21fd80cda4cc9f169c33fcae3825f 100644 (file)
@@ -9,16 +9,14 @@ package org.opendaylight.mdsal.binding.generator.impl;
 
 import static org.junit.Assert.assertEquals;
 
-import java.util.List;
 import org.junit.Test;
-import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class BinaryTypeTest {
     @Test
     public void binaryTypeTest() {
-        final List<GeneratedType> genTypes = DefaultBindingGenerator.generateFor(
+        final var genTypes = DefaultBindingGenerator.generateFor(
             YangParserTestUtils.parseYangResourceDirectory("/binary-type-test-models"));
-        assertEquals(10, genTypes.size());
+        assertEquals(9, genTypes.size());
     }
 }
index 7890328f1e2c3312f47587533510a4cf3f0e9427..48d39e805d9f65df1ae6aa4c328182a816415c7e 100644 (file)
@@ -147,8 +147,8 @@ public class BindingGeneratorImplTest {
 
     @Test
     public void testBaseYangTypes() {
-        final List<GeneratedType> types = DefaultBindingGenerator.generateFor(
+        final var types = DefaultBindingGenerator.generateFor(
             YangParserTestUtils.parseYangResource("/base-yang-types.yang"));
-        assertEquals(20, types.size());
+        assertEquals(19, types.size());
     }
 }
index ab86208467c71f9ededb88f59c9cf1d33390fcb2..b64c112feb72054424511ede28b8874778e90709 100644 (file)
@@ -14,22 +14,18 @@ import static org.junit.Assert.assertEquals;
 import com.google.common.collect.ImmutableRangeSet;
 import com.google.common.collect.Range;
 import com.google.common.collect.RangeSet;
-import java.util.List;
 import org.junit.Test;
 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
-import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 import org.opendaylight.mdsal.binding.model.api.MethodSignature;
 import org.opendaylight.mdsal.binding.model.api.Type;
-import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class Bug1862Test {
     @Test
     public void restrictedTypedefTransformationTest() {
-        final EffectiveModelContext context = YangParserTestUtils.parseYangResources(Bug1862Test.class,
-            "/base-yang-types.yang", "/test-type-provider.yang");
-        final List<GeneratedType> types = DefaultBindingGenerator.generateFor(context);
-        assertEquals(42, types.size());
+        final var types = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResources(Bug1862Test.class,
+            "/base-yang-types.yang", "/test-type-provider.yang"));
+        assertEquals(35, types.size());
         final MethodSignature fooGetter = types.stream()
             .filter(type -> type.getFullyQualifiedName().equals(
                 "org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912.Foo"))
index b867798bb32d12497aadb57343006cc9e270eca6..0ecaa2bce902239750a83d864bd32d0e63970c17 100644 (file)
@@ -9,18 +9,16 @@ package org.opendaylight.mdsal.binding.generator.impl;
 
 import static org.junit.Assert.assertEquals;
 
-import java.util.List;
 import org.junit.Test;
-import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class ControllerTest {
     @Test
     public void controllerAugmentationTest() {
-        final List<GeneratedType> genTypes = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResources(
+        final var genTypes = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResources(
             ControllerTest.class,
             "/controller-models/controller-network.yang", "/controller-models/controller-openflow.yang",
             "/ietf-models/ietf-inet-types.yang"));
-        assertEquals(56, genTypes.size());
+        assertEquals(53, genTypes.size());
     }
 }
index d91f858cdffa06c7c9aba67fa7f6a66d1f36aa0d..0d6ffa8e2166cc0477211ecad5e950ddbc50fd67 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.mdsal.binding.generator.impl;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.List;
@@ -23,10 +22,9 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 public class GenerateInnerClassForBitsAndUnionInLeavesTest {
     @Test
     public void testInnerClassCreationForBitsAndUnionsInLeafes() {
-        final List<GeneratedType> genTypes = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResource(
+        final var genTypes = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResource(
             "/bit_and_union_in_leaf.yang"));
-        assertNotNull(genTypes);
-        assertEquals(7, genTypes.size());
+        assertEquals(4, genTypes.size());
 
         boolean parentContainerFound = false;
         boolean bitLeafTOFound = false;
index 33e7393d8c8f601dbd5c6f06c473fc11643b7469..4ed59a121f1e1a5230ff7c86d87074ad77d3a6eb 100644 (file)
@@ -29,14 +29,13 @@ public class GeneratedTypesLeafrefTest {
 
     @Test
     public void testLeafrefResolving() {
-        final EffectiveModelContext context = YangParserTestUtils.parseYangResources(GeneratedTypesLeafrefTest.class,
+        final var context = YangParserTestUtils.parseYangResources(GeneratedTypesLeafrefTest.class,
             "/leafref-test-models/abstract-topology@2013-02-08.yang", "/ietf-models/ietf-interfaces.yang",
             "/ietf-models/ietf-inet-types.yang", "/ietf-models/ietf-yang-types.yang");
         assertEquals(4, context.getModules().size());
 
-        final List<GeneratedType> genTypes = DefaultBindingGenerator.generateFor(context);
-
-        assertEquals(56, genTypes.size());
+        final var genTypes = DefaultBindingGenerator.generateFor(context);
+        assertEquals(53, genTypes.size());
 
         GeneratedTransferObject gtIfcKey = null;
         GeneratedType gtIfc = null;
index 2adb392851a02714ddaa7d2d97bae26c8b5e2693..7969ca1f82724d4c156bae2cf1d27d78335bc13e 100644 (file)
@@ -23,12 +23,10 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 public class GeneratedTypesTest {
     @Test
     public void testMultipleModulesResolving() {
-        final List<GeneratedType> genTypes = DefaultBindingGenerator.generateFor(
+        final var genTypes = DefaultBindingGenerator.generateFor(
             YangParserTestUtils.parseYangResources(GeneratedTypesTest.class,
                 "/abstract-topology.yang", "/ietf-models/ietf-inet-types.yang"));
-
-        assertNotNull(genTypes);
-        assertEquals(30, genTypes.size());
+        assertEquals(27, genTypes.size());
     }
 
     @Test
index 19aa03ec16b80b6a144056904981d58fe8fa9017..2285b601b617d407aa2f80c40645d29cfc82589e 100644 (file)
@@ -26,10 +26,10 @@ public class Mdsal161Test {
      */
     @Test
     public void mdsal161Test() {
-        final Collection<GeneratedType> types = DefaultBindingGenerator.generateFor(
+        final var types = DefaultBindingGenerator.generateFor(
             YangParserTestUtils.parseYangResource("/mdsal161.yang"));
         assertNotNull(types);
-        assertEquals(25, types.size());
+        assertEquals(20, types.size());
 
         assertKeyStructure(types, "org.opendaylight.yang.gen.v1.mdsal161.norev.WithGrpKey");
         assertKeyStructure(types, "org.opendaylight.yang.gen.v1.mdsal161.norev.WithGrpExtKey");
index 3e460880461ea8828b6cdf84eff516119ab188cc..3d0aba923b0877d37039d9362a58f64cf52ff75f 100644 (file)
@@ -9,11 +9,9 @@ package org.opendaylight.mdsal.binding.generator.impl;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Iterator;
-import java.util.List;
 import org.junit.Test;
 import org.opendaylight.mdsal.binding.model.api.GeneratedProperty;
 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
@@ -23,10 +21,9 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 public class Mdsal269Test {
     @Test
     public void mdsal269Test() {
-        final List<GeneratedType> generateTypes = DefaultBindingGenerator.generateFor(
+        final var generateTypes = DefaultBindingGenerator.generateFor(
             YangParserTestUtils.parseYangResource("/mdsal269.yang"));
-        assertNotNull(generateTypes);
-        assertEquals(5, generateTypes.size());
+        assertEquals(4, generateTypes.size());
 
         final GeneratedType mplsLabelType = generateTypes.stream().filter(type -> type.getFullyQualifiedName()
             .equals("org.opendaylight.yang.gen.v1.mdsal269.rev180130.MplsLabel")).findFirst().get();
index d5009b4e422a016a3b13894b6569aede016fb4d4..e2ce1057a2e5382bf4d6450b0a53ab4264adcb60 100644 (file)
@@ -12,7 +12,6 @@ import static org.hamcrest.CoreMatchers.startsWith;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Iterator;
@@ -29,10 +28,9 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 public class Mdsal320Test {
     @Test
     public void mdsal320Test() {
-        final List<GeneratedType> generateTypes = DefaultBindingGenerator.generateFor(
+        final var generateTypes = DefaultBindingGenerator.generateFor(
             YangParserTestUtils.parseYangResource("/mdsal320.yang"));
-        assertNotNull(generateTypes);
-        assertEquals(4, generateTypes.size());
+        assertEquals(2, generateTypes.size());
 
         final GeneratedType foo = generateTypes.stream().filter(type -> type.getFullyQualifiedName()
             .equals("org.opendaylight.yang.gen.v1.urn.odl.yt320.norev.Foo")).findFirst().get();
index 9d1668324cc68f24271838a7b5ee313d7f267b02..c38212e3b9295493e49053026441d01183bc19c0 100644 (file)
@@ -8,19 +8,15 @@
 package org.opendaylight.mdsal.binding.generator.impl;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 
-import java.util.List;
 import org.junit.Test;
-import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class Mdsal324Test {
     @Test
     public void mdsal324Test() {
-        final List<GeneratedType> generateTypes = DefaultBindingGenerator.generateFor(
+        final var generatedTypes = DefaultBindingGenerator.generateFor(
             YangParserTestUtils.parseYangResource("/mdsal324.yang"));
-        assertNotNull(generateTypes);
-        assertEquals(6, generateTypes.size());
+        assertEquals(2, generatedTypes.size());
     }
 }
index ab168761a1488b33947b919720bc0bc8c38e5cb2..91a2319eaab9789fad958a4141f462d55fd12840 100644 (file)
@@ -8,10 +8,8 @@
 package org.opendaylight.mdsal.binding.generator.impl;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 
 import com.google.common.collect.ImmutableSet;
-import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 import org.junit.Test;
@@ -22,16 +20,14 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 public class Mdsal458Test {
     @Test
     public void testNestedClassFallback() {
-        final List<GeneratedType> types = DefaultBindingGenerator.generateFor(
+        final var types = DefaultBindingGenerator.generateFor(
             YangParserTestUtils.parseYangResource("/mdsal458.yang"));
-        assertNotNull(types);
-        assertEquals(3, types.size());
+        assertEquals(2, types.size());
 
         final Set<JavaTypeName> typeNames = types.stream().map(GeneratedType::getIdentifier)
             .collect(Collectors.toSet());
         assertEquals(ImmutableSet.of(
             JavaTypeName.create("org.opendaylight.yang.gen.v1.mdsal458.norev", "ExportedTo"),
-            JavaTypeName.create("org.opendaylight.yang.gen.v1.mdsal458.norev", "ExportedToExportedTo$Builder"),
             JavaTypeName.create("org.opendaylight.yang.gen.v1.mdsal458.norev", "Mdsal458Data")), typeNames);
     }
 }
index ae03efca9acdd6b11e30d2de643d21b3ed459c6d..32f4131145fe7dba7be03b9ee96eeb05f13a446e 100644 (file)
@@ -9,16 +9,13 @@ package org.opendaylight.mdsal.binding.generator.impl;
 
 import static org.junit.Assert.assertEquals;
 
-import java.util.List;
 import org.junit.Test;
-import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class Mdsal572Test {
     @Test
     public void mdsal572Test() {
-        final List<GeneratedType> types = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResource(
-                "/mdsal572.yang"));
-        assertEquals(6, types.size());
+        final var types = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResource("/mdsal572.yang"));
+        assertEquals(5, types.size());
     }
 }
index 2e1b4c7eacc2345be9929a9a16155b7c4f79a665..e6b81511806f899af06b4d5c8f074c86f8809955 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.mdsal.binding.generator.impl;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 
 import java.util.List;
 import org.junit.Test;
@@ -20,21 +19,18 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 public class UnionTypeDefTest {
     @Test
     public void unionTypeResolvingTest() {
-        final List<GeneratedType> genTypes = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResources(
+        final var genTypes = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResources(
             UnionTypeDefTest.class, "/union-test-models/abstract-topology.yang", "/ietf-models/ietf-inet-types.yang"));
-
-        assertNotNull("genTypes is null", genTypes);
-        assertEquals(34, genTypes.size());
+        assertEquals(29, genTypes.size());
 
         // TODO: implement test
     }
 
     @Test
     public void unionTypedefLeafrefTest() {
-        final List<GeneratedType> generateTypes = DefaultBindingGenerator.generateFor(
+        final var generateTypes = DefaultBindingGenerator.generateFor(
             YangParserTestUtils.parseYangResource("/bug8449.yang"));
-        assertNotNull(generateTypes);
-        assertEquals(6, generateTypes.size());
+        assertEquals(5, generateTypes.size());
 
         final GeneratedType cont = generateTypes.stream()
             .filter(type -> type.getName().equals("Cont"))
index 1cdf881d001dc215ca2c7f3e675be6895547a0de..788239eee816cf8e825283ffcd3795cb6b5d050e 100644 (file)
@@ -22,7 +22,6 @@ import java.util.ServiceLoader;
 import java.util.Set;
 import org.opendaylight.mdsal.binding.generator.BindingGenerator;
 import org.opendaylight.mdsal.binding.model.api.CodeGenerator;
-import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
 import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 import org.opendaylight.mdsal.binding.model.api.Type;
 import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
@@ -109,9 +108,6 @@ final class JavaFileGenerator implements FileGenerator {
                     continue;
                 }
 
-                final GeneratedFileLifecycle kind = type instanceof GeneratedTransferObject
-                        && ((GeneratedTransferObject) type).isUnionTypeBuilder()
-                        ? GeneratedFileLifecycle.PERSISTENT : GeneratedFileLifecycle.TRANSIENT;
                 final GeneratedFilePath file =  GeneratedFilePath.ofFilePath(
                     type.getPackageName().replace('.', File.separatorChar)
                     + File.separator + generator.getUnitName(type) + ".java");
@@ -122,11 +118,12 @@ final class JavaFileGenerator implements FileGenerator {
                                 + "generated.", type.getFullyQualifiedName());
                         continue;
                     }
-                    throw new IllegalStateException("Duplicate " + kind + " file '" + file.getPath() + "' for "
-                            + type.getFullyQualifiedName());
+                    throw new IllegalStateException("Duplicate file '" + file.getPath() + "' for "
+                        + type.getFullyQualifiedName());
                 }
 
-                result.put(GeneratedFileType.SOURCE, file, new CodeGeneratorGeneratedFile(kind, generator, type));
+                result.put(GeneratedFileType.SOURCE, file,
+                    new CodeGeneratorGeneratedFile(GeneratedFileLifecycle.TRANSIENT, generator, type));
             }
         }
 
index 404f5eda7dd0975bedeb169363a9329e94167d6b..7b30a6aea8bfd66546ccb6966e404cfb89c0981e 100644 (file)
@@ -27,9 +27,6 @@ public final class TOGenerator implements CodeGenerator {
             if (genTO.isUnionType()) {
                 final UnionTemplate template = new UnionTemplate(genTO);
                 return template.generate();
-            } else if (genTO.isUnionTypeBuilder()) {
-                final UnionBuilderTemplate template = new UnionBuilderTemplate(genTO);
-                return template.generate();
             } else if (genTO.isTypedef()) {
                 final ClassTemplate template = new ClassTemplate(genTO);
                 return template.generate();
diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/UnionBuilderTemplate.xtend b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/UnionBuilderTemplate.xtend
deleted file mode 100644 (file)
index 45e14f1..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2014 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.java.api.generator
-
-import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject
-import org.opendaylight.mdsal.binding.model.api.AccessModifier
-
-/**
- * Template for generating JAVA class.
- */
-class UnionBuilderTemplate extends ClassTemplate {
-
-    /**
-     * Creates instance of this class with concrete <code>genType</code>.
-     *
-     * @param genType generated transfer object which will be transformed to JAVA class source code
-     */
-    new(GeneratedTransferObject genType) {
-        super(genType)
-    }
-
-    override body() '''
-        Â«wrapToDocumentation(formatDataForJavaDoc(type, getClarification()))»
-        Â«generatedAnnotation»
-        public class Â«type.name» {
-            private Â«type.name»() {
-                //Exists only to defeat instantiation.
-            }
-
-            Â«generateMethods»
-
-        }
-    '''
-
-    def private generateMethods() '''
-        Â«FOR method : genTO.methodDefinitions»
-            Â«method.accessModifier.accessModifier»«IF method.static»static«ENDIF»«IF method.final» final«ENDIF» Â«method.
-            returnType.importedName» Â«method.name»(«method.parameters.generateParameters») {
-                throw new Â«UnsupportedOperationException.importedName»("Not yet implemented");
-            }
-        Â«ENDFOR»
-    '''
-
-    def private String getAccessModifier(AccessModifier modifier) {
-        switch (modifier) {
-            case AccessModifier.PUBLIC: return "public "
-            case AccessModifier.PROTECTED: return "protected "
-            case AccessModifier.PRIVATE: return "private "
-            default: return ""
-        }
-    }
-
-    def private String getClarification() {
-        return
-        '''
-        The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
-        In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
-
-        The reason behind putting it under src/main/java is:
-        This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
-        loss of user code.
-        '''
-    }
-
-}
index 3f78e889121632d11abe55d9949280673a493ab7..a233dc27d027a2ae9585e508df914a84df06a0a2 100644 (file)
@@ -24,7 +24,6 @@ import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
 import org.opendaylight.mdsal.binding.model.api.MethodSignature;
 import org.opendaylight.mdsal.binding.model.api.MethodSignature.ValueMechanics;
 import org.opendaylight.mdsal.binding.model.api.Type;
-import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class BuilderGeneratorTest {
@@ -268,10 +267,9 @@ public class BuilderGeneratorTest {
 
     @Test
     public void builderTemplateGenerateToEqualsComparingOrderTest() {
-        final EffectiveModelContext context = YangParserTestUtils.parseYangResource(
-                "/test-types.yang");
-        final List<GeneratedType> types = new DefaultBindingGenerator().generateTypes(context);
-        assertEquals(29, types.size());
+        final var context = YangParserTestUtils.parseYangResource("/test-types.yang");
+        final var types = new DefaultBindingGenerator().generateTypes(context);
+        assertEquals(27, types.size());
 
         final BuilderTemplate bt = BuilderGenerator.templateForType(
             types.stream().filter(t -> t.getName().equals("Nodes")).findFirst().orElseThrow());
index 6174b99e823dc6250e907f05b6f2a557ad4131a3..c7957ec1d1c76ee4ac3f3091b53c2b2e0458874a 100644 (file)
@@ -378,8 +378,7 @@ public class CompilationTest extends BaseCompilationTest {
         assertTrue(new File(parent, "Nodes.java").exists());
         assertTrue(new File(parent, "NodesBuilder.java").exists());
         assertTrue(new File(parent, "Alg.java").exists());
-        assertTrue(new File(parent, "NodesIdUnionBuilder.java").exists());
-        CompilationTestUtils.assertFilesCount(parent, 6);
+        CompilationTestUtils.assertFilesCount(parent, 5);
 
         // Test if sources are compilable
         CompilationTestUtils.testCompilation(sourcesOutputDir, compiledOutputDir);
index 773c36b1edf588a51c3bb19a3f966e70137ae5e3..90d26fdff216b66ce4d364a00655c365a8955e94 100644 (file)
@@ -39,31 +39,19 @@ public class TypedefCompilationTest extends BaseCompilationTest {
         generateTestSources("/compilation/typedef", sourcesOutputDir);
 
         final File parent = new File(sourcesOutputDir, CompilationTestUtils.NS_FOO);
-        final File bitsExt = new File(parent, "BitsExt.java");
-        final File int32Ext0 = new File(parent, "Int32Ext0.java");
-        final File int32Ext1 = new File(parent, "Int32Ext1.java");
-        final File int32Ext2 = new File(parent, "Int32Ext2.java");
-        final File myDecimalType = new File(parent, "MyDecimalType.java");
-        final File stringExt1 = new File(parent, "StringExt1.java");
-        final File stringExt2 = new File(parent, "StringExt2.java");
-        final File stringExt3 = new File(parent, "StringExt3.java");
-        final File unionExt1 = new File(parent, "UnionExt1.java");
-        final File unionExt2 = new File(parent, "UnionExt2.java");
-        final File unionExt3 = new File(parent, "UnionExt3.java");
-        final File unionExt4 = new File(parent, "UnionExt4.java");
-        assertTrue(bitsExt.exists());
-        assertTrue(int32Ext0.exists());
-        assertTrue(int32Ext1.exists());
-        assertTrue(int32Ext2.exists());
-        assertTrue(myDecimalType.exists());
-        assertTrue(stringExt1.exists());
-        assertTrue(stringExt2.exists());
-        assertTrue(stringExt3.exists());
-        assertTrue(unionExt1.exists());
-        assertTrue(unionExt2.exists());
-        assertTrue(unionExt3.exists());
-        assertTrue(unionExt4.exists());
-        CompilationTestUtils.assertFilesCount(parent, 34);
+        assertTrue(new File(parent, "BitsExt.java").exists());
+        assertTrue(new File(parent, "Int32Ext0.java").exists());
+        assertTrue(new File(parent, "Int32Ext1.java").exists());
+        assertTrue(new File(parent, "Int32Ext2.java").exists());
+        assertTrue(new File(parent, "MyDecimalType.java").exists());
+        assertTrue(new File(parent, "StringExt1.java").exists());
+        assertTrue(new File(parent, "StringExt2.java").exists());
+        assertTrue(new File(parent, "StringExt3.java").exists());
+        assertTrue(new File(parent, "UnionExt1.java").exists());
+        assertTrue(new File(parent, "UnionExt2.java").exists());
+        assertTrue(new File(parent, "UnionExt3.java").exists());
+        assertTrue(new File(parent, "UnionExt4.java").exists());
+        CompilationTestUtils.assertFilesCount(parent, 31);
 
         // Test if sources are compilable
         CompilationTestUtils.testCompilation(sourcesOutputDir, compiledOutputDir);
index 8e35df7a72d09060f555daa2ce37e61e1a8a2efd..153353ac56f461b8cd6a13c02f85aed53e2302b2 100644 (file)
@@ -7,54 +7,22 @@
  */
 package org.opendaylight.mdsal.binding.java.api.generator;
 
-import static org.junit.Assert.assertFalse;
-import static org.opendaylight.mdsal.binding.java.api.generator.CompilationTestUtils.FS;
-import static org.opendaylight.mdsal.binding.java.api.generator.CompilationTestUtils.GENERATOR_OUTPUT_PATH;
+import static org.junit.Assert.assertEquals;
 import static org.opendaylight.mdsal.binding.java.api.generator.CompilationTestUtils.cleanUp;
 import static org.opendaylight.mdsal.binding.java.api.generator.CompilationTestUtils.testCompilation;
 
 import java.io.File;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.List;
 import org.junit.Test;
-import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 
 public class UnionTypedefUnusedImportTest extends BaseCompilationTest {
-
     @Test
     public void testUnionTypedefUnusedImport() throws Exception {
         final File sourcesOutputDir = CompilationTestUtils.generatorOutput("union-typedef");
-        final List<GeneratedType> types = generateTestSources("/compilation/union-typedef", sourcesOutputDir);
-
-        final boolean isUsedImport = containsImport(
-            "org.opendaylight.yang.gen.v1.org.opendaylight.yangtools.union.typedef.rev130208.TypedefUnion");
-        assertFalse(String.format("Class shouldn't contain import for this type '%s'", types.get(1).getName()),
-                isUsedImport);
+        final var types = generateTestSources("/compilation/union-typedef", sourcesOutputDir);
+        assertEquals(2, types.size());
 
         final File compiledOutputDir = CompilationTestUtils.compilerOutput("union-typedef");
         testCompilation(sourcesOutputDir, compiledOutputDir);
         cleanUp(sourcesOutputDir, compiledOutputDir);
     }
-
-    private static String readFile(final String path, final Charset encoding) throws IOException {
-        byte[] encoded = Files.readAllBytes(Paths.get(path));
-        return new String(encoded, encoding);
-    }
-
-    private static boolean containsImport(final String fullImport) throws URISyntaxException, IOException {
-        final String filePath = GENERATOR_OUTPUT_PATH + FS + "union-typedef" + FS + "org" + FS + "opendaylight" + FS
-                + "yang" + FS + "gen" + FS + "v1" + FS + "org" + FS + "opendaylight" + FS + "yangtools" + FS + "union"
-                + FS + "typedef" + FS + "rev141124" + FS + "TypedefUnionBuilder.java";
-        final String fileContent = readFile(filePath, StandardCharsets.UTF_8);
-
-        if (fileContent.contains(fullImport)) {
-            return true;
-        }
-        return false;
-    }
 }
index 15632af2ac2e59c5da00ca7d98091297d7351897..e2972878834e0c493120ba64d917428e1f94fd07 100644 (file)
@@ -69,8 +69,6 @@ public interface GeneratedTransferObject extends GeneratedType {
      */
     boolean isUnionType();
 
-    boolean isUnionTypeBuilder();
-
     Restrictions getRestrictions();
 
     default Optional<? extends GeneratedProperty> findProperty(final String name) {
index 38097e1f303344489a932cd317825b95db80d8c2..a3440dcc1a346acaac8f10a04defbabe77793248 100644 (file)
@@ -89,7 +89,5 @@ public interface GeneratedTOBuilder extends GeneratedTypeBuilderBase<GeneratedTO
      */
     void setIsUnion(boolean isUnion);
 
-    void setIsUnionBuilder(boolean isUnionTypeBuilder);
-
     void setSUID(GeneratedPropertyBuilder suid);
 }
index 8365f2f7547b519bcbfbd02a2d1c75eccb75fdef..d5c6fc5d2d2fe7e06e4fe2a7784a563c2e776a74 100644 (file)
@@ -32,7 +32,6 @@ abstract class AbstractGeneratedTOBuilder extends AbstractGeneratedTypeBuilder<G
     private GeneratedTransferObject extendsType;
     private boolean isTypedef = false;
     private boolean isUnionType = false;
-    private boolean isUnionTypeBuilder = false;
     private TypeDefinition<?> baseType = null;
 
     AbstractGeneratedTOBuilder(final JavaTypeName identifier) {
@@ -43,7 +42,7 @@ abstract class AbstractGeneratedTOBuilder extends AbstractGeneratedTypeBuilder<G
     @Override
     public final GeneratedTOBuilder setExtendsType(final GeneratedTransferObject genTransObj) {
         Preconditions.checkArgument(genTransObj != null, "Generated Transfer Object cannot be null!");
-        this.extendsType = genTransObj;
+        extendsType = genTransObj;
         return this;
     }
 
@@ -70,19 +69,19 @@ abstract class AbstractGeneratedTOBuilder extends AbstractGeneratedTypeBuilder<G
 
     @Override
     public final GeneratedTOBuilder addEqualsIdentity(final GeneratedPropertyBuilder property) {
-        this.equalsProperties = LazyCollections.lazyAdd(this.equalsProperties, property);
+        equalsProperties = LazyCollections.lazyAdd(equalsProperties, property);
         return this;
     }
 
     @Override
     public final GeneratedTOBuilder addHashIdentity(final GeneratedPropertyBuilder property) {
-        this.hashProperties = LazyCollections.lazyAdd(this.hashProperties, property);
+        hashProperties = LazyCollections.lazyAdd(hashProperties, property);
         return this;
     }
 
     @Override
     public final GeneratedTOBuilder addToStringProperty(final GeneratedPropertyBuilder property) {
-        this.toStringProperties = LazyCollections.lazyAdd(this.toStringProperties, property);
+        toStringProperties = LazyCollections.lazyAdd(toStringProperties, property);
         return this;
     }
 
@@ -101,17 +100,17 @@ abstract class AbstractGeneratedTOBuilder extends AbstractGeneratedTypeBuilder<G
 
     @Override
     public final void setTypedef(final boolean newIsTypedef) {
-        this.isTypedef = newIsTypedef;
+        isTypedef = newIsTypedef;
     }
 
     @Override
     public final void setBaseType(final TypeDefinition<?> typeDef) {
-        this.baseType = typeDef;
+        baseType = typeDef;
     }
 
     @Override
     public final void setIsUnion(final boolean newIsUnion) {
-        this.isUnionType = newIsUnion;
+        isUnionType = newIsUnion;
     }
 
     @Override
@@ -119,11 +118,6 @@ abstract class AbstractGeneratedTOBuilder extends AbstractGeneratedTypeBuilder<G
         return isUnionType;
     }
 
-    @Override
-    public final void setIsUnionBuilder(final boolean newIsUnionTypeBuilder) {
-        this.isUnionTypeBuilder = newIsUnionTypeBuilder;
-    }
-
     abstract static class AbstractGeneratedTransferObject extends AbstractGeneratedType implements
             GeneratedTransferObject {
 
@@ -134,62 +128,55 @@ abstract class AbstractGeneratedTOBuilder extends AbstractGeneratedTypeBuilder<G
         private final boolean isTypedef;
         private final TypeDefinition<?> baseType;
         private final boolean isUnionType;
-        private final boolean isUnionTypeBuilder;
 
         AbstractGeneratedTransferObject(final AbstractGeneratedTOBuilder builder) {
             super(builder);
-            this.extendsType = builder.extendsType;
+            extendsType = builder.extendsType;
 
             // FIXME: if these fields were guaranteed to be constant, we could perhaps
             //        cache and reuse them between instances...
-            this.equalsProperties = toUnmodifiableProperties(builder.equalsProperties);
-            this.hashCodeProperties = toUnmodifiableProperties(builder.hashProperties);
-            this.stringProperties = toUnmodifiableProperties(builder.toStringProperties);
-
-            this.isTypedef = builder.isTypedef;
-            this.baseType = builder.baseType;
-            this.isUnionType = builder.isUnionType;
-            this.isUnionTypeBuilder = builder.isUnionTypeBuilder;
+            equalsProperties = toUnmodifiableProperties(builder.equalsProperties);
+            hashCodeProperties = toUnmodifiableProperties(builder.hashProperties);
+            stringProperties = toUnmodifiableProperties(builder.toStringProperties);
+
+            isTypedef = builder.isTypedef;
+            baseType = builder.baseType;
+            isUnionType = builder.isUnionType;
         }
 
         @Override
         public final boolean isTypedef() {
-            return this.isTypedef;
+            return isTypedef;
         }
 
         @Override
         public final TypeDefinition<?> getBaseType() {
-            return this.baseType;
+            return baseType;
         }
 
         @Override
         public final boolean isUnionType() {
-            return this.isUnionType;
-        }
-
-        @Override
-        public final boolean isUnionTypeBuilder() {
-            return this.isUnionTypeBuilder;
+            return isUnionType;
         }
 
         @Override
         public final GeneratedTransferObject getSuperType() {
-            return this.extendsType;
+            return extendsType;
         }
 
         @Override
         public final List<GeneratedProperty> getEqualsIdentifiers() {
-            return this.equalsProperties;
+            return equalsProperties;
         }
 
         @Override
         public final List<GeneratedProperty> getHashCodeIdentifiers() {
-            return this.hashCodeProperties;
+            return hashCodeProperties;
         }
 
         @Override
         public final List<GeneratedProperty> getToStringIdentifiers() {
-            return this.stringProperties;
+            return stringProperties;
         }
 
         @Override
index ad2e088f2552f7775dd8067a368b6c7cfd9735cb..fa96e6d6f0aaf56c59d7f7d37e443007ad6783c9 100644 (file)
@@ -146,7 +146,6 @@ public class GeneratedTOBuilderImplTest {
             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
         genTOBuilder.setTypedef(true);
         genTOBuilder.setIsUnion(true);
-        genTOBuilder.setIsUnionBuilder(true);
         genTOBuilder.setDescription("test description");
         genTOBuilder.setModuleName("test-module");
         genTOBuilder.setReference("http://tools.ietf.org/html/rfc6020");
@@ -156,7 +155,6 @@ public class GeneratedTOBuilderImplTest {
 
         assertTrue(genTO.isTypedef());
         assertTrue(genTO.isUnionType());
-        assertTrue(genTO.isUnionTypeBuilder());
         assertEquals("test description", genTO.getDescription());
         assertEquals("test-module", genTO.getModuleName());
         assertEquals("http://tools.ietf.org/html/rfc6020", genTO.getReference());
diff --git a/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/bug5446/rev151105/IpAddressBinaryBuilder.java b/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/bug5446/rev151105/IpAddressBinaryBuilder.java
deleted file mode 100644 (file)
index 05f163a..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.opendaylight.yang.gen.v1.bug5446.rev151105;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class IpAddressBinaryBuilder {
-    public static IpAddressBinary getDefaultInstance(java.lang.String defaultValue) {
-        return new IpAddressBinary(Ipv4AddressBinary.getDefaultInstance(defaultValue));
-    }
-
-    public static IpAddressBinary getDefaultInstance(byte[] defaultValue) {
-        if (defaultValue.length == 4) {
-            return new IpAddressBinary(new Ipv4AddressBinary(defaultValue));
-        } else if (defaultValue.length == 16) {
-            return new IpAddressBinary(new Ipv6AddressBinary(defaultValue));
-        }
-        return null;
-    }
-}
diff --git a/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/bug8449/rev170516/ContInt32RefUnionInt32Builder.java b/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/bug8449/rev170516/ContInt32RefUnionInt32Builder.java
deleted file mode 100644 (file)
index 7897c1b..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.opendaylight.yang.gen.v1.bug8449.rev170516;
-import org.opendaylight.yang.gen.v1.bug8449.rev170516.ContInt32.RefUnionInt32;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class ContInt32RefUnionInt32Builder {
-
-    public static RefUnionInt32 getDefaultInstance(java.lang.String defaultValue) {
-        throw new java.lang.UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/bug8449/rev170516/ContRefBuilder.java b/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/bug8449/rev170516/ContRefBuilder.java
deleted file mode 100644 (file)
index 96619e4..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.opendaylight.yang.gen.v1.bug8449.rev170516;
-import org.opendaylight.yang.gen.v1.bug8449.rev170516.Cont.Ref;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class ContRefBuilder {
-
-    public static Ref getDefaultInstance(java.lang.String defaultValue) {
-        throw new java.lang.UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/mdsal/test/binding/rev140701/Int32StringUnionBuilder.java b/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/mdsal/test/binding/rev140701/Int32StringUnionBuilder.java
deleted file mode 100644 (file)
index b5f6f4c..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701;
-
-
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class Int32StringUnionBuilder {
-
-    public static Int32StringUnion getDefaultInstance(final java.lang.String defaultValue) {
-        try {
-            return new Int32StringUnion(Integer.parseInt(defaultValue));
-        } catch (final NumberFormatException e) {
-            return new Int32StringUnion(defaultValue);
-        }
-    }
-
-}
diff --git a/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/mdsal/test/bug/_6006/rev160607/UnionTypeBuilder.java b/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/mdsal/test/bug/_6006/rev160607/UnionTypeBuilder.java
deleted file mode 100644 (file)
index bfde669..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.bug._6006.rev160607;
-
-import org.opendaylight.yangtools.yang.common.Uint8;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class UnionTypeBuilder {
-
-    public static UnionType getDefaultInstance(final java.lang.String defaultValue) {
-        if (defaultValue.equals("IdentOne")) {
-            return new UnionType(IdentOne.class);
-        }
-        if (defaultValue.equals("IdentTwo")) {
-            return new UnionType(IdentTwo.class);
-        }
-
-        try {
-            return new UnionType(Uint8.valueOf(defaultValue));
-        } catch (NumberFormatException e) {
-            /* do nothing */
-        }
-
-        throw new IllegalArgumentException("Unknown UnionType string " + defaultValue);
-    }
-
-}
diff --git a/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/yangtools/test/union/rev150121/TopLevelBuilder.java b/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/yangtools/test/union/rev150121/TopLevelBuilder.java
deleted file mode 100644 (file)
index 09d8e0d..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2015 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.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.yangtools.test.union.rev150121;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- */
-public class TopLevelBuilder {
-
-    public static TopLevel getDefaultInstance(java.lang.String defaultValue) {
-        if (defaultValue.length() <= 4) {
-            return new TopLevel(new NonUnionTestType(defaultValue));
-        }
-        else {
-            return new TopLevel(UnionTestTypeBuilder.getDefaultInstance(defaultValue));
-        }
-    }
-
-}
diff --git a/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/yangtools/test/union/rev150121/UnionTestTypeBuilder.java b/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/yangtools/test/union/rev150121/UnionTestTypeBuilder.java
deleted file mode 100644 (file)
index 613f2dc..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2015 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.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.yangtools.test.union.rev150121;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- * 
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- * 
- */
-public class UnionTestTypeBuilder {
-
-    public static UnionTestType getDefaultInstance(java.lang.String defaultValue) {
-        if (defaultValue.length() > 8) {
-            return new UnionTestType(new LowestLevel1(defaultValue));
-        } else {
-            return new UnionTestType(new LowestLevel2(defaultValue));
-        }
-    }
-
-}
diff --git a/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/test/rev170101/ContVlanIdBuilder.java b/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/test/rev170101/ContVlanIdBuilder.java
deleted file mode 100644 (file)
index bc623e1..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.test.rev170101;
-import org.opendaylight.yang.gen.v1.urn.test.rev170101.Cont.VlanId;
-
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class ContVlanIdBuilder {
-
-    public static VlanId getDefaultInstance(java.lang.String defaultValue) {
-        throw new java.lang.UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/test/unsigned/rev180408/NumberUnionBuilder.java b/binding/mdsal-binding-test-model/src/main/java/org/opendaylight/yang/gen/v1/urn/test/unsigned/rev180408/NumberUnionBuilder.java
deleted file mode 100644 (file)
index bd11d58..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2018 ZTE, 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.yang.gen.v1.urn.test.unsigned.rev180408;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- */
-public class NumberUnionBuilder {
-    private NumberUnionBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static NumberUnion getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-}
diff --git a/model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/HostBuilder.java b/model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/HostBuilder.java
deleted file mode 100644 (file)
index 71b96ce..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2015 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-
-/**
- *
- */
-public class HostBuilder {
-
-    private static final Pattern IPV4_PATTERN = Pattern.compile("(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(%[\\p{N}\\p{L}]+)?");
-    private static final Pattern IPV6_PATTERN1 = Pattern.compile("((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(%[\\p{N}\\p{L}]+)?");
-    private static final Pattern IPV6_PATTERN2 = Pattern.compile("(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?");
-    private static final Pattern DOMAIN_PATTERN = Pattern.compile("((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)|\\.");
-
-    private HostBuilder() {
-
-    }
-
-    public static Host getDefaultInstance(final String defaultValue) {
-        final Matcher ipv4Matcher = IPV4_PATTERN.matcher(defaultValue);
-        final Matcher ipv6Matcher1 = IPV6_PATTERN1.matcher(defaultValue);
-        final Matcher ipv6Matcher2 = IPV6_PATTERN2.matcher(defaultValue);
-        final Matcher domainMatcher = DOMAIN_PATTERN.matcher(defaultValue);
-
-        List<String> matchers = new ArrayList<>(3);
-        if (ipv6Matcher1.matches() || ipv6Matcher2.matches()) {
-            matchers.add(Ipv6Address.class.getSimpleName());
-        }
-
-        // Ipv4 and Domain Name patterns are not exclusive
-        // Address 127.0.0.1 matches both patterns
-        // This way Ipv4 address is preferred to domain name
-        if (ipv4Matcher.matches()) {
-            matchers.add(Ipv4Address.class.getSimpleName());
-        } else if (domainMatcher.matches()) {
-            matchers.add(DomainName.class.getSimpleName());
-        }
-
-        if (matchers.size() > 1) {
-            throw new IllegalArgumentException("Cannot create Host from " + defaultValue + ". Value is ambigious for "
-                + matchers);
-        }
-
-        if (ipv4Matcher.matches()) {
-            Ipv4Address ipv4 = new Ipv4Address(defaultValue);
-            IpAddress ipAddress = new IpAddress(ipv4);
-            return new Host(ipAddress);
-        }
-        if (ipv6Matcher1.matches() || ipv6Matcher2.matches()) {
-            Ipv6Address ipv6 = new Ipv6Address(defaultValue);
-            IpAddress ipAddress = new IpAddress(ipv6);
-            return new Host(ipAddress);
-        }
-        if (domainMatcher.matches()) {
-            DomainName domainName = new DomainName(defaultValue);
-            return new Host(domainName);
-        }
-        throw new IllegalArgumentException("Cannot create Host from " + defaultValue);
-    }
-
-}
index 1a43a761f894bcc1b7dba478a611b5a68a489f94..7281e1318e6a1c17349f5f321a4196fc39d35163 100644 (file)
@@ -7,7 +7,14 @@
  */
 package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
 
+import static com.google.common.base.Verify.verify;
+
 import com.google.common.annotations.Beta;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.model.ietf.util.AbstractIetfInetUtil;
 
 /**
@@ -16,12 +23,101 @@ import org.opendaylight.mdsal.model.ietf.util.AbstractIetfInetUtil;
 @Beta
 public final class IetfInetUtil extends AbstractIetfInetUtil<Ipv4Address, Ipv4AddressNoZone, Ipv4Prefix, Ipv6Address,
         Ipv6AddressNoZone, Ipv6Prefix, IpAddress, IpAddressNoZone, IpPrefix> {
-    public static final IetfInetUtil INSTANCE = new IetfInetUtil();
+    public static final @NonNull IetfInetUtil INSTANCE = new IetfInetUtil();
+
+    private static final Pattern HOST_IPV4_PATTERN = Pattern.compile(
+        "(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"
+            + "(%[\\p{N}\\p{L}]+)?");
+    private static final Pattern HOST_IPV6_PATTERN1 = Pattern.compile("((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}"
+        +"((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}"
+        + "(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(%[\\p{N}\\p{L}]+)?");
+    private static final Pattern HOST_IPV6_PATTERN2 = Pattern.compile(
+        "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?");
+    private static final Pattern HOST_DOMAIN_PATTERN = Pattern.compile(
+        "((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?"
+            +"[a-zA-Z0-9]\\.?)|\\.");
+
+    private static final Pattern IPADDRESS_IPV4_PATTERN;
+    static {
+        verify(Ipv4Address.PATTERN_CONSTANTS.size() == 1);
+        IPADDRESS_IPV4_PATTERN = Pattern.compile(Ipv4Address.PATTERN_CONSTANTS.get(0));
+    }
+
+    private static final Pattern IPADDRESS_NO_ZONE_IPV4_PATTERN = Pattern.compile("[0-9\\.]*");
+    private static final Pattern IPADDRESS_NO_ZONE_IPV6_PATTERN = Pattern.compile("[0-9a-fA-F:\\.]*");
+
+    private static final Pattern IPPREFIX_IPV4_PATTERN;
+    static {
+        verify(Ipv4Prefix.PATTERN_CONSTANTS.size() == 1);
+        IPPREFIX_IPV4_PATTERN = Pattern.compile(Ipv4Prefix.PATTERN_CONSTANTS.get(0));
+    }
 
     private IetfInetUtil() {
         super(Ipv4AddressNoZone.class, Ipv4Prefix.class, Ipv6AddressNoZone.class, Ipv6Prefix.class);
     }
 
+    @Beta
+    public static Host hostFor(final String str) {
+        final Matcher ipv4Matcher = HOST_IPV4_PATTERN.matcher(str);
+        final Matcher ipv6Matcher1 = HOST_IPV6_PATTERN1.matcher(str);
+        final Matcher ipv6Matcher2 = HOST_IPV6_PATTERN2.matcher(str);
+        final Matcher domainMatcher = HOST_DOMAIN_PATTERN.matcher(str);
+        List<String> matchers = new ArrayList<>(3);
+        if (ipv6Matcher1.matches() || ipv6Matcher2.matches()) {
+            matchers.add(Ipv6Address.class.getSimpleName());
+        }
+        // Ipv4 and Domain Name patterns are not exclusive
+        // Address 127.0.0.1 matches both patterns
+        // This way Ipv4 address is preferred to domain name
+        if (ipv4Matcher.matches()) {
+            matchers.add(Ipv4Address.class.getSimpleName());
+        } else if (domainMatcher.matches()) {
+            matchers.add(DomainName.class.getSimpleName());
+        }
+        if (matchers.size() > 1) {
+            throw new IllegalArgumentException("Cannot create Host from " + str + ". Value is ambigious for "
+                + matchers);
+        }
+        if (ipv4Matcher.matches()) {
+            Ipv4Address ipv4 = new Ipv4Address(str);
+            IpAddress ipAddress = new IpAddress(ipv4);
+            return new Host(ipAddress);
+        }
+        if (ipv6Matcher1.matches() || ipv6Matcher2.matches()) {
+            Ipv6Address ipv6 = new Ipv6Address(str);
+            IpAddress ipAddress = new IpAddress(ipv6);
+            return new Host(ipAddress);
+        }
+        if (domainMatcher.matches()) {
+            DomainName domainName = new DomainName(str);
+            return new Host(domainName);
+        }
+        throw new IllegalArgumentException("Cannot create Host from " + str);
+    }
+
+    @Beta
+    public static IpAddress ipAddressFor(final String str) {
+        return IPADDRESS_IPV4_PATTERN.matcher(str).matches() ? new IpAddress(new Ipv4Address(str))
+                : new IpAddress(new Ipv6Address(str));
+    }
+
+    @Beta
+    public static IpAddressNoZone ipAddressNoZoneFor(final String str) {
+        if (IPADDRESS_NO_ZONE_IPV4_PATTERN.matcher(str).matches()) {
+            return new IpAddressNoZone(new Ipv4AddressNoZone(str));
+        } else if (IPADDRESS_NO_ZONE_IPV6_PATTERN.matcher(str).matches()) {
+            return new IpAddressNoZone(new Ipv6AddressNoZone(str));
+        } else {
+            throw new IllegalArgumentException("Cannot create IpAddress from " + str);
+        }
+    }
+
+    @Beta
+    public static IpPrefix ipPrefixFor(final String defaultValue) {
+        return IPPREFIX_IPV4_PATTERN.matcher(defaultValue).matches() ? new IpPrefix(new Ipv4Prefix(defaultValue))
+                : new IpPrefix(new Ipv6Prefix(defaultValue));
+    }
+
     @Override
     protected IpAddress ipv4Address(final Ipv4AddressNoZone addr) {
         return new IpAddress(addr);
diff --git a/model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressBuilder.java b/model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressBuilder.java
deleted file mode 100644 (file)
index c1e4caf..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2015 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-
-import static com.google.common.base.Verify.verify;
-
-import java.util.regex.Pattern;
-
-/**
- * Builder for {@link IpAddress} instances.
- */
-public class IpAddressBuilder {
-    private static final Pattern IPV4_PATTERN;
-
-    static {
-        verify(Ipv4Address.PATTERN_CONSTANTS.size() == 1);
-        IPV4_PATTERN = Pattern.compile(Ipv4Address.PATTERN_CONSTANTS.get(0));
-    }
-
-    private IpAddressBuilder() {
-
-    }
-
-    public static IpAddress getDefaultInstance(final String defaultValue) {
-        return IPV4_PATTERN.matcher(defaultValue).matches() ? new IpAddress(new Ipv4Address(defaultValue))
-                : new IpAddress(new Ipv6Address(defaultValue));
-    }
-}
diff --git a/model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressNoZoneBuilder.java b/model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpAddressNoZoneBuilder.java
deleted file mode 100644 (file)
index 57cd666..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2015 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-
-import java.util.regex.Pattern;
-
-public class IpAddressNoZoneBuilder {
-
-    private static final Pattern IPV4_NO_ZONE_PATTERN =
-        Pattern.compile("[0-9\\.]*");
-    private static final Pattern IPV6_NO_ZONE_PATTERN1 =
-        Pattern.compile("[0-9a-fA-F:\\.]*");
-
-    public static IpAddressNoZone getDefaultInstance(final String defaultValue) {
-        if (IPV4_NO_ZONE_PATTERN.matcher(defaultValue).matches()) {
-            return new IpAddressNoZone((new Ipv4AddressNoZone(defaultValue)));
-        } else if (IPV6_NO_ZONE_PATTERN1.matcher(defaultValue).matches()) {
-            return new IpAddressNoZone((new Ipv6AddressNoZone(defaultValue)));
-        } else {
-            throw new IllegalArgumentException("Cannot create IpAddress from " + defaultValue);
-        }
-    }
-}
\ No newline at end of file
diff --git a/model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpPrefixBuilder.java b/model/ietf/rfc6991-ietf-inet-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev130715/IpPrefixBuilder.java
deleted file mode 100644 (file)
index 155cae6..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2015 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-
-import static com.google.common.base.Verify.verify;
-
-import java.util.regex.Pattern;
-
-/**
- * Builder for {@link IpPrefix} instances.
- */
-public class IpPrefixBuilder {
-    private static final Pattern IPV4_PATTERN;
-
-    static {
-        verify(Ipv4Prefix.PATTERN_CONSTANTS.size() == 1);
-        IPV4_PATTERN = Pattern.compile(Ipv4Prefix.PATTERN_CONSTANTS.get(0));
-    }
-
-    private IpPrefixBuilder() {
-
-    }
-
-    public static IpPrefix getDefaultInstance(final String defaultValue) {
-        return IPV4_PATTERN.matcher(defaultValue).matches() ? new IpPrefix(new Ipv4Prefix(defaultValue))
-                : new IpPrefix(new Ipv6Prefix(defaultValue));
-    }
-}
index 1abe225e0ba5b970818f141ebb98b82182ffad1a..d8e878f3e3fc4cba09ea724904625036c235b55b 100644 (file)
@@ -8,22 +8,13 @@
 package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 
-import java.lang.reflect.Constructor;
 import org.junit.Test;
 
 public class HostBuilderTest {
-
     @Test
     public void testGetDefaultInstance() throws Exception {
-        final Constructor<HostBuilder> constructor = HostBuilder.class.getDeclaredConstructor();
-        assertFalse(constructor.isAccessible());
-        constructor.setAccessible(true);
-        final HostBuilder newInstance = constructor.newInstance();
-        assertNotNull(newInstance);
-
         testIpv4("1.1.1.1");
         testIpv4("192.168.155.100");
         testIpv4("1.192.1.221");
@@ -44,9 +35,9 @@ public class HostBuilderTest {
         testDomain("test");
     }
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test
     public void testIllegalArgumentException1() {
-        HostBuilder.getDefaultInstance("2001:0DB8::CD3/60");
+        assertThrows(IllegalArgumentException.class, () -> IetfInetUtil.hostFor("2001:0DB8::CD3/60"));
     }
 
     @Test(expected = IllegalArgumentException.class)
@@ -55,17 +46,17 @@ public class HostBuilderTest {
     }
 
     private static void testIpv4(final String ip) {
-        final Host defaultInstance = HostBuilder.getDefaultInstance(ip);
+        final Host defaultInstance = IetfInetUtil.hostFor(ip);
         assertEquals(new Host(new IpAddress(new Ipv4Address(ip))), defaultInstance);
     }
 
     private static void testIpv6(final String ip) {
-        final Host defaultInstance = HostBuilder.getDefaultInstance(ip);
+        final Host defaultInstance = IetfInetUtil.hostFor(ip);
         assertEquals(new Host(new IpAddress(new Ipv6Address(ip))), defaultInstance);
     }
 
     private static void testDomain(final String ip) {
-        final Host defaultInstance = HostBuilder.getDefaultInstance(ip);
+        final Host defaultInstance = IetfInetUtil.hostFor(ip);
         assertEquals(new Host(new DomainName(ip)), defaultInstance);
     }
 }
\ No newline at end of file
index 0f83a516c885ce3b560a84085c2788a656e15b67..2793731f137711d589ba4ecab305074d8e37d904 100644 (file)
@@ -8,22 +8,13 @@
 package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 
-import java.lang.reflect.Constructor;
 import org.junit.Test;
 
 public class IpAddressBuilderTest {
-
     @Test
     public void testGetDefaultInstance() throws Exception {
-        final Constructor<IpAddressBuilder> constructor = IpAddressBuilder.class.getDeclaredConstructor();
-        assertFalse(constructor.isAccessible());
-        constructor.setAccessible(true);
-        final IpAddressBuilder newInstance = constructor.newInstance();
-        assertNotNull(newInstance);
-
         testIpv4("1.1.1.1");
         testIpv4("192.168.155.100");
         testIpv4("1.192.1.221");
@@ -41,23 +32,23 @@ public class IpAddressBuilderTest {
         testIpv6("::");
     }
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test
     public void testIllegalArgumentException1() {
-        IpAddressBuilder.getDefaultInstance("badIp");
+        assertThrows(IllegalArgumentException.class, () -> IetfInetUtil.ipAddressFor("badIp"));
     }
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test
     public void testIllegalArgumentException2() {
-        IpAddressBuilder.getDefaultInstance("2001:0DB8::CD3/60");
+        assertThrows(IllegalArgumentException.class, () -> IetfInetUtil.ipAddressFor("2001:0DB8::CD3/60"));
     }
 
     private static void testIpv4(final String ip) {
-        final IpAddress defaultInstance = IpAddressBuilder.getDefaultInstance(ip);
+        final IpAddress defaultInstance = IetfInetUtil.ipAddressFor(ip);
         assertEquals(new IpAddress(new Ipv4Address(ip)), defaultInstance);
     }
 
     private static void testIpv6(final String ip) {
-        final IpAddress defaultInstance = IpAddressBuilder.getDefaultInstance(ip);
+        final IpAddress defaultInstance = IetfInetUtil.ipAddressFor(ip);
         assertEquals(new IpAddress(new Ipv6Address(ip)), defaultInstance);
     }
 }
\ No newline at end of file
index bde7e1a61bf29bd9ce88a30a1e763c61fa090db1..d55793698dfe5b695a6ddcfbb2b1e47bf467d117 100644 (file)
@@ -8,22 +8,13 @@
 package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 
-import java.lang.reflect.Constructor;
 import org.junit.Test;
 
 public class IpAddressNoZoneBuilderTest {
-
     @Test
     public void testGetDefaultInstance() throws Exception {
-        final Constructor<IpAddressNoZoneBuilder> constructor = IpAddressNoZoneBuilder.class.getDeclaredConstructor();
-        assertFalse(constructor.isAccessible());
-        constructor.setAccessible(true);
-        final IpAddressNoZoneBuilder newInstance = constructor.newInstance();
-        assertNotNull(newInstance);
-
         testIpv4("1.1.1.1");
         testIpv4("192.168.155.100");
         testIpv4("1.192.1.221");
@@ -41,18 +32,16 @@ public class IpAddressNoZoneBuilderTest {
         testIpv6("::");
     }
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test
     public void testIllegalArgumentException() {
-        IpAddressNoZoneBuilder.getDefaultInstance("2001:0DB8::CD3/60");
+        assertThrows(IllegalArgumentException.class, () -> IetfInetUtil.ipAddressNoZoneFor("2001:0DB8::CD3/60"));
     }
 
     private static void testIpv4(final String ip) {
-        final IpAddressNoZone defaultInstance = IpAddressNoZoneBuilder.getDefaultInstance(ip);
-        assertEquals(new IpAddressNoZone(new Ipv4AddressNoZone(ip)), defaultInstance);
+        assertEquals(new IpAddressNoZone(new Ipv4AddressNoZone(ip)), IetfInetUtil.ipAddressNoZoneFor(ip));
     }
 
     private static void testIpv6(final String ip) {
-        final IpAddressNoZone defaultInstance = IpAddressNoZoneBuilder.getDefaultInstance(ip);
-        assertEquals(new IpAddressNoZone(new Ipv6AddressNoZone(ip)), defaultInstance);
+        assertEquals(new IpAddressNoZone(new Ipv6AddressNoZone(ip)), IetfInetUtil.ipAddressNoZoneFor(ip));
     }
 }
\ No newline at end of file
index eabdab9522381c64ca044097592a55eab91a60bd..68b3b22344c0b492a7f3f05466a7e1d537470197 100644 (file)
@@ -8,38 +8,27 @@
 package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 
-import java.lang.reflect.Constructor;
 import org.junit.Test;
 
 public class IpPrefixBuilderTest {
-
     @Test
     public void testGetDefaultInstance() throws Exception {
-        final Constructor<IpPrefixBuilder> constructor = IpPrefixBuilder.class.getDeclaredConstructor();
-        assertFalse(constructor.isAccessible());
-        constructor.setAccessible(true);
-        final IpPrefixBuilder newInstance = constructor.newInstance();
-        assertNotNull(newInstance);
-
         testIpv6("ff00::/8");
         testIpv4("192.0.2.1/24");
     }
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test
     public void testIllegalArgumentException1() {
-        IpPrefixBuilder.getDefaultInstance("badIp");
+        assertThrows(IllegalArgumentException.class, () -> IetfInetUtil.ipPrefixFor("badIp"));
     }
 
     private static void testIpv4(final String ip) {
-        final IpPrefix defaultInstance = IpPrefixBuilder.getDefaultInstance(ip);
-        assertEquals(new IpPrefix(new Ipv4Prefix(ip)), defaultInstance);
+        assertEquals(new IpPrefix(new Ipv4Prefix(ip)), IetfInetUtil.ipPrefixFor(ip));
     }
 
     private static void testIpv6(final String ip) {
-        final IpPrefix defaultInstance = IpPrefixBuilder.getDefaultInstance(ip);
-        assertEquals(new IpPrefix(new Ipv6Prefix(ip)), defaultInstance);
+        assertEquals(new IpPrefix(new Ipv6Prefix(ip)), IetfInetUtil.ipPrefixFor(ip));
     }
 }
\ No newline at end of file
diff --git a/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/IetfRoutingUtils.java b/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/IetfRoutingUtils.java
new file mode 100644 (file)
index 0000000..efda958
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2018, 2022 PANTHEON.tech, 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204;
+
+import static com.google.common.base.Verify.verify;
+import static com.google.common.base.Verify.verifyNotNull;
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.annotations.Beta;
+import com.google.common.base.Verify;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Maps;
+import java.util.Arrays;
+import java.util.regex.Pattern;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint32;
+
+/**
+ * Utility methods for dealing with unions in {@code ietf-routing-types.yang}.
+ */
+@Beta
+@NonNullByDefault
+public final class IetfRoutingUtils {
+    private static final ImmutableMap<Ipv4MulticastSourceAddress.Enumeration, Ipv4MulticastSourceAddress>
+        ENUMERATED_IPV4_MCAST_SRC = Arrays.stream(Ipv4MulticastSourceAddress.Enumeration.values()).collect(
+            Maps.toImmutableEnumMap(Verify::verifyNotNull, Ipv4MulticastSourceAddress::new));
+    private static final ImmutableMap<Ipv6MulticastSourceAddress.Enumeration, Ipv6MulticastSourceAddress>
+        ENUMERATED_IPV6_MCAST_SRC = Arrays.stream(Ipv6MulticastSourceAddress.Enumeration.values()).collect(
+            Maps.toImmutableEnumMap(Verify::verifyNotNull, Ipv6MulticastSourceAddress::new));
+    private static final ImmutableMap<TimerValueMilliseconds.Enumeration, TimerValueMilliseconds>
+        ENUMERATED_TIMERVAR_MS = Arrays.stream(TimerValueMilliseconds.Enumeration.values())
+        .collect(Maps.toImmutableEnumMap(Verify::verifyNotNull, TimerValueMilliseconds::new));
+    private static final ImmutableMap<TimerValueSeconds16.Enumeration, TimerValueSeconds16> ENUMERATED_TIMERVAL_16 =
+        Arrays.stream(TimerValueSeconds16.Enumeration.values())
+            .collect(Maps.toImmutableEnumMap(Verify::verifyNotNull, TimerValueSeconds16::new));
+    private static final ImmutableMap<TimerValueSeconds32.Enumeration, TimerValueSeconds32> ENUMERATED_TIMERVAL_32 =
+        Arrays.stream(TimerValueSeconds32.Enumeration.values())
+            .collect(Maps.toImmutableEnumMap(Verify::verifyNotNull, TimerValueSeconds32::new));
+
+    private static final Pattern IP_MCAST_GRP_ADDR_IPV4_PATTERN;
+
+    static {
+        verify(Ipv4Address.PATTERN_CONSTANTS.size() == 1);
+        IP_MCAST_GRP_ADDR_IPV4_PATTERN = Pattern.compile(Ipv4MulticastGroupAddress.PATTERN_CONSTANTS.get(0));
+    }
+
+    private IetfRoutingUtils() {
+        // Hidden on purpose
+    }
+
+    public static IpMulticastGroupAddress ipMulticastGroupAddressFor(final String str) {
+        return IP_MCAST_GRP_ADDR_IPV4_PATTERN.matcher(str).matches()
+            ? new IpMulticastGroupAddress(new Ipv4MulticastGroupAddress(str))
+                : new IpMulticastGroupAddress(new Ipv6MulticastGroupAddress(str));
+    }
+
+    public static Ipv4MulticastSourceAddress ipv4MulticastSourceAddressFor(final String str) {
+        return Ipv4MulticastSourceAddress.Enumeration.forName(str)
+            .map(ENUMERATED_IPV4_MCAST_SRC::get)
+            .orElse(new Ipv4MulticastSourceAddress(new Ipv4Address(str)));
+    }
+
+    public static Ipv4MulticastSourceAddress ipv4MulticastSourceAddressFor(
+            final Ipv4MulticastSourceAddress.Enumeration enumeration) {
+        return verifyNotNull(ENUMERATED_IPV4_MCAST_SRC.get(requireNonNull(enumeration)));
+    }
+
+    public static Ipv6MulticastSourceAddress ipv6MulticastSourceAddressFor(final String str) {
+        return Ipv6MulticastSourceAddress.Enumeration.forName(str)
+            .map(ENUMERATED_IPV6_MCAST_SRC::get)
+            .orElse(new Ipv6MulticastSourceAddress(new Ipv6Address(str)));
+    }
+
+    public static Ipv6MulticastSourceAddress ipv6MulticastSourceAddressFor(
+            final Ipv6MulticastSourceAddress.Enumeration enumeration) {
+        return verifyNotNull(ENUMERATED_IPV6_MCAST_SRC.get(requireNonNull(enumeration)));
+    }
+
+    public static TimerValueMilliseconds timerValueMillisecondsFor(final String str) {
+        return TimerValueMilliseconds.Enumeration.forName(str)
+            .map(ENUMERATED_TIMERVAR_MS::get)
+            .orElse(new TimerValueMilliseconds(Uint32.valueOf(str)));
+    }
+
+    public static TimerValueMilliseconds timerValueMillisecondsFor(
+            final TimerValueMilliseconds.Enumeration enumeration) {
+        return verifyNotNull(ENUMERATED_TIMERVAR_MS.get(requireNonNull(enumeration)));
+    }
+
+
+    public static TimerValueSeconds16 timerValueSeconds16For(final String str) {
+        return TimerValueSeconds16.Enumeration.forName(str).map(ENUMERATED_TIMERVAL_16::get)
+                .orElse(new TimerValueSeconds16(Uint16.valueOf(str)));
+    }
+
+    public static TimerValueSeconds16 timerValueSeconds16For(
+            final TimerValueSeconds16.Enumeration enumeration) {
+        return verifyNotNull(ENUMERATED_TIMERVAL_16.get(requireNonNull(enumeration)));
+    }
+
+    public static TimerValueSeconds32 timerValueSeconds32For(final String defaultValue) {
+        return TimerValueSeconds32.Enumeration.forName(defaultValue)
+            .map(ENUMERATED_TIMERVAL_32::get)
+            .orElse(new TimerValueSeconds32(Uint32.valueOf(defaultValue)));
+    }
+
+    public static TimerValueSeconds32 timerValueSeconds32For(final TimerValueSeconds32.Enumeration enumeration) {
+        return verifyNotNull(ENUMERATED_TIMERVAL_32.get(requireNonNull(enumeration)));
+    }
+}
diff --git a/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/IpMulticastGroupAddressBuilder.java b/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/IpMulticastGroupAddressBuilder.java
deleted file mode 100644 (file)
index e92c3fb..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2018 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204;
-
-import static com.google.common.base.Verify.verify;
-
-import com.google.common.annotations.Beta;
-import java.util.regex.Pattern;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
-
-/**
- * Builder for {@link IpMulticastGroupAddress} instances.
- *
- * @author Robert Varga
- */
-@Beta
-@NonNullByDefault
-public final class IpMulticastGroupAddressBuilder {
-    private static final Pattern IPV4_PATTERN;
-
-    static {
-        verify(Ipv4Address.PATTERN_CONSTANTS.size() == 1);
-        IPV4_PATTERN = Pattern.compile(Ipv4MulticastGroupAddress.PATTERN_CONSTANTS.get(0));
-    }
-
-    private IpMulticastGroupAddressBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static IpMulticastGroupAddress getDefaultInstance(final String defaultValue) {
-        return IPV4_PATTERN.matcher(defaultValue).matches()
-                ? new IpMulticastGroupAddress(new Ipv4MulticastGroupAddress(defaultValue))
-                        : new IpMulticastGroupAddress(new Ipv6MulticastGroupAddress(defaultValue));
-    }
-}
diff --git a/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/Ipv4MulticastSourceAddressBuilder.java b/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/Ipv4MulticastSourceAddressBuilder.java
deleted file mode 100644 (file)
index a91c195..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2018 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204;
-
-import static com.google.common.base.Verify.verifyNotNull;
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.annotations.Beta;
-import com.google.common.base.Verify;
-import com.google.common.collect.Maps;
-import java.util.Arrays;
-import java.util.Map;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204.Ipv4MulticastSourceAddress.Enumeration;
-
-/**
- * Builder for {@link IpMulticastGroupAddress} instances.
- *
- * @author Robert Varga
- */
-@Beta
-@NonNullByDefault
-public final class Ipv4MulticastSourceAddressBuilder {
-    private static final Map<Enumeration, Ipv4MulticastSourceAddress> ENUMERATED = Arrays.stream(Enumeration.values())
-            .collect(Maps.toImmutableEnumMap(Verify::verifyNotNull, Ipv4MulticastSourceAddress::new));
-
-    private Ipv4MulticastSourceAddressBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static Ipv4MulticastSourceAddress getDefaultInstance(final String defaultValue) {
-        return Enumeration.forName(defaultValue).map(ENUMERATED::get)
-                .orElse(new Ipv4MulticastSourceAddress(new Ipv4Address(defaultValue)));
-    }
-
-    public static Ipv4MulticastSourceAddress forEnumeration(final Enumeration enumeration) {
-        return verifyNotNull(ENUMERATED.get(requireNonNull(enumeration)));
-    }
-}
diff --git a/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/Ipv6MulticastSourceAddressBuilder.java b/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/Ipv6MulticastSourceAddressBuilder.java
deleted file mode 100644 (file)
index c8b257e..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2018 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204;
-
-import static com.google.common.base.Verify.verifyNotNull;
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.annotations.Beta;
-import com.google.common.base.Verify;
-import com.google.common.collect.Maps;
-import java.util.Arrays;
-import java.util.Map;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204.Ipv6MulticastSourceAddress.Enumeration;
-
-/**
- * Builder for {@link IpMulticastGroupAddress} instances.
- *
- * @author Robert Varga
- */
-@Beta
-@NonNullByDefault
-public final class Ipv6MulticastSourceAddressBuilder {
-    private static final Map<Enumeration, Ipv6MulticastSourceAddress> ENUMERATED = Arrays.stream(Enumeration.values())
-            .collect(Maps.toImmutableEnumMap(Verify::verifyNotNull, Ipv6MulticastSourceAddress::new));
-
-    private Ipv6MulticastSourceAddressBuilder() {
-
-    }
-
-    public static Ipv6MulticastSourceAddress getDefaultInstance(final String defaultValue) {
-        return Enumeration.forName(defaultValue).map(ENUMERATED::get)
-                .orElse(new Ipv6MulticastSourceAddress(new Ipv6Address(defaultValue)));
-    }
-
-    public static Ipv6MulticastSourceAddress forEnumeration(final Enumeration enumeration) {
-        return verifyNotNull(ENUMERATED.get(requireNonNull(enumeration)));
-    }
-}
diff --git a/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/MplsLabelBuilder.java b/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/MplsLabelBuilder.java
deleted file mode 100644 (file)
index 4543a08..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2018 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204;
-
-import com.google.common.annotations.Beta;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
-import java.util.AbstractMap.SimpleImmutableEntry;
-import java.util.Map.Entry;
-import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yangtools.util.ClassLoaderUtils;
-import org.opendaylight.yangtools.yang.common.Uint32;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Builder for {@link MplsLabel} instances.
- *
- * @author Robert Varga
- */
-@Beta
-@NonNullByDefault
-public final class MplsLabelBuilder {
-    private static final Logger LOG = LoggerFactory.getLogger(MplsLabelBuilder.class);
-
-    @SuppressWarnings("null")
-    private static final LoadingCache<Entry<ClassLoader, String>, Optional<MplsLabel>> CLASS_CACHE =
-    CacheBuilder.newBuilder()
-            .weakKeys().build(new CacheLoader<Entry<ClassLoader, String>, Optional<MplsLabel>>() {
-                @Override
-                public Optional<MplsLabel> load(final Entry<ClassLoader, String> key) {
-                    return loadClass(key.getKey(), key.getValue());
-                }
-            });
-
-    private MplsLabelBuilder() {
-
-    }
-
-    public static MplsLabel getDefaultInstance(final String defaultValue) {
-        if (defaultValue.startsWith("interface ")) {
-            final Optional<MplsLabel> optStatic = CLASS_CACHE.getUnchecked(
-                new SimpleImmutableEntry<>(MplsLabelBuilder.class.getClassLoader(), defaultValue));
-            if (optStatic.isPresent()) {
-                return optStatic.get();
-            }
-
-            final ClassLoader tccl = Thread.currentThread().getContextClassLoader();
-            if (tccl != null) {
-                final Optional<MplsLabel> optThreadLocal = CLASS_CACHE.getUnchecked(
-                    new SimpleImmutableEntry<>(tccl, defaultValue));
-                if (optThreadLocal.isPresent()) {
-                    return optThreadLocal.get();
-                }
-            }
-        }
-
-        return new MplsLabel(new MplsLabelGeneralUse(Uint32.valueOf(defaultValue)));
-    }
-
-    static Optional<MplsLabel> loadClass(final ClassLoader loader, final String key) {
-        final Class<?> cls;
-        try {
-            cls = ClassLoaderUtils.loadClass(loader, key);
-        } catch (ClassNotFoundException e) {
-            LOG.debug("%s not found in classloader of %s", key, loader);
-            return Optional.empty();
-        }
-
-        final Class<? extends MplsLabelSpecialPurposeValue> cast;
-        try {
-            cast = cls.asSubclass(MplsLabelSpecialPurposeValue.class);
-        } catch (ClassCastException e) {
-            LOG.warn("%s does not implement %s", MplsLabelSpecialPurposeValue.class);
-            return Optional.empty();
-        }
-
-        return Optional.of(new MplsLabel(cast));
-    }
-}
diff --git a/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/TimerValueMillisecondsBuilder.java b/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/TimerValueMillisecondsBuilder.java
deleted file mode 100644 (file)
index 0fd7472..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2018 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204;
-
-import static com.google.common.base.Verify.verifyNotNull;
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.annotations.Beta;
-import com.google.common.base.Verify;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
-import java.util.Arrays;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204.TimerValueMilliseconds.Enumeration;
-import org.opendaylight.yangtools.yang.common.Uint32;
-
-/**
- * Builder for {@link TimerValueMilliseconds} instances.
- *
- * @author Robert Varga
- */
-@Beta
-@NonNullByDefault
-public final class TimerValueMillisecondsBuilder {
-    private static final ImmutableMap<Enumeration, TimerValueMilliseconds> ENUMERATED =
-            Arrays.stream(Enumeration.values())
-            .collect(Maps.toImmutableEnumMap(Verify::verifyNotNull, TimerValueMilliseconds::new));
-
-    private TimerValueMillisecondsBuilder() {
-
-    }
-
-    public static TimerValueMilliseconds getDefaultInstance(final String defaultValue) {
-        return Enumeration.forName(defaultValue).map(ENUMERATED::get)
-                .orElse(new TimerValueMilliseconds(Uint32.valueOf(defaultValue)));
-    }
-
-    public static TimerValueMilliseconds forEnumeration(final Enumeration enumeration) {
-        return verifyNotNull(ENUMERATED.get(requireNonNull(enumeration)));
-    }
-}
diff --git a/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/TimerValueSeconds16Builder.java b/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/TimerValueSeconds16Builder.java
deleted file mode 100644 (file)
index fd63f6f..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2018 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204;
-
-import static com.google.common.base.Verify.verifyNotNull;
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.annotations.Beta;
-import com.google.common.base.Verify;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
-import java.util.Arrays;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204.TimerValueSeconds16.Enumeration;
-import org.opendaylight.yangtools.yang.common.Uint16;
-
-/**
-  * Builder for {@link TimerValueSeconds16} instances.
-  *
-  * @author Robert Varga
-  */
-@Beta
-@NonNullByDefault
-public final class TimerValueSeconds16Builder {
-     private static final ImmutableMap<Enumeration, TimerValueSeconds16> ENUMERATED =
-             Arrays.stream(Enumeration.values())
-             .collect(Maps.toImmutableEnumMap(Verify::verifyNotNull, TimerValueSeconds16::new));
-
-     private TimerValueSeconds16Builder() {
-
-     }
-
-     public static TimerValueSeconds16 getDefaultInstance(final String defaultValue) {
-         return Enumeration.forName(defaultValue).map(ENUMERATED::get)
-                 .orElse(new TimerValueSeconds16(Uint16.valueOf(defaultValue)));
-     }
-
-     public static TimerValueSeconds16 forEnumeration(final Enumeration enumeration) {
-         return verifyNotNull(ENUMERATED.get(requireNonNull(enumeration)));
-     }
-}
diff --git a/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/TimerValueSeconds32Builder.java b/model/ietf/rfc8294-ietf-routing-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/routing/types/rev171204/TimerValueSeconds32Builder.java
deleted file mode 100644 (file)
index 3675368..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2018 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204;
-
-import static com.google.common.base.Verify.verifyNotNull;
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.annotations.Beta;
-import com.google.common.base.Verify;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
-import java.util.Arrays;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.types.rev171204.TimerValueSeconds32.Enumeration;
-import org.opendaylight.yangtools.yang.common.Uint32;
-
-/**
- * Builder for {@link TimerValueSeconds32} instances.
- *
- * @author Robert Varga
- */
-@Beta
-@NonNullByDefault
-public final class TimerValueSeconds32Builder {
-    private static final ImmutableMap<Enumeration, TimerValueSeconds32> ENUMERATED = Arrays.stream(Enumeration.values())
-            .collect(Maps.toImmutableEnumMap(Verify::verifyNotNull, TimerValueSeconds32::new));
-
-    private TimerValueSeconds32Builder() {
-
-    }
-
-    public static TimerValueSeconds32 getDefaultInstance(final String defaultValue) {
-        return Enumeration.forName(defaultValue).map(ENUMERATED::get)
-                .orElse(new TimerValueSeconds32(Uint32.valueOf(defaultValue)));
-    }
-
-    public static TimerValueSeconds32 forEnumeration(final Enumeration enumeration) {
-        return verifyNotNull(ENUMERATED.get(requireNonNull(enumeration)));
-    }
-}
index ac6207e15ff656ab81e9654f750b68cd22a09051..71171d81c6d3928af0b441d45b1c9f54dc192224 100644 (file)
@@ -20,7 +20,6 @@
 
     <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
     <artifactId>rfc8519-ietf-ethertypes</artifactId>
-    <version>10.0.0-SNAPSHOT</version>
     <packaging>bundle</packaging>
 
     <name>${project.artifactId}</name>
@@ -20,7 +20,10 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.Uint16;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ethertypes.rev190304.Ethertype.Enumeration;
 
-public final class EthertypeBuilder {
+/**
+ * Utility methods for dealing with {@link Ethertype}.
+ */
+public final class EthertypeUtils {
     private static final CharMatcher DIGITS = CharMatcher.inRange('0', '9');
     private static final EnumMap<Enumeration, Ethertype> ENUM_ETHERTYPES;
 
@@ -32,7 +35,7 @@ public final class EthertypeBuilder {
         ENUM_ETHERTYPES = map;
     }
 
-    private EthertypeBuilder() {
+    private EthertypeUtils() {
         //Exists only to defeat instantiation.
     }
 
diff --git a/model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/LegacyRevisionUtils.java b/model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/LegacyRevisionUtils.java
new file mode 100644 (file)
index 0000000..1ad108c
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2019 PANTHEON.tech 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104;
+
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.CommonLeafs;
+import org.opendaylight.yangtools.yang.common.Revision;
+
+/**
+ * Utility methods for converting legacy RFC7895 {@code modules-state} Revision to and from various representations.
+ */
+@SuppressWarnings("deprecation")
+public final class LegacyRevisionUtils {
+    private static final CommonLeafs.@NonNull Revision EMPTY_REVISION = new CommonLeafs.Revision("");
+
+    private LegacyRevisionUtils() {
+        // Hidden on purpose
+    }
+
+    /**
+     * Return an empty {@link CommonLeafs.Revision}.
+     *
+     * @return An empty Revision.
+     */
+    public static CommonLeafs.@NonNull Revision emptyRevision() {
+        return EMPTY_REVISION;
+    }
+
+    public static CommonLeafs.@NonNull Revision fromString(final String defaultValue) {
+        return defaultValue.isEmpty() ? EMPTY_REVISION
+            : new CommonLeafs.Revision(new RevisionIdentifier(defaultValue));
+    }
+
+    /**
+     * Create a {@link CommonLeafs.Revision} from an optional {@link Revision}.
+     *
+     * @param revision Optional {@link Revision}
+     * @return A Revision
+     * @throws NullPointerException if {@code revision} is null
+     */
+    public static CommonLeafs.@NonNull Revision fromYangCommon(final Optional<Revision> revision) {
+        return revision.map(rev -> new CommonLeafs.Revision(new RevisionIdentifier(rev.toString())))
+            .orElse(EMPTY_REVISION);
+    }
+
+    /**
+     * Create an optional {@link Revision} from a {@link CommonLeafs.Revision}.
+     *
+     * @param revision A Revision
+     * @return Optional {@link Revision}
+     * @throws NullPointerException if {@code revision} is null
+     */
+    public static Optional<Revision> toYangCommon(final CommonLeafs.Revision revision) {
+        final var id = revision.getRevisionIdentifier();
+        return id != null ? Optional.of(Revision.of(id.getValue())) : Optional.empty();
+    }
+}
+
diff --git a/model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/RevisionUtils.java b/model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/RevisionUtils.java
new file mode 100644 (file)
index 0000000..b7e333d
--- /dev/null
@@ -0,0 +1,55 @@
+package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104;
+
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.ImportOnlyModule;
+import org.opendaylight.yangtools.yang.common.Revision;
+
+/**
+ * Utility methods for converting legacy RFC8525 Revision to and from various representations.
+ */
+public final class RevisionUtils {
+    private static final ImportOnlyModule.@NonNull Revision EMPTY_REVISION = new ImportOnlyModule.Revision("");
+
+    private RevisionUtils() {
+        // Hidden on purpose
+    }
+
+    /**
+     * Return an empty {@link ImportOnlyModule.Revision}.
+     *
+     * @return An empty Revision.
+     */
+    public static ImportOnlyModule.@NonNull Revision emptyRevision() {
+        return EMPTY_REVISION;
+    }
+
+    public static ImportOnlyModule.@NonNull Revision fromString(final String defaultValue) {
+        return defaultValue.isEmpty() ? EMPTY_REVISION
+            : new ImportOnlyModule.Revision(new RevisionIdentifier(defaultValue));
+    }
+
+    /**
+     * Create a {@link ImportOnlyModule.Revision} from an optional {@link Revision}.
+     *
+     * @param revision Optional {@link Revision}
+     * @return A Revision
+     * @throws NullPointerException if revision is null
+     */
+    public static ImportOnlyModule.@NonNull Revision fromYangCommon(final Optional<Revision> revision) {
+        return revision.map(rev -> new ImportOnlyModule.Revision(new RevisionIdentifier(rev.toString())))
+            .orElse(EMPTY_REVISION);
+    }
+
+    /**
+     * Create an optional {@link Revision} from a {@link ImportOnlyModule.Revision}.
+     *
+     * @param revision A Revision
+     * @return Optional {@link Revision}
+     * @throws NullPointerException if revision is null
+     */
+    public static Optional<Revision> toYangCommon(final ImportOnlyModule.Revision revision) {
+        final var id = revision.getRevisionIdentifier();
+        return id != null ? Optional.of(Revision.of(id.getValue())) : Optional.empty();
+    }
+}
diff --git a/model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/module/list/CommonLeafsRevisionBuilder.java b/model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/module/list/CommonLeafsRevisionBuilder.java
deleted file mode 100644 (file)
index ea34dcd..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2019 PANTHEON.tech 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list;
-
-import java.util.Optional;
-import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.RevisionIdentifier;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.CommonLeafs.Revision;
-
-@SuppressWarnings("deprecation")
-public final class CommonLeafsRevisionBuilder {
-    private static final Revision EMPTY_REVISION = new Revision("");
-
-    private CommonLeafsRevisionBuilder() {
-
-    }
-
-    /**
-     * Return an empty {@link Revision}.
-     *
-     * @return An empty Revision.
-     */
-    public static Revision emptyRevision() {
-        return EMPTY_REVISION;
-    }
-
-    /**
-     * Create a {@link Revision} from an optional {@link org.opendaylight.yangtools.yang.common.Revision}.
-     *
-     * @param revision Optional {@link org.opendaylight.yangtools.yang.common.Revision}
-     * @return A Revision
-     * @throws NullPointerException if revision is null
-     */
-    public static Revision fromYangCommon(final Optional<org.opendaylight.yangtools.yang.common.Revision> revision) {
-        return revision.map(rev -> new Revision(new RevisionIdentifier(rev.toString()))).orElse(EMPTY_REVISION);
-    }
-
-    /**
-     * Create an optional {@link org.opendaylight.yangtools.yang.common.Revision} from a {@link Revision}.
-     *
-     * @param revision A Revision
-     * @return Optional {@link org.opendaylight.yangtools.yang.common.Revision}
-     * @throws NullPointerException if revision is null
-     */
-    public static Optional<org.opendaylight.yangtools.yang.common.Revision> toYangCommon(final Revision revision) {
-        final @Nullable RevisionIdentifier id = revision.getRevisionIdentifier();
-        return id != null ? Optional.of(org.opendaylight.yangtools.yang.common.Revision.of(id.getValue()))
-                : Optional.empty();
-    }
-
-    public static Revision getDefaultInstance(final String defaultValue) {
-        return defaultValue.isEmpty() ? EMPTY_REVISION : new Revision(new RevisionIdentifier(defaultValue));
-    }
-}
-
diff --git a/model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/module/set/parameters/ImportOnlyModuleRevisionBuilder.java b/model/ietf/rfc8525/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/yang/library/rev190104/module/set/parameters/ImportOnlyModuleRevisionBuilder.java
deleted file mode 100644 (file)
index e0b6a2e..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters;
-
-import java.util.Optional;
-import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.RevisionIdentifier;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.ImportOnlyModule.Revision;
-
-public final class ImportOnlyModuleRevisionBuilder {
-    private static final Revision EMPTY_REVISION = new Revision("");
-
-    private ImportOnlyModuleRevisionBuilder() {
-
-    }
-
-    /**
-     * Return an empty {@link Revision}.
-     *
-     * @return An empty Revision.
-     */
-    public static Revision emptyRevision() {
-        return EMPTY_REVISION;
-    }
-
-    /**
-     * Create a {@link Revision} from an optional {@link org.opendaylight.yangtools.yang.common.Revision}.
-     *
-     * @param revision Optional {@link org.opendaylight.yangtools.yang.common.Revision}
-     * @return A Revision
-     * @throws NullPointerException if revision is null
-     */
-    public static Revision fromYangCommon(final Optional<org.opendaylight.yangtools.yang.common.Revision> revision) {
-        return revision.map(rev -> new Revision(new RevisionIdentifier(rev.toString()))).orElse(EMPTY_REVISION);
-    }
-
-    /**
-     * Create an optional {@link org.opendaylight.yangtools.yang.common.Revision} from a {@link Revision}.
-     *
-     * @param revision A Revision
-     * @return Optional {@link org.opendaylight.yangtools.yang.common.Revision}
-     * @throws NullPointerException if revision is null
-     */
-    public static Optional<org.opendaylight.yangtools.yang.common.Revision> toYangCommon(final Revision revision) {
-        final @Nullable RevisionIdentifier id = revision.getRevisionIdentifier();
-        return id != null ? Optional.of(org.opendaylight.yangtools.yang.common.Revision.of(id.getValue()))
-                : Optional.empty();
-    }
-
-    public static Revision getDefaultInstance(final String defaultValue) {
-        return defaultValue.isEmpty() ? EMPTY_REVISION : new Revision(new RevisionIdentifier(defaultValue));
-    }
-}
index 88ee6afdd413f0015a1726797260ee119820d221..2278c05a613ffcd165dab06dffe7ad620e4a717e 100644 (file)
@@ -20,7 +20,6 @@
 
     <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
     <artifactId>rfc8776-ietf-te-types</artifactId>
-    <version>10.0.0-SNAPSHOT</version>
     <packaging>bundle</packaging>
 
     <name>${project.artifactId}</name>
diff --git a/model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/AdminGroupsBuilder.java b/model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/AdminGroupsBuilder.java
deleted file mode 100644 (file)
index a863b1e..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (c) 2020 PANTHEON.tech, 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev200610;
-
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.HexString;
-
-public class AdminGroupsBuilder {
-    private AdminGroupsBuilder() {
-        // Hidden on purpose
-    }
-
-    public static AdminGroups getDefaultInstance(final String defaultValue) {
-        final HexString hex = new HexString(defaultValue);
-        return defaultValue.length() <= 11 ? new AdminGroups(new AdminGroup(hex))
-                : new AdminGroups(new ExtendedAdminGroup(hex));
-    }
-}
diff --git a/model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/IetfTeUtil.java b/model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/IetfTeUtil.java
new file mode 100644 (file)
index 0000000..1796929
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2020, 2022 PANTHEON.tech, 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev200610;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.HexString;
+import org.opendaylight.yangtools.yang.common.Uint32;
+
+/**
+ * Utility methods for dealing with {@code ietf-te-types.yang} unions.
+ */
+public final class IetfTeUtil {
+    private static final @NonNull TeTopologyId EMPTY_TE_TOPOLOGY_ID = new TeTopologyId("");
+
+    private IetfTeUtil() {
+        // Hidden on purpose
+    }
+
+    public static @NonNull AdminGroups admingGroupsFor(final String str) {
+        final HexString hex = new HexString(str);
+        return str.length() <= 11 ? new AdminGroups(new AdminGroup(hex)) : new AdminGroups(new ExtendedAdminGroup(hex));
+    }
+
+    public static @NonNull TeTopologyId teTopologyIdFor(final String str) {
+        return str.isEmpty() ? EMPTY_TE_TOPOLOGY_ID : new TeTopologyId(str);
+    }
+
+    public static @NonNull TeTpId teTpIdFor(final String str) {
+        return str.indexOf('.') == -1 && str.indexOf(':') == -1
+                ? new TeTpId(Uint32.valueOf(str)) : new TeTpId(IetfInetUtil.ipAddressFor(str));
+    }
+}
diff --git a/model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/PathAttributeFlagsBuilder.java b/model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/PathAttributeFlagsBuilder.java
deleted file mode 100644 (file)
index af6bce2..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright (c) 2020 PANTHEON.tech, 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev200610;
-
-public class PathAttributeFlagsBuilder {
-    private PathAttributeFlagsBuilder() {
-        // Hidden on purpose
-    }
-
-    public static PathAttributeFlags getDefaultInstance(final String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-}
diff --git a/model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/TeTopologyIdBuilder.java b/model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/TeTopologyIdBuilder.java
deleted file mode 100644 (file)
index 2243076..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (c) 2020 PANTHEON.tech, 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev200610;
-
-public class TeTopologyIdBuilder {
-    private static final TeTopologyId EMPTY = new TeTopologyId("");
-
-    private TeTopologyIdBuilder() {
-        // Hidden on purpose
-    }
-
-    public static TeTopologyId getDefaultInstance(final String defaultValue) {
-        return defaultValue.isEmpty() ? EMPTY : new TeTopologyId(defaultValue);
-    }
-}
diff --git a/model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/TeTpIdBuilder.java b/model/ietf/rfc8776-ietf-te-types/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/te/types/rev200610/TeTpIdBuilder.java
deleted file mode 100644 (file)
index 8fe5f82..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2020 PANTHEON.tech, 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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev200610;
-
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
-import org.opendaylight.yangtools.yang.common.Uint32;
-
-public class TeTpIdBuilder {
-    private TeTpIdBuilder() {
-        // Hidden on purpose
-    }
-
-    public static TeTpId getDefaultInstance(final String defaultValue) {
-        return defaultValue.indexOf('.') == -1 && defaultValue.indexOf(':') == -1
-                ? new TeTpId(Uint32.valueOf(defaultValue))
-                        : new TeTpId(IpAddressBuilder.getDefaultInstance(defaultValue));
-    }
-}
index d3b039f371eb3f42927b94d9e4f15dba11619201..168193a69014a1dec9898f2a4da2c1678ca18e95 100644 (file)
@@ -27,13 +27,13 @@ import org.opendaylight.mdsal.yanglib.api.SchemaContextResolver;
 import org.opendaylight.mdsal.yanglib.api.SourceReference;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.datastores.rev180214.Operational;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.LegacyRevisionUtils;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.ModulesState;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.RevisionIdentifier;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.RevisionUtils;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.YangLibrary;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.CommonLeafs;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.CommonLeafsRevisionBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.Module.ConformanceType;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.ImportOnlyModuleRevisionBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.yang.library.parameters.Datastore;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.yang.library.parameters.DatastoreKey;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.yang.library.parameters.ModuleSet;
@@ -179,7 +179,7 @@ final class MountPointContextFactoryImpl extends AbstractMountPointContextFactor
     @SuppressWarnings("deprecation")
     private static SourceReference sourceRefFor(final CommonLeafs obj, final Uri uri) {
         final var sourceId = RevisionSourceIdentifier.create(obj.getName().getValue(),
-            CommonLeafsRevisionBuilder.toYangCommon(obj.getRevision()));
+            LegacyRevisionUtils.toYangCommon(obj.getRevision()));
         if (uri != null) {
             try {
                 return SourceReference.of(sourceId, new URL(uri.getValue()));
@@ -204,7 +204,7 @@ final class MountPointContextFactoryImpl extends AbstractMountPointContextFactor
         // TODO: take deviations/features into account
 
         for (var mod : modSet.nonnullImportOnlyModule().values()) {
-            fillSource(librarySources, mod.getName(), ImportOnlyModuleRevisionBuilder.toYangCommon(mod.getRevision()),
+            fillSource(librarySources, mod.getName(), RevisionUtils.toYangCommon(mod.getRevision()),
                 mod.getLocation());
             mod.nonnullSubmodule().values().forEach(sub -> {
                 fillSource(librarySources, sub.getName(), toYangCommon(sub.getRevision()), sub.getLocation());