Example usage for org.eclipse.jdt.core IJavaElement exists

List of usage examples for org.eclipse.jdt.core IJavaElement exists

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElement exists.

Prototype

boolean exists();

Source Link

Document

Returns whether this Java element exists in the model.

Usage

From source file:org.eclipse.ajdt.core.tests.codeselect.AbstractITDAwareCodeSelectionTests.java

License:Open Source License

protected void validateCodeSelect(ICompilationUnit unit, IRegion region, String expectedSrcFile,
        String expectedSignature) throws Exception {
    IJavaElement[] result = unit.codeSelect(region.getOffset(), region.getLength());
    assertEquals("Should have found exactly one hyperlink", 1, result.length);
    IJavaElement elt = result[0];
    assertTrue("Java element " + elt.getHandleIdentifier() + " should exist", elt.exists());
    String actualSrcFile = elt.getResource().getFullPath().toString();
    assertTrue("Element found is in the wrong source file:\n" + "   expected: " + expectedSrcFile + "\n"
            + "   found:    " + actualSrcFile, actualSrcFile.endsWith(expectedSrcFile));
    assertEquals("Element found has wrong signature", expectedSignature, getSignature(elt));
}

From source file:org.eclipse.ajdt.core.tests.model.InpathRelationshipsTests.java

License:Open Source License

public void testInPathRelationshipsNonDefault() throws Exception {
    IFile file = target.getFile("src/snippet/AdvisesLinked.aj");
    AJCompilationUnit unit = (AJCompilationUnit) AspectJCore.create(file);
    Set /*IType*/ targetTypes = gatherTargetTypesNonDefault();
    Map relationships = model.getRelationshipsForFile(unit);
    assertEquals("Should have found 15 relationships in the compilation unit", 15, relationships.size());
    for (Iterator allRelsIter = relationships.values().iterator(); allRelsIter.hasNext();) {
        List rels = (List) allRelsIter.next();
        for (Iterator relsIter = rels.iterator(); relsIter.hasNext();) {
            IRelationship rel = (IRelationship) relsIter.next();
            for (Iterator targetIter = rel.getTargets().iterator(); targetIter.hasNext();) {
                String targetHandle = (String) targetIter.next();
                IJavaElement elt = model.programElementToJavaElement(targetHandle);
                assertTrue("Java element should exist: " + elt.getHandleIdentifier(), elt.exists());
                targetTypes.remove(elt);
            }//w w w. j av a  2  s  . c o m
        }
    }

    assertTrue("The following types should have been a target of an ITD:\n" + printTargetTypes(targetTypes),
            targetTypes.size() == 0);
}

From source file:org.eclipse.ajdt.core.tests.model.InpathRelationshipsTests.java

License:Open Source License

public void testInPathRelationshipsDefault() throws Exception {
    IFile file = target.getFile("src/AdvisesLinkedDefault.aj");
    AJCompilationUnit unit = (AJCompilationUnit) AspectJCore.create(file);
    Set /*IType*/ targetTypes = gatherTargetTypesDefault();
    Map relationships = model.getRelationshipsForFile(unit);
    assertEquals("Should have found 15 relationships in the compilation unit", 15, relationships.size());
    for (Iterator allRelsIter = relationships.values().iterator(); allRelsIter.hasNext();) {
        List rels = (List) allRelsIter.next();
        for (Iterator relsIter = rels.iterator(); relsIter.hasNext();) {
            IRelationship rel = (IRelationship) relsIter.next();
            for (Iterator targetIter = rel.getTargets().iterator(); targetIter.hasNext();) {
                String targetHandle = (String) targetIter.next();
                IJavaElement elt = model.programElementToJavaElement(targetHandle);
                assertTrue("Java element should exist: " + elt.getHandleIdentifier(), elt.exists());
                targetTypes.remove(elt);
            }//from ww w  . ja v  a 2  s.  c  om
        }
    }

    assertTrue("The following types should have been a target of an ITD:\n" + printTargetTypes(targetTypes),
            targetTypes.size() == 0);
}

From source file:org.eclipse.ajdt.core.tests.model.MultipleProjectModelTests.java

License:Open Source License

private void roundTripCheck(IType otherType, IJavaElement orig) throws JavaModelException {
    assertTrue("Should exist: " + orig.getHandleIdentifier(), orig.exists());
    assertEquals(otherType, orig.getParent());
    assertTrue("" + orig + " should be a child of " + otherType, isAChildOf(otherType, orig));

    IProgramElement ipe = model.javaElementToProgramElement(orig);
    assertNotSame(IHierarchy.NO_STRUCTURE, ipe);

    orig = model.programElementToJavaElement(ipe);
    assertTrue("Should exist: " + orig.getHandleIdentifier(), orig.exists());
    assertEquals(otherType, orig.getParent());
    assertTrue("" + orig + " should be a child of " + otherType, isAChildOf(otherType, orig));
}

