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

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

Introduction

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

Prototype

int JAVA_MODEL

To view the source code for org.eclipse.jdt.core IJavaElement JAVA_MODEL.

Click Source Link

Document

Constant representing a Java model (workspace level object).

Usage

From source file:org.eclipse.jdt.internal.core.JavaProject.java

License:Open Source License

public boolean isOnClasspath(IJavaElement element) {
    IClasspathEntry[] rawClasspath;/*  w  w w  . j  ava2s. com*/
    try {
        rawClasspath = getRawClasspath();
    } catch (JavaModelException e) {
        return false; // not a Java project
    }
    int elementType = element.getElementType();
    boolean isPackageFragmentRoot = false;
    boolean isFolderPath = false;
    boolean isSource = false;
    switch (elementType) {
    case IJavaElement.JAVA_MODEL:
        return false;
    case IJavaElement.JAVA_PROJECT:
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        isPackageFragmentRoot = true;
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        isFolderPath = !((IPackageFragmentRoot) element.getParent()).isArchive();
        break;
    case IJavaElement.COMPILATION_UNIT:
        isSource = true;
        break;
    default:
        isSource = element.getAncestor(IJavaElement.COMPILATION_UNIT) != null;
        break;
    }
    IPath elementPath = element.getPath();

    // first look at unresolved entries
    int length = rawClasspath.length;
    for (int i = 0; i < length; i++) {
        IClasspathEntry entry = rawClasspath[i];
        switch (entry.getEntryKind()) {
        case IClasspathEntry.CPE_LIBRARY:
        case IClasspathEntry.CPE_PROJECT:
        case IClasspathEntry.CPE_SOURCE:
            if (isOnClasspathEntry(elementPath, isFolderPath, isPackageFragmentRoot, entry))
                return true;
            break;
        }
    }

    // no need to go further for compilation units and elements inside a compilation unit
    // it can only be in a source folder, thus on the raw classpath
    if (isSource)
        return false;

    // https://bugs.eclipse.org/bugs/show_bug.cgi?id=304081
    // All the resolved classpath entries need to be considered, including the referenced classpath entries
    IClasspathEntry[] resolvedClasspath = null;
    try {
        resolvedClasspath = getResolvedClasspath();
    } catch (JavaModelException e) {
        return false; // Perhaps, not a Java project
    }

    for (int index = 0; index < resolvedClasspath.length; index++) {
        if (isOnClasspathEntry(elementPath, isFolderPath, isPackageFragmentRoot, resolvedClasspath[index]))
            return true;
    }

    return false;
}

From source file:org.eclipse.jem.workbench.utility.JavaModelListener.java

License:Open Source License

/**
 * Dispatch the java element delta. This method should normally not be overridden. One
 * usage would be to add delta types that are to be processed and dispatched by the
 * subclasses. For example also dispatch on {@link IJavaElement#IMPORT_CONTAINER}. Subclasses
 * should call <code>super.processDelta(IJavaElementDelta)</code> if it is not one they
 * are interested in.//from   w ww .  j  a  v  a2 s . c om
 * 
 * @param delta
 * 
 * @since 1.2.0
 */
