Java 类org.eclipse.jdt.core.dom.IVariableBinding 实例源码

项目:code    文件:HeuristicOwnedVisitor.java   
@Override
public boolean visit(FieldDeclaration node) {

    int modifiers = node.getModifiers();
    if (Modifier.isPrivate(modifiers) || Modifier.isProtected(modifiers)) {
        List<VariableDeclarationFragment> fragments = node.fragments();
        for (VariableDeclarationFragment varDeclFrag : fragments) {
            IVariableBinding varBinding = varDeclFrag.resolveBinding();
            String enclosingClass = varBinding.getDeclaringClass().getQualifiedName();
            if(!varBinding.getType().isPrimitive() && !varBinding.getType().getQualifiedName().equals("java.lang.String")){
                final TACVariable fieldVar = new TACVariable(varBinding);
                if(!enclosingClass.equals(Config.MAINCLASS)){
                    context.addEncapsulatedVariable(fieldVar);
                }
            }
        }
    }
    return super.visit(node);
}
项目:code    文件:DeclarationVisitor.java   
@Override
public boolean visit(VariableDeclarationFragment node) {

    if (isDeclarationTarget(DeclarationType.FIELD_DECLARATION)) {
        IVariableBinding variableBinding = node.resolveBinding();

        if (variableBinding != null) {
            if (variableBinding.isField()) {
                variableFound = variableBinding.getName();
                if (matchTypeDeclaration()
                        && TraceUtility
                                .match(variableToFind, variableFound)) {
                    TraceUtility.selectInEditor(node);
                    setEnclosingDeclaration(node);
                }

            }
        }
    }

    return super.visit(node);
}
项目:eclipse.jdt.ls    文件:BindingLabelProvider.java   
private static void getLocalVariableLabel(IVariableBinding binding, long flags, StringBuffer buffer) {
    if (((flags & JavaElementLabels.F_PRE_TYPE_SIGNATURE) != 0)) {
        getTypeLabel(binding.getType(), (flags & JavaElementLabels.T_TYPE_PARAMETERS), buffer);
        buffer.append(' ');
    }
    if (((flags & JavaElementLabels.F_FULLY_QUALIFIED) != 0)) {
        IMethodBinding declaringMethod= binding.getDeclaringMethod();
        if (declaringMethod != null) {
            getMethodLabel(declaringMethod, flags, buffer);
            buffer.append('.');
        }
    }
    buffer.append(binding.getName());
    if (((flags & JavaElementLabels.F_APP_TYPE_SIGNATURE) != 0)) {
        buffer.append(JavaElementLabels.DECL_STRING);
        getTypeLabel(binding.getType(), (flags & JavaElementLabels.T_TYPE_PARAMETERS), buffer);
    }
}
项目:eclipse.jdt.ls    文件:BindingLabelProvider.java   
/**
 * Returns the label for a Java element with the flags as defined by {@link JavaElementLabels}.
 * @param binding The binding to render.
 * @param flags The text flags as defined in {@link JavaElementLabels}
 * @return the label of the binding
 */
public static String getBindingLabel(IBinding binding, long flags) {
    StringBuffer buffer= new StringBuffer(60);
    if (binding instanceof ITypeBinding) {
        getTypeLabel(((ITypeBinding) binding), flags, buffer);
    } else if (binding instanceof IMethodBinding) {
        getMethodLabel(((IMethodBinding) binding), flags, buffer);
    } else if (binding instanceof IVariableBinding) {
        final IVariableBinding variable= (IVariableBinding) binding;
        if (variable.isField()) {
            getFieldLabel(variable, flags, buffer);
        } else {
            getLocalVariableLabel(variable, flags, buffer);
        }
    }
    return Strings.markLTR(buffer.toString());
}
项目:eclipse.jdt.ls    文件:Bindings.java   
public static String getImportName(IBinding binding) {
    ITypeBinding declaring= null;
    switch (binding.getKind()) {
    case IBinding.TYPE:
        return getRawQualifiedName((ITypeBinding) binding);
    case IBinding.PACKAGE:
        return binding.getName() + ".*"; //$NON-NLS-1$
    case IBinding.METHOD:
        declaring= ((IMethodBinding) binding).getDeclaringClass();
        break;
    case IBinding.VARIABLE:
        declaring= ((IVariableBinding) binding).getDeclaringClass();
        if (declaring == null) {
            return binding.getName(); // array.length
        }

        break;
    default:
        return binding.getName();
    }
    return JavaModelUtil.concatenateName(getRawQualifiedName(declaring), binding.getName());
}
项目:eclipse.jdt.ls    文件:Bindings.java   
/**
 * Finds the field specified by <code>fieldName</code> in
 * the type hierarchy denoted by the given type. Returns <code>null</code> if no such field
 * exists. If the field is defined in more than one super type only the first match is
 * returned. First the super class is examined and then the implemented interfaces.
 * @param type The type to search the field in
 * @param fieldName The name of the field to find
 * @return the variable binding representing the field
 */
