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.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.jav  a2s  . c o  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  a2  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.editor.outline.AJOutlineInformationControl.java

License:Open Source License

/**
 * {@inheritDoc}/*from  www  .ja  v a  2 s. com*/
 */
public void setInput(Object information) {
    if (information == null || information instanceof String) {
        inputChanged(null, null);
        return;
    }
    IJavaElement je = (IJavaElement) information;
    ICompilationUnit cu = (ICompilationUnit) je.getAncestor(IJavaElement.COMPILATION_UNIT);
    if (cu != null)
        fInput = cu;
    else
        fInput = je.getAncestor(IJavaElement.CLASS_FILE);

    inputChanged(fInput, information);
}

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

License:Open Source License

/**
* creates new markers for an entire project
*//* w  w  w .j  ava2s  .c o  m*/
private void addMarkersForProject(IProgressMonitor monitor) {
    if (!model.hasModel()) {
        return;
    }
    try {
        IJavaProject jProject = JavaCore.create(project);
        IPackageFragmentRoot[] fragRoots = jProject.getPackageFragmentRoots();
        SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, fragRoots.length);
        subMonitor.beginTask("Add markers for " + project.getName(), fragRoots.length);
        for (int i = 0; i < fragRoots.length; i++) {
            if (fragRoots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
                IJavaElement[] frags = fragRoots[i].getChildren();
                for (int j = 0; j < frags.length; j++) {
                    Set<String> completedCUNames = new HashSet<String>(frags.length, 1.0f);
                    IJavaElement[] cus = ((IPackageFragment) frags[j]).getChildren();
                    for (int k = 0; k < cus.length; k++) {
                        // ignore any class files in the source folder (Bug 258698)
                        if (cus[k].getElementType() == IJavaElement.COMPILATION_UNIT) {
                            // ignore duplicate compilation units
                            IResource resource = cus[k].getResource();
                            if (!completedCUNames.contains(resource.getName())) {
                                subMonitor.subTask("Add markers for " + cus[k].getElementName());
                                addMarkersForFile((ICompilationUnit) cus[k],
                                        ((ICompilationUnit) cus[k]).getResource());
                                completedCUNames.add(resource.getName());
                                fileCount++;
                            }
                            if (subMonitor.isCanceled()) {
                                throw new OperationCanceledException();
                            }
                        }
                    }
                }
                subMonitor.worked(1);
            }
        }
    } catch (JavaModelException e) {
    }

}

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

License:Open Source License

/**
 * Lightweight rename refactoring is often broken inside of {@link AJCompilationUnit}s, 
 * so just disable it.//  ww w . j a  v a  2  s.co  m
 * @param elt
 * @return true if the element is inside an {@link AJCompilationUnit}
 */
public boolean belongsToInterestingCompilationUnit(IJavaElement elt) {
    return elt.getAncestor(IJavaElement.COMPILATION_UNIT) instanceof AJCompilationUnit;
}

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

License:Open Source License

private boolean isInTopLevelType(IMember member) {
    IJavaElement parent = member.getParent();
    Assert.isTrue(parent.getElementType() == IJavaElement.TYPE);
    return parent.getParent().getElementType() == IJavaElement.COMPILATION_UNIT;
}

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

License:Open Source License

private static RefactoringStatusContext makeContext(SearchMatch match) {
    try {//from   w  ww. j a  va  2 s  .  co  m
        IJavaElement element = (IJavaElement) match.getElement();
        ITypeRoot typeRoot = (ITypeRoot) element.getAncestor(IJavaElement.COMPILATION_UNIT);
        if (typeRoot == null) {
            typeRoot = (ITypeRoot) element.getAncestor(IJavaElement.CLASS_FILE);
        }
        ISourceRange range = new SourceRange(match.getOffset(), match.getLength());
        return JavaStatusContext.create(typeRoot, range);
    } catch (Throwable e) {
        return null;
    }
}

From source file:org.eclipse.ajdt.internal.ui.visualiser.AJDTContentProvider.java

License:Open Source License

/**
 * Get the data for the current selection.
 * //from  w  w  w  .  j a  v  a 2s. c  o m
 * @param members -
 *            add members to the List being returned if true, otherwise add
 *            groups
 * @return data
 */
