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