public static IVariableBinding findFieldInHierarchy(ITypeBinding type, String fieldName) {
    IVariableBinding field= findFieldInType(type, fieldName);
    if (field != null) {
        return field;
    }
    ITypeBinding superClass= type.getSuperclass();
    if (superClass != null) {
        field= findFieldInHierarchy(superClass, fieldName);
        if (field != null) {
            return field;
        }
    }
    ITypeBinding[] interfaces= type.getInterfaces();
    for (int i= 0; i < interfaces.length; i++) {
        field= findFieldInHierarchy(interfaces[i], fieldName);
        if (field != null) {
            return field;
        }
    }
    return null;
}
项目:eclipse.jdt.ls    文件:Bindings.java   
/**
 * Returns the binding of the variable written in an Assignment.
 * @param assignment The assignment
 * @return The binding or <code>null</code> if no bindings are available.
 */
public static IVariableBinding getAssignedVariable(Assignment assignment) {
    Expression leftHand = assignment.getLeftHandSide();
    switch (leftHand.getNodeType()) {
    case ASTNode.SIMPLE_NAME:
        return (IVariableBinding) ((SimpleName) leftHand).resolveBinding();
    case ASTNode.QUALIFIED_NAME:
        return (IVariableBinding) ((QualifiedName) leftHand).getName().resolveBinding();
    case ASTNode.FIELD_ACCESS:
        return ((FieldAccess) leftHand).resolveFieldBinding();
    case ASTNode.SUPER_FIELD_ACCESS:
        return ((SuperFieldAccess) leftHand).resolveFieldBinding();
    default:
        return null;
    }
}
项目:code    文件:Utils.java   
/**
 * for an assignment x = y returns the variable binding of x
 * 
 * @param varBinding
 * @param assignment
 * @return
 */
private static IVariableBinding getLeftHandSideVarBinding(Assignment assignment) {
    Expression leftHnsd = assignment.getLeftHandSide();
    if (leftHnsd instanceof SimpleName) {
        IBinding bind = ((SimpleName) leftHnsd).resolveBinding();
        if (bind instanceof IVariableBinding) {
            return ((IVariableBinding) bind).getVariableDeclaration();
        }
    }
    if (leftHnsd instanceof FieldAccess) {
        FieldAccess fa = (FieldAccess) leftHnsd;
        return fa.resolveFieldBinding();
    }
    // Leave it null - cannot determine actual domains for arrays
    // workaround for bugs related to objects created in complex expression
    // if (leftHnsd instanceof ArrayAccess) {
    // ArrayAccess aa = (ArrayAccess) leftHnsd;
    // return getArrayAccessVarBinding(aa);
    // }
    return null;
}
项目:eclipse.jdt.ls    文件:ASTNodes.java   
public static IBinding getEnclosingDeclaration(ASTNode node) {
    while(node != null) {
        if (node instanceof AbstractTypeDeclaration) {
            return ((AbstractTypeDeclaration)node).resolveBinding();
        } else if (node instanceof AnonymousClassDeclaration) {
            return ((AnonymousClassDeclaration)node).resolveBinding();
        } else if (node instanceof MethodDeclaration) {
            return ((MethodDeclaration)node).resolveBinding();
        } else if (node instanceof FieldDeclaration) {
            List<?> fragments= ((FieldDeclaration)node).fragments();
            if (fragments.size() > 0) {
                return ((VariableDeclarationFragment)fragments.get(0)).resolveBinding();
            }
        } else if (node instanceof VariableDeclarationFragment) {
            IVariableBinding variableBinding= ((VariableDeclarationFragment)node).resolveBinding();
            if (variableBinding.getDeclaringMethod() != null || variableBinding.getDeclaringClass() != null)
            {
                return variableBinding;
                // workaround for incomplete wiring of DOM bindings: keep searching when variableBinding is unparented
            }
        }
        node= node.getParent();
    }
    return null;
}
项目:code    文件:Utils.java   
/**
 * @param anInfo
 * @param varBinding
 * @return
 */
public static AnnotationInfo getAnnotationAliasXML(IVariableBinding varBinding) {
    AnnotationInfo anInfo = null;
    VariableAnnotationInfo methParamDecl = null;
    // distinguish between arguments and fields (a field has no declaring
    // method)
    if (varBinding.getDeclaringMethod() != null)
        methParamDecl = VariableAnnotationInfo.getBinding(varBinding.getDeclaringMethod().getKey()
                + varBinding.getType().getKey());
    else
        methParamDecl = VariableAnnotationInfo.getBinding(varBinding.getType().getKey());
    if (methParamDecl != null) {
        anInfo = methParamDecl.getAnnotationInfo();
    }
    return anInfo;
}
项目:eclipse.jdt.ls    文件:FlowAnalyzer.java   
@Override
public void endVisit(SimpleName node) {
    if (skipNode(node) || node.isDeclaration()) {
        return;
    }
    IBinding binding = node.resolveBinding();
    if (binding instanceof IVariableBinding) {
        IVariableBinding variable = (IVariableBinding) binding;
        if (!variable.isField()) {
            setFlowInfo(node, new LocalFlowInfo(variable, FlowInfo.READ, fFlowContext));
        }
    } else if (binding instanceof ITypeBinding) {
        ITypeBinding type = (ITypeBinding) binding;
        if (type.isTypeVariable()) {
            setFlowInfo(node, new TypeVariableFlowInfo(type, fFlowContext));
        }
    }
}
项目:code    文件:NodesOOGTransferFunctions.java   
protected List<DomainP> getArgActualDomains(Variable arg, InvocationInstruction instr,
        Map<Variable, List<DomainP>> Gamma, QualifiedClassName C) {
    if (Gamma.containsKey(arg))
        return Gamma.get(arg);
    if (Utils.isThis(arg)) {
        QualifiedClassName argType = new QualifiedClassName(arg.resolveType(), C);
        List<DomainP> thisFormalDomains = getDomainParamsDecls(argType);
        Gamma.put(arg, thisFormalDomains);
        return thisFormalDomains;
    }
    IVariableBinding varBinding = Utils.getArgVarBinding(arg, instr);

    if (varBinding != null) {           
        return addToGamma(Gamma, varBinding, C);
    }
    return null;
}
项目:Sparrow    文件:OutCodeVisitor.java   
@Override
public boolean visit(SimpleName node) {
    if (currentMethod == null)
        return false;
    IBinding binding = node.resolveBinding();
    if (binding == null)
        return false;
    if (node.isDeclaration())
        return true;
    if (node.resolveBinding() instanceof IVariableBinding) {
        IVariableBinding iVariableBinding = (IVariableBinding) node.resolveBinding();
        if (iVariableBinding.isField()) {
            IVariableBinding variableDeclarationBinding = iVariableBinding.getVariableDeclaration();
            if (variableDeclarationBinding.getDeclaringClass() != null) {
                IJavaElement accessedField = variableDeclarationBinding.getJavaElement();
                if (accessedField instanceof IField) {
                    if (!((IField) accessedField).isReadOnly())
                        methodDetails.addAccess((IField) accessedField);
                }
            }
        }
    }
    return true;
}
项目:code    文件:PushIntoOwnedTransferFunctions.java   
private String finalErrorMessage(IVariableBinding variableBinding) {
    String variableKind = "";
    String encClass = "";
    if(variableBinding.isField()){
        variableKind = " field ";
        encClass = variableBinding.getDeclaringClass().getQualifiedName();
    }
    else if(variableBinding.isParameter()){
        variableKind = " method parameter ";
        encClass = variableBinding.getDeclaringMethod().getDeclaringClass().getQualifiedName();
    }
    else {
        variableKind = " local variable ";
        encClass = variableBinding.getDeclaringMethod().getDeclaringClass().getQualifiedName();
    }
    StringBuilder errorMsg = new StringBuilder();
    errorMsg.append("The ");
    errorMsg.append(variableKind);
    errorMsg.append(variableBinding.getName());
    errorMsg.append(" in the class ");
    errorMsg.append(encClass);
    errorMsg.append(" is not final");

    return errorMsg.toString();
}
项目:code    文件:FieldDeclaration.java   
public static FieldDeclaration createFrom(IVariableBinding fieldDecl) {
    FieldDeclaration retNode = null;
    Adapter factory = Adapter.getInstance();

    AstNode astNode = factory.get(fieldDecl);
    if ( astNode instanceof FieldDeclaration ) {
        retNode = (FieldDeclaration)astNode;
    }
    else {
        retNode = FieldDeclaration.create();
        retNode.enclosingType = TraceabilityFactory.getTypeDeclaration(fieldDecl.getDeclaringClass().getQualifiedName());
        retNode.enclosingDeclaration = retNode.enclosingType;
        retNode.fieldName = fieldDecl.getName();
        retNode.fieldType =  TraceabilityFactory.getType(fieldDecl.getType());
        factory.map(fieldDecl, retNode);
        factory.mapFieldDeclaration(retNode);
    }
    return retNode;
}
项目:eclipse.jdt.ls    文件:TypeChangeCorrectionProposal.java   
private void sortTypes(ITypeBinding[] typeProposals) {
    ITypeBinding oldType;
    if (fBinding instanceof IMethodBinding) {
        oldType= ((IMethodBinding) fBinding).getReturnType();
    } else {
        oldType= ((IVariableBinding) fBinding).getType();
    }
    if (! oldType.isParameterizedType()) {
        return;
    }

    final ITypeBinding oldTypeDeclaration= oldType.getTypeDeclaration();
    Arrays.sort(typeProposals, new Comparator<ITypeBinding>() {
        @Override
        public int compare(ITypeBinding o1, ITypeBinding o2) {
            return rank(o2) - rank(o1);
        }

        private int rank(ITypeBinding type) {
            if (type.getTypeDeclaration().equals(oldTypeDeclaration)) {
                return 1;
            }
            return 0;
        }
    });
}
项目:eclipse.jdt.ls    文件:AddArgumentCorrectionProposal.java   
private Expression evaluateArgumentExpressions(AST ast, ITypeBinding requiredType, String key) {
    CompilationUnit root= (CompilationUnit) fCallerNode.getRoot();

    int offset= fCallerNode.getStartPosition();
    Expression best= null;
    ITypeBinding bestType= null;

    ScopeAnalyzer analyzer= new ScopeAnalyzer(root);
    IBinding[] bindings= analyzer.getDeclarationsInScope(offset, ScopeAnalyzer.VARIABLES);
    for (int i= 0; i < bindings.length; i++) {
        IVariableBinding curr= (IVariableBinding) bindings[i];
        ITypeBinding type= curr.getType();
        if (type != null && canAssign(type, requiredType) && testModifier(curr)) {
            if (best == null || isMoreSpecific(bestType, type)) {
                best= ast.newSimpleName(curr.getName());
                bestType= type;
            }
        }
    }
    Expression defaultExpression= ASTNodeFactory.newDefaultExpression(ast, requiredType);
    if (best == null) {
        best= defaultExpression;
    }
    return best;
}
项目:eclipse.jdt.ls    文件:GetterSetterCorrectionSubProcessor.java   
private static boolean addGetterSetterProposal(IInvocationContext context, ASTNode coveringNode, Collection<CUCorrectionProposal> proposals) {
    if (!(coveringNode instanceof SimpleName)) {
        return false;
    }
    SimpleName sn = (SimpleName) coveringNode;

    IBinding binding = sn.resolveBinding();
    if (!(binding instanceof IVariableBinding)) {
        return false;
    }
    IVariableBinding variableBinding = (IVariableBinding) binding;
    if (!variableBinding.isField()) {
        return false;
    }

    if (proposals == null) {
        return true;
    }

    CUCorrectionProposal proposal = getProposal(context.getCompilationUnit(), sn, variableBinding);
    if (proposal != null) {
        proposals.add(proposal);
    }
    return true;
}
项目:eclipse.jdt.ls    文件:UnresolvedElementsSubProcessor.java   
private static String getExpressionBaseName(Expression expr) {
    IBinding argBinding= Bindings.resolveExpressionBinding(expr, true);
    if (argBinding instanceof IVariableBinding) {
        IJavaProject project= null;
        ASTNode root= expr.getRoot();
        if (root instanceof CompilationUnit) {
            ITypeRoot typeRoot= ((CompilationUnit) root).getTypeRoot();
            if (typeRoot != null) {
                project= typeRoot.getJavaProject();
            }
        }
        return StubUtility.getBaseName((IVariableBinding)argBinding, project);
    }
    if (expr instanceof SimpleName) {
        return ((SimpleName) expr).getIdentifier();
    }
    return null;
}
项目:code    文件:WorkspaceUtilities.java   
@Override
   public boolean visit(VariableDeclarationFragment node) {
    IVariableBinding variableBinding = node.resolveBinding();
    addNewBinding(variableBinding, node);
    addNewTypeBinding(variableBinding.getType());
    return true;
}
项目:code    文件:NodesOOGTransferFunctions.java   
/**
 * for a store instruction x = y, returns the domain of y
 * 
 * @param instr
 * @param value
 * @return
 */
protected List<DomainP> getSourceActualDomains(StoreInstruction instr, Map<Variable, List<DomainP>> Gamma,
        QualifiedClassName C) {
    Variable sourceOperand = instr.getSourceOperand();
    if (Gamma.containsKey(sourceOperand))
        return Gamma.get(sourceOperand);
    if (Utils.isThis(sourceOperand)) {
        QualifiedClassName sourceType = new QualifiedClassName(sourceOperand.resolveType(), C);
        List<DomainP> thisFormalDomains = getDomainParamsDecls(sourceType);
        Gamma.put(sourceOperand, thisFormalDomains);
        return thisFormalDomains;
    }
    IVariableBinding varBinding = Utils.getSourceVarBinding(instr);

    if (varBinding != null) {
        return addToGamma(Gamma, varBinding, C);
    }
    return null;
}
项目:code    文件:WorkspaceUtilities.java   
@Override
   public boolean visit(VariableDeclarationFragment node) {
    IVariableBinding variableBinding = node.resolveBinding();
    addNewBinding(variableBinding, node);
    addNewTypeBinding(variableBinding.getType());
    return true;
}
项目:code    文件:PushIntoOwnedTransferFunctions.java   
private void extractParametersFromSource(List<Variable> parametersVarList,
        IMethod javaElement) {
    Option<MethodDeclaration> mDecl = WorkspaceUtilities.getMethodDeclFromModel(javaElement);
    MethodDeclaration mmDecl = mDecl.unwrap();

    List<SingleVariableDeclaration> parameters = mmDecl.parameters();
    for (SingleVariableDeclaration param : parameters) {
        IVariableBinding paramBinding = param.resolveBinding();
        if(!paramBinding.getType().isPrimitive()){
            Variable paramVariable = this.tm.getVariableFromBindingKey(paramBinding.getKey());
            if(paramVariable!=null){
                parametersVarList.add(paramVariable);
            }
        }
    }
}
项目:BUILD_file_generator    文件:JavaSourceFileParser.java   
/**
 * Returns true iff 'methodDeclaration' represents a void static method named 'main' that takes a
 * single String[] parameter.
 */
private static boolean isMainMethod(MethodDeclaration methodDeclaration) {
  // Is it static?
  if ((methodDeclaration.getModifiers() & Modifier.STATIC) == 0) {
    return false;
  }
  // Does it return void?
  Type returnType = methodDeclaration.getReturnType2();
  if (!returnType.isPrimitiveType()) {
    return false;
  }
  if (((PrimitiveType) returnType).getPrimitiveTypeCode() != PrimitiveType.VOID) {
    return false;
  }
  // Is it called 'main'?
  if (!"main".equals(methodDeclaration.getName().getIdentifier())) {
    return false;
  }
  // Does it have a single parameter?
  if (methodDeclaration.parameters().size() != 1) {
    return false;
  }

  // Is the parameter's type String[]?
  SingleVariableDeclaration pt =
      getOnlyElement((List<SingleVariableDeclaration>) methodDeclaration.parameters());
  IVariableBinding vb = pt.resolveBinding();
  if (vb == null) {
    return false;
  }
  ITypeBinding tb = vb.getType();
  return tb != null && "java.lang.String[]".equals(tb.getQualifiedName());
}
项目:gw4e.project    文件:JDTManager.java   
/**
 * @param project
 * @param itype
 * @return
 * @throws JavaModelException
 */
private static IPath findPathInStaticField(IProject project, IType itype) throws JavaModelException {
    List<IPath> wrapper = new ArrayList<IPath>();
    ICompilationUnit cu = itype.getCompilationUnit();
    CompilationUnit ast = parse(cu);
    ast.accept(new ASTVisitor() {
        public boolean visit(VariableDeclarationFragment node) {
            SimpleName simpleName = node.getName();
            IBinding bding = simpleName.resolveBinding();
            if (bding instanceof IVariableBinding) {
                IVariableBinding binding = (IVariableBinding) bding;
                String type = binding.getType().getBinaryName(); //
                String name = simpleName.getFullyQualifiedName();
                if ("MODEL_PATH".equals(name) && "java.nio.file.Path".equals(type)) {
                    Expression expression = node.getInitializer();
                    if (expression instanceof MethodInvocation) {
                        MethodInvocation mi = (MethodInvocation) expression;
                        if ("get".equals(mi.resolveMethodBinding().getName())
                                && "java.nio.file.Path".equals(mi.resolveTypeBinding().getBinaryName())) {
                            StringLiteral sl = (StringLiteral) mi.arguments().get(0);
                            String argument = sl.getLiteralValue();
                            try {
                                IPath p = ResourceManager.find(project, argument);
                                wrapper.add(p);
                            } catch (CoreException e) {
                                ResourceManager.logException(e);
                            }
                        }
                    }
                }
            }
            return true;
        }
    });
    if (wrapper.size() > 0)
        return wrapper.get(0);
    return null;
}
项目:iTrace-Archive    文件:AstManager.java   
/**
 * Extracts the fully qualified name from a variable binding and applies
 * them to the name in a SourceCodeEntity.
 * @param binding The variable binding.
 * @param sce SourceCodeEntity to which to apply changes. Name must be set
 *            to the entity's unqualified name.
 */
