blob: cb3110073e5f46496929819f90f9ebc419b7be1a [file] [log] [blame]
/* *******************************************************************
* Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC).
* All rights reserved.
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License v1.0
* which accompanies this distribution and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* PARC initial implementation
* ******************************************************************/
package org.aspectj.weaver;
import java.io.IOException;
public class NewParentTypeMunger extends ResolvedTypeMunger {
ResolvedType newParent;
ResolvedType declaringType;
private boolean isMixin;
public NewParentTypeMunger(ResolvedType newParent, ResolvedType declaringType) {
super(Parent, null);
this.newParent = newParent;
this.declaringType = declaringType;
this.isMixin = false;
}
public void write(CompressingDataOutputStream 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) && 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 ResolvedType getDeclaringType() {
return declaringType;
}
public void setIsMixin(boolean b) {
isMixin = true;
}
public boolean isMixin() {
return isMixin;
}
}