From source file:org.eclipse.ajdt.core.tests.problemfinding.ITITProblemFinderTests.java

License:Apache License

protected void checkModel() throws JavaModelException {
    AJProjectModelFacade model = AJProjectModelFactory.getInstance().getModelForJavaElement(proj);
    IType cityType = proj.findType("p.City");
    List<IJavaElement> rels = model.getRelationshipsForElement(cityType,
            AJRelationshipManager.ASPECT_DECLARATIONS, false);
    assertEquals("Should have found exactly one relationship to target type\n" + rels, 1, rels.size());
    IJavaElement elt = rels.get(0);
    assertTrue("Relationship should be to a type " + elt, elt instanceof IType);
    assertTrue("Element should exist " + elt, elt.exists());
    assertEquals("wrong name for element", "Keys", elt.getElementName());

    rels = model.getRelationshipsForElement(elt, AJRelationshipManager.DECLARED_ON, false);
    assertEquals("Should have found exactly one relationship to target type\n" + rels, 1, rels.size());
    assertEquals(cityType, rels.get(0));

    assertEquals("Should have exactly 2 relationships in the entire project", 2,
            model.getRelationshipsForProject(AJRelationshipManager.getAllRelationshipTypes()).size());
}

From source file:org.eclipse.ajdt.internal.corext.util.OpenTypeHistory.java

License:Open Source License

private long getContainerTimestamp(TypeNameMatch match) {
    try {//from  ww w.  ja  v  a 2  s.  c om
        IType type = match.getType();
        IResource resource = type.getResource();
        if (resource != null) {
            URI location = resource.getLocationURI();
            if (location != null) {
                IFileInfo info = EFS.getStore(location).fetchInfo();
                if (info.exists()) {
                    // The element could be removed from the build path. So check
                    // if the Java element still exists.
                    IJavaElement element = JavaCore.create(resource);
                    if (element != null && element.exists())
                        return info.getLastModified();
                }
            }
        } else { // external JAR
            IPackageFragmentRoot root = match.getPackageFragmentRoot();
            IFileInfo info = EFS.getLocalFileSystem().getStore(root.getPath()).fetchInfo();
            if (info.exists()) {
                return info.getLastModified();
            }
        }
    } catch (CoreException e) {
        // Fall through
    }
    return IResource.NULL_STAMP;
}

From source file:org.eclipse.ajdt.internal.ui.editor.actions.AJOrganizeImportsAction.java

License:Open Source License

private ICompilationUnit[] getCompilationUnits(IStructuredSelection selection) {
    HashSet result = new HashSet();
    Object[] selected = selection.toArray();
    for (int i = 0; i < selected.length; i++) {
        try {//w w w . j a  v  a 2s . co m
            if (selected[i] instanceof IJavaElement) {
                IJavaElement elem = (IJavaElement) selected[i];
                if (elem.exists()) {

                    switch (elem.getElementType()) {
                    case IJavaElement.TYPE:
                        if (elem.getParent().getElementType() == IJavaElement.COMPILATION_UNIT) {
                            result.add(elem.getParent());
                        }
                        break;
                    case IJavaElement.COMPILATION_UNIT:
                        result.add(elem);
                        break;
                    case IJavaElement.IMPORT_CONTAINER:
                        result.add(elem.getParent());
                        break;
                    case IJavaElement.PACKAGE_FRAGMENT:
                        collectCompilationUnits((IPackageFragment) elem, result);
                        break;
                    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
                        collectCompilationUnits((IPackageFragmentRoot) elem, result);
                        break;
                    case IJavaElement.JAVA_PROJECT:
                        IPackageFragmentRoot[] roots = ((IJavaProject) elem).getPackageFragmentRoots();
                        for (int k = 0; k < roots.length; k++) {
                            collectCompilationUnits(roots[k], result);
                        }
                        break;
                    }
                }
            } else if (selected[i] instanceof LogicalPackage) {
                IPackageFragment[] packageFragments = ((LogicalPackage) selected[i]).getFragments();
                for (int k = 0; k < packageFragments.length; k++) {
                    IPackageFragment pack = packageFragments[k];
                    if (pack.exists()) {
                        collectCompilationUnits(pack, result);
                    }
                }
            }
        } catch (JavaModelException e) {
            if (JavaModelUtil.isExceptionToBeLogged(e))
                JavaPlugin.log(e);
        }
    }
    return (ICompilationUnit[]) result.toArray(new ICompilationUnit[result.size()]);
}

