package net.sourceforge.phpdt.internal.compiler.ast;
+import java.util.List;
+import java.util.ArrayList;
+
/**
* 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;
- public ClassAccess(Expression prefix,
- Expression suffix,
- 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) {
super(prefix.sourceStart, suffix.sourceEnd);
this.prefix = prefix;
this.suffix = suffix;
*/
public String toStringExpression() {
final StringBuffer buff = new StringBuffer();
- buff.append(prefix);
+ buff.append(prefix.toStringExpression());
buff.append(toStringOperator());
buff.append(suffix.toStringExpression());
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 ...)
+ */
+ public void getOutsideVariable(final List list) {
+ }
+
+ /**
+ * get the modified variables.
+ */
+ public void getModifiedVariable(final List list) {
+ }
+
+ /**
+ * Get the variables used.
+ */
+ public void getUsedVariable(final List list) {
+ prefix.getUsedVariable(list);
+ suffix.getUsedVariable(list);
+ }
}