/*
DefaultComesLast
skipIfLastAndSharedWithCase = (default)false


*/

package com.puppycrawl.tools.checkstyle.checks.coding.defaultcomeslast;

public class InputDefaultComesLast
{
    void method(int i) {
        // switch with last default
        switch (i) {
        case 1: break;
        case 2: break;
        default:
            // do something :)
        }

        // switch w/o default (not a problem)
        switch (i) {
        case 1: break;
        case 2: break;
        }

        // VIOLATION!!! default is not the last one.
        switch (i) {
        case 1:
            break;
        default: /**default is not last*/ // violation 'Default should be last label in the switch.'
            break;
        case 2:
            break;
        }

        switch (i) {
        case 1: break; default: break; case 2: break; // violation 'Default should be last.'
        }

        switch (i) {
            case 1:
            default: // violation 'Default should be last label in the switch.'
                break;
            case 2:
                break;
        }

        switch (i) {
            case 1:
            default: // violation 'Default should be last label in the switch.'
            case 2:
                break;
            case 3:
                break;
        }

        switch (i) {
            default: // violation 'Default should be last label in the switch.'
            case 1:
                break;
            case 2:
                break;
        }

        switch (i) {
            case 0: default: case 1: break; case 2: break; // violation 'Default should be last.'
        }

        switch (i) {
            default: case 1: break; case 2: break; // violation 'Default should be last.'
        }

        switch (i) {
            case 1: default: break; case 2: break; // violation 'Default should be last.'
        }

        switch (i) {
            case 1:
            default: // violation 'Default should be last label in the switch.'
                break;
            case 2:
                break;
            case 3:
                break;
        }

        switch (i) {
            case 1:
                break;
            default: // violation 'Default should be last label in the switch.'
            case 2:
                break;
            case 3:
                break;
        }

        switch (i) {
            case 1:
                break;
            case 2:
            default: // violation 'Default should be last label in the switch.'
                break;
            case 3:
                break;
        }

        switch (i) {
            case 1:
                break;
            case 2:
            default: // violation 'Default should be last label in the switch.'
            case 3:
                break;
            case 4:
                break;
        }

        switch (i) {
            default: // violation 'Default should be last label in the switch.'
                break;
            case 1:
                break;
        }

        switch (i) {
            case 1:
                break;
            case 2:
                break;
            default: // violation 'Default should be last label in the switch.'
            case 5:
            case 6:
                break;
            case 7:
                break;
        }
    }
}

@interface InputDefaultComesLastAnnotation
{
    int blag() default 1;
}
