URLValue.java :  » Code-Analyzer » Spoon » spoon » aval » annotation » value » Java Open Source

Java Open Source » Code Analyzer » Spoon 
Spoon » spoon » aval » annotation » value » URLValue.java
/** 
 * Spoon - http://spoon.gforge.inria.fr/
 * Copyright (C) 2006 INRIA Futurs <renaud.pawlak@inria.fr>
 * 
 * This software is governed by the CeCILL-C License under French law and
 * abiding by the rules of distribution of free software. You can use, 
 * modify and/or redistribute the software under the terms of the
 * CeCILL-C
 * license as circulated by CEA, CNRS and INRIA at the following URL:
 * http://www.cecill.info. 
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the CeCILL-C
 * License for more details.
 *  
 * The fact that you are presently reading this means that you have had
 * knowledge of the CeCILL-C license and that you accept its terms.
 */

package spoon.aval.annotation.value;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

import spoon.aval.annotation.Implementation;
import spoon.aval.annotation.structure.Type;
import spoon.aval.support.validator.URLValidator;
import spoon.aval.support.validator.problemFixer.RemoveThisAnnotation;
import spoon.processing.ProblemFixer;
import spoon.processing.Severity;

/**
 * Validator that checks that the value of the annotation is a valid URL
 * <p>
 * For example, if the
 * <code>value()<code> of an annotation <code>@A<code/> must be an URL,
 * the definition of <code>@A</code> must be:
 *  
 *  <p>
 *  <pre>
 *  public &#64;interface A{
 *    &#64;URLValue() String value();
 *  }
 *  </pre>
 *  </p>
 *  
 *  @see spoon.aval.support.validator.URLValidator

 *
 */
@Retention(RetentionPolicy.RUNTIME)
@Implementation(URLValidator.class)
@Type(CharSequence.class)
public @interface URLValue {
  /**
   * Message to report when validation fails
   */
  String message() default "Value \"?val\" is supposed to be an URL ";
  
  /**
   * Severity of the validation faliure
   */
  Severity severity() default Severity.WARNING;
  
  /**
   * The list of {@link ProblemFixer}s to propose 
   * when the validation fails.
   */
  Class<? extends ProblemFixer>[] fixers() default {RemoveThisAnnotation.class};

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.