blob: 9201ec1e98fac121cbc2e5c0b97d3869c89f9a18 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005 BEA Systems, Inc.
* 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:
* jgarms@bea.com - initial API and implementation
*
*******************************************************************************/
package org.eclipse.jdt.apt.tests.external.annotations.classloader;
import com.sun.mirror.apt.AnnotationProcessor;
import com.sun.mirror.apt.AnnotationProcessorEnvironment;
import com.sun.mirror.declaration.TypeDeclaration;
public class ColorAnnotationProcessor implements AnnotationProcessor {
public static final String PROP_KEY = "ColorAnnotationProcessor";
public static final String SUCCESS_VALUE = "success";
private final AnnotationProcessorEnvironment _env;
public ColorAnnotationProcessor(AnnotationProcessorEnvironment env) {
_env = env;
}
public void process() {
System.setProperty(PROP_KEY, "Beginning processing");
try {
TypeDeclaration typeDecl = _env.getTypeDeclaration("colortestpackage.ColorTest");
ColorAnnotation colorAnno = typeDecl.getAnnotation(ColorAnnotation.class);
Color color = colorAnno.color();
if (color != Color.RED)
throw new IllegalStateException("Expecting red, but got: " + color);
ColorWrapper colorWrapper = typeDecl.getAnnotation(ColorWrapper.class);
ColorAnnotation[] colorAnnoArray = colorWrapper.colors();
if (colorAnnoArray[0].color() != Color.GREEN)
throw new IllegalStateException("Expecting green, but got: " + color);
if (colorAnnoArray[1].color() != Color.BLUE)
throw new IllegalStateException("Expecting blue, but got: " + color);
}
catch (Throwable t) {
t.printStackTrace();
System.setProperty(PROP_KEY, "Failed");
}
System.setProperty(PROP_KEY, SUCCESS_VALUE);
}
public static boolean wasSuccessful() {
return SUCCESS_VALUE.equals(System.getProperty(PROP_KEY));
}
}