/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.dfa;
/**
* @since Created on 14.07.2004
* @author raik
*/
public class VariableAccess {
public static final int DEFINITION = 0;
public static final int REFERENCING = 1;
public static final int UNDEFINITION = 2;
private int accessType;
private String variableName;
public VariableAccess(int accessType, String varName) {
this.accessType = accessType;
int dotPos = varName.indexOf('.');
variableName = dotPos < 0 ? varName : varName.substring(0, dotPos);
}
// TODO completely encapsulate this somehow?
public int getAccessType() {
return accessType;
}
public boolean accessTypeMatches(int otherType) {
return accessType == otherType;
}
public boolean isDefinition() {
return this.accessType == DEFINITION;
}
public boolean isReference() {
return this.accessType == REFERENCING;
}
public boolean isUndefinition() {
return this.accessType == UNDEFINITION;
}
public String getVariableName() {
return variableName;
}
@Override
public String toString() {
if (isDefinition()) {
return "Definition(" + variableName + ")";
}
if (isReference()) {
return "Reference(" + variableName + ")";
}
if (isUndefinition()) {
return "Undefinition(" + variableName + ")";
}
throw new RuntimeException("Access type was never set");
}
}