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