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