From: Martin Vitez Date: Thu, 3 Oct 2013 13:36:46 +0000 (+0200) Subject: Added sorting of constructor arguments. X-Git-Tag: third-party-0.1.2~19 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=50fb4b9b2ce035baaedcad5ec6f7a5e26f532037;p=yangtools.git Added sorting of constructor arguments. Fix for Bug 101. Signed-off-by: Martin Vitez --- diff --git a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend index 4869c3f847..700e6f87b1 100644 --- a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend +++ b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend @@ -7,7 +7,8 @@ import org.opendaylight.yangtools.sal.binding.model.api.Enumeration import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType - +import java.util.ArrayList +import java.util.Collections /** * Template for generating JAVA class. @@ -36,7 +37,7 @@ class ClassTemplate extends BaseTemplate { protected val GeneratedTransferObject genTO; - + /** * Creates instance of this class with concrete genType. * @@ -48,7 +49,13 @@ class ClassTemplate extends BaseTemplate { this.properties = genType.properties this.finalProperties = GeneratorUtil.resolveReadOnlyPropertiesFromTO(genTO.properties) this.parentProperties = GeneratorUtil.getPropertiesOfAllParents(genTO) - this.allProperties = properties + parentProperties + + var List sorted = new ArrayList(); + sorted.addAll(properties); + sorted.addAll(parentProperties); + Collections.sort(sorted, new PropertyComparator()); + + this.allProperties = sorted this.enums = genType.enumerations this.consts = genType.constantDefinitions this.enclosedGeneratedTypes = genType.enclosedTypes diff --git a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/PropertyComparator.java b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/PropertyComparator.java new file mode 100644 index 0000000000..ec73673a4a --- /dev/null +++ b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/PropertyComparator.java @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2013 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.yangtools.sal.java.api.generator; + +import java.util.Comparator; + +import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty; + +public class PropertyComparator implements Comparator { + + @Override + public int compare(GeneratedProperty p1, GeneratedProperty p2) { + return p1.getName().compareTo(p2.getName()); + } + +} diff --git a/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/ClassCodeGeneratorTest.java b/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/ClassCodeGeneratorTest.java index 86d7c413c1..60b732ae70 100644 --- a/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/ClassCodeGeneratorTest.java +++ b/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/ClassCodeGeneratorTest.java @@ -77,9 +77,7 @@ public class ClassCodeGeneratorTest { final String outputStr = clsGen.generate(genTO); assertNotNull(outputStr); - assertTrue(outputStr - .contains("public CompositeKeyListKey(String _Key2, " - + "Byte _Key1)")); + assertTrue(outputStr.contains("public CompositeKeyListKey(Byte _Key1, String _Key2)")); assertEquals(2, propertyCount); genTOsCount++;