package com.puppycrawl.tools.checkstyle.checks.indentation.indentation; //indent:0 exp:0

/**                                                                           //indent:0 exp:0
 * This test-input is intended to be checked using following configuration:   //indent:1 exp:1
 *                                                                            //indent:1 exp:1
 * arrayInitIndent = 8                                                        //indent:1 exp:1
 * basicOffset = 4                                                            //indent:1 exp:1
 * braceAdjustment = 0                                                        //indent:1 exp:1
 * caseIndent = 4                                                             //indent:1 exp:1
 * forceStrictCondition = false                                               //indent:1 exp:1
 * lineWrappingIndentation = 4                                                //indent:1 exp:1
 * tabWidth = 4                                                               //indent:1 exp:1
 * throwsIndent = 4                                                           //indent:1 exp:1
 *                                                                            //indent:1 exp:1
 * @author  jrichard                                                         //indent:1 exp:1
 */                                                                           //indent:1 exp:1
public class InputIndentationValidArrayInitIndent { //indent:0 exp:0

    private static char[] sHexChars = { //indent:4 exp:4
            '0', '1', '2', '3', '4', '5', '6', '7', //indent:12 exp:12
            '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; //indent:12 exp:12

    int[] array = new int[] {1, 2, 3}; //indent:4 exp:4

    int[] array2 = new int[] { //indent:4 exp:4
            1, 2, 3 //indent:12 exp:12
    }; //indent:4 exp:4

    int[] array3 = new int[] { //indent:4 exp:4
            1, //indent:12 exp:12
            2, //indent:12 exp:12
            3 //indent:12 exp:12
    }; //indent:4 exp:4


    int[] array4 = new int[] //indent:4 exp:4
    { //indent:4 exp:4
            1, //indent:12 exp:12
            2, //indent:12 exp:12
            3 //indent:12 exp:12
    }; //indent:4 exp:4

    int[] array5 = new int[] //indent:4 exp:4
    {1, 2, 3}; //indent:4 exp:4


    // check nesting on first line //indent:4 exp:4
    int[] array6 = new int[] { 1, 2, //indent:4 exp:4
            3 //indent:12 exp:12
    }; //indent:4 exp:4

    int[] array6a = new int[] { 1, 2, //indent:4 exp:4
                                3, 4}; //indent:32 exp:32

    // nesting //indent:4 exp:4
    int[] array7 = new int[] { //indent:4 exp:4
            1, 2, //indent:12 exp:12
            3 //indent:12 exp:12
    }; //indent:4 exp:4

    String[][] mStuff = new String[][] { //indent:4 exp:4
            { "key", "value" } //indent:12 exp:12
    }; //indent:4 exp:4

    String[][] mStuff1 = new String[][] //indent:4 exp:4
    { //indent:4 exp:4
            { "key", "value" } //indent:12 exp:12
    }; //indent:4 exp:4

    int[] array8 = new int[] { }; //indent:4 exp:4

    int[] array9 = new int[] { //indent:4 exp:4
    }; //indent:4 exp:4

    int[][] array10 = new int[][] { //indent:4 exp:4
            new int[] { 1, 2, 3}, //indent:12 exp:12
            new int[] { 1, 2, 3}, //indent:12 exp:12
    }; //indent:4 exp:4


    int[][] array10b //indent:4 exp:4
        = new int[][] { //indent:8 exp:8
                new int[] { 1, 2, 3}, //indent:16 exp:16
                new int[] { 1, 2, 3}, //indent:16 exp:16
        }; //indent:8 exp:8

    private void func1(int[] arg) { //indent:4 exp:4

        char[] sHexChars2 = { //indent:8 exp:8
                '0', '1', '2', '3', '4', '5', '6', '7', //indent:16 exp:16
                '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; //indent:16 exp:16

        char[] sHexChars3 = { //indent:8 exp:8
                '0', '1', '2', '3', '4', '5', '6', '7', //indent:16 exp:16
                '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' //indent:16 exp:16
        }; //indent:8 exp:8

        char[] sHexChars4 = //indent:8 exp:8
        { //indent:8 exp:8
                '0', '1', '2', '3', '4', '5', '6', '7', //indent:16 exp:16
                '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' //indent:16 exp:16
        }; //indent:8 exp:8

    } //indent:4 exp:4


    /** Creates a new instance of InputIndentationValidArrayInitIndent */ //indent:4 exp:4
    public InputIndentationValidArrayInitIndent() { //indent:4 exp:4

        func1(new int[] {1, 2}); //indent:8 exp:8
        func1(new int[] {}); //indent:8 exp:8
        func1(new int[] { //indent:8 exp:8
                1, 2, 3 //indent:16 exp:16
        }); //indent:8 exp:8
        for (String veryLongVariableName: new String[] //indent:8 exp:8
        {"this is text", "this is text"}) { //indent:8 exp:8
            if (hashCode() == 0) break; //indent:12 exp:12
        } //indent:8 exp:8
    } //indent:4 exp:4

} //indent:0 exp:0
