List of usage examples for org.eclipse.jdt.core IMemberValuePair K_UNKNOWN
int K_UNKNOWN
To view the source code for org.eclipse.jdt.core IMemberValuePair K_UNKNOWN.
Click Source Link
From source file:com.codenvy.ide.ext.java.server.internal.core.CompilationUnitStructureRequestor.java
License:Open Source License
protected Object getMemberValue(com.codenvy.ide.ext.java.server.internal.core.MemberValuePair memberValuePair, Expression expression) {/* w w w. j a v a2 s. c o m*/ if (expression instanceof NullLiteral) { return null; } else if (expression instanceof Literal) { ((Literal) expression).computeConstant(); return Util.getAnnotationMemberValue(memberValuePair, expression.constant); } else if (expression instanceof org.eclipse.jdt.internal.compiler.ast.Annotation) { org.eclipse.jdt.internal.compiler.ast.Annotation annotation = (org.eclipse.jdt.internal.compiler.ast.Annotation) expression; Object handle = acceptAnnotation(annotation, null, (JavaElement) this.handleStack.peek()); memberValuePair.valueKind = IMemberValuePair.K_ANNOTATION; return handle; } else if (expression instanceof ClassLiteralAccess) { ClassLiteralAccess classLiteral = (ClassLiteralAccess) expression; char[] name = CharOperation.concatWith(classLiteral.type.getTypeName(), '.'); memberValuePair.valueKind = IMemberValuePair.K_CLASS; return new String(name); } else if (expression instanceof QualifiedNameReference) { char[] qualifiedName = CharOperation.concatWith(((QualifiedNameReference) expression).tokens, '.'); memberValuePair.valueKind = IMemberValuePair.K_QUALIFIED_NAME; return new String(qualifiedName); } else if (expression instanceof SingleNameReference) { char[] simpleName = ((SingleNameReference) expression).token; if (simpleName == RecoveryScanner.FAKE_IDENTIFIER) { memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } memberValuePair.valueKind = IMemberValuePair.K_SIMPLE_NAME; return new String(simpleName); } else if (expression instanceof ArrayInitializer) { memberValuePair.valueKind = -1; // modified below by the first call to getMemberValue(...) Expression[] expressions = ((ArrayInitializer) expression).expressions; int length = expressions == null ? 0 : expressions.length; Object[] values = new Object[length]; for (int i = 0; i < length; i++) { int previousValueKind = memberValuePair.valueKind; Object value = getMemberValue(memberValuePair, expressions[i]); if (previousValueKind != -1 && memberValuePair.valueKind != previousValueKind) { // values are heterogeneous, value kind is thus unknown memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; } values[i] = value; } if (memberValuePair.valueKind == -1) memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return values; } else if (expression instanceof UnaryExpression) { // to deal with negative numerals (see bug - 248312) UnaryExpression unaryExpression = (UnaryExpression) expression; if ((unaryExpression.bits & ASTNode.OperatorMASK) >> ASTNode.OperatorSHIFT == OperatorIds.MINUS) { if (unaryExpression.expression instanceof Literal) { Literal subExpression = (Literal) unaryExpression.expression; subExpression.computeConstant(); return Util.getNegativeAnnotationMemberValue(memberValuePair, subExpression.constant); } } memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } else { memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } }
From source file:com.codenvy.ide.ext.java.server.internal.core.LocalVariable.java
License:Open Source License
private Object getAnnotationMemberValue(MemberValuePair memberValuePair, Expression expression, JavaElement parentElement) {//w w w . j av a2 s. c om if (expression instanceof NullLiteral) { return null; } else if (expression instanceof Literal) { ((Literal) expression).computeConstant(); return Util.getAnnotationMemberValue(memberValuePair, expression.constant); } else if (expression instanceof org.eclipse.jdt.internal.compiler.ast.Annotation) { memberValuePair.valueKind = IMemberValuePair.K_ANNOTATION; return getAnnotation((org.eclipse.jdt.internal.compiler.ast.Annotation) expression, parentElement); } else if (expression instanceof ClassLiteralAccess) { ClassLiteralAccess classLiteral = (ClassLiteralAccess) expression; char[] typeName = CharOperation.concatWith(classLiteral.type.getTypeName(), '.'); memberValuePair.valueKind = IMemberValuePair.K_CLASS; return new String(typeName); } else if (expression instanceof QualifiedNameReference) { char[] qualifiedName = CharOperation.concatWith(((QualifiedNameReference) expression).tokens, '.'); memberValuePair.valueKind = IMemberValuePair.K_QUALIFIED_NAME; return new String(qualifiedName); } else if (expression instanceof SingleNameReference) { char[] simpleName = ((SingleNameReference) expression).token; if (simpleName == RecoveryScanner.FAKE_IDENTIFIER) { memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } memberValuePair.valueKind = IMemberValuePair.K_SIMPLE_NAME; return new String(simpleName); } else if (expression instanceof ArrayInitializer) { memberValuePair.valueKind = -1; // modified below by the first call to getMemberValue(...) Expression[] expressions = ((ArrayInitializer) expression).expressions; int length = expressions == null ? 0 : expressions.length; Object[] values = new Object[length]; for (int i = 0; i < length; i++) { int previousValueKind = memberValuePair.valueKind; Object value = getAnnotationMemberValue(memberValuePair, expressions[i], parentElement); if (previousValueKind != -1 && memberValuePair.valueKind != previousValueKind) { // values are heterogeneous, value kind is thus unknown memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; } values[i] = value; } if (memberValuePair.valueKind == -1) memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return values; } else if (expression instanceof UnaryExpression) { //to deal with negative numerals (see bug - 248312) UnaryExpression unaryExpression = (UnaryExpression) expression; if ((unaryExpression.bits & ASTNode.OperatorMASK) >> ASTNode.OperatorSHIFT == OperatorIds.MINUS) { if (unaryExpression.expression instanceof Literal) { Literal subExpression = (Literal) unaryExpression.expression; subExpression.computeConstant(); return Util.getNegativeAnnotationMemberValue(memberValuePair, subExpression.constant); } } memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } else { memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } }
From source file:com.codenvy.ide.ext.java.server.internal.core.util.Util.java
License:Open Source License
public static Object getAnnotationMemberValue(JavaElement parent, JavaModelManager manager, MemberValuePair memberValuePair, Object binaryValue) { if (binaryValue instanceof Constant) { return getAnnotationMemberValue(memberValuePair, (Constant) binaryValue); } else if (binaryValue instanceof IBinaryAnnotation) { memberValuePair.valueKind = IMemberValuePair.K_ANNOTATION; return getAnnotation(parent, manager, (IBinaryAnnotation) binaryValue, memberValuePair.getMemberName()); } else if (binaryValue instanceof ClassSignature) { memberValuePair.valueKind = IMemberValuePair.K_CLASS; char[] className = Signature.toCharArray( CharOperation.replaceOnCopy(((ClassSignature) binaryValue).getTypeName(), '/', '.')); return new String(className); } else if (binaryValue instanceof EnumConstantSignature) { memberValuePair.valueKind = IMemberValuePair.K_QUALIFIED_NAME; EnumConstantSignature enumConstant = (EnumConstantSignature) binaryValue; char[] enumName = Signature .toCharArray(CharOperation.replaceOnCopy(enumConstant.getTypeName(), '/', '.')); char[] qualifiedName = CharOperation.concat(enumName, enumConstant.getEnumConstantName(), '.'); return new String(qualifiedName); } else if (binaryValue instanceof Object[]) { memberValuePair.valueKind = -1; // modified below by the first call to getMemberValue(...) Object[] binaryValues = (Object[]) binaryValue; int length = binaryValues.length; Object[] values = new Object[length]; for (int i = 0; i < length; i++) { int previousValueKind = memberValuePair.valueKind; Object value = getAnnotationMemberValue(parent, manager, memberValuePair, binaryValues[i]); if (previousValueKind != -1 && memberValuePair.valueKind != previousValueKind) { // values are heterogeneous, value kind is thus unknown memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; }//from ww w.ja v a 2s .co m if (value instanceof Annotation) { Annotation annotation = (Annotation) value; for (int j = 0; j < i; j++) { if (annotation.equals(values[j])) { annotation.occurrenceCount++; } } } values[i] = value; } if (memberValuePair.valueKind == -1) memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return values; } else { memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } }
From source file:com.codenvy.ide.ext.java.server.internal.core.util.Util.java
License:Open Source License
public static Object getAnnotationMemberValue(MemberValuePair memberValuePair, Constant constant) { if (constant == null) { memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; }/*from w w w .j a va 2 s. c o m*/ switch (constant.typeID()) { case TypeIds.T_int: memberValuePair.valueKind = IMemberValuePair.K_INT; return new Integer(constant.intValue()); case TypeIds.T_byte: memberValuePair.valueKind = IMemberValuePair.K_BYTE; return new Byte(constant.byteValue()); case TypeIds.T_short: memberValuePair.valueKind = IMemberValuePair.K_SHORT; return new Short(constant.shortValue()); case TypeIds.T_char: memberValuePair.valueKind = IMemberValuePair.K_CHAR; return new Character(constant.charValue()); case TypeIds.T_float: memberValuePair.valueKind = IMemberValuePair.K_FLOAT; return new Float(constant.floatValue()); case TypeIds.T_double: memberValuePair.valueKind = IMemberValuePair.K_DOUBLE; return new Double(constant.doubleValue()); case TypeIds.T_boolean: memberValuePair.valueKind = IMemberValuePair.K_BOOLEAN; return Boolean.valueOf(constant.booleanValue()); case TypeIds.T_long: memberValuePair.valueKind = IMemberValuePair.K_LONG; return new Long(constant.longValue()); case TypeIds.T_JavaLangString: memberValuePair.valueKind = IMemberValuePair.K_STRING; return constant.stringValue(); default: memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } }
From source file:com.codenvy.ide.ext.java.server.internal.core.util.Util.java
License:Open Source License
public static Object getNegativeAnnotationMemberValue(MemberValuePair memberValuePair, Constant constant) { if (constant == null) { memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; }/* w w w .j a v a2 s . c om*/ switch (constant.typeID()) { case TypeIds.T_int: memberValuePair.valueKind = IMemberValuePair.K_INT; return new Integer(constant.intValue() * -1); case TypeIds.T_float: memberValuePair.valueKind = IMemberValuePair.K_FLOAT; return new Float(constant.floatValue() * -1.0f); case TypeIds.T_double: memberValuePair.valueKind = IMemberValuePair.K_DOUBLE; return new Double(constant.doubleValue() * -1.0); case TypeIds.T_long: memberValuePair.valueKind = IMemberValuePair.K_LONG; return new Long(constant.longValue() * -1L); default: memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } }
From source file:org.eclipse.che.jdt.internal.core.CompilationUnitStructureRequestor.java
License:Open Source License
protected Object getMemberValue(org.eclipse.che.jdt.internal.core.MemberValuePair memberValuePair, Expression expression) {/*from w ww .java2 s . com*/ if (expression instanceof NullLiteral) { return null; } else if (expression instanceof Literal) { ((Literal) expression).computeConstant(); return Util.getAnnotationMemberValue(memberValuePair, expression.constant); } else if (expression instanceof org.eclipse.jdt.internal.compiler.ast.Annotation) { org.eclipse.jdt.internal.compiler.ast.Annotation annotation = (org.eclipse.jdt.internal.compiler.ast.Annotation) expression; Object handle = acceptAnnotation(annotation, null, (JavaElement) this.handleStack.peek()); memberValuePair.valueKind = IMemberValuePair.K_ANNOTATION; return handle; } else if (expression instanceof ClassLiteralAccess) { ClassLiteralAccess classLiteral = (ClassLiteralAccess) expression; char[] name = CharOperation.concatWith(classLiteral.type.getTypeName(), '.'); memberValuePair.valueKind = IMemberValuePair.K_CLASS; return new String(name); } else if (expression instanceof QualifiedNameReference) { char[] qualifiedName = CharOperation.concatWith(((QualifiedNameReference) expression).tokens, '.'); memberValuePair.valueKind = IMemberValuePair.K_QUALIFIED_NAME; return new String(qualifiedName); } else if (expression instanceof SingleNameReference) { char[] simpleName = ((SingleNameReference) expression).token; if (simpleName == RecoveryScanner.FAKE_IDENTIFIER) { memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } memberValuePair.valueKind = IMemberValuePair.K_SIMPLE_NAME; return new String(simpleName); } else if (expression instanceof ArrayInitializer) { memberValuePair.valueKind = -1; // modified below by the first call to getMemberValue(...) Expression[] expressions = ((ArrayInitializer) expression).expressions; int length = expressions == null ? 0 : expressions.length; Object[] values = new Object[length]; for (int i = 0; i < length; i++) { int previousValueKind = memberValuePair.valueKind; Object value = getMemberValue(memberValuePair, expressions[i]); if (previousValueKind != -1 && memberValuePair.valueKind != previousValueKind) { // values are heterogeneous, value kind is thus unknown memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; } values[i] = value; } if (memberValuePair.valueKind == -1) memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return values; } else if (expression instanceof UnaryExpression) { // to deal with negative numerals (see bug - 248312) UnaryExpression unaryExpression = (UnaryExpression) expression; if ((unaryExpression.bits & ASTNode.OperatorMASK) >> ASTNode.OperatorSHIFT == OperatorIds.MINUS) { if (unaryExpression.expression instanceof Literal) { Literal subExpression = (Literal) unaryExpression.expression; subExpression.computeConstant(); return Util.getNegativeAnnotationMemberValue(memberValuePair, subExpression.constant); } } memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } else { memberValuePair.valueKind = IMemberValuePair.K_UNKNOWN; return null; } }
From source file:org.eclipse.modisco.java.discoverer.internal.io.library.ClassFileParser.java
License:Open Source License
private Expression manageMemberValuePair(final IMemberValuePair defaultValue) { Expression result = null;//from ww w . j av a 2 s.c o m switch (defaultValue.getValueKind()) { case IMemberValuePair.K_CLASS: result = manageValuePairClassKind(defaultValue); break; case IMemberValuePair.K_ANNOTATION: result = manageValuePairAnnotationKind(defaultValue); break; case IMemberValuePair.K_QUALIFIED_NAME: result = manageValuePairQualifiedNameKind(defaultValue); break; case IMemberValuePair.K_BOOLEAN: if (defaultValue.getValue().getClass().isArray()) { Object[] tab = (Object[]) defaultValue.getValue(); ArrayInitializer array = getFactory().createArrayInitializer(); initializeNode(array); for (Object element : tab) { BooleanLiteral bool = getFactory().createBooleanLiteral(); bool.setValue(((Boolean) element).booleanValue()); array.getExpressions().add(bool); } result = array; } else { BooleanLiteral bool = getFactory().createBooleanLiteral(); bool.setValue(((Boolean) defaultValue.getValue()).booleanValue()); result = bool; } break; case IMemberValuePair.K_CHAR: if (defaultValue.getValue().getClass().isArray()) { Object[] tab = (Object[]) defaultValue.getValue(); ArrayInitializer array = getFactory().createArrayInitializer(); initializeNode(array); for (Object element : tab) { CharacterLiteral ch = getFactory().createCharacterLiteral(); char value = ((Character) element).charValue(); ch.setEscapedValue(ClassFileParserUtils.escapeCharacter(value)); array.getExpressions().add(ch); } result = array; } else { CharacterLiteral ch = getFactory().createCharacterLiteral(); char value = ((Character) defaultValue.getValue()).charValue(); ch.setEscapedValue(ClassFileParserUtils.escapeCharacter(value)); result = ch; } break; case IMemberValuePair.K_DOUBLE: case IMemberValuePair.K_BYTE: case IMemberValuePair.K_FLOAT: case IMemberValuePair.K_INT: case IMemberValuePair.K_LONG: if (defaultValue.getValue().getClass().isArray()) { Object[] tab = (Object[]) defaultValue.getValue(); ArrayInitializer array = getFactory().createArrayInitializer(); initializeNode(array); for (Object element : tab) { NumberLiteral number = getFactory().createNumberLiteral(); number.setTokenValue(element.toString()); array.getExpressions().add(number); } result = array; } else { NumberLiteral number = getFactory().createNumberLiteral(); number.setTokenValue(defaultValue.getValue().toString()); result = number; } break; case IMemberValuePair.K_STRING: if (defaultValue.getValue().getClass().isArray()) { Object[] tab = (Object[]) defaultValue.getValue(); ArrayInitializer array = getFactory().createArrayInitializer(); initializeNode(array); for (Object element : tab) { StringLiteral string = getFactory().createStringLiteral(); String value = String.valueOf(element); string.setEscapedValue(ClassFileParserUtils.escapeString(value)); array.getExpressions().add(string); } result = array; } else { StringLiteral string = getFactory().createStringLiteral(); String value = String.valueOf(defaultValue.getValue()); string.setEscapedValue(ClassFileParserUtils.escapeString(value)); result = string; } break; case IMemberValuePair.K_SIMPLE_NAME: // there should be no K_SIMPLE_NAME // in .class files case IMemberValuePair.K_UNKNOWN: default: if (defaultValue.getValue().getClass().isArray()) { Object[] tab = (Object[]) defaultValue.getValue(); ArrayInitializer array = getFactory().createArrayInitializer(); initializeNode(array); for (Object element : tab) { UnresolvedItemAccess unrAcc = getFactory().createUnresolvedItemAccess(); UnresolvedItem item = getFactory().createUnresolvedItem(); unrAcc.setElement(item); item.setName(String.valueOf(element)); array.getExpressions().add(unrAcc); } result = array; } else { UnresolvedItemAccess unrAcc = getFactory().createUnresolvedItemAccess(); UnresolvedItem item = getFactory().createUnresolvedItem(); unrAcc.setElement(item); item.setName(String.valueOf(defaultValue.getValue())); result = unrAcc; } break; } return result; }
From source file:org.eclipse.objectteams.otdt.tests.AbstractJavaModelTests.java
License:Open Source License
private void appendAnnotationMember(StringBuffer buffer, IMemberValuePair member) throws JavaModelException { if (member == null) { buffer.append("<null>"); return;/*from w w w .j av a 2 s. c om*/ } String name = member.getMemberName(); if (!"value".equals(name)) { buffer.append(name); buffer.append('='); } int kind = member.getValueKind(); Object value = member.getValue(); if (value instanceof Object[]) { if (kind == IMemberValuePair.K_UNKNOWN) buffer.append("[unknown]"); buffer.append('{'); Object[] array = (Object[]) value; for (int i = 0, length = array.length; i < length; i++) { appendAnnotationMemberValue(buffer, array[i], kind); if (i < length - 1) buffer.append(", "); } buffer.append('}'); } else { appendAnnotationMemberValue(buffer, value, kind); } }
From source file:org.eclipse.objectteams.otdt.tests.AbstractJavaModelTests.java
License:Open Source License
private void appendAnnotationMemberValue(StringBuffer buffer, Object value, int kind) throws JavaModelException { if (value == null) { buffer.append("<null>"); return;/* www . ja va2s . c o m*/ } switch (kind) { case IMemberValuePair.K_INT: buffer.append("(int)"); buffer.append(value); break; case IMemberValuePair.K_BYTE: buffer.append("(byte)"); buffer.append(value); break; case IMemberValuePair.K_SHORT: buffer.append("(short)"); buffer.append(value); break; case IMemberValuePair.K_CHAR: buffer.append('\''); buffer.append(value); buffer.append('\''); break; case IMemberValuePair.K_FLOAT: buffer.append(value); buffer.append('f'); break; case IMemberValuePair.K_DOUBLE: buffer.append("(double)"); buffer.append(value); break; case IMemberValuePair.K_BOOLEAN: buffer.append(value); break; case IMemberValuePair.K_LONG: buffer.append(value); buffer.append('L'); break; case IMemberValuePair.K_STRING: buffer.append('\"'); buffer.append(value); buffer.append('\"'); break; case IMemberValuePair.K_ANNOTATION: appendAnnotation(buffer, (IAnnotation) value); break; case IMemberValuePair.K_CLASS: buffer.append(value); buffer.append(".class"); break; case IMemberValuePair.K_QUALIFIED_NAME: buffer.append(value); break; case IMemberValuePair.K_SIMPLE_NAME: buffer.append(value); break; case IMemberValuePair.K_UNKNOWN: appendAnnotationMemberValue(buffer, value, getValueKind(value)); break; default: buffer.append( "<Unknown value: (" + (value == null ? "" : value.getClass().getName()) + ") " + value + ">"); break; } }
From source file:org.jboss.tools.cdi.deltaspike.core.DeltaspikeExceptionExtension.java
License:Open Source License
/** * Returns new annotation object with Produces type if definition is annotated with Unwraps * and Produces type is available in class path. Returns null otherwise. * //w ww .ja v a 2 s .c o m * @param def * @param context * @return new annotation object with Produces type or null */ IJavaAnnotation createFakeObservesAnnotation(AbstractMemberDefinition def, IRootDefinitionContext context) { IJavaAnnotation result = null; IAnnotationDeclaration a = def.getAnnotation(HANDLES_ANNOTATION_TYPE_NAME); if (a == null) a = def.getAnnotation(BEFORE_HANDLES_ANNOTATION_TYPE_NAME); if (a != null) { IType producesAnnotation = context.getProject().getType(CDIConstants.OBSERVERS_ANNOTATION_TYPE_NAME); if (producesAnnotation != null) { AnnotationLiteral literal = new AnnotationLiteral(def.getResource(), a.getStartPosition(), a.getLength(), null, IMemberValuePair.K_UNKNOWN, producesAnnotation); literal.setParentElement((IJavaElement) def.getMember()); result = literal; } } return result; }