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

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

Introduction

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

Prototype

int COMPILATION_UNIT

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

Click Source Link

Document

Constant representing a Java compilation unit.

Usage

From source file:org.eclipse.jpt.jpa.core.jpql.DefaultContentAssistExtension.java

License:Open Source License

/**
 * {@inheritDoc}//w  ww .  j a v a 2  s.c  o m
 */
public Iterable<String> classNames(String prefix, ClassType classType) {

    IJavaProject javaProject = jpaProject.getJavaProject();
    Set<String> classNames = new HashSet<String>();
    boolean emptyPrefix = (prefix.length() == 0);
    int index = !emptyPrefix ? prefix.lastIndexOf('.') : -1;
    boolean hasDot = (index > -1);

    // Note: In order to increase performance by preventing array creation and filtering,
    //       IParent.getChildren() is used, then a simple check is performed on the element type
    try {

        // Traverse the packages
        for (IPackageFragment packageFragment : javaProject.getPackageFragments()) {
            String packageName = packageFragment.getElementName();

            // Filter the package out if the prefix has a dot,
            // match the beginning of the prefix up to the last dot
            boolean packageAccepted = !hasDot || packageName.regionMatches(true, 0, prefix, 0, index);

            if (packageAccepted) {

                // Traverse the classes within the package
                for (IJavaElement javaElement : packageFragment.getChildren()) {

                    switch (javaElement.getElementType()) {

                    // Java source files
                    case IJavaElement.COMPILATION_UNIT: {

                        ICompilationUnit compilationUnit = (ICompilationUnit) javaElement;

                        for (IJavaElement cuChild : compilationUnit.getChildren()) {

                            // Class definition
                            if (cuChild.getElementType() == IJavaElement.TYPE) {
                                IType type = (IType) cuChild;
                                String className = type.getFullyQualifiedName();

                                // Filter out the class if required
                                // NOTE: An empty prefix will not filter anonymous or member classes,
                                //       to do so, we need to use what the Java content assist uses
                                //       otherwise it takes too long to calculate the valid classes
                                if (emptyPrefix || acceptClass(type, className, classType, prefix, hasDot)) {
                                    classNames.add(className);
                                }
                            }
                        }

                        break;
                    }

                    // Java class files
                    case IJavaElement.CLASS_FILE: {

                        IClassFile classFile = (IClassFile) javaElement;
                        IType type = classFile.getType();
                        String className = type.getFullyQualifiedName();

                        // Filter out the class if required
                        // NOTE: An empty prefix will not filter anonymous or member classes,
                        //       to do so, we need to use what the Java content assist uses
                        //       otherwise it takes too long to calculate the valid classes
                        if (emptyPrefix || acceptClass(type, className, classType, prefix, hasDot)) {
                            classNames.add(className);
                        }

                        break;
                    }
                    }
                }
            }
        }
    } catch (Exception e) {
        // Just ignore
    }

    return classNames;
}

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

License:Open Source License

private IPackageFragment getSelectedPackageFragment() {
    IWorkbenchWindow window = WorkbenchTools.getActiveWindow();
    if (window == null)
        return null;
    ISelection selection = window.getSelectionService().getSelection();
    if (selection == null)
        return null;
    IJavaElement element = getInitialJavaElement(selection);
    if (element != null) {
        if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
            return (IPackageFragment) element;
        } else if (element.getElementType() == IJavaElement.COMPILATION_UNIT) {
            IJavaElement parent = ((ICompilationUnit) element).getParent();
            if (parent.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                return (IPackageFragment) parent;
            }/* ww w .  j  a  v a 2 s  .  c o m*/
        } else if (element.getElementType() == IJavaElement.TYPE) {
            return ((IType) element).getPackageFragment();
        }
    }
    return null;
}

From source file:org.eclipse.jpt.jpa.ui.internal.handlers.MakePersistentHandler.java

License:Open Source License

