1   package com.puppycrawl.tools.checkstyle.checks.indentation.indentation; //indent:0 exp:0
2   
3   import java.util.Iterator;  //indent:0 exp:0
4   
5   /**                                                                           //indent:0 exp:0
6    * This test-input is intended to be checked using following configuration:   //indent:1 exp:1
7    *                                                                            //indent:1 exp:1
8    * arrayInitIndent = 4                                                        //indent:1 exp:1
9    * basicOffset = 2                                                            //indent:1 exp:1
10   * braceAdjustment = 0                                                        //indent:1 exp:1
11   * caseIndent = 4                                                             //indent:1 exp:1
12   * forceStrictCondition = false                                               //indent:1 exp:1
13   * lineWrappingIndentation = 4                                                //indent:1 exp:1
14   * tabWidth = 4                                                               //indent:1 exp:1
15   * throwsIndent = 4                                                           //indent:1 exp:1
16   *                                                                            //indent:1 exp:1
17   *                                                                            //indent:1 exp:1
18   */                                                                           //indent:1 exp:1
19  class InputIndentationClassesMethods  //indent:0 exp:0
20      implements Runnable, Cloneable {  //indent:4 exp:4
21  
22    class InnerClass implements  //indent:2 exp:2
23            Iterable<String>,  //indent:10 exp:>=6
24               Cloneable {  //indent:13 exp:>=6
25      @Override  //indent:4 exp:4
26      public Iterator<String> iterator() {  //indent:4 exp:4
27        return null;  //indent:6 exp:6
28      }  //indent:4 exp:4
29    }  //indent:2 exp:2
30  
31    class InnerClass2  //indent:2 exp:2
32         extends  //indent:7 exp:>=6
33           SecondClassWithLongLongLongLongName {  //indent:9 exp:>=6
34      public InnerClass2(String string) {  //indent:4 exp:4
35      }  //indent:4 exp:4
36    }  //indent:2 exp:2
37  
38    @Override  //indent:2 exp:2
39    public void run() {  //indent:2 exp:2
40      SecondClassWithLongLongLongLongName anon =  //indent:4 exp:4
41          new SecondClassWithLongLongLongLongName() {  //indent:8 exp:8
42            @MyAnnotation2 //indent:10 exp:10
43            String longLongLongLongLongMethodName() {  //indent:10 exp:10
44              return "String";  //indent:12 exp:12
45            }  //indent:10 exp:10
46          };  //indent:8 exp:8
47  
48      SecondClassWithLongLongLongLongName anon2 = new  //indent:4 exp:4
49            SecondClassWithLongLongLongLongName() {  //indent:10 exp:>=8
50  
51      };  //indent:4 exp:4
52    }  //indent:2 exp:2
53  } //indent:0 exp:0
54  
55  class SecondClassWithLongLongLongLongName  //indent:0 exp:0
56      extends  //indent:4 exp:4
57           InputIndentationClassesMethods{  //indent:9 exp:>=4
58    private boolean conditionFirst(String longString, int //indent:2 exp:2
59        integer, InnerClass someInstance) { //indent:6 exp:6
60      return false; //indent:4 exp:4
61    } //indent:2 exp:2
62  
63    private boolean conditionFirst1(String longString, int //indent:2 exp:2
64        integer, InnerClass someInstance) //indent:6 exp:6
65            throws Exception { //indent:10 exp:>=6
66      return false; //indent:4 exp:4
67    } //indent:2 exp:2
68  }  //indent:0 exp:0
69  
70  @interface MyAnnotation2 {} //indent:0 exp:0
71  
72  @MyAnnotation2 //indent:0 exp:0
73  class Foo {} //indent:0 exp:0