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

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

Introduction

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

Prototype

IResource getResource();

Source Link

Document

Returns the innermost resource enclosing this element.

Usage

From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaFilter.java

License:Open Source License

/**
 * Returns true if the element resource is a file named 'package-info.java' (whatever the containing folder)
 * @param element//from ww w. j  a va  2  s  .c o m
 * @return
 */
private boolean isPackageInfoFile(final IJavaElement element) {
    return element.getResource() != null && element.getResource().getType() == IResource.FILE
            && element.getResource().getName().equals("package-info.java");
}

From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaFilterTestCase.java

License:Open Source License

@Test
public void shouldNotAcceptChangesInPackageInfoFile() {
    final IJavaElement element = createMock(IType.class, ANNOTATION, workingCopy);
    final IResource resource = mock(IResource.class);
    when(element.getResource()).thenReturn(resource);
    when(resource.getType()).thenReturn(IResource.FILE);
    when(resource.getName()).thenReturn("package-info.java");
    assertFalse("Wrong result", filter.apply(createEvent(element, ADDED, POST_RECONCILE, Flags.NONE)));
    assertFalse("Wrong result", filter.apply(createEvent(element, ADDED, POST_CHANGE, Flags.NONE)));
    assertFalse("Wrong result", filter.apply(createEvent(element, CHANGED, POST_RECONCILE, Flags.NONE)));
    assertFalse("Wrong result", filter.apply(createEvent(element, CHANGED, POST_CHANGE, Flags.NONE)));
    assertFalse("Wrong result", filter.apply(createEvent(element, REMOVED, POST_RECONCILE, Flags.NONE)));
    assertFalse("Wrong result", filter.apply(createEvent(element, REMOVED, POST_CHANGE, Flags.NONE)));
}

From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaScanner.java

License:Open Source License

/**
 * Recursively analyse the given Java Element Delta.
 * //from  w w w .ja  v a  2s.c o  m
 * @param delta
 * @param eventType
 * @throws CoreException
 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100267
 */
private List<JavaElementChangedEvent> scanDelta(final IJavaElementDelta delta, final int eventType)
        throws CoreException {
    final List<JavaElementChangedEvent> events = new ArrayList<JavaElementChangedEvent>();
    final IJavaElement element = delta.getElement();
    // skip as the project is closed
    if (element == null) {
        Logger.debug("** skipping this build because the delta element is null **");
        return Collections.emptyList();
    } else if (element.getElementType() == IJavaElement.JAVA_PROJECT
            && !element.getJavaProject().getProject().isOpen() && delta.getFlags() != F_OPENED) {
        Logger.debug("** skipping this build because the java project is closed. **");
        return Collections.emptyList();
    } else if ((element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT)) {
        final IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) element;
        if (!packageFragmentRoot.isExternal()
                && (packageFragmentRoot.getResource() == null || !packageFragmentRoot.getResource().exists())) {
            return Collections.emptyList();
        }
    } else if (element.getResource() == null || !element.getResource().exists()) {
        return Collections.emptyList();
    }
    final int elementKind = element.getElementType();
    final int deltaKind = retrieveDeltaKind(delta);
    final Flags flags = new Flags(delta.getFlags());
    if (elementKind == JAVA_PROJECT) {
        final JavaElementChangedEvent event = new JavaElementChangedEvent(element, delta.getKind(), eventType,
                null, new Flags(delta.getFlags()));
        if (javaElementChangedEventFilter.apply(event)) {
            events.add(event);
            // skip anything below
            return events;
        }
    }
    final CompilationUnit compilationUnitAST = getCompilationUnitAST(delta);
    if (elementKind == COMPILATION_UNIT) {
        final ICompilationUnit compilationUnit = (ICompilationUnit) element;
        // compilationUnitAST is null when the given compilation unit'w
        // working copy is being commited (ie, Java Editor is being closed
        // for the given compilation unit, etc.)
        if (compilationUnit.exists() // see https://issues.jboss.org/browse/JBIDE-12760: compilationUnit may not exist
                && compilationUnit.isWorkingCopy() && compilationUnitAST != null) {
            // assuming possible changes in the method signatures (return type,
            // param types and param annotations). Other changes in methods
            // (renaming, adding/removing params) result in add+remove
            // events on the given method itself.
            if (requiresDiffsComputation(flags)) {
                for (IType type : compilationUnit.getAllTypes()) {
                    for (IMethod javaMethod : type.getMethods()) {
                        final JavaElementChangedEvent event = new JavaElementChangedEvent(javaMethod, CHANGED,
                                eventType, compilationUnitAST, new Flags(F_SIGNATURE));
                        if (javaElementChangedEventFilter.apply(event)) {
                            events.add(event);
                        }
                    }
                }
            }
        }
    }
    // element is part of the compilation unit
    else if (compilationUnitAST != null) {
        final JavaElementChangedEvent event = new JavaElementChangedEvent(element, deltaKind, eventType,
                compilationUnitAST, flags);
        if (javaElementChangedEventFilter.apply(event)) {
            events.add(event);
        }
    }
    // continue with children elements, both on annotations and other java
    // elements.
    for (IJavaElementDelta affectedChild : delta.getAffectedChildren()) {
        events.addAll(scanDelta(affectedChild, eventType));
    }
    for (IJavaElementDelta annotation : delta.getAnnotationDeltas()) {
        events.addAll(scanDelta(annotation, eventType));
    }
    return events;
}

