private int nameSpaceLength(ITypeBinding type, String fullName, int pos) { while (type.isNested()) { pos = fullName.lastIndexOf(".", pos - 1); type = type.getDeclaringClass(); } return pos; }
protected boolean isNonStaticNestedType(ITypeBinding binding) { if (binding.isInterface()) return false; if (!binding.isNested()) return false; return !isStatic(binding); }
@Override public void endVisit(TypeDeclaration node) { final ITypeBinding typeBinding = node.resolveBinding(); if (typeBinding != null && !typeBinding.isNested()) { resetAllNames(); } }
private void initializeDestinations() { List result= new ArrayList(); BodyDeclaration decl= fAnalyzer.getEnclosingBodyDeclaration(); ASTNode current= getNextParent(decl); result.add(current); if (decl instanceof MethodDeclaration) { ITypeBinding binding= ASTNodes.getEnclosingType(current); ASTNode next= getNextParent(current); while (next != null && binding != null && binding.isNested() && !Modifier.isStatic(binding.getDeclaredModifiers())) { result.add(next); current= next; binding= ASTNodes.getEnclosingType(current); next= getNextParent(next); } } fDestinations= (ASTNode[])result.toArray(new ASTNode[result.size()]); fDestination= fDestinations[fDestinationIndex]; }
public void run() { final ITypeBinding binding = node.resolveBinding(); if (!binding.isNested()) { processTypeDeclaration(node); return; } if (isNonStaticNestedType(binding)) { processNonStaticNestedTypeDeclaration(node); return; } new CSharpBuilder(CSharpBuilder.this).processTypeDeclaration(node); } });
private void initializeDestinations() { List<ASTNode> result= new ArrayList<>(); BodyDeclaration decl= fAnalyzer.getEnclosingBodyDeclaration(); ASTNode current= ASTResolving.findParentType(decl.getParent()); if (fAnalyzer.isValidDestination(current)) { result.add(current); } if (current != null && (decl instanceof MethodDeclaration || decl instanceof Initializer || decl instanceof FieldDeclaration)) { ITypeBinding binding= ASTNodes.getEnclosingType(current); ASTNode next= ASTResolving.findParentType(current.getParent()); while (next != null && binding != null && binding.isNested()) { if (fAnalyzer.isValidDestination(next)) { result.add(next); } current= next; binding= ASTNodes.getEnclosingType(current); next= ASTResolving.findParentType(next.getParent()); } } fDestinations= result.toArray(new ASTNode[result.size()]); fDestination= fDestinations[fDestinationIndex]; }
private void initializeDestinations() { List<ASTNode> result = new ArrayList<>(); BodyDeclaration decl = fAnalyzer.getEnclosingBodyDeclaration(); ASTNode current = ASTResolving.findParentType(decl.getParent()); if (fAnalyzer.isValidDestination(current)) { result.add(current); } if (current != null && (decl instanceof MethodDeclaration || decl instanceof Initializer || decl instanceof FieldDeclaration)) { ITypeBinding binding = ASTNodes.getEnclosingType(current); ASTNode next = ASTResolving.findParentType(current.getParent()); while (next != null && binding != null && binding.isNested()) { if (fAnalyzer.isValidDestination(next)) { result.add(next); } current = next; binding = ASTNodes.getEnclosingType(current); next = ASTResolving.findParentType(next.getParent()); } } fDestinations = result.toArray(new ASTNode[result.size()]); fDestination = fDestinations[fDestinationIndex]; }
private String getQualifiedName(ITypeBinding typeBinding) { if (typeBinding == null) return null; String qualifiedName = typeBinding.getQualifiedName(); if (StringUtils.isEmpty(qualifiedName)) { if (typeBinding.isAnonymous()) { if (typeBinding.getSuperclass() != null) qualifiedName = getQualifiedName(typeBinding.getSuperclass()); else if (typeBinding instanceof AnonymousClassDeclaration) { qualifiedName = ((AnonymousClassDeclaration) typeBinding).toString(); } } else if (StringUtils.isEmpty(qualifiedName) && typeBinding.isNested()) qualifiedName = typeBinding.getName(); } return qualifiedName; }
public void run() { final ITypeBinding binding = node.resolveBinding(); if (!binding.isNested()) { processTypeDeclaration(node); return; } if (isNonStaticNestedType(binding)) { processNonStaticNestedTypeDeclaration(node); return; } new CSharpBuilder(CSharpBuilder.this).processTypeDeclaration(node); } });
private void initializeDestinations() { List<ASTNode> result= new ArrayList<>(); BodyDeclaration decl= fAnalyzer.getEnclosingBodyDeclaration(); ASTNode current= ASTResolving.findParentType(decl.getParent()); if (fAnalyzer.isValidDestination(current)) { result.add(current); } if (current != null && (decl instanceof MethodDeclaration || decl instanceof Initializer || decl instanceof FieldDeclaration)) { ITypeBinding binding= ASTNodes.getEnclosingType(current); ASTNode next= ASTResolving.findParentType(current.getParent()); while (next != null && binding != null && binding.isNested()) { if (fAnalyzer.isValidDestination(next)) { result.add(next); } current= next; binding= ASTNodes.getEnclosingType(current); next= ASTResolving.findParentType(next.getParent()); } } fDestinations= result.toArray(new ASTNode[result.size()]); fDestination= fDestinations[fDestinationIndex]; }
@Override public boolean visit(TypeDeclaration node) { final ITypeBinding typeBinding = node.resolveBinding(); if (typeBinding != null && !typeBinding.isNested() && node.getParent() instanceof CompilationUnit) { final CompilationUnit compilationUnit = (CompilationUnit) node.getParent(); for (final ImportDeclaration importDecl : imports(compilationUnit)) { readImport(importDecl); } importTypesFromPackage("java.lang", compilationUnit); node.accept(new NamesCollector()); } return VISIT_SUBTREE; }
} else if (binding.isNested()) { fFlags|= F_IS_NESTED; if (binding.isMember()) {
} else if (binding.isNested()) { fFlags|= F_IS_NESTED; if (binding.isMember()) {
} else if (binding.isNested()) { fFlags|= F_IS_NESTED; if (binding.isMember()) {
private static void addNewFieldProposals(ICompilationUnit cu, CompilationUnit astRoot, ITypeBinding binding, ITypeBinding declaringTypeBinding, SimpleName simpleName, boolean isWriteAccess, Collection<CUCorrectionProposal> proposals) throws JavaModelException { // new variables ICompilationUnit targetCU; ITypeBinding senderDeclBinding; if (binding != null) { senderDeclBinding= binding.getTypeDeclaration(); targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, senderDeclBinding); } else { // binding is null for accesses without qualifier senderDeclBinding= declaringTypeBinding; targetCU= cu; } if (!senderDeclBinding.isFromSource() || targetCU == null) { return; } boolean mustBeConst= ASTResolving.isInsideModifiers(simpleName); addNewFieldForType(targetCU, binding, senderDeclBinding, simpleName, isWriteAccess, mustBeConst, proposals); if (binding == null && senderDeclBinding.isNested()) { ASTNode anonymDecl= astRoot.findDeclaringNode(senderDeclBinding); if (anonymDecl != null) { ITypeBinding bind= Bindings.getBindingOfParentType(anonymDecl.getParent()); if (!bind.isAnonymous()) { addNewFieldForType(targetCU, bind, bind, simpleName, isWriteAccess, mustBeConst, proposals); } } } }
private static void addNewFieldProposals(ICompilationUnit cu, CompilationUnit astRoot, ITypeBinding binding, ITypeBinding declaringTypeBinding, SimpleName simpleName, boolean isWriteAccess, Collection<ICommandAccess> proposals) throws JavaModelException { // new variables ICompilationUnit targetCU; ITypeBinding senderDeclBinding; if (binding != null) { senderDeclBinding= binding.getTypeDeclaration(); targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, senderDeclBinding); } else { // binding is null for accesses without qualifier senderDeclBinding= declaringTypeBinding; targetCU= cu; } if (!senderDeclBinding.isFromSource() || targetCU == null) { return; } boolean mustBeConst= ASTResolving.isInsideModifiers(simpleName); addNewFieldForType(targetCU, binding, senderDeclBinding, simpleName, isWriteAccess, mustBeConst, proposals); if (binding == null && senderDeclBinding.isNested()) { ASTNode anonymDecl= astRoot.findDeclaringNode(senderDeclBinding); if (anonymDecl != null) { ITypeBinding bind= Bindings.getBindingOfParentType(anonymDecl.getParent()); if (!bind.isAnonymous()) { addNewFieldForType(targetCU, bind, bind, simpleName, isWriteAccess, mustBeConst, proposals); } } } }
private static void addNewFieldProposals(ICompilationUnit cu, CompilationUnit astRoot, ITypeBinding binding, ITypeBinding declaringTypeBinding, SimpleName simpleName, boolean isWriteAccess, Collection proposals) throws JavaModelException { // new variables ICompilationUnit targetCU; ITypeBinding senderDeclBinding; if (binding != null) { senderDeclBinding= binding.getTypeDeclaration(); targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, senderDeclBinding); } else { // binding is null for accesses without qualifier senderDeclBinding= declaringTypeBinding; targetCU= cu; } if (!senderDeclBinding.isFromSource() || targetCU == null) { return; } boolean mustBeConst= ASTResolving.isInsideModifiers(simpleName); addNewFieldForType(targetCU, binding, senderDeclBinding, simpleName, isWriteAccess, mustBeConst, proposals); if (binding == null && senderDeclBinding.isNested()) { ASTNode anonymDecl= astRoot.findDeclaringNode(senderDeclBinding); if (anonymDecl != null) { ITypeBinding bind= Bindings.getBindingOfParentType(anonymDecl.getParent()); if (!bind.isAnonymous()) { addNewFieldForType(targetCU, bind, bind, simpleName, isWriteAccess, mustBeConst, proposals); } } } }
private static void addNewFieldProposals(ICompilationUnit cu, CompilationUnit astRoot, ITypeBinding binding, ITypeBinding declaringTypeBinding, SimpleName simpleName, boolean isWriteAccess, Collection proposals) throws JavaModelException { // new variables ICompilationUnit targetCU; ITypeBinding senderDeclBinding; if (binding != null) { senderDeclBinding= binding.getTypeDeclaration(); targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, senderDeclBinding); } else { // binding is null for accesses without qualifier senderDeclBinding= declaringTypeBinding; targetCU= cu; } if (!senderDeclBinding.isFromSource() || targetCU == null) { return; } boolean mustBeConst= ASTResolving.isInsideModifiers(simpleName); addNewFieldForType(targetCU, binding, senderDeclBinding, simpleName, isWriteAccess, mustBeConst, proposals); if (binding == null && senderDeclBinding.isNested()) { ASTNode anonymDecl= astRoot.findDeclaringNode(senderDeclBinding); if (anonymDecl != null) { ITypeBinding bind= Bindings.getBindingOfParentType(anonymDecl.getParent()); if (!bind.isAnonymous()) { addNewFieldForType(targetCU, bind, bind, simpleName, isWriteAccess, mustBeConst, proposals); } } } }
private static void addNewFieldProposals(ICompilationUnit cu, CompilationUnit astRoot, ITypeBinding binding, ITypeBinding declaringTypeBinding, SimpleName simpleName, boolean isWriteAccess, Collection<ICommandAccess> proposals) throws JavaModelException { // new variables ICompilationUnit targetCU; ITypeBinding senderDeclBinding; if (binding != null) { senderDeclBinding= binding.getTypeDeclaration(); targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, senderDeclBinding); } else { // binding is null for accesses without qualifier senderDeclBinding= declaringTypeBinding; targetCU= cu; } if (!senderDeclBinding.isFromSource() || targetCU == null) { return; } boolean mustBeConst= ASTResolving.isInsideModifiers(simpleName); addNewFieldForType(targetCU, binding, senderDeclBinding, simpleName, isWriteAccess, mustBeConst, proposals); if (binding == null && senderDeclBinding.isNested()) { ASTNode anonymDecl= astRoot.findDeclaringNode(senderDeclBinding); if (anonymDecl != null) { ITypeBinding bind= Bindings.getBindingOfParentType(anonymDecl.getParent()); if (!bind.isAnonymous()) { addNewFieldForType(targetCU, bind, bind, simpleName, isWriteAccess, mustBeConst, proposals); } } } }
if (senderDeclBinding.isNested() && cu.equals(targetCU) && sender == null && Bindings.findMethodInHierarchy(senderDeclBinding, methodName, (ITypeBinding[]) null) == null) { // no covering method ASTNode anonymDecl= astRoot.findDeclaringNode(senderDeclBinding); if (anonymDecl != null) {