From source file:org.eclipse.ajdt.internal.ui.editor.actions.AJOrganizeImportsAction.java

License:Open Source License

private boolean isEnabled(IStructuredSelection selection) {
    Object[] selected = selection.toArray();
    for (int i = 0; i < selected.length; i++) {
        try {//from   w  w w  . j a  v a  2 s  .c o m
            if (selected[i] instanceof IJavaElement) {
                IJavaElement elem = (IJavaElement) selected[i];
                if (elem.exists()) {
                    switch (elem.getElementType()) {
                    case IJavaElement.TYPE:
                        return elem.getParent().getElementType() == IJavaElement.COMPILATION_UNIT; // for browsing perspective
                    case IJavaElement.COMPILATION_UNIT:
                        return true;
                    case IJavaElement.IMPORT_CONTAINER:
                        return true;
                    case IJavaElement.PACKAGE_FRAGMENT:
                    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
                        IPackageFragmentRoot root = (IPackageFragmentRoot) elem
                                .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
                        return (root.getKind() == IPackageFragmentRoot.K_SOURCE);
                    case IJavaElement.JAVA_PROJECT:
                        // https://bugs.eclipse.org/bugs/show_bug.cgi?id=65638
                        return true;
                    }
                }
            } else if (selected[i] instanceof LogicalPackage) {
                return true;
            }
        } catch (JavaModelException e) {
            if (!e.isDoesNotExist()) {
                JavaPlugin.log(e);
            }
        }
    }
    return false;
}

From source file:org.eclipse.ajdt.internal.ui.markers.UpdateAJMarkers.java

License:Open Source License

private void addMarkersForFiles(IProgressMonitor monitor) {
    SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, sourceFiles.length);
    for (int i = 0; i < sourceFiles.length; i++) {
        IJavaElement unit = JavaCore.create(sourceFiles[i]);
        if (unit != null && unit.exists() && unit instanceof ICompilationUnit) {
            subMonitor.subTask("Add markers for " + unit.getElementName());
            addMarkersForFile((ICompilationUnit) unit, sourceFiles[i]);
            fileCount++;//from   w w  w .  j a  v a2  s  .  co  m
        }
        if (subMonitor.isCanceled()) {
            throw new OperationCanceledException();
        }
        subMonitor.worked(1);
    }
}

From source file:org.eclipse.ajdt.internal.ui.refactoring.ITDRenameRefactoringProcessor.java

License:Open Source License

private RefactoringStatus initialize(JavaRefactoringArguments extended) {
    final String handle = extended.getAttribute(JavaRefactoringDescriptorUtil.ATTRIBUTE_INPUT);
    if (handle != null) {
        final IJavaElement element = JavaRefactoringDescriptorUtil.handleToElement(extended.getProject(),
                handle, false);/*from   w  w w. j  a va2s.  c o m*/
        if (element == null || !element.exists() || !(element instanceof IntertypeElement)) {
            return JavaRefactoringDescriptorUtil.createInputFatalStatus(element, getProcessorName(),
                    IJavaRefactorings.RENAME_FIELD);
        } else {
            itd = (IntertypeElement) element;
        }
    } else {
        return RefactoringStatus.createFatalErrorStatus(
                Messages.format(RefactoringCoreMessages.InitializableRefactoring_argument_not_exist,
                        JavaRefactoringDescriptorUtil.ATTRIBUTE_INPUT));
    }
    final String name = extended.getAttribute(JavaRefactoringDescriptorUtil.ATTRIBUTE_NAME);
    if (name != null && !"".equals(name)) { //$NON-NLS-1$
        setNewElementName(name);
    } else {
        return RefactoringStatus.createFatalErrorStatus(
                Messages.format(RefactoringCoreMessages.InitializableRefactoring_argument_not_exist,
                        JavaRefactoringDescriptorUtil.ATTRIBUTE_NAME));
    }
    final String references = extended.getAttribute(JavaRefactoringDescriptorUtil.ATTRIBUTE_REFERENCES);
    if (references != null) {
        updateReferences = Boolean.valueOf(references).booleanValue();
    } else {
        return RefactoringStatus.createFatalErrorStatus(
                Messages.format(RefactoringCoreMessages.InitializableRefactoring_argument_not_exist,
                        JavaRefactoringDescriptorUtil.ATTRIBUTE_REFERENCES));
    }
    return new RefactoringStatus();
}