diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java @ 18772:7fab6f106989

Truffle-DSL: avoid some checkstyle errors for generated code.
author Christian Humer <christian.humer@gmail.com>
date Mon, 05 Jan 2015 01:31:07 +0100
parents a665483c3881
children cd0ae2f782c9
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java	Mon Jan 05 01:31:07 2015 +0100
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java	Mon Jan 05 01:31:07 2015 +0100
@@ -131,7 +131,7 @@
             writeLn();
         }
 
-        writeModifiers(e.getModifiers());
+        writeModifiers(e.getModifiers(), true);
         if (e.getKind() == ElementKind.ENUM) {
             write("enum ");
         } else {
@@ -267,7 +267,7 @@
             }
         } else {
             Element enclosing = f.getEnclosingElement();
-            writeModifiers(f.getModifiers());
+            writeModifiers(f.getModifiers(), true);
 
             boolean varArgs = false;
             if (enclosing.getKind() == ElementKind.METHOD) {
@@ -476,7 +476,7 @@
             writeLn();
         }
 
-        writeModifiers(e.getModifiers());
+        writeModifiers(e.getModifiers(), !e.getEnclosingClass().getModifiers().contains(Modifier.FINAL));
 
         if (e.getReturnType() != null) {
             write(useImport(e, e.getReturnType()));
@@ -586,10 +586,15 @@
         // default implementation does nothing
     }
 
-    private void writeModifiers(Set<Modifier> modifiers) {
-        if (modifiers != null) {
-            for (Modifier modifier : modifiers) {
-                write(modifier.toString());
+    private void writeModifiers(Set<Modifier> modifiers, boolean includeFinal) {
+        if (modifiers != null && !modifiers.isEmpty()) {
+            Modifier[] modArray = modifiers.toArray(new Modifier[modifiers.size()]);
+            Arrays.sort(modArray);
+            for (Modifier mod : modArray) {
+                if (mod == Modifier.FINAL && !includeFinal) {
+                    continue;
+                }
+                write(mod.toString());
                 write(" ");
             }
         }