diff options
Diffstat (limited to 'st/TypeInstance.java')
-rw-r--r-- | st/TypeInstance.java | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/st/TypeInstance.java b/st/TypeInstance.java index 88b73f3..e43c5b3 100644 --- a/st/TypeInstance.java +++ b/st/TypeInstance.java @@ -2,8 +2,23 @@ package st; public class TypeInstance extends AbstractInstance { - public TypeInstance(String name, TypeEnum type) { + protected ClassInstance par_cls; // the surrounding class + protected MethodInstance par_mtd; // the surrounding method + protected ClassInstance cls; // the class instance + + + public TypeInstance(String name, TypeEnum type, MethodInstance par_mtd, ClassInstance par_cls) { super(name, type); + this.par_cls = par_cls; + this.par_mtd = par_mtd; + } + + @Override public boolean equals(Object other) { + TypeInstance o; + return (other instanceof TypeInstance && + ((o = (TypeInstance) other).getName() == this.getName() && + o.getParentClass() == this.getParentClass() && + o.getParentMethod() == this.getParentMethod())); } public int getSize() { @@ -30,4 +45,28 @@ public class TypeInstance extends AbstractInstance { return type != TypeEnum.ERROR; } + public void addClassInstance(ClassInstance cls) { + this.cls = cls; + } + + public ClassInstance getClassInstance() { + return this.cls; + } + + public void addParentClass(ClassInstance par_cls) { + this.par_cls = par_cls; + } + + public ClassInstance getParentClass() { + return this.par_cls; + } + + public void addParentMethod(MethodInstance par_mtd) { + this.par_mtd = par_mtd; + } + + public MethodInstance getParentMethod() { + return this.par_mtd; + } + } |