From: aclement Date: Mon, 9 Mar 2009 22:09:22 +0000 (+0000) Subject: declareMixin X-Git-Tag: pre268419~13 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3d69656ad9cb116192206949527160989b40a84f;p=aspectj.git declareMixin --- diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/NewParentTypeMunger.java b/org.aspectj.matcher/src/org/aspectj/weaver/NewParentTypeMunger.java index cc8ac44aa..069711bc1 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/NewParentTypeMunger.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/NewParentTypeMunger.java @@ -10,7 +10,6 @@ * PARC initial implementation * ******************************************************************/ - package org.aspectj.weaver; import java.io.DataOutputStream; @@ -18,34 +17,47 @@ import java.io.IOException; public class NewParentTypeMunger extends ResolvedTypeMunger { ResolvedType newParent; - + private boolean isMixin; + public NewParentTypeMunger(ResolvedType newParent) { super(Parent, null); this.newParent = newParent; + this.isMixin = false; } public void write(DataOutputStream s) throws IOException { throw new RuntimeException("unimplemented"); } - public ResolvedType getNewParent() { return newParent; } - public boolean equals(Object other) { - if (! (other instanceof NewParentTypeMunger)) return false; - NewParentTypeMunger o = (NewParentTypeMunger) other; - return newParent.equals(o.newParent); - } - - private volatile int hashCode = 0; - public int hashCode() { - if (hashCode == 0) { - int result = 17; - result = 37*result + newParent.hashCode(); - hashCode = result; - } - return hashCode; - } + public boolean equals(Object other) { + if (!(other instanceof NewParentTypeMunger)) { + return false; + } + NewParentTypeMunger o = (NewParentTypeMunger) other; + return newParent.equals(o.newParent) && isMixin == o.isMixin; + } + + private volatile int hashCode = 0; + + public int hashCode() { + if (hashCode == 0) { + int result = 17; + result = 37 * result + newParent.hashCode(); + result = 37 * result + (isMixin ? 0 : 1); + hashCode = result; + } + return hashCode; + } + + public void setIsMixin(boolean b) { + isMixin = true; + } + + public boolean isMixin() { + return isMixin; + } }