/**
 * Return a map containing lists of types, keyed by project.
 * <p>// w  ww  .  j  a v  a 2  s.com
 * The action is contributed for:<ul>
 * <li>{@link IType}
 * <li>{@link ICompilationUnit}
 * <li>{@link IPackageFragment}
 * <li>{@link IPackageFragmentRoot} that is a source folder
 * </ul>
 */
private Map<IProject, Set<IType>> buildSelectedTypes(ISelection currentSelection) {
    if (!(currentSelection instanceof StructuredSelection)) {
        return Collections.emptyMap();
    }
    HashMap<IProject, Set<IType>> types = new HashMap<IProject, Set<IType>>();
    for (Object sel : ((StructuredSelection) currentSelection).toList()) {
        switch (((IJavaElement) sel).getElementType()) {
        case IJavaElement.PACKAGE_FRAGMENT_ROOT:
            this.addSelectedTypes((IPackageFragmentRoot) sel, types);
            break;
        case IJavaElement.PACKAGE_FRAGMENT:
            this.addSelectedTypes((IPackageFragment) sel, types);
            break;
        case IJavaElement.COMPILATION_UNIT:
            this.addSelectedTypes((ICompilationUnit) sel, types);
            break;
        case IJavaElement.TYPE:
            this.addSelectedType((IType) sel, types);
            break;
        default:
            break;
        }
    }
    return types;
}

From source file:org.eclipse.jst.common.jdt.internal.integration.ui.WTPUIWorkingCopyManager.java

License:Open Source License

protected IEditorInput getEditorInput(IJavaElement element) throws JavaModelException {
    IJavaElement localElement = element;
    while (localElement != null) {
        switch (localElement.getElementType()) {
        case IJavaElement.COMPILATION_UNIT: {
            ICompilationUnit cu = (ICompilationUnit) localElement;
            if (cu.isWorkingCopy())
                cu = cu.getPrimary();//w  w  w  .ja  va2  s . c  o  m
            IResource resource = cu.getUnderlyingResource();
            if (resource.getType() == IResource.FILE)
                return new FileEditorInput((IFile) resource);
            break;
        }
        case IJavaElement.CLASS_FILE:
            return new InternalClassFileEditorInput((IClassFile) localElement);
        }
        localElement = localElement.getParent();
    }
    return null;
}

From source file:org.eclipse.jst.j2ee.internal.common.operations.JavaModelUtil.java

License:Open Source License

public static boolean isExceptionToBeLogged(CoreException exception) {
    if (!(exception instanceof JavaModelException))
        return true;
    JavaModelException je = (JavaModelException) exception;
    if (!je.isDoesNotExist())
        return true;
    IJavaElement[] elements = je.getJavaModelStatus().getElements();
    for (int i = 0; i < elements.length; i++) {
        IJavaElement element = elements[i];
        // if the element is already a compilation unit don't log
        // does not exist exceptions. See bug 
        // https://bugs.eclipse.org/bugs/show_bug.cgi?id=75894
        // for more details
        if (element.getElementType() == IJavaElement.COMPILATION_UNIT)
            continue;
        ICompilationUnit unit = (ICompilationUnit) element.getAncestor(IJavaElement.COMPILATION_UNIT);
        if (unit == null)
            return true;
        if (!unit.isWorkingCopy())
            return true;
    }/*w ww  . j  a  v a  2s.c o  m*/
    return false;
}

From source file:org.eclipse.jst.j2ee.internal.common.operations.JavaModelUtil.java

License:Open Source License

