AbstractJavaAccessNode.java
001 package net.sourceforge.pmd.lang.java.ast;
002 
003 public abstract class AbstractJavaAccessNode extends AbstractJavaNode implements AccessNode {
004 
005     private int modifiers;
006 
007     public AbstractJavaAccessNode(int i) {
008         super(i);
009     }
010 
011     public AbstractJavaAccessNode(JavaParser parser, int i) {
012         super(parser, i);
013     }
014 
015     public int getModifiers() {
016         return this.modifiers;
017     }
018 
019     public void setModifiers(int modifiers) {
020         this.modifiers = modifiers;
021     }
022 
023     public boolean isPublic() {
024         return isModifier(PUBLIC);
025     }
026 
027     public void setPublic(boolean isPublic) {
028         setModifier(isPublic, PUBLIC);
029     }
030 
031     public boolean isProtected() {
032         return isModifier(PROTECTED);
033     }
034 
035     public void setProtected(boolean isProtected) {
036         setModifier(isProtected, PROTECTED);
037     }
038 
039     public boolean isPrivate() {
040         return isModifier(PRIVATE);
041     }
042 
043     public void setPrivate(boolean isPrivate) {
044         setModifier(isPrivate, PRIVATE);
045     }
046 
047     public boolean isAbstract() {
048         return isModifier(ABSTRACT);
049     }
050 
051     public void setAbstract(boolean isAbstract) {
052         setModifier(isAbstract, ABSTRACT);
053     }
054 
055     public boolean isStatic() {
056         return isModifier(STATIC);
057     }
058 
059     public void setStatic(boolean isStatic) {
060         setModifier(isStatic, STATIC);
061     }
062 
063     public boolean isFinal() {
064         return isModifier(FINAL);
065     }
066 
067     public void setFinal(boolean isFinal) {
068         setModifier(isFinal, FINAL);
069     }
070 
071     public boolean isSynchronized() {
072         return isModifier(SYNCHRONIZED);
073     }
074 
075     public void setSynchronized(boolean isSynchronized) {
076         setModifier(isSynchronized, SYNCHRONIZED);
077     }
078 
079     public boolean isNative() {
080         return isModifier(NATIVE);
081     }
082 
083     public void setNative(boolean isNative) {
084         setModifier(isNative, NATIVE);
085     }
086 
087     public boolean isTransient() {
088         return isModifier(TRANSIENT);
089     }
090 
091     public void setTransient(boolean isTransient) {
092         setModifier(isTransient, TRANSIENT);
093     }
094 
095     public boolean isVolatile() {
096         return isModifier(VOLATILE);
097     }
098 
099     public void setVolatile(boolean isVolative) {
100         setModifier(isVolative, VOLATILE);
101     }
102 
103     public boolean isStrictfp() {
104         return isModifier(STRICTFP);
105     }
106 
107     public void setStrictfp(boolean isStrictfp) {
108         setModifier(isStrictfp, STRICTFP);
109     }
110 
111     private final boolean isModifier(int mask) {
112         return (modifiers & mask== mask;
113     }
114 
115     private void setModifier(boolean enable, int mask) {
116         if (enable) {
117             this.modifiers |= mask;
118         else {
119             this.modifiers &= ~mask;
120         }
121     }
122 
123     public boolean isPackagePrivate() {
124         return !isPrivate() && !isPublic() && !isProtected();
125     }
126 }