java syntax parser
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / methods / Modifiers.java
1 package eu.svjatoslav.inspector.java.methods;
2
3 public class Modifiers {
4
5         public enum Access {
6                 PUBLIC("public"), PROTECTED("protected"), DEFAULT(""), PRIVATE(
7                                 "private");
8
9                 public final String name;
10
11                 Access(final String name) {
12                         this.name = name;
13                 };
14         }
15
16         Access access = Access.DEFAULT;
17
18         boolean isStatic = false;;
19
20         boolean isFinal = false;
21
22         public boolean parseModifier(final String string) {
23                 for (final Access access : Access.values())
24                         if (access.name.equals(string)) {
25                                 this.access = access;
26                                 return true;
27                         }
28
29                 if ("static".equals(string)) {
30                         isStatic = true;
31                         return true;
32                 }
33
34                 if ("final".equals(string)) {
35                         isFinal = true;
36                         return true;
37                 }
38
39                 return false;
40         }
41
42         public void reset() {
43                 isStatic = false;
44                 isFinal = false;
45                 access = Access.DEFAULT;
46         }
47
48         @Override
49         public String toString() {
50                 final StringBuffer result = new StringBuffer();
51
52                 result.append(access.name);
53
54                 if (isStatic) {
55                         if (result.length() > 0)
56                                 result.append(" ");
57                         result.append("static");
58                 }
59
60                 if (isFinal) {
61                         if (result.length() > 0)
62                                 result.append(" ");
63                         result.append("final");
64                 }
65
66                 return result.toString();
67         }
68 }