001    /*******************************************************************************
002     * Portions created by Sebastian Thomschke are copyright (c) 2005-2011 Sebastian
003     * Thomschke.
004     * 
005     * All Rights Reserved. This program and the accompanying materials
006     * are made available under the terms of the Eclipse Public License v1.0
007     * which accompanies this distribution, and is available at
008     * http://www.eclipse.org/legal/epl-v10.html
009     * 
010     * Contributors:
011     *     Sebastian Thomschke - initial implementation.
012     *******************************************************************************/
013    package net.sf.oval.configuration.annotation;
014    
015    import java.lang.annotation.Annotation;
016    import java.lang.annotation.Documented;
017    import java.lang.annotation.ElementType;
018    import java.lang.annotation.Retention;
019    import java.lang.annotation.RetentionPolicy;
020    import java.lang.annotation.Target;
021    
022    /**
023     * Annotations tagged with this annotation represent constraint exclusion.
024     * 
025     * @author Sebastian Thomschke
026     */
027    @Documented
028    @Retention(RetentionPolicy.RUNTIME)
029    @Target(ElementType.ANNOTATION_TYPE)
030    public @interface Exclusion
031    {
032            /**
033             * The class implementing the logic to exclude a constraint.
034             */
035            Class< ? extends AnnotationCheckExclusion< ? extends Annotation>> excludeWith();
036    }