java syntax parser
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / methods / Modifiers.java
diff --git a/src/main/java/eu/svjatoslav/inspector/java/methods/Modifiers.java b/src/main/java/eu/svjatoslav/inspector/java/methods/Modifiers.java
new file mode 100644 (file)
index 0000000..747d7db
--- /dev/null
@@ -0,0 +1,68 @@
+package eu.svjatoslav.inspector.java.methods;
+
+public class Modifiers {
+
+       public enum Access {
+               PUBLIC("public"), PROTECTED("protected"), DEFAULT(""), PRIVATE(
+                               "private");
+
+               public final String name;
+
+               Access(final String name) {
+                       this.name = name;
+               };
+       }
+
+       Access access = Access.DEFAULT;
+
+       boolean isStatic = false;;
+
+       boolean isFinal = false;
+
+       public boolean parseModifier(final String string) {
+               for (final Access access : Access.values())
+                       if (access.name.equals(string)) {
+                               this.access = access;
+                               return true;
+                       }
+
+               if ("static".equals(string)) {
+                       isStatic = true;
+                       return true;
+               }
+
+               if ("final".equals(string)) {
+                       isFinal = true;
+                       return true;
+               }
+
+               return false;
+       }
+
+       public void reset() {
+               isStatic = false;
+               isFinal = false;
+               access = Access.DEFAULT;
+       }
+
+       @Override
+       public String toString() {
+               final StringBuffer result = new StringBuffer();
+
+               result.append(access.name);
+
+               if (isStatic) {
+                       if (result.length() > 0)
+                               result.append(" ");
+                       result.append("static");
+               }
+
+               if (isFinal) {
+                       if (result.length() > 0)
+                               result.append(" ");
+                       result.append("final");
+               }
+
+               return result.toString();
+       }
+}