private Indent calcCurrentIndent(final ASTNode child, final int state) {
    IElementType elementType = child.getElementType();

    if (isRBrace(child) || elementType == JavaTokenType.AT) {
      return Indent.getNoneIndent();
    }

    if (state == BEFORE_FIRST) {
      return Indent.getNoneIndent();
    }

    if (elementType == JavaElementType.SWITCH_LABEL_STATEMENT) {
      return getCodeBlockInternalIndent(myChildrenIndent);
    }

    if (state == BEFORE_LBRACE) {
      if (elementType == JavaTokenType.LBRACE
          || elementType == JavaTokenType.CLASS_KEYWORD
          || elementType == JavaTokenType.RECORD_KEYWORD
          || elementType == JavaTokenType.INTERFACE_KEYWORD
          || elementType == JavaTokenType.IDENTIFIER
          || elementType == JavaTokenType.ENUM_KEYWORD
          || elementType == JavaTokenType.MODULE_KEYWORD
          || elementType == JavaElementType.MODULE_REFERENCE) {
        return Indent.getNoneIndent();
      }
      else {
        return Indent.getContinuationIndent(myIndentSettings.USE_RELATIVE_INDENTS);
      }
    }
    else {
      return getCodeBlockInternalIndent(myChildrenIndent);
    }
  }
private Indent calcCurrentIndent(final ASTNode child, final int state)