All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aspectj.weaver.AnnotationOnTypeMunger Maven / Gradle / Ivy

There is a newer version: 1.9.22
Show newest version
/* *******************************************************************
 * 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;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy