List of usage examples for org.eclipse.jdt.core.dom SimpleName resolveConstantExpressionValue
public final Object resolveConstantExpressionValue()
From source file:net.sf.j2s.core.astvisitors.DependencyASTVisitor.java
License:Open Source License
public boolean visit(SimpleName node) { Object constValue = node.resolveConstantExpressionValue(); if (constValue != null && (constValue instanceof Number || constValue instanceof Character || constValue instanceof Boolean)) { return false; }/* ww w .j av a2 s. c om*/ ITypeBinding typeBinding = node.resolveTypeBinding(); IBinding binding = node.resolveBinding(); boolean isCasting = false; boolean isQualified = false; ASTNode nodeParent = node.getParent(); while (nodeParent != null && nodeParent instanceof QualifiedName) { isQualified = true; nodeParent = nodeParent.getParent(); } if (nodeParent != null && nodeParent instanceof SimpleType) { isCasting = true; } if (typeBinding != null && !isCasting && isQualified && !(binding instanceof IVariableBinding)) { QNTypeBinding qn = new QNTypeBinding(); String qualifiedName = null; if (!typeBinding.isPrimitive()) { if (typeBinding.isArray()) { ITypeBinding elementType = typeBinding.getElementType(); while (elementType.isArray()) { elementType = elementType.getElementType(); } if (!elementType.isPrimitive()) { ITypeBinding declaringClass = elementType.getDeclaringClass(); if (declaringClass != null) { ITypeBinding dclClass = null; while ((dclClass = declaringClass.getDeclaringClass()) != null) { declaringClass = dclClass; } qualifiedName = declaringClass.getQualifiedName(); qn.binding = declaringClass; } else { qualifiedName = elementType.getQualifiedName(); qn.binding = elementType; } } } else { ITypeBinding declaringClass = typeBinding.getDeclaringClass(); if (declaringClass != null) { ITypeBinding dclClass = null; while ((dclClass = declaringClass.getDeclaringClass()) != null) { declaringClass = dclClass; } qualifiedName = declaringClass.getQualifiedName(); qn.binding = declaringClass; } else { qualifiedName = typeBinding.getQualifiedName(); qn.binding = typeBinding; } } } if (isQualifiedNameOK(qualifiedName, node) && !musts.contains(qualifiedName) && !requires.contains(qualifiedName)) { qn.qualifiedName = qualifiedName; optionals.add(qn); } } else if (binding instanceof IVariableBinding) { IVariableBinding varBinding = (IVariableBinding) binding; if ((varBinding.getModifiers() & Modifier.STATIC) != 0) { QNTypeBinding qn = new QNTypeBinding(); String qualifiedName = null; IVariableBinding variableDeclaration = varBinding.getVariableDeclaration(); ITypeBinding declaringClass = variableDeclaration.getDeclaringClass(); ITypeBinding dclClass = null; while ((dclClass = declaringClass.getDeclaringClass()) != null) { declaringClass = dclClass; } qualifiedName = declaringClass.getQualifiedName(); if (isQualifiedNameOK(qualifiedName, node) && !musts.contains(qualifiedName) && !requires.contains(qualifiedName)) { qn.qualifiedName = qualifiedName; optionals.add(qn); } } } return super.visit(node); }
From source file:net.sf.j2s.core.astvisitors.ReferenceASTVisitor.java
License:Open Source License
public boolean visit(SimpleName node) { Object constValue = node.resolveConstantExpressionValue(); if (constValue != null && (constValue instanceof Number || constValue instanceof Boolean)) { return false; }/*from w w w . j av a 2 s .com*/ isReferenced = true; return false; }