/******************************************************************************* * Copyright (c) 2005, 2007 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 *******************************************************************************/ package org.eclipse.jdt.apt.tests.annotations.generic; import java.util.Collection; import junit.framework.AssertionFailedError; import com.sun.mirror.apt.*; import com.sun.mirror.declaration.*; public abstract class AbstractGenericProcessor implements AnnotationProcessor { protected AnnotationProcessorEnvironment env; protected AnnotationTypeDeclaration genericAnnotation; protected Collection<Declaration> decls; public void setEnv(AnnotationProcessorEnvironment env) { this.env = env; genericAnnotation = (AnnotationTypeDeclaration) env.getTypeDeclaration(GenericAnnotation.class.getName()); decls = env.getDeclarationsAnnotatedWith(genericAnnotation); } public abstract void _process(); /** * This method is abstract, so that subclasses need to implement * _process. We'll handle catching any errant throwables * and fail any junit tests. */ public final void process() { try { _process(); } catch (Throwable t) { t.printStackTrace(); throw new AssertionFailedError("Processor threw an exception during processing"); } } }