From source file:org.key_project.key4eclipse.common.ui.expression.MethodStarterAvailablePropertyTester.java

License:Open Source License

/**
 * Checks if the given {@link Object} is part of the specified source path.
 * @param receiver The {@link Object} to check.
 * @return {@code true} is part of source path, {@code false} is not part of source path or unknown.
 *///from  w  ww  .  jav a2  s  . c om
protected boolean isInSourcePath(Object receiver) {
    try {
        IResource resource = null;
        if (receiver instanceof IResource) {
            resource = (IResource) receiver;
        } else if (receiver instanceof IAdaptable) {
            resource = (IResource) ((IAdaptable) receiver).getAdapter(IResource.class);
        } else if (receiver instanceof ITextSelection) {
            IEditorPart editor = WorkbenchUtil.getActiveEditor();
            if (editor instanceof JavaEditor) {
                JavaEditor javaEditor = (JavaEditor) editor;
                IJavaElement element = SelectionConverter.resolveEnclosingElement(javaEditor,
                        (ITextSelection) receiver);
                if (element != null) {
                    resource = element.getResource();
                }
            }
        }
        if (resource != null) {
            IProject project = resource.getProject();
            IResource sourceLocation = KeYResourceProperties.getSourceClassPathResource(project);
            return sourceLocation != null && sourceLocation.contains(resource);
        } else {
            return false;
        }
    } catch (CoreException e) {
        LogUtil.getLogger().logError(e);
        return false;
    }
}

From source file:org.key_project.key4eclipse.common.ui.handler.FileStarterHandler.java

License:Open Source License

/**
 * {@inheritDoc}//w ww.  j  a va  2  s  .com
 */
@Override
protected Object doExecute(ExecutionEvent event) throws Exception {
    Shell parentShell = HandlerUtil.getActiveShell(event);
    ISelection selection = HandlerUtil.getCurrentSelection(event);
    if (selection instanceof IStructuredSelection) {
        // Try to load by selection
        Object[] elements = ((IStructuredSelection) selection).toArray();
        for (Object element : elements) {
            if (element instanceof IFile) {
                IFile file = (IFile) element;
                if (KeYUtil.isFileExtensionSupported(file.getFileExtension())) {
                    StarterUtil.openFileStarter(parentShell, file);
                }
            } else if (element instanceof IJavaElement) {
                IJavaElement javaElement = (IJavaElement) element;
                if (javaElement.getResource() instanceof IFile) {
                    IFile file = (IFile) javaElement.getResource();
                    if (KeYUtil.isFileExtensionSupported(file.getFileExtension())) {
                        StarterUtil.openFileStarter(parentShell, file);
                    }
                }
            }
        }
    } else {
        // Try to load by KeY Editor
        IEditorPart editorPart = HandlerUtil.getActiveEditor(event);
        if (editorPart != null) {
            IEditorInput input = editorPart.getEditorInput();
            if (input != null) {
                IFile file = (IFile) input.getAdapter(IFile.class);
                if (file != null && KeYUtil.isFileExtensionSupported(file.getFileExtension())) {
                    StarterUtil.openFileStarter(parentShell, file);
                }
            }
        }
    }
    return null;
}

From source file:org.key_project.key4eclipse.common.ui.handler.ProjectStarterHandler.java

License:Open Source License

/**
 * {@inheritDoc}//from w w  w  . ja  v  a2s.c o m
 */
@Override
protected Object doExecute(ExecutionEvent event) throws Exception {
    Shell parentShell = HandlerUtil.getActiveShell(event);
    ISelection selection = HandlerUtil.getCurrentSelection(event);
    if (selection instanceof IStructuredSelection) {
        // Try to load by selection
        Object[] elements = ((IStructuredSelection) selection).toArray();
        for (Object element : elements) {
            if (element instanceof IResource) {
                IProject project = ((IResource) element).getProject();
                StarterUtil.openProjectStarter(parentShell, project);
            } else if (element instanceof IJavaElement) {
                IJavaElement javaElement = (IJavaElement) element;
                IProject project = javaElement.getResource().getProject();
                StarterUtil.openProjectStarter(parentShell, project);
            }
        }
    } else {
        // Try to load by KeY Editor
        IEditorPart editorPart = HandlerUtil.getActiveEditor(event);
        if (editorPart != null) {
            IEditorInput input = editorPart.getEditorInput();
            if (input != null) {
                IFile file = (IFile) input.getAdapter(IFile.class);
                if (file != null) {
                    StarterUtil.openProjectStarter(parentShell, file.getProject());
                }
            }
        }
    }
    return null;
}

