* Any class access.
* @author Matthieu Casanova
*/
-public class ClassAccess extends AbstractSuffixExpression {
+public class ClassAccess extends AbstractVariable {
+ /** a static class access : "::" */
public static final int STATIC = 0;
+
+ /** a normal class access : "->" */
public static final int NORMAL = 1;
public Expression prefix;
+
+ /** the suffix. */
public Expression suffix;
+
+ /** the type of access. */
public int type;
+ /**
+ * Create a new class access.
+ * @param prefix
+ * @param suffix
+ * @param type the type of access {@link #STATIC} or {@link #NORMAL}
+ */
public ClassAccess(final Expression prefix,
final Expression suffix,
final int type) {
return buff.toString();
}
- /**
+ /**
+ * todo: find a better way to handle this
+ * @return
+ */
+ public String getName() {
+ if (prefix instanceof AbstractVariable) {
+ return ((AbstractVariable)prefix).getName();
+ }
+ return prefix.toStringExpression();
+ }
+
+ /**
* Get the variables from outside (parameters, globals ...)
* @return the variables from outside
*/
public List getOutsideVariable() {
- return new ArrayList();
+ return new ArrayList(1);
}
/**
* @return the variables from we change value
*/
public List getModifiedVariable() {
- return new ArrayList();
+ return new ArrayList(1);
}
/**
* @return the variables used
*/
public List getUsedVariable() {
- return prefix.getUsedVariable();
+ final List list = prefix.getUsedVariable();
+ list.addAll(suffix.getUsedVariable());
+ return list;
}
}