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 8e332c8..0fe5fec 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 @@ -7,19 +7,32 @@ 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; + /** + * 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); + super(prefix.getSourceStart(), suffix.getSourceEnd()); this.prefix = prefix; this.suffix = suffix; this.type = type; @@ -45,12 +58,23 @@ public class ClassAccess extends AbstractSuffixExpression { 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); } /** @@ -58,7 +82,7 @@ public class ClassAccess extends AbstractSuffixExpression { * @return the variables from we change value */ public List getModifiedVariable() { - return new ArrayList(); + return new ArrayList(1); } /** @@ -66,6 +90,8 @@ public class ClassAccess extends AbstractSuffixExpression { * @return the variables used */ public List getUsedVariable() { - return prefix.getUsedVariable(); + final List list = prefix.getUsedVariable(); + list.addAll(suffix.getUsedVariable()); + return list; } }