Juan Hernandez has uploaded a new change for review. Change subject: codegen: Sort class members alphabetically ......................................................................
codegen: Sort class members alphabetically Currently the code generator doesn't sort the class members in any particular order. This means that each time the code is re-generated things will potentially be in a different order, making it difficult to visually analyze the changes (with the "diff" tool, for example). To avoid this issue this patch changes the generator so that class members will be sorted alphabetically. Change-Id: I59940162b7fad175bd0bce7585f43cac65acb78a Signed-off-by: Juan Hernandez <juan.hernan...@redhat.com> --- M ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/holders/ResourceHolder.java M ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/ApiCodegen.java 2 files changed, 68 insertions(+), 35 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine-sdk-java refs/changes/70/37770/1 diff --git a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/holders/ResourceHolder.java b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/holders/ResourceHolder.java index 8a19e99..6e6e599 100644 --- a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/holders/ResourceHolder.java +++ b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/holders/ResourceHolder.java @@ -22,6 +22,11 @@ import org.ovirt.engine.sdk.codegen.templates.VariableTemplate; import org.ovirt.engine.sdk.codegen.utils.StringUtils; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + /** * Holds sub-resources */ @@ -73,16 +78,19 @@ */ @Override String getSubCollectionsGetters() { - StringBuffer subCollectionGetters = new StringBuffer(); + StringBuilder buffer = new StringBuilder(); - for (CollectionHolder ch : this.getSubcollections().values()) { - subCollectionGetters.append( - this.subCollectionGetterTemplate.getTemplate(ch.getName(), - StringUtils.toLowerCase(ch.getName()), - ch.getPublicCollectionName())); + Map<String, CollectionHolder> subCollections = getSubcollections(); + List<String> keys = new ArrayList<>(subCollections.keySet()); + Collections.sort(keys); + + for (String key : keys) { + CollectionHolder ch = subCollections.get(key); + buffer.append(subCollectionGetterTemplate.getTemplate(ch.getName(), StringUtils.toLowerCase(ch.getName()), + ch.getPublicCollectionName())); } - return subCollectionGetters.toString(); + return buffer.toString(); } /** @@ -90,14 +98,17 @@ */ @Override String getSubCollectionsVariables() { - StringBuffer subCollectionVariables = new StringBuffer(); + StringBuilder buffer = new StringBuilder(); - for (CollectionHolder ch : this.getSubcollections().values()) { - subCollectionVariables.append( - this.variableTemplate.getTemplate(ch.getName(), - StringUtils.toLowerCase(ch.getName()))); + Map<String, CollectionHolder> subCollections = getSubcollections(); + List<String> keys = new ArrayList<>(subCollections.keySet()); + Collections.sort(keys); + + for (String key : keys) { + CollectionHolder ch = subCollections.get(key); + buffer.append(variableTemplate.getTemplate(ch.getName(), StringUtils.toLowerCase(ch.getName()))); } - return subCollectionVariables.toString(); + return buffer.toString(); } } diff --git a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/ApiCodegen.java b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/ApiCodegen.java index d81e93d..b5f4dbc 100644 --- a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/ApiCodegen.java +++ b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/ApiCodegen.java @@ -18,6 +18,10 @@ import java.io.IOException; import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.xml.bind.JAXBException; @@ -108,61 +112,79 @@ * @throws IOException */ private String produceRootMethods() throws IOException { - String rootMethods = ""; - String[] exceptions = new String[] { "Actions", "Href", "Links", "ExtensionType", "CreationStatus", "Id", "Name", "Description", "Class" }; String[] staticMethods = new String[] { "SpecialObjects", "ProductInfo" }; + Map<String, String> methods = new HashMap<>(); for (Method method : API.class.getMethods()) { String simpleMethodName = method.getName().replace("get", ""); if (method.getName().startsWith("get") && !ArrayUtils.contains(exceptions, simpleMethodName)) { + String code; if (ArrayUtils.contains(staticMethods, simpleMethodName)) { // static methods - rootMethods += - this.rootResourceStaticTemplate.getTemplate(method.getName(), method.getReturnType() - .getSimpleName(), method.getReturnType().getPackage().getName(), simpleMethodName); + code = rootResourceStaticTemplate.getTemplate(method.getName(), + method.getReturnType().getSimpleName(), method.getReturnType().getPackage().getName(), + simpleMethodName); } else { // dynamic methods - rootMethods += - this.rootResourceDynamicTemplate.getTemplate(method.getName(), method.getReturnType() - .getSimpleName(), method.getReturnType().getPackage().getName(), simpleMethodName); + code = rootResourceDynamicTemplate.getTemplate(method.getName(), + method.getReturnType().getSimpleName(), method.getReturnType().getPackage().getName(), + simpleMethodName); } + methods.put(simpleMethodName, code); } } - return rootMethods; + + List<String> keys = new ArrayList<>(methods.size()); + keys.addAll(methods.keySet()); + Collections.sort(keys); + + StringBuilder buffer = new StringBuilder(); + for (String key : keys) { + buffer.append(methods.get(key)); + } + return buffer.toString(); } /** * @return root-collection/s getter/s */ private String produceCollectionGetters() { - StringBuffer subCollectionGetters = new StringBuffer(); + StringBuilder buffer = new StringBuilder(); - for (CollectionHolder ch : this.collectionsHolder.values()) { - subCollectionGetters.append( - this.collectionGetterTemplate.getTemplate(ch.getName(), - StringUtils.toLowerCase(ch.getName()), - ch.getPublicCollectionName())); + List<String> keys = new ArrayList<>(collectionsHolder.size()); + keys.addAll(collectionsHolder.keySet()); + Collections.sort(keys); + + for (String key : keys) { + CollectionHolder ch = collectionsHolder.get(key); + String name = ch.getName(); + String publicName = ch.getPublicCollectionName(); + buffer.append(collectionGetterTemplate.getTemplate(name, StringUtils.toLowerCase(name), publicName)); } - return subCollectionGetters.toString(); + return buffer.toString(); } /** * @return root-collection/s variable/s */ private String produceCollectionVariables() { - StringBuffer subCollectionVariables = new StringBuffer(); + StringBuilder buffer = new StringBuilder(); - for (CollectionHolder ch : this.collectionsHolder.values()) { - subCollectionVariables.append( - this.variableTemplate.getTemplate(ch.getName(), - StringUtils.toLowerCase(ch.getName()))); + List<String> keys = new ArrayList<>(collectionsHolder.size()); + keys.addAll(collectionsHolder.keySet()); + Collections.sort(keys); + + for (String key : keys) { + CollectionHolder ch = collectionsHolder.get(key); + String name = ch.getName(); + buffer.append(variableTemplate.getTemplate(name, StringUtils.toLowerCase(name))); } - return subCollectionVariables.toString(); + return buffer.toString(); } /** -- To view, visit http://gerrit.ovirt.org/37770 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I59940162b7fad175bd0bce7585f43cac65acb78a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine-sdk-java Gerrit-Branch: master Gerrit-Owner: Juan Hernandez <juan.hernan...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches