/* ******************************************************************* * Copyright (c) 2005 IBM * All rights reserved. * This program and the accompanying materials are made available * under the terms of the Eclipse Public License v 2.0 * which accompanies this distribution and is available at * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt * * Contributors: * Andy Clement initial implementation * ******************************************************************/ package org.aspectj.weaver; import java.io.IOException; /** * Represents adding an annotation to a type */ public class AnnotationOnTypeMunger extends ResolvedTypeMunger { AnnotationAJ newAnnotation; public AnnotationOnTypeMunger(AnnotationAJ anno) { super(AnnotationOnType, null); newAnnotation = anno; } public void write(CompressingDataOutputStream s) throws IOException { throw new RuntimeException("unimplemented"); } public AnnotationAJ getNewAnnotation() { return newAnnotation; } public boolean equals(Object other) { if (!(other instanceof AnnotationOnTypeMunger)) { return false; } AnnotationOnTypeMunger o = (AnnotationOnTypeMunger) other; // TODO does not check equality of annotation values return newAnnotation.getTypeSignature().equals(o.newAnnotation.getTypeSignature()); } private volatile int hashCode = 0; public int hashCode() { if (hashCode == 0) { int result = 17; result = 37 * result + newAnnotation.getTypeSignature().hashCode(); hashCode = result; } return hashCode; } }