| /* |
| * Copyright 2013 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.core.shared; |
| import java.lang.annotation.Documented; |
| import java.lang.annotation.ElementType; |
| import java.lang.annotation.Retention; |
| import java.lang.annotation.RetentionPolicy; |
| import java.lang.annotation.Target; |
| |
| /** |
| * A simple of a GwtIncompatible annotation. |
| * |
| * Any class, method or field with an annotation @GwtIncompatible (with any package prefix) is |
| * ignored by the GWT compiler. |
| * |
| * Since only the name of the annotation matters, Java libraries may use their own copy of this |
| * annotation class to avoid adding a compile-time dependency on GWT. |
| * |
| * For example: |
| * |
| * {@code |
| * class A { |
| * |
| * int field; |
| * |
| * @GwtIncompatible("incompatible class") |
| * class Inner { |
| * .... |
| * } |
| * |
| * @GwtIncompatible("incompatible field") |
| * int field2 = methodThatisNotSupportedbyGwt(); |
| * |
| * void method1() { } |
| * |
| * @GwtIncompatible("incompatbile method") |
| * void method2() {} |
| * } |
| * } |
| * |
| * is seen by the Gwt compiler as |
| * |
| * {@code |
| * class A { |
| * |
| * int field; |
| * |
| * void method1() { } |
| * |
| * } |
| * } |
| * |
| * Warning: this may have surprising effects when combined with method overloading or inheritance. |
| */ |
| @Retention(RetentionPolicy.CLASS) |
| @Target({ |
| ElementType.TYPE, ElementType.METHOD, |
| ElementType.CONSTRUCTOR, ElementType.FIELD }) |
| @Documented |
| public @interface GwtIncompatible { |
| /** |
| * An attribute that can be used to explain why the code is incompatible. |
| * A GwtIncompatible annotation can have any number of attributes; attributes |
| * are for documentation purposes and are ignored by the GWT compiler. |
| */ |
| String value() default ""; |
| } |