/* *******************************************************************
 * Copyright (c) 2005 IBM
 * 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: 
 *     Andy Clement     initial implementation 
 * ******************************************************************/

package org.aspectj.weaver;

import java.io.IOException;

Represents adding an annotation to a type
/** * 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; } }