001 /* 002 * Copyright (C) 2009 Google Inc. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017 package com.google.common.annotations; 018 019 import java.lang.annotation.ElementType; 020 import java.lang.annotation.Retention; 021 import java.lang.annotation.RetentionPolicy; 022 import java.lang.annotation.Target; 023 024 /** 025 * The presence of this annotation on a method indicates that the method may 026 * <em>not</em> be used with the 027 * <a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a> (GWT), 028 * even though its type is annotated as {@link GwtCompatible} and accessible in 029 * GWT. They can cause GWT compilation errors or simply unexpected exceptions 030 * when used in GWT. 031 * 032 * <p>Note that this annotation should only be applied to methods, fields, or 033 * inner classes of types which are annotated as {@link GwtCompatible}. 034 * 035 * @author Charles Fry 036 */ 037 @Retention(RetentionPolicy.CLASS) 038 @Target({ ElementType.TYPE, ElementType.METHOD, ElementType.FIELD }) 039 040 @GwtCompatible 041 public @interface GwtIncompatible { 042 043 /** 044 * Describes why the annotated element is incompatible with GWT. Since this is 045 * generally due to a dependence on a type/method which GWT doesn't support, 046 * it is sufficient to simply reference the unsupported type/method. E.g. 047 * "Class.isInstance". 048 */ 049 String value(); 050 051 }