blob: 6390ed31123347b1ced8a20a52780aa0ff232220 [file] [log] [blame]
/* *******************************************************************
* 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
*/
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;
}
}