private static void addAllCus(HashSet/*<ICompilationUnit>*/ collector, IJavaElement javaElement)
        throws JavaModelException {
    switch (javaElement.getElementType()) {
    case IJavaElement.JAVA_PROJECT:
        IJavaProject javaProject = (IJavaProject) javaElement;
        IPackageFragmentRoot[] packageFragmentRoots = javaProject.getPackageFragmentRoots();
        for (int i = 0; i < packageFragmentRoots.length; i++)
            addAllCus(collector, packageFragmentRoots[i]);
        return;/*from   ww w .ja v a  2 s .c o  m*/

    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) javaElement;
        if (packageFragmentRoot.getKind() != IPackageFragmentRoot.K_SOURCE)
            return;
        IJavaElement[] packageFragments = packageFragmentRoot.getChildren();
        for (int j = 0; j < packageFragments.length; j++)
            addAllCus(collector, packageFragments[j]);
        return;

    case IJavaElement.PACKAGE_FRAGMENT:
        IPackageFragment packageFragment = (IPackageFragment) javaElement;
        collector.addAll(Arrays.asList(packageFragment.getCompilationUnits()));
        return;

    case IJavaElement.COMPILATION_UNIT:
        collector.add(javaElement);
        return;

    default:
        IJavaElement cu = javaElement.getAncestor(IJavaElement.COMPILATION_UNIT);
        if (cu != null)
            collector.add(cu);
    }
}

From source file:org.eclipse.jst.j2ee.internal.web.deployables.WebDeployableArtifactUtil.java

License:Open Source License

private static IType[] getTypes(IJavaElement element) {
    try {//from www  .  j a v  a 2  s .  c  o m
        if (element.getElementType() != IJavaElement.COMPILATION_UNIT)
            return null;

        return ((ICompilationUnit) element).getAllTypes();
    } catch (Exception e) {
        return null;
    }
}

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

License:Open Source License

/**
 * @return//from  w ww  . j a  v a2 s. c  o  m
 */
private IPackageFragment getSelectedPackageFragment() {
    IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    if (window == null)
        return null;
    ISelection selection = window.getSelectionService().getSelection();
    if (selection == null)
        return null;
    IJavaElement element = getInitialJavaElement(selection);
    if (element != null) {
        if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
            return (IPackageFragment) element;
        } else if (element.getElementType() == IJavaElement.COMPILATION_UNIT) {
            IJavaElement parent = ((ICompilationUnit) element).getParent();
            if (parent.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                return (IPackageFragment) parent;
            }
        } else if (element.getElementType() == IJavaElement.TYPE) {
            return ((IType) element).getPackageFragment();
        }
    }
    return null;
}

From source file:org.eclipse.jst.jsf.common.internal.types.TypeInfoCache.java

License:Open Source License

/**Removes all cached info that may be affected by the given change.
 * @param delta - the change in the java model
 *//*from  w w w .jav  a 2  s.  c  o m*/
protected void updateChangedJavaElement(IJavaElementDelta delta) {
    IJavaElement element = delta.getElement();
    switch (element.getElementType()) {
    case IJavaElement.JAVA_MODEL:
        updateChangedJavaModel(delta, element);
        break;
    case IJavaElement.JAVA_PROJECT:
        updateChangedJavaProject(delta, element);
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        updateChangedPackageFragmentRoot(delta, element);
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        updateChangedPackageFragment(delta, (IPackageFragment) element);
        break;
    case IJavaElement.CLASS_FILE:
    case IJavaElement.COMPILATION_UNIT:
        updateChangedOpenable(delta, element);
        break;
    }
}

From source file:org.eclipse.jst.jsf.common.ui.internal.utils.JavaModelUtil.java

License:Open Source License

/**
 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=19253
 * //ww w . j a  v a2  s .c  o m
 * Reconciling happens in a separate thread. This can cause a situation
 * where the Java element gets disposed after an exists test has been done.
 * So we should not log not present exceptions when they happen in working
 * copies.
 * @param exception 
 * @return true if filter not present
 */
public static boolean filterNotPresentException(CoreException exception) {
    if (!(exception instanceof JavaModelException)) {
        return true;
    }
    JavaModelException je = (JavaModelException) exception;
    if (!je.isDoesNotExist()) {
        return true;
    }
    IJavaElement[] elements = je.getJavaModelStatus().getElements();
    for (int i = 0; i < elements.length; i++) {
        IJavaElement element = elements[i];
        ICompilationUnit unit = (ICompilationUnit) element.getAncestor(IJavaElement.COMPILATION_UNIT);
        if (unit == null) {
            return true;
        }
        if (!unit.isWorkingCopy()) {
            return true;
        }
    }
    return false;
}