Home | History | Annotate | Download | only in annotations
      1 /*
      2  * Copyright (C) 2009 The Guava Authors
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  * http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.google.common.annotations;
     18 
     19 import java.lang.annotation.Documented;
     20 import java.lang.annotation.ElementType;
     21 import java.lang.annotation.Retention;
     22 import java.lang.annotation.RetentionPolicy;
     23 import java.lang.annotation.Target;
     24 
     25 /**
     26  * The presence of this annotation on a method indicates that the method may
     27  * <em>not</em> be used with the
     28  * <a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a> (GWT),
     29  * even though its type is annotated as {@link GwtCompatible} and accessible in
     30  * GWT.  They can cause GWT compilation errors or simply unexpected exceptions
     31  * when used in GWT.
     32  *
     33  * <p>Note that this annotation should only be applied to methods, fields, or
     34  * inner classes of types which are annotated as {@link GwtCompatible}.
     35  *
     36  * @author Charles Fry
     37  */
     38 @Retention(RetentionPolicy.CLASS)
     39 @Target({
     40     ElementType.TYPE, ElementType.METHOD,
     41     ElementType.CONSTRUCTOR, ElementType.FIELD })
     42 @Documented
     43 @GwtCompatible
     44 public @interface GwtIncompatible {
     45   /**
     46    * Describes why the annotated element is incompatible with GWT. Since this is
     47    * generally due to a dependence on a type/method which GWT doesn't support,
     48    * it is sufficient to simply reference the unsupported type/method. E.g.
     49    * "Class.isInstance".
     50    */
     51   String value();
     52 }
     53