summaryrefslogtreecommitdiff
path: root/st/TypeInstance.java
diff options
context:
space:
mode:
Diffstat (limited to 'st/TypeInstance.java')
-rw-r--r--st/TypeInstance.java41
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;
+ }
+
}