private static void extractDataFromVariableBinding(
        IVariableBinding binding, SourceCodeEntity sce) {
    if (binding != null) {
        //Type member variable.
        ITypeBinding type = binding.getDeclaringClass();
        if (type != null)
            sce.name = type.getQualifiedName() + "." + sce.name;
        //Variable declared in method.
        else {
            IMethodBinding method = binding.getDeclaringMethod();
            if (method != null) {
                type = method.getDeclaringClass();
                if (type != null) {
                    sce.name = type.getQualifiedName() + "."
                             + method.getName() + "." + sce.name;
                } else
                    sce.name = "?." + method.getName() + "." + sce.name;
            } else
                sce.name = "?." + sce.name;
        }
    } else {
        //If binding fails, mark the qualification as "?" to show it could
        //not be determined.
        sce.name = "?." + sce.name;
    }
}
项目:RefDiff    文件:DependenciesAstVisitor.java   
@Override
public final boolean visit(FieldAccess node) {
    IVariableBinding fieldBinding = node.resolveFieldBinding();
    if (fieldBinding != null) {
        handleTypeBinding(node, fieldBinding.getDeclaringClass(), false);
        handleFieldBinding(node, fieldBinding);
    }
    return true;
}
项目:RefDiff    文件:DependenciesAstVisitor.java   
@Override
public boolean visit(SuperFieldAccess node) {
    IVariableBinding fieldBinding = node.resolveFieldBinding();
    if (fieldBinding != null) {
        handleTypeBinding(node, fieldBinding.getDeclaringClass(), false);
           handleFieldBinding(node, fieldBinding);
    }
       return true;
}
项目:RefDiff    文件:DependenciesAstVisitor.java   
private boolean visitNameNode(Name node) {
    IBinding binding = node.resolveBinding();
    if (binding instanceof IVariableBinding) {
        IVariableBinding variableBindig = (IVariableBinding) binding;
        if (variableBindig.isField()) {
            ITypeBinding declaringClass = variableBindig.getDeclaringClass();
            handleTypeBinding(node, declaringClass, false);
            handleFieldBinding(node, variableBindig);
        } else if (!variableBindig.isEnumConstant()) {
            handleVariableBinding(node, variableBindig);
        }
    }
    return true;
}
项目:RefDiff    文件:DependenciesAstVisitor.java   
private void handleVariableBinding(ASTNode node, IVariableBinding variableBindig) {
    if (variableBindig == null) {
        StructuralPropertyDescriptor locationInParent = node.getLocationInParent();
        //System.out.println(locationInParent.getId() + " has no variable binding");
    } else {
        this.onVariableAccess(node, variableBindig);
    }
}
项目:RefDiff    文件:DependenciesAstVisitor.java   
private void handleFieldBinding(ASTNode node, IVariableBinding variableBindig) {
    if (variableBindig == null) {
        StructuralPropertyDescriptor locationInParent = node.getLocationInParent();
        //System.out.println(locationInParent.getId() + " has no field binding");
    } else {
        ITypeBinding declaringClass = variableBindig.getDeclaringClass();
        if (declaringClass != null && !this.ignoreType(declaringClass)) {
            this.onFieldAccess(node, variableBindig);
        }
    }
}
项目:RefDiff    文件:AstUtils.java   
public static String getKeyFromFieldBinding(IVariableBinding binding) {
    StringBuilder sb = new StringBuilder();
    String className = binding.getDeclaringClass().getErasure().getQualifiedName();
    sb.append(className);
    sb.append('.');
    sb.append(binding.getName());
    return sb.toString();
}
项目:RefDiff    文件:DependenciesAstVisitor.java   
@Override
public final boolean visit(FieldAccess node) {
    IVariableBinding fieldBinding = node.resolveFieldBinding();
    if (fieldBinding != null) {
        handleTypeBinding(node, fieldBinding.getDeclaringClass(), false);
        handleFieldBinding(node, fieldBinding);
    }
    return true;
}
项目:RefDiff    文件:DependenciesAstVisitor.java   
@Override
public boolean visit(SuperFieldAccess node) {
    IVariableBinding fieldBinding = node.resolveFieldBinding();
    if (fieldBinding != null) {
        handleTypeBinding(node, fieldBinding.getDeclaringClass(), false);
           handleFieldBinding(node, fieldBinding);
    }
       return true;
}
项目:RefDiff    文件:DependenciesAstVisitor.java   
private boolean visitNameNode(Name node) {
    IBinding binding = node.resolveBinding();
    if (binding instanceof IVariableBinding) {
        IVariableBinding variableBindig = (IVariableBinding) binding;
        if (variableBindig.isField()) {
            ITypeBinding declaringClass = variableBindig.getDeclaringClass();
            handleTypeBinding(node, declaringClass, false);
            handleFieldBinding(node, variableBindig);
        } else if (!variableBindig.isEnumConstant()) {
            handleVariableBinding(node, variableBindig);
        }
    }
    return true;
}
项目:RefDiff    文件:DependenciesAstVisitor.java   
private void handleVariableBinding(ASTNode node, IVariableBinding variableBindig) {
    if (variableBindig == null) {
        StructuralPropertyDescriptor locationInParent = node.getLocationInParent();
        //System.out.println(locationInParent.getId() + " has no variable binding");
    } else {
        this.onVariableAccess(node, variableBindig);
    }
}
项目:RefDiff    文件:DependenciesAstVisitor.java   
private void handleFieldBinding(ASTNode node, IVariableBinding variableBindig) {
    if (variableBindig == null) {
        StructuralPropertyDescriptor locationInParent = node.getLocationInParent();
        //System.out.println(locationInParent.getId() + " has no field binding");
    } else {
        ITypeBinding declaringClass = variableBindig.getDeclaringClass();
        if (declaringClass != null && !this.ignoreType(declaringClass)) {
            this.onFieldAccess(node, variableBindig);
        }
    }
}
项目:RefDiff    文件:AstUtils.java   
public static String getKeyFromFieldBinding(IVariableBinding binding) {
    StringBuilder sb = new StringBuilder();
    String className = binding.getDeclaringClass().getErasure().getQualifiedName();
    sb.append(className);
    sb.append('#');
    sb.append(binding.getName());
    return sb.toString();
}
项目:RefDiff    文件:ASTVisitorAtomicChange.java   
private static String getQualifiedName(IVariableBinding ivb) {
    try {
        String name = ivb.getName();
        return getQualifiedName(ivb.getDeclaringClass()) + "#" + name;
    } catch (NullPointerException e) {
        return "";
    }
}
项目:RefDiff    文件:ASTVisitorAtomicChange.java   
private String makeParameterizedName(IVariableBinding ivb) {
    StringBuilder sb = new StringBuilder();
    sb.append(getQualifiedName(ivb.getType()) + "<");
    boolean comma = false;
    for (ITypeBinding itb : ivb.getType().getTypeArguments()) {
        if (comma)
            sb.append(",");
        sb.append(getQualifiedName(itb));
        comma = true;
    }
    sb.append(">");
    return sb.toString();
}