package ru.csu.stan.java.ast.core; import java.util.HashMap; import java.util.Map; import javax.lang.model.type.TypeKind; import ru.csu.stan.java.ast.core.resources.ResourceManager; import com.sun.source.tree.Tree.Kind; public class ContentAssistant { public static String getNodeName(String innerNodeName) { return ResourceManager.getResourceString(innerNodeName); } private static final Map<Kind, String> treeNodesNames = new HashMap<Kind, String>(); static { treeNodesNames.put(Kind.ANNOTATION, "tags.annotation"); treeNodesNames.put(Kind.ARRAY_ACCESS, "tags.array_access"); treeNodesNames.put(Kind.ARRAY_TYPE, "tags.array_type"); treeNodesNames.put(Kind.ASSERT, "tags.assert"); treeNodesNames.put(Kind.ASSIGNMENT, "tags.assignment"); treeNodesNames.put(Kind.BLOCK, "tags.block"); treeNodesNames.put(Kind.BREAK, "tags.break"); treeNodesNames.put(Kind.CASE, "tags.case"); treeNodesNames.put(Kind.CATCH, "tags.catch"); treeNodesNames.put(Kind.CLASS, "tags.class"); treeNodesNames.put(Kind.COMPILATION_UNIT, "tags.compilation_unit"); treeNodesNames.put(Kind.CONDITIONAL_EXPRESSION, "tags.conditional_expression"); treeNodesNames.put(Kind.CONTINUE, "tags.continue"); treeNodesNames.put(Kind.DO_WHILE_LOOP, "tags.do_while_loop"); treeNodesNames.put(Kind.ENHANCED_FOR_LOOP, "tags.enhanced_for_loop"); treeNodesNames.put(Kind.EXPRESSION_STATEMENT, "tags.expression_statement"); treeNodesNames.put(Kind.MEMBER_SELECT, "tags.member_select"); treeNodesNames.put(Kind.FOR_LOOP, "tags.for_loop"); treeNodesNames.put(Kind.IDENTIFIER, "tags.identifier"); treeNodesNames.put(Kind.IF, "tags.if"); treeNodesNames.put(Kind.IMPORT, "tags.import"); treeNodesNames.put(Kind.INSTANCE_OF, "tags.instance_of"); treeNodesNames.put(Kind.LABELED_STATEMENT, "tags.labeled_statement"); treeNodesNames.put(Kind.METHOD, "tags.method"); treeNodesNames.put(Kind.METHOD_INVOCATION, "method_invocation"); treeNodesNames.put(Kind.MODIFIERS, "tags.modifiers"); treeNodesNames.put(Kind.NEW_ARRAY, "tags.new_array"); treeNodesNames.put(Kind.NEW_CLASS, "tags.new_class"); treeNodesNames.put(Kind.PARENTHESIZED, "tags.parenthesized"); treeNodesNames.put(Kind.PRIMITIVE_TYPE, "tags.primitive_type"); treeNodesNames.put(Kind.RETURN, "tags.return"); treeNodesNames.put(Kind.EMPTY_STATEMENT, "tags.empty_statement"); treeNodesNames.put(Kind.SWITCH, "tags.switch"); treeNodesNames.put(Kind.SYNCHRONIZED, "tags.synchronized"); treeNodesNames.put(Kind.THROW, "tags.throw"); treeNodesNames.put(Kind.TRY, "tags.try"); treeNodesNames.put(Kind.PARAMETERIZED_TYPE, "tags.parameterized_type"); treeNodesNames.put(Kind.TYPE_CAST, "tags.type_cast"); treeNodesNames.put(Kind.TYPE_PARAMETER, "tags.type_parameter"); treeNodesNames.put(Kind.VARIABLE, "tags.variable"); treeNodesNames.put(Kind.WHILE_LOOP, "tags.while_loop"); treeNodesNames.put(Kind.POSTFIX_INCREMENT, "tags.postfix_increment"); treeNodesNames.put(Kind.POSTFIX_DECREMENT, "tags.postfic_decrement"); treeNodesNames.put(Kind.PREFIX_INCREMENT, "tags.prefix_increment"); treeNodesNames.put(Kind.PREFIX_DECREMENT, "tags.prefix_decrement"); treeNodesNames.put(Kind.UNARY_PLUS, "tags.unary_plus"); treeNodesNames.put(Kind.UNARY_MINUS, "tags.unary_minus"); treeNodesNames.put(Kind.BITWISE_COMPLEMENT, "tags.bitwise_complement"); treeNodesNames.put(Kind.LOGICAL_COMPLEMENT, "tags.logical_complement"); treeNodesNames.put(Kind.MULTIPLY, "tags.multiply"); treeNodesNames.put(Kind.DIVIDE, "tags.divide"); treeNodesNames.put(Kind.REMAINDER, "tags.remainder"); treeNodesNames.put(Kind.PLUS, "tags.plus"); treeNodesNames.put(Kind.MINUS, "tags.minus"); treeNodesNames.put(Kind.LEFT_SHIFT, "tags.left_shift"); treeNodesNames.put(Kind.RIGHT_SHIFT, "tags.right_shift"); treeNodesNames.put(Kind.UNSIGNED_RIGHT_SHIFT, "tags.unsigned_right_shift"); treeNodesNames.put(Kind.LESS_THAN, "tags.less_than"); treeNodesNames.put(Kind.GREATER_THAN, "tags.grater_than"); treeNodesNames.put(Kind.LESS_THAN_EQUAL, "tags.less_than_equal"); treeNodesNames.put(Kind.GREATER_THAN_EQUAL, "tags.greater_than_equal"); treeNodesNames.put(Kind.EQUAL_TO, "tags.equal_to"); treeNodesNames.put(Kind.NOT_EQUAL_TO, "tags.not_equal_to"); treeNodesNames.put(Kind.AND, "tags.and"); treeNodesNames.put(Kind.XOR, "tags.xor"); treeNodesNames.put(Kind.OR, "tags.or"); treeNodesNames.put(Kind.CONDITIONAL_AND, "tags.conditional_end"); treeNodesNames.put(Kind.CONDITIONAL_OR, "tags.conditional_or"); treeNodesNames.put(Kind.MULTIPLY_ASSIGNMENT, "tags.multiply_assignment"); treeNodesNames.put(Kind.DIVIDE_ASSIGNMENT, "tags.divide_assignment"); treeNodesNames.put(Kind.REMAINDER_ASSIGNMENT, "tags.remainder_assignment"); treeNodesNames.put(Kind.PLUS_ASSIGNMENT, "tags.plus_assignment"); treeNodesNames.put(Kind.MINUS_ASSIGNMENT, "tags.minus_assignment"); treeNodesNames.put(Kind.LEFT_SHIFT_ASSIGNMENT, "tags.left_shift_assignment"); treeNodesNames.put(Kind.RIGHT_SHIFT_ASSIGNMENT, "tags.right_shift_assignment"); treeNodesNames.put(Kind.UNSIGNED_RIGHT_SHIFT_ASSIGNMENT, "tags.unsigned_right_shift_assignment"); treeNodesNames.put(Kind.AND_ASSIGNMENT, "tags.and_assignment"); treeNodesNames.put(Kind.XOR_ASSIGNMENT, "tags.xor_assignment"); treeNodesNames.put(Kind.OR_ASSIGNMENT, "tags.or_assignment"); treeNodesNames.put(Kind.INT_LITERAL, "tags.int_literal"); treeNodesNames.put(Kind.LONG_LITERAL, "tags.long_literal"); treeNodesNames.put(Kind.FLOAT_LITERAL, "float_literal"); treeNodesNames.put(Kind.DOUBLE_LITERAL, "tags.double_literal"); treeNodesNames.put(Kind.BOOLEAN_LITERAL, "tags.boolean_literal"); treeNodesNames.put(Kind.CHAR_LITERAL, "tags.char_literal"); treeNodesNames.put(Kind.STRING_LITERAL, "tags.string_literal"); treeNodesNames.put(Kind.NULL_LITERAL, "tags.null_literal"); treeNodesNames.put(Kind.UNBOUNDED_WILDCARD, "tags.unbounded_wildcard"); treeNodesNames.put(Kind.EXTENDS_WILDCARD, "tags.extends_wildcard"); treeNodesNames.put(Kind.SUPER_WILDCARD, "tags.super_wildcard"); treeNodesNames.put(Kind.ERRONEOUS, "tags.erroneous"); treeNodesNames.put(Kind.OTHER, "tags.other"); } public static String getTagNameByTreeElementKind(Kind kind) { return ResourceManager.getResourceString(treeNodesNames.get(kind)); } private static final Map<TypeKind, String> typeKindNames = new HashMap<TypeKind, String>(); static { typeKindNames.put(TypeKind.ARRAY, "typekind.array"); typeKindNames.put(TypeKind.BOOLEAN, "typekind.boolean"); typeKindNames.put(TypeKind.BYTE, "typekind.byte"); typeKindNames.put(TypeKind.CHAR, "typekind.char"); typeKindNames.put(TypeKind.DECLARED, "typekind.declared"); typeKindNames.put(TypeKind.DOUBLE, "typekind.double"); typeKindNames.put(TypeKind.ERROR, "typekind.error"); typeKindNames.put(TypeKind.EXECUTABLE, "typekind.executable"); typeKindNames.put(TypeKind.FLOAT, "typekind.float"); typeKindNames.put(TypeKind.INT, "typekind.int"); typeKindNames.put(TypeKind.LONG, "typekind.long"); typeKindNames.put(TypeKind.NONE, "typekind.none"); typeKindNames.put(TypeKind.NULL, "typekind.null"); typeKindNames.put(TypeKind.OTHER, "typekind.other"); typeKindNames.put(TypeKind.PACKAGE, "typekind.package"); typeKindNames.put(TypeKind.SHORT, "typekind.short"); typeKindNames.put(TypeKind.TYPEVAR, "typekind.typevar"); typeKindNames.put(TypeKind.VOID, "typekind.void"); typeKindNames.put(TypeKind.WILDCARD, "typekind.wildcard"); } public static String getTypeKindToString(TypeKind typeKind) { return ResourceManager.getResourceString(typeKindNames.get(typeKind)); } }