private void updateData() {

    if (ProviderManager.getMarkupProvider() instanceof AJDTMarkupProvider) {
        ((AJDTMarkupProvider) ProviderManager.getMarkupProvider()).resetMarkupsAndKinds();
    }
    long stime = System.currentTimeMillis();
    List<IGroup> newGroups = new ArrayList<IGroup>();
    List<IMember> newMembers = new ArrayList<IMember>();
    if (currentProject != null) {

        try {
            if (currentlySelectedJE.getElementType() == IJavaElement.JAVA_PROJECT) {
                // Process contents of a Java project
                IPackageFragment[] packageFragments = ((IJavaProject) currentlySelectedJE)
                        .getPackageFragments();
                for (int i = 0; i < packageFragments.length; i++) {
                    if (!(packageFragments[i].isReadOnly())) {
                        addMembersAndGroups(newGroups, newMembers, packageFragments[i]);
                    }
                }
            } else if (currentlySelectedJE.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                // Process contents of a Java package(fragment)
                IPackageFragment packageFragment = (IPackageFragment) currentlySelectedJE;
                addMembersAndGroups(newGroups, newMembers, packageFragment);
            } else if (currentlySelectedJE.getElementType() == IJavaElement.COMPILATION_UNIT) {
                // Process individually selected compilation units
                JDTMember member = null;

                if (getIncludedFiles(currentProject.getProject()).contains(currentlySelectedJE.getResource())) {
                    String memberName = currentlySelectedJE.getElementName();
                    if (memberName.endsWith(".java")) { //$NON-NLS-1$
                        memberName = memberName.substring(0, memberName.length() - 5);
                    } else if (memberName.endsWith(".aj")) { //$NON-NLS-1$
                        memberName = memberName.substring(0, memberName.length() - 3);
                    }
                    member = new JDTMember(memberName, currentlySelectedJE);
                    member.setSize(getLength((ICompilationUnit) currentlySelectedJE));
                    newMembers.add(member);
                }
                if (member != null) {
                    IPackageFragment packageFrag = (IPackageFragment) ((ICompilationUnit) currentlySelectedJE)
                            .getParent();
                    boolean defaultPackage = packageFrag.isDefaultPackage();
                    // ?!? Need to confirm a group for the pkg frag is OK in
                    // the case of a selection like thiss
                    IGroup group = new JDTGroup(packageFrag.getElementName());
                    if (defaultPackage) {
                        group.setName("(default package)"); //$NON-NLS-1$
                        group.setTooltip("(default package)"); //$NON-NLS-1$
                    }
                    if (defaultPackage) {
                        member.setFullName(member.getName());
                    }
                    group.add(member);
                    newGroups.add(group);
                }
            }

        } catch (JavaModelException jme) {
        }
        long etime = System.currentTimeMillis();

        AJLog.log("AJDTContentProvider.updateData() executed - took " + (etime - stime) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
    }
    currentMembers = newMembers;
    currentGroups = newGroups;
}

From source file:org.eclipse.ajdt.internal.ui.visualiser.AJDTContentProvider.java

License:Open Source License

/**
 * Get all JDT members for the given IPackageFragment (Java package)
 * /* ww w  .j  a v a  2  s.c  o m*/
 * @param packageFragment
 * @return List of JDTMembers
 */
public List<IMember> getMembersForPackage(IPackageFragment packageFragment) {
    List<IMember> returningClasses = new ArrayList<IMember>();
    try {
        if (containsUsefulStuff(packageFragment)) {
            IJavaElement[] javaElements = packageFragment.getChildren();
            for (int j = 0; j < javaElements.length; j++) {
                if (javaElements[j].getElementType() == IJavaElement.COMPILATION_UNIT) {
                    if (getIncludedFiles(packageFragment.getJavaProject().getProject())
                            .contains(javaElements[j].getResource())) {

                        // Bug 157776: Filter out duplicate compilation units here, not in calling methods
                        if (!IsWovenTester.isWeavingActive() && !(javaElements[j] instanceof AJCompilationUnit)
                                && javaElements[j].getElementName() != null
                                && javaElements[j].getElementName().endsWith(".aj")) { //$NON-NLS-1$
                            // Do nothing
                        } else {
                            String memberName = javaElements[j].getElementName();
                            if (!shouldIgnore(memberName)) {
                                if (memberName.endsWith(".java")) { //$NON-NLS-1$
                                    memberName = memberName.substring(0, memberName.length() - 5);
                                } else if (memberName.endsWith(".aj")) { //$NON-NLS-1$
                                    memberName = memberName.substring(0, memberName.length() - 3);
                                }
                                JDTMember member = new JDTMember(memberName, javaElements[j]);
                                member.setSize(getLength((ICompilationUnit) javaElements[j]));

                                returningClasses.add(member);
                            }
                        }
                    }
                }
            }
        }
    } catch (JavaModelException jme) {
    }
    return returningClasses;
}

From source file:org.eclipse.ajdt.internal.ui.visualiser.AJDTMarkupProvider.java

License:Open Source License

private void updateModel() {
    if (ProviderManager.getContentProvider() instanceof AJDTContentProvider) {
        IJavaProject jp = ((AJDTContentProvider) ProviderManager.getContentProvider()).getCurrentProject();
        if (jp != null) {
            AJProjectModelFacade model = AJProjectModelFactory.getInstance()
                    .getModelForProject(jp.getProject());

            Collection<IRelationship> allRelationships = model
                    .getRelationshipsForProject(new AJRelationshipType[] { AJRelationshipManager.ADVISED_BY,
                            AJRelationshipManager.ANNOTATED_BY, AJRelationshipManager.ASPECT_DECLARATIONS,
                            AJRelationshipManager.MATCHES_DECLARE });
            if (allRelationships != null) {
                for (IRelationship relationship : allRelationships) {
                    List<IMarkupKind> kinds = new ArrayList<IMarkupKind>();
                    IProgramElement sourceIpe = model.getProgramElement(relationship.getSourceHandle());
                    if (sourceIpe != null) {
                        List<String> targets = relationship.getTargets();
                        for (String targetStr : targets) {
                            IJavaElement target = model.programElementToJavaElement(targetStr);
                            String simpleName;
                            String qualifiedName;

                            if (!(target instanceof IAJCodeElement)) {
                                IJavaElement enclosingType = target.getAncestor(IJavaElement.TYPE);
                                if (enclosingType == null) {
                                    // Bug 324706  I don't know why the sloc is null.  Log the bug and
                                    // continue on.
                                    VisualiserPlugin.log(IStatus.WARNING,
                                            "Bug 324706: null containing type found for "
                                                    + target.getElementName() + "\nHandle identifier is: "
                                                    + target.getHandleIdentifier());
                                    // avoid an npe
                                    continue;
                                }// w ww  .j  a  v a 2  s  .c  o  m

                                simpleName = enclosingType.getElementName();
                                qualifiedName = ((IType) enclosingType).getFullyQualifiedName('.');

                            } else { // It's an injar aspect so we wno't be able to find the parents
                                qualifiedName = target.getElementName();
                                String[] parts = qualifiedName.split(" "); //$NON-NLS-1$
                                String aNameWithExtension = parts[parts.length - 1];
                                if (aNameWithExtension.indexOf('.') != -1) { // $NON-NLS-1$
                                    simpleName = aNameWithExtension.substring(0,
                                            aNameWithExtension.lastIndexOf('.')); // $NON-NLS-1$
                                } else {
                                    simpleName = aNameWithExtension;
                                }
                            }

                            if (sourceIpe.getSourceLocation() == null) {
                                // Bug 324706  I don't know why the sloc is null.  Log the bug and
                                // continue on.
                                VisualiserPlugin.log(IStatus.WARNING,
                                        "Bug 324706: Warning, null source location found in "
                                                + sourceIpe.getName() + "\nHandle identifier is: "
                                                + sourceIpe.getHandleIdentifier());
                                // avoid an npe
                                continue;
                            }

                            int lineNum = sourceIpe.getSourceLocation().getLine();
                            IJavaElement sourceJe = model
                                    .programElementToJavaElement(relationship.getSourceHandle());
                            if (sourceJe != null) {
                                IJavaElement compilationUnitAncestor = sourceJe
                                        .getAncestor(IJavaElement.COMPILATION_UNIT);
                                if (compilationUnitAncestor != null) {
                                    String memberName = compilationUnitAncestor.getElementName();
                                    memberName = memberName.substring(0, memberName.lastIndexOf(".")); //$NON-NLS-1$
                                    String packageName = sourceJe.getAncestor(IJavaElement.PACKAGE_FRAGMENT)
                                            .getElementName();
                                    if (!(packageName.equals(""))) { //$NON-NLS-1$
                                        memberName = packageName + "." + memberName; //$NON-NLS-1$
                                    }
                                    IMarkupKind markupKind = null;
                                    if (kindMap == null) {
                                        kindMap = new HashMap<String, IMarkupKind>();
                                    }
                                    if (relationship.getName()
                                            .equals(AJRelationshipManager.MATCHES_DECLARE.getDisplayName())) {
                                        String sourceName = target.getElementName();
                                        boolean errorKind = sourceName.startsWith(aspectJErrorKind);
                                        if (kindMap.get(
                                                sourceName + ":::" + qualifiedName) instanceof IMarkupKind) { //$NON-NLS-1$
                                            markupKind = kindMap.get(sourceName + ":::" + qualifiedName); //$NON-NLS-1$
                                        } else {
                                            markupKind = new ErrorOrWarningMarkupKind(
                                                    sourceName + ":::" + simpleName, errorKind); //$NON-NLS-1$
                                            kindMap.put(sourceName + ":::" + qualifiedName, markupKind); //$NON-NLS-1$
                                        }
                                    } else {
                                        if (kindMap.get(qualifiedName) instanceof IMarkupKind) {
                                            markupKind = kindMap.get(qualifiedName);
                                        } else {
                                            markupKind = new SimpleMarkupKind(simpleName, qualifiedName);
                                            kindMap.put(qualifiedName, markupKind);
                                        }
                                    }
                                    kinds.add(markupKind);
                                    Stripe stripe = new Stripe(kinds, lineNum, 1);
                                    addMarkup(memberName, stripe);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    processMarkups();
}