/* ******************************************************************* * 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; } }