List of usage examples for org.eclipse.jdt.core.dom ASTNode WILDCARD_TYPE
int WILDCARD_TYPE
To view the source code for org.eclipse.jdt.core.dom ASTNode WILDCARD_TYPE.
Click Source Link
WildcardType
. From source file:de.akra.idocit.java.services.ReflectionHelper.java
License:Apache License
/** * Returns the identifier from the {@link Type} depending on the containing type. * //from ww w. j av a 2 s .co m * @param type * [SOURCE] * * @return [OBJECT] * @see Type * @thematicgrid Extracting Operations */ public static String extractIdentifierFrom(Type type) { switch (type.getNodeType()) { case ASTNode.PRIMITIVE_TYPE: { PrimitiveType primitiveType = (PrimitiveType) type; return primitiveType.getPrimitiveTypeCode().toString(); } case ASTNode.ARRAY_TYPE: { ArrayType arrayType = (ArrayType) type; String name = extractIdentifierFrom(arrayType.getElementType()); StringBuffer identifier = new StringBuffer(name); for (int i = 0; i < arrayType.getDimensions(); i++) { identifier.append("[]"); } return identifier.toString(); } case ASTNode.SIMPLE_TYPE: { SimpleType simpleType = (SimpleType) type; return simpleType.getName().getFullyQualifiedName(); } case ASTNode.QUALIFIED_TYPE: { QualifiedType qType = (QualifiedType) type; return extractIdentifierFrom(qType.getQualifier()) + "." + qType.getName().getIdentifier(); } case ASTNode.PARAMETERIZED_TYPE: { ParameterizedType paramType = (ParameterizedType) type; StringBuffer identifier = new StringBuffer(extractIdentifierFrom(paramType.getType())); identifier.append('<'); @SuppressWarnings("unchecked") Iterator<Type> iterTypeArgs = (Iterator<Type>) paramType.typeArguments().iterator(); while (iterTypeArgs.hasNext()) { Type typeArg = iterTypeArgs.next(); identifier.append(extractIdentifierFrom(typeArg)); if (iterTypeArgs.hasNext()) { identifier.append(','); } } identifier.append('>'); return identifier.toString(); } case ASTNode.WILDCARD_TYPE: { WildcardType wildcard = (WildcardType) type; String identifier = "? extends "; if (!wildcard.isUpperBound()) { identifier = "? super "; } return identifier + extractIdentifierFrom(wildcard.getBound()); } } return SignatureElement.ANONYMOUS_IDENTIFIER; }
From source file:edu.brown.cs.bubbles.rebase.java.RebaseJavaElider.java
License:Open Source License
private String getTypeFromContext(ASTNode n) { ASTNode p = null;//w w w . j ava2 s . c om while (n != null) { switch (n.getNodeType()) { case ASTNode.SIMPLE_NAME: case ASTNode.QUALIFIED_NAME: break; case ASTNode.SIMPLE_TYPE: case ASTNode.QUALIFIED_TYPE: case ASTNode.WILDCARD_TYPE: return "TYPE"; case ASTNode.METHOD_INVOCATION: if (p != null && p.getLocationInParent() == MethodInvocation.NAME_PROPERTY) return "CALL"; else return null; default: return null; } p = n; n = n.getParent(); } return null; }
From source file:org.autorefactor.refactoring.ASTHelper.java
License:Open Source License
/** * Returns whether the two provided nodes structurally match. * * @param matcher the AST matcher/*from w w w . ja va2s . c om*/ * @param node1 the first node to compare * @param node2 the second node to compare * @return true if the two provided nodes structurally match, false otherwise */ public static boolean match(ASTMatcher matcher, ASTNode node1, ASTNode node2) { if (sameClass(node1, node2)) { // FIXME JNR implement all expressions // TODO JNR // can we match "this.ast" and the unqualified "ast" for example? // can we match "MyClass.CONSTANT" and the unqualified "CONSTANT" for example? // can we use IVariableBindings to compare them? switch (node1.getNodeType()) { case ASTNode.ANNOTATION_TYPE_DECLARATION: return matcher.match((AnnotationTypeDeclaration) node1, node2); case ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION: return matcher.match((AnnotationTypeMemberDeclaration) node1, node2); case ASTNode.ANONYMOUS_CLASS_DECLARATION: return matcher.match((AnonymousClassDeclaration) node1, node2); case ASTNode.ARRAY_ACCESS: return matcher.match((ArrayAccess) node1, node2); case ASTNode.ARRAY_CREATION: return matcher.match((ArrayCreation) node1, node2); case ASTNode.ARRAY_INITIALIZER: return matcher.match((ArrayInitializer) node1, node2); case ASTNode.ARRAY_TYPE: return matcher.match((ArrayType) node1, node2); case ASTNode.ASSERT_STATEMENT: return matcher.match((AssertStatement) node1, node2); case ASTNode.ASSIGNMENT: return matcher.match((Assignment) node1, node2); case ASTNode.BLOCK: return matcher.match((Block) node1, node2); case ASTNode.BLOCK_COMMENT: return matcher.match((BlockComment) node1, node2); case ASTNode.BOOLEAN_LITERAL: return matcher.match((BooleanLiteral) node1, node2); case ASTNode.BREAK_STATEMENT: return matcher.match((BreakStatement) node1, node2); case ASTNode.CAST_EXPRESSION: return matcher.match((CastExpression) node1, node2); case ASTNode.CATCH_CLAUSE: return matcher.match((CatchClause) node1, node2); case ASTNode.CHARACTER_LITERAL: return matcher.match((CharacterLiteral) node1, node2); case ASTNode.CLASS_INSTANCE_CREATION: return matcher.match((ClassInstanceCreation) node1, node2); case ASTNode.COMPILATION_UNIT: return matcher.match((CompilationUnit) node1, node2); case ASTNode.CONDITIONAL_EXPRESSION: return matcher.match((ConditionalExpression) node1, node2); case ASTNode.CONSTRUCTOR_INVOCATION: return matcher.match((ConstructorInvocation) node1, node2); case ASTNode.CONTINUE_STATEMENT: return matcher.match((ContinueStatement) node1, node2); case ASTNode.DO_STATEMENT: return matcher.match((DoStatement) node1, node2); case ASTNode.EMPTY_STATEMENT: return matcher.match((EmptyStatement) node1, node2); case ASTNode.ENHANCED_FOR_STATEMENT: return matcher.match((EnhancedForStatement) node1, node2); case ASTNode.ENUM_DECLARATION: return matcher.match((EnumDeclaration) node1, node2); case ASTNode.ENUM_CONSTANT_DECLARATION: return matcher.match((EnumConstantDeclaration) node1, node2); case ASTNode.EXPRESSION_STATEMENT: return matcher.match((ExpressionStatement) node1, node2); case ASTNode.FIELD_ACCESS: return matcher.match((FieldAccess) node1, node2); case ASTNode.FIELD_DECLARATION: return matcher.match((FieldDeclaration) node1, node2); case ASTNode.FOR_STATEMENT: return matcher.match((ForStatement) node1, node2); case ASTNode.IF_STATEMENT: return matcher.match((IfStatement) node1, node2); case ASTNode.IMPORT_DECLARATION: return matcher.match((ImportDeclaration) node1, node2); case ASTNode.INFIX_EXPRESSION: return matcher.match((InfixExpression) node1, node2); case ASTNode.INITIALIZER: return matcher.match((Initializer) node1, node2); case ASTNode.INSTANCEOF_EXPRESSION: return matcher.match((InstanceofExpression) node1, node2); case ASTNode.JAVADOC: return matcher.match((Javadoc) node1, node2); case ASTNode.LABELED_STATEMENT: return matcher.match((LabeledStatement) node1, node2); case ASTNode.LINE_COMMENT: return matcher.match((LineComment) node1, node2); case ASTNode.MARKER_ANNOTATION: return matcher.match((MarkerAnnotation) node1, node2); case ASTNode.MEMBER_REF: return matcher.match((MemberRef) node1, node2); case ASTNode.MEMBER_VALUE_PAIR: return matcher.match((MemberValuePair) node1, node2); case ASTNode.METHOD_DECLARATION: return matcher.match((MethodDeclaration) node1, node2); case ASTNode.METHOD_INVOCATION: return matcher.match((MethodInvocation) node1, node2); case ASTNode.METHOD_REF: return matcher.match((MethodRef) node1, node2); case ASTNode.METHOD_REF_PARAMETER: return matcher.match((MethodRefParameter) node1, node2); case ASTNode.MODIFIER: return matcher.match((Modifier) node1, node2); case ASTNode.NORMAL_ANNOTATION: return matcher.match((NormalAnnotation) node1, node2); case ASTNode.NULL_LITERAL: return matcher.match((NullLiteral) node1, node2); case ASTNode.NUMBER_LITERAL: return matcher.match((NumberLiteral) node1, node2); case ASTNode.PACKAGE_DECLARATION: return matcher.match((PackageDeclaration) node1, node2); case ASTNode.PARAMETERIZED_TYPE: return matcher.match((ParameterizedType) node1, node2); case ASTNode.PARENTHESIZED_EXPRESSION: return matcher.match((ParenthesizedExpression) node1, node2); case ASTNode.POSTFIX_EXPRESSION: return matcher.match((PostfixExpression) node1, node2); case ASTNode.PREFIX_EXPRESSION: return matcher.match((PrefixExpression) node1, node2); case ASTNode.PRIMITIVE_TYPE: return matcher.match((PrimitiveType) node1, node2); case ASTNode.QUALIFIED_NAME: return matcher.match((QualifiedName) node1, node2); case ASTNode.QUALIFIED_TYPE: return matcher.match((QualifiedType) node1, node2); case ASTNode.RETURN_STATEMENT: return matcher.match((ReturnStatement) node1, node2); case ASTNode.SIMPLE_NAME: return matcher.match((SimpleName) node1, node2); case ASTNode.SIMPLE_TYPE: return matcher.match((SimpleType) node1, node2); case ASTNode.SINGLE_MEMBER_ANNOTATION: return matcher.match((SingleMemberAnnotation) node1, node2); case ASTNode.SINGLE_VARIABLE_DECLARATION: return matcher.match((SingleVariableDeclaration) node1, node2); case ASTNode.STRING_LITERAL: return matcher.match((StringLiteral) node1, node2); case ASTNode.SUPER_CONSTRUCTOR_INVOCATION: return matcher.match((SuperConstructorInvocation) node1, node2); case ASTNode.SUPER_FIELD_ACCESS: return matcher.match((SuperFieldAccess) node1, node2); case ASTNode.SUPER_METHOD_INVOCATION: return matcher.match((SuperMethodInvocation) node1, node2); case ASTNode.SWITCH_CASE: return matcher.match((SwitchCase) node1, node2); case ASTNode.SWITCH_STATEMENT: return matcher.match((SwitchStatement) node1, node2); case ASTNode.SYNCHRONIZED_STATEMENT: return matcher.match((SynchronizedStatement) node1, node2); case ASTNode.TAG_ELEMENT: return matcher.match((TagElement) node1, node2); case ASTNode.TEXT_ELEMENT: return matcher.match((TextElement) node1, node2); case ASTNode.THIS_EXPRESSION: return matcher.match((ThisExpression) node1, node2); case ASTNode.THROW_STATEMENT: return matcher.match((ThrowStatement) node1, node2); case ASTNode.TRY_STATEMENT: return matcher.match((TryStatement) node1, node2); case ASTNode.TYPE_DECLARATION: return matcher.match((TypeDeclaration) node1, node2); case ASTNode.TYPE_DECLARATION_STATEMENT: return matcher.match((TypeDeclarationStatement) node1, node2); case ASTNode.TYPE_LITERAL: return matcher.match((TypeLiteral) node1, node2); case ASTNode.TYPE_PARAMETER: return matcher.match((TypeParameter) node1, node2); case ASTNode.UNION_TYPE: return matcher.match((UnionType) node1, node2); case ASTNode.VARIABLE_DECLARATION_EXPRESSION: return matcher.match((VariableDeclarationExpression) node1, node2); case ASTNode.VARIABLE_DECLARATION_FRAGMENT: return matcher.match((VariableDeclarationFragment) node1, node2); case ASTNode.VARIABLE_DECLARATION_STATEMENT: return matcher.match((VariableDeclarationStatement) node1, node2); case ASTNode.WHILE_STATEMENT: return matcher.match((WhileStatement) node1, node2); case ASTNode.WILDCARD_TYPE: return matcher.match((WildcardType) node1, node2); default: throw new NotImplementedException(node1); } } return false; }
From source file:org.eclipse.recommenders.rcp.utils.ASTNodeUtils.java
License:Open Source License
/** * Returns the simple name of a given class type, for primitive types their source names "int", "long" etc., for * arrays it returns the element type of the array, for wildcards their bound type, and for union types something * not meaningful.//w w w .ja v a 2 s . c om */ private static String toSimpleName(Type type) { SimpleName name; switch (type.getNodeType()) { case ASTNode.SIMPLE_TYPE: { SimpleType t = cast(type); name = stripQualifier(t.getName()); break; } case ASTNode.QUALIFIED_TYPE: { QualifiedType t = cast(type); name = stripQualifier(t.getName()); break; } case ASTNode.PARAMETERIZED_TYPE: { ParameterizedType t = cast(type); return toSimpleName(t.getType()); } case ASTNode.PRIMITIVE_TYPE: { PrimitiveType t = cast(type); return t.getPrimitiveTypeCode().toString(); } case ASTNode.WILDCARD_TYPE: { WildcardType t = cast(type); return toSimpleName(t.getBound()); } case ASTNode.UNION_TYPE: { // TODO: that will probably not work with any name matching... UnionType t = cast(type); return "UnionType" + t.types().toString(); //$NON-NLS-1$ } case ASTNode.ARRAY_TYPE: { ArrayType t = cast(type); return toSimpleName(t.getElementType()) + repeat("[]", t.getDimensions()); //$NON-NLS-1$ } default: throw throwUnreachable("No support for type '%s'", type); //$NON-NLS-1$ } return name.getIdentifier(); }
From source file:org.eclipse.recommenders.utils.rcp.ast.ASTNodeUtils.java
License:Open Source License
/** * Returns the simple name of a given class type, for primitive types their source names "int", "long" etc., for * arrays it returns the element type of the array, for wildcards their bound type, and for union types something * not meaningful.//from w w w. j a va 2 s.co m */ private static String toSimpleName(Type type) { SimpleName name; switch (type.getNodeType()) { case ASTNode.SIMPLE_TYPE: { SimpleType t = cast(type); name = stripQualifier(t.getName()); break; } case ASTNode.QUALIFIED_TYPE: { QualifiedType t = cast(type); name = stripQualifier(t.getName()); break; } case ASTNode.PARAMETERIZED_TYPE: { ParameterizedType t = cast(type); return toSimpleName(t.getType()); } case ASTNode.PRIMITIVE_TYPE: { PrimitiveType t = cast(type); return t.getPrimitiveTypeCode().toString(); } case ASTNode.WILDCARD_TYPE: { WildcardType t = cast(type); return toSimpleName(t.getBound()); } case ASTNode.UNION_TYPE: { // TODO: that will probably not work with any name matching... UnionType t = cast(type); return "UnionType" + t.types().toString(); } case ASTNode.ARRAY_TYPE: { ArrayType t = cast(type); return toSimpleName(t.getElementType()) + repeat("[]", t.getDimensions()); } default: throw throwUnreachable("no support for type '%s'", type); } return name.getIdentifier(); }