List of usage examples for org.eclipse.jdt.core.dom FieldAccess resolveConstantExpressionValue
public final Object resolveConstantExpressionValue()
From source file:net.sf.j2s.core.astvisitors.DependencyASTVisitor.java
License:Open Source License
public boolean visit(FieldAccess node) { Object constValue = node.resolveConstantExpressionValue(); IVariableBinding resolveFieldBinding = node.resolveFieldBinding(); Expression exp = node.getExpression(); if (resolveFieldBinding != null && constValue == null && Modifier.isStatic(resolveFieldBinding.getModifiers())) { Expression expression = exp; if (expression instanceof Name) { Name name = (Name) expression; ITypeBinding resolveTypeBinding = name.resolveTypeBinding(); ITypeBinding declaringClass = resolveTypeBinding.getDeclaringClass(); QNTypeBinding qn = new QNTypeBinding(); String qualifiedName = null; if (declaringClass != null) { ITypeBinding dclClass = null; while ((dclClass = declaringClass.getDeclaringClass()) != null) { declaringClass = dclClass; }/*from w w w . j a v a2s. c o m*/ qualifiedName = declaringClass.getQualifiedName(); qn.binding = declaringClass; } else { qualifiedName = resolveTypeBinding.getQualifiedName(); qn.binding = resolveTypeBinding; } qualifiedName = discardGenericType(qualifiedName); qn.qualifiedName = qualifiedName; if (isQualifiedNameOK(qualifiedName, node) && !musts.contains(qn) && !requires.contains(qn)) { optionals.add(qn); } } } else if (constValue != null && (constValue instanceof Number || constValue instanceof Character || constValue instanceof Boolean)) { if ((exp instanceof QualifiedName) || (exp instanceof QualifiedName && isSimpleQualified((QualifiedName) exp))) { return false; } } return super.visit(node); }