X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassAccess.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassAccess.java index 59b2c23..384d192 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassAccess.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassAccess.java @@ -1,21 +1,37 @@ 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; @@ -36,9 +52,46 @@ public class ClassAccess extends AbstractSuffixExpression { */ 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 ...) + * @return the variables from outside + */ + public List getOutsideVariable() { + return new ArrayList(1); + } + + /** + * get the modified variables. + * @return the variables from we change value + */ + public List getModifiedVariable() { + return new ArrayList(1); + } + + /** + * Get the variables used. + * @return the variables used + */ + public List getUsedVariable() { + final List list = prefix.getUsedVariable(); + list.addAll(suffix.getUsedVariable()); + return list; + } }