/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.java.ast;
public abstract class AbstractJavaAccessNode extends AbstractJavaNode implements AccessNode {
private int modifiers;
public AbstractJavaAccessNode(int i) {
super(i);
}
public AbstractJavaAccessNode(JavaParser parser, int i) {
super(parser, i);
}
public int getModifiers() {
return this.modifiers;
}
public void setModifiers(int modifiers) {
this.modifiers = modifiers;
}
public boolean isPublic() {
return isModifier(PUBLIC);
}
public void setPublic(boolean isPublic) {
setModifier(isPublic, PUBLIC);
}
public boolean isProtected() {
return isModifier(PROTECTED);
}
public void setProtected(boolean isProtected) {
setModifier(isProtected, PROTECTED);
}
public boolean isPrivate() {
return isModifier(PRIVATE);
}
public void setPrivate(boolean isPrivate) {
setModifier(isPrivate, PRIVATE);
}
public boolean isAbstract() {
return isModifier(ABSTRACT);
}
public void setAbstract(boolean isAbstract) {
setModifier(isAbstract, ABSTRACT);
}
public boolean isStatic() {
return isModifier(STATIC);
}
public void setStatic(boolean isStatic) {
setModifier(isStatic, STATIC);
}
public boolean isFinal() {
return isModifier(FINAL);
}
public void setFinal(boolean isFinal) {
setModifier(isFinal, FINAL);
}
public boolean isSynchronized() {
return isModifier(SYNCHRONIZED);
}
public void setSynchronized(boolean isSynchronized) {
setModifier(isSynchronized, SYNCHRONIZED);
}
public boolean isNative() {
return isModifier(NATIVE);
}
public void setNative(boolean isNative) {
setModifier(isNative, NATIVE);
}
public boolean isTransient() {
return isModifier(TRANSIENT);
}
public void setTransient(boolean isTransient) {
setModifier(isTransient, TRANSIENT);
}
public boolean isVolatile() {
return isModifier(VOLATILE);
}
public void setVolatile(boolean isVolative) {
setModifier(isVolative, VOLATILE);
}
public boolean isStrictfp() {
return isModifier(STRICTFP);
}
public void setStrictfp(boolean isStrictfp) {
setModifier(isStrictfp, STRICTFP);
}
public boolean isDefault() {
return isModifier(DEFAULT);
}
public void setDefault(boolean isDefault) {
setModifier(isDefault, DEFAULT);
}
// TODO: fix the rule - around binary expressions the parentheses are needed...
@SuppressWarnings("PMD.UselessParentheses")
private boolean isModifier(int mask) {
return (modifiers & mask) == mask;
}
private void setModifier(boolean enable, int mask) {
if (enable) {
this.modifiers |= mask;
} else {
this.modifiers &= ~mask;
}
}
public boolean isPackagePrivate() {
return !isPrivate() && !isPublic() && !isProtected();
}
}