From source file:org.key_project.util.test.testcase.JDTUtilTest.java

License:Open Source License

/**
 * Tests {@link JDTUtil#getAllPackageFragmentRoot()}
 *///from  w w w .ja v  a2 s.c  o  m
@Test
public void testGetAllPackageFragmentRoot() throws CoreException, InterruptedException {
    // Create projects with test content
    IJavaProject jdt1 = TestUtilsUtil.createJavaProject("JDTUtilTest_testGetAllPackageFragmentRoot1");
    IJavaProject jdt2 = TestUtilsUtil.createJavaProject("JDTUtilTest_testGetAllPackageFragmentRoot2");
    IFolder srcFolder1 = jdt1.getProject().getFolder("src");
    IFolder srcFolder2 = jdt2.getProject().getFolder("src");
    BundleUtil.extractFromBundleToWorkspace(Activator.PLUGIN_ID, "data/packagesRoots1", srcFolder1);
    BundleUtil.extractFromBundleToWorkspace(Activator.PLUGIN_ID, "data/packagesRoots2", srcFolder2);
    // Get expected folders
    IFolder packageA = srcFolder1.getFolder("packageA");
    IFolder packageB = srcFolder2.getFolder("packageB");
    IFolder b1 = packageB.getFolder("B1");
    IFolder b2 = packageB.getFolder("B2");
    IFolder b23 = b2.getFolder("B3");
    IFolder b234 = b23.getFolder("B4");
    List<IResource> expectedResources = new LinkedList<IResource>();
    expectedResources.add(packageA);
    expectedResources.add(packageB);
    expectedResources.add(b1);
    expectedResources.add(b2);
    expectedResources.add(b23);
    expectedResources.add(b234);
    // List package roots
    IJavaElement[] roots = JDTUtil.getAllPackageFragmentRoot();
    // Make sure that the test packages are contained
    for (IJavaElement root : roots) {
        expectedResources.remove(root.getResource());
    }
    assertEquals(0, expectedResources.size());
}

From source file:org.limy.eclipse.code.header.AddHeaderCore.java

License:Open Source License

/**
 * Javavfwb_?s??B/*w ww . j  a v  a  2 s .  co m*/
 * <p>pbP?[Wv?WFNgw???ASJavat@C??B</p>
 * @param javaElement Javavf
 * @param monitor 
 * @throws CoreException 
 */
public void changeResource(IJavaElement javaElement, IProgressMonitor monitor) throws CoreException {

    LimyJavaUtils.executeAllJavas(javaElement, new IJavaResourceVisitor() {
        public boolean executeJavaElement(IJavaElement el) throws CoreException {
            // JavaNX
            initOptions(el);
            addHerderLine(el);
            return false;
        }
    });

    IResource resource = javaElement.getResource();
    if (resource != null) {
        resource.refreshLocal(IResource.DEPTH_INFINITE, monitor);
    }

}

From source file:org.limy.eclipse.code.header.AddHeaderCore.java

License:Open Source License

/**
 * u}bsO??B//from  ww  w . j  av  a 2s .com
 * @param javaElement Javav?WFNg
 */
private void initOptions(IJavaElement javaElement) {

    ScopedPreferenceStore store = new ScopedPreferenceStore(
            new ProjectScope(javaElement.getJavaProject().getProject()),
            LimyCodePlugin.getDefault().getBundle().getSymbolicName());
    String projectName = store.getString(LimyCodeConstants.PREF_PROJECT_NAME);
    if (projectName.length() == 0) {
        projectName = javaElement.getJavaProject().getElementName();
    }

    options.put("project", projectName);
    options.put("project_name", projectName);
    options.put("file_name", javaElement.getResource().getName());
    if (javaElement instanceof IPackageDeclaration) {
        ICompilationUnit cunit = (ICompilationUnit) ((IPackageDeclaration) javaElement).getParent();
        createTypeOptions(cunit.findPrimaryType());
    }
    if (javaElement instanceof ICompilationUnit) {
        ICompilationUnit cunit = (ICompilationUnit) javaElement;
        createTypeOptions(cunit.findPrimaryType());
    }
    if (javaElement instanceof IType) {
        createTypeOptions((IType) javaElement);
    }

    options.put("user", System.getProperty("user.name"));
}

From source file:org.limy.eclipse.code.header.AddHeaderCore.java

License:Open Source License

/**
 * Java\?[X?itH_?jwb_?B//from  ww w .ja v  a2 s.c o m
 * @param javaElement Javavf
 * @throws CoreException RAO
 */
private void addHerderLine(IJavaElement javaElement) throws CoreException {

    IResource resource = javaElement.getResource();
    if (resource instanceof IFile) {
        try {
            addFileHeader((IFile) resource, header, options);
        } catch (IOException e) {
            LimyEclipsePluginUtils.log(e);
        }
    }
}