View Javadoc
1   /*
2   AnnotationLocation
3   allowSamelineMultipleAnnotations = (default)false
4   allowSamelineSingleParameterlessAnnotation = (default)true
5   allowSamelineParameterizedAnnotation = (default)false
6   tokens = (default)CLASS_DEF, INTERFACE_DEF, PACKAGE_DEF, ENUM_CONSTANT_DEF, \
7            ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF, RECORD_DEF, COMPACT_CTOR_DEF
8   
9   
10  */
11  
12  package com.puppycrawl.tools.checkstyle.checks.annotation.annotationlocation;
13  
14  import java.lang.annotation.ElementType;
15  import java.lang.annotation.Repeatable;
16  import java.lang.annotation.Target;
17  
18  class InputAnnotationLocationSingleParameterless {
19  
20      @Annotation void singleParameterless() {}
21  
22      // violation below 'Annotation 'Annotation' should be alone on line.'
23      @Annotation @Annotation void multipleParameterless() {}
24  
25      @Annotation("") void parameterized() {} // violation '.* should be alone on line.'
26  
27      @Annotation(value = "") void namedParameterized() {} // violation '.* should be alone on line.'
28  
29      @Annotation @Annotation("") @Annotation(value = "") void multiple() {} // 2 violations
30  
31      @Annotation("") @Annotation(value = "") void multipleParametrized() {} // 2 violations
32  
33      void parameterlessSamelineInForEach() {
34          for (@Annotation Object o : new Object[0]) break;
35          for (@Annotation @Annotation Object o : new Object[0]) break;
36          for (@Annotation Object o;;) break;
37          for (@Annotation @Annotation Object o;;) break;
38      }
39  
40      @Repeatable(Annotations.class)
41      @Target({ElementType.METHOD, ElementType.LOCAL_VARIABLE})
42      @interface Annotation {
43          String value() default "";
44      }
45  
46      @Target({ElementType.METHOD, ElementType.LOCAL_VARIABLE})
47      @interface Annotations {
48          Annotation[] value();
49      }
50  
51  }