int (@NotNull ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); if (i == JavaElementType.REFERENCE_PARAMETER_LIST) { return ChildRole.REFERENCE_PARAMETER_LIST; } else if (i == JavaTokenType.NEW_KEYWORD) { return ChildRole.NEW_KEYWORD; } else if (i == JavaTokenType.DOT) { return ChildRole.DOT; } else if (i == JavaElementType.JAVA_CODE_REFERENCE) { return ChildRole.TYPE_REFERENCE; } else if (i == JavaElementType.EXPRESSION_LIST) { return ChildRole.ARGUMENT_LIST; } else if (i == JavaTokenType.LBRACKET) { return ChildRole.LBRACKET; } else if (i == JavaTokenType.RBRACKET) { return ChildRole.RBRACKET; } else if (i == JavaElementType.ARRAY_INITIALIZER_EXPRESSION) { if (child == getLastChildNode()) { return ChildRole.ARRAY_INITIALIZER; } else if (child == getFirstChildNode()) { return ChildRole.QUALIFIER; } else { return ChildRole.ARRAY_DIMENSION; } } else if (i == JavaElementType.ANONYMOUS_CLASS) { return ChildRole.ANONYMOUS_CLASS; } else { if (ElementType.PRIMITIVE_TYPE_BIT_SET.contains(child.getElementType())) { return ChildRole.TYPE_KEYWORD; } else if (ElementType.EXPRESSION_BIT_SET.contains(child.getElementType())) { return child == getFirstChildNode() ? ChildRole.QUALIFIER : ChildRole.ARRAY_DIMENSION; } else { return ChildRoleBase.NONE; } } }