| // Copyright 2015 The Bazel Authors. All rights reserved. | 
 | // | 
 | // 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. | 
 |  | 
 |  | 
 | import java.io.IOException; | 
 | import java.lang.annotation.*; | 
 |  | 
 | class A { | 
 |  | 
 |   // Exercise removal of class initializers: | 
 |   static { } | 
 |  | 
 |   // Exercise removal of private members: | 
 |   private String privateField; | 
 |  | 
 |   protected int protectedField; | 
 |  | 
 |   // Exercise ConstantValue annotation | 
 |   public static final long L1 = 123L; | 
 |  | 
 |   // Exercise removal of private members: | 
 |   private void privateMethod() { | 
 |     System.err.println("foofoofoofoo"); | 
 |   } | 
 |  | 
 |   // Exercise Signature annotation: | 
 |   protected <T> T protectedMethod(T t) { return t; } | 
 |  | 
 |   // Exercise Deprecated annotation: | 
 |   @Deprecated | 
 |   // Exercise Exceptions annotation: | 
 |   public void deprecatedMethod() throws IOException {} | 
 |  | 
 |   // Exercise retention of private inner classes: | 
 |   private class PrivateInner {} | 
 |  | 
 |   // Exercise InnerClasses attribute: | 
 |   public class PublicInner {} | 
 |  | 
 |   public @interface MyAnnotation { | 
 |     // Exercise BaseTypeElementValue: | 
 |     String a() default "foo"; | 
 |  | 
 |     // Exercise EnumTypeElementValue: | 
 |     ElementType b() default ElementType.METHOD; | 
 |  | 
 |     // Exercise ClassTypeElementValue: | 
 |     Class<?> c() default String.class; | 
 |  | 
 |     // Exercise ArrayTypeElementValue: | 
 |     String[] d() default { "foo", "bar" }; | 
 |  | 
 |     // Exercise AnnotationTypeElementValue: | 
 |     Deprecated e() default @Deprecated; | 
 |   } | 
 |  | 
 |   @Retention(RetentionPolicy.RUNTIME) | 
 |   public @interface RuntimeAnnotation {} | 
 |  | 
 | } |