public void processDelta(IJavaElementDelta delta) {
    IJavaElement element = delta.getElement();
    // if the class path has changed we refresh the resolved container cache
    int flags = delta.getFlags();
    if (((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) && !resolvedContainers.isEmpty()) {
        resolvedContainers.clear();
    }

    switch (element.getElementType()) {
    case IJavaElement.JAVA_MODEL:
        processJavaElementChanged((IJavaModel) element, delta);
        break;
    case IJavaElement.JAVA_PROJECT:
        processJavaElementChanged((IJavaProject) element, delta);
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        processJavaElementChanged((IPackageFragmentRoot) element, delta);
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        processJavaElementChanged((IPackageFragment) element, delta);
        break;
    case IJavaElement.COMPILATION_UNIT:
        processJavaElementChanged((ICompilationUnit) element, delta);
        processContentChanged(delta);
        break;
    case IJavaElement.CLASS_FILE:
        processJavaElementChanged((IClassFile) element, delta);
        break;
    case IJavaElement.TYPE:
        processJavaElementChanged((IType) element, delta);
        break;
    // Note: if we are to update the Method/Field adapters, we should process the
    // IJavaElement.METHOD and IJavaElement.FIELD
    }
}

From source file:org.eclipse.jpt.common.core.tests.internal.resource.java.JavaResourceModelTestCase.java

License:Open Source License

/**
 * NB: this is copied from GenericJpaProject, so it might need to be
 * kept in synch with that code if it changes... yech...
 *//*w  ww .j  av  a  2 s.c o m*/
protected void syncWithJavaDelta(IJavaElementDelta delta) {
    switch (delta.getElement().getElementType()) {
    case IJavaElement.JAVA_MODEL:
    case IJavaElement.JAVA_PROJECT:
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
    case IJavaElement.PACKAGE_FRAGMENT:
        this.syncWithJavaDeltaChildren(delta);
        break;
    case IJavaElement.COMPILATION_UNIT:
        this.javaCompilationUnitChanged(delta);
        break;
    default:
        break; // ignore the elements inside a compilation unit
    }
}

From source file:org.eclipse.jpt.jaxb.core.internal.AbstractJaxbProject.java

License:Open Source License

/**
 * We recurse back here from {@link #processJavaDeltaChildren(IJavaElementDelta)}.
 *//*from w  w w .  j a v a 2s  .  c  o m*/
protected void processJavaDelta(IJavaElementDelta delta) {
    switch (delta.getElement().getElementType()) {
    case IJavaElement.JAVA_MODEL:
        this.processJavaModelDelta(delta);
        break;
    case IJavaElement.JAVA_PROJECT:
        this.processJavaProjectDelta(delta);
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        this.processJavaPackageFragmentRootDelta(delta);
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        this.processJavaPackageFragmentDelta(delta);
        break;
    case IJavaElement.COMPILATION_UNIT:
        this.processJavaCompilationUnitDelta(delta);
        break;
    default:
        break; // ignore the elements inside a compilation unit
    }
}

From source file:org.eclipse.jpt.jaxb.ui.internal.filters.ContainerFilter.java

License:Open Source License

@Override
public boolean select(Viewer viewer, Object parent, Object element) {
    boolean isContainer = element instanceof IContainer;

    if (!isContainer && element instanceof IJavaElement) {
        int type = ((IJavaElement) element).getElementType();
        isContainer = (type == IJavaElement.JAVA_MODEL || type == IJavaElement.JAVA_PROJECT
                || type == IJavaElement.PACKAGE_FRAGMENT || type == IJavaElement.PACKAGE_FRAGMENT_ROOT);
    }/* w  ww  .ja  v  a  2  s  .  c o m*/
    return !isContainer;
}

From source file:org.eclipse.jpt.jaxb.ui.internal.filters.NonContainerFilter.java

License:Open Source License

@Override
public boolean select(Viewer viewer, Object parent, Object element) {
    boolean isContainer = element instanceof IContainer;
    int type;//from   w w  w . j a v  a 2s. c  o m
    if (!isContainer && element instanceof IJavaElement) {
        type = ((IJavaElement) element).getElementType();
        isContainer = (type == IJavaElement.JAVA_MODEL || type == IJavaElement.JAVA_PROJECT
                || type == IJavaElement.PACKAGE_FRAGMENT || type == IJavaElement.PACKAGE_FRAGMENT_ROOT);
    }
    if (isContainer && (element instanceof IJavaElement)) {
        type = ((IJavaElement) element).getElementType();
        if (type == IJavaElement.JAVA_PROJECT) {
            String projectName = ((IJavaProject) element).getElementName();
            return projectName.equals(this.projectName);
        }
    }
    return isContainer;
}

From source file:org.eclipse.jpt.jpa.core.internal.InternalJpaProjectManager.java

License:Open Source License

/**
 * We recurse back here from {@link #handleJavaDeltaChildren(IJavaElementDelta)}.
 *//*from  www .  j a  va2  s .c o m*/
protected boolean handleJavaDelta(IJavaElementDelta delta) {
    switch (delta.getElement().getElementType()) {
    case IJavaElement.JAVA_MODEL:
        return this.handleJavaModelDelta(delta);
    case IJavaElement.JAVA_PROJECT:
        return this.handleJavaProjectDelta(delta);
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        return this.handleJavaPackageFragmentRootDelta(delta);
    case IJavaElement.PACKAGE_FRAGMENT:
        return this.processJavaPackageFragmentDelta(delta);
    case IJavaElement.COMPILATION_UNIT:
        return this.handleJavaCompilationUnitDelta(delta);
    default:
        break; // ignore the elements inside a compilation unit
    }
    return false;
}

From source file:org.eclipse.jpt.jpa.eclipselink.ui.internal.wizards.EclipseLinkDynamicEntityClassWizardPage.java

License:Open Source License

/**
 * Utility method to inspect a selection to find a Java element.
 * /* ww  w .  j av  a2 s .co m*/
 * @param selection the selection to be inspected
 * @return a Java element to be used as the initial selection, or
 *         <code>null</code>, if no Java element exists in the given
 *         selection
 */
protected IJavaElement getInitialJavaElement(ISelection selection) {
    IJavaElement jelem = null;
    if (selection != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
        Object selectedElement = ((IStructuredSelection) selection).getFirstElement();
        jelem = getJavaElement(selectedElement);
        if (jelem == null) {
            IResource resource = getResource(selectedElement);
            if (resource != null && resource.getType() != IResource.ROOT) {
                while (jelem == null && resource.getType() != IResource.PROJECT) {
                    resource = resource.getParent();
                    jelem = (IJavaElement) resource.getAdapter(IJavaElement.class);
                }
                if (jelem == null) {
                    jelem = JavaCore.create(resource); // java project
                }
            }
        }
    }
    if (jelem == null) {
        IWorkbenchWindow window = WorkbenchTools.getActiveWindow();
        if (window == null)
            return null;
        IWorkbenchPart part = window.getActivePage().getActivePart();
        if (part instanceof ContentOutline) {
            part = window.getActivePage().getActiveEditor();
        }

        if (part instanceof IViewPartInputProvider) {
            Object elem = ((IViewPartInputProvider) part).getViewPartInput();
            if (elem instanceof IJavaElement) {
                jelem = (IJavaElement) elem;
            }
        }
    }

    if (jelem == null || jelem.getElementType() == IJavaElement.JAVA_MODEL) {
        try {
            IJavaProject[] projects = JavaCore.create(getWorkspaceRoot()).getJavaProjects();
            if (projects.length == 1) {
                jelem = projects[0];
            }
        } catch (JavaModelException e) {
            JptJpaEclipseLinkUiPlugin.instance().logError(e);
        }
    }
    return jelem;
}

From source file:org.eclipse.jst.j2ee.internal.dialogs.TypeJavaSearchScope.java

License:Open Source License

public void add(IJavaElement element) throws JavaModelException {
    IPackageFragmentRoot root = null;/*from   w  w  w  .  ja va 2  s  .  c  om*/
    switch (element.getElementType()) {
    case IJavaElement.JAVA_MODEL:
        // a workspace sope should be used
        break;
    case IJavaElement.JAVA_PROJECT:
        this.add((IJavaProject) element, true, new HashSet(2));
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        root = (IPackageFragmentRoot) element;
        this.add(root.getPath(), true);
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        root = (IPackageFragmentRoot) element.getParent();
        if (root.isArchive()) {
            this.add(root.getPath().append(new Path(element.getElementName().replace('.', '/'))), false);
        } else {
            IResource resource = element.getUnderlyingResource();
            if (resource != null && resource.isAccessible()) {
                this.add(resource.getFullPath(), false);
            }
        }
        break;
    default:
        // remember sub-cu (or sub-class file) java elements
        if (element instanceof IMember) {
            if (this.elements == null) {
                this.elements = new ArrayList();
            }
            this.elements.add(element);
        }
        this.add(this.fullPath(element), true);

        // find package fragment root including this java element
        IJavaElement parent = element.getParent();
        while (parent != null && !(parent instanceof IPackageFragmentRoot)) {
            parent = parent.getParent();
        }
        if (parent instanceof IPackageFragmentRoot) {
            root = (IPackageFragmentRoot) parent;
        }
    }

    if (root != null) {
        if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
            this.addEnclosingProjectOrJar(root.getPath());
        } else {
            this.addEnclosingProjectOrJar(root.getJavaProject().getProject().getFullPath());
        }
    }
}

From source file:org.eclipse.jst.j2ee.internal.wizard.NewJavaClassWizardPage.java

License:Open Source License

/**
 * Utility method to inspect a selection to find a Java element.
 * /*from  w  w  w .j av a 2s  .co m*/
 * @param selection
 *            the selection to be inspected
 * @return a Java element to be used as the initial selection, or
 *         <code>null</code>, if no Java element exists in the given
 *         selection
 */
protected IJavaElement getInitialJavaElement(ISelection selection) {
    IJavaElement jelem = null;
    if (selection != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
        Object selectedElement = ((IStructuredSelection) selection).getFirstElement();
        jelem = getJavaElement(selectedElement);
        if (jelem == null) {
            IResource resource = getResource(selectedElement);
            if (resource != null && resource.getType() != IResource.ROOT) {
                while (jelem == null && resource.getType() != IResource.PROJECT) {
                    resource = resource.getParent();
                    jelem = (IJavaElement) resource.getAdapter(IJavaElement.class);
                }
                if (jelem == null) {
                    jelem = JavaCore.create(resource); // java project
                }
            }
        }
    }
    if (jelem == null) {
        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
        if (window == null)
            return null;
        IWorkbenchPart part = window.getActivePage().getActivePart();
        if (part instanceof ContentOutline) {
            part = window.getActivePage().getActiveEditor();
        }

        if (part instanceof IViewPartInputProvider) {
            Object elem = ((IViewPartInputProvider) part).getViewPartInput();
            if (elem instanceof IJavaElement) {
                jelem = (IJavaElement) elem;
            }
        }
    }

    if (jelem == null || jelem.getElementType() == IJavaElement.JAVA_MODEL) {
        try {
            IJavaProject[] projects = JavaCore.create(getWorkspaceRoot()).getJavaProjects();
            if (projects.length == 1) {
                jelem = projects[0];
            }
        } catch (JavaModelException e) {
            JavaPlugin.log(e);
        }
    }
    return jelem;
}