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

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

Introduction

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

Prototype

int PACKAGE_FRAGMENT

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

Click Source Link

Document

Constant representing a package fragment.

Usage

From source file:org.eclipse.pde.api.tools.ui.internal.wizards.CompareOperation.java

License:Open Source License

/**
 * @param structuredSelection/*from   ww  w . j a va  2 s. com*/
 * @param monitor
 * @return the scope
 */
public static ApiScope walkStructureSelection(IStructuredSelection structuredSelection,
        IProgressMonitor monitor) {
    Object[] selected = structuredSelection.toArray();
    ApiScope scope = new ApiScope();
    IApiBaseline workspaceBaseline = ApiBaselineManager.getManager().getWorkspaceBaseline();
    if (workspaceBaseline == null) {
        return scope;
    }
    Arrays.sort(selected, new Comparator<Object>() {
        @Override
        public int compare(Object o1, Object o2) {
            if (o1 instanceof IJavaElement && o2 instanceof IJavaElement) {
                IJavaElement element = (IJavaElement) o1;
                IJavaElement element2 = (IJavaElement) o2;
                return element.getElementType() - element2.getElementType();
            }
            return 0;
        }
    });
    int length = selected.length;
    for (int i = 0; i < length; i++) {
        Object currentSelection = selected[i];
        if (currentSelection instanceof IJavaElement) {
            IJavaElement element = (IJavaElement) currentSelection;
            IJavaProject javaProject = element.getJavaProject();
            try {
                switch (element.getElementType()) {
                case IJavaElement.COMPILATION_UNIT: {
                    ICompilationUnit compilationUnit = (ICompilationUnit) element;
                    IApiComponent apiComponent = workspaceBaseline
                            .getApiComponent(javaProject.getElementName());
                    if (apiComponent != null) {
                        addElementFor(compilationUnit, apiComponent, scope);
                    }
                    break;
                }
                case IJavaElement.PACKAGE_FRAGMENT: {
                    IPackageFragment fragment = (IPackageFragment) element;
                    IApiComponent apiComponent = workspaceBaseline
                            .getApiComponent(javaProject.getElementName());
                    IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) fragment
                            .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
                    boolean isArchive = false;
                    if (packageFragmentRoot != null) {
                        isArchive = packageFragmentRoot.isArchive();
                    }
                    if (apiComponent != null) {
                        addElementFor(fragment, isArchive, apiComponent, scope);
                    }
                    break;
                }
                case IJavaElement.PACKAGE_FRAGMENT_ROOT: {
                    IPackageFragmentRoot fragmentRoot = (IPackageFragmentRoot) element;
                    IApiComponent apiComponent = workspaceBaseline
                            .getApiComponent(javaProject.getElementName());
                    if (apiComponent != null) {
                        addElementFor(fragmentRoot, apiComponent, scope);
                    }
                    break;
                }
                case IJavaElement.JAVA_PROJECT:
                    IApiComponent apiComponent = workspaceBaseline
                            .getApiComponent(javaProject.getElementName());
                    if (apiComponent != null) {
                        scope.addElement(apiComponent);
                    }
                    break;
                default:
                    break;
                }
            } catch (JavaModelException e) {
                ApiPlugin.log(e);
            } catch (CoreException e) {
                ApiPlugin.log(e);
            }
        }
    }
    return scope;
}

From source file:org.eclipse.pde.ds.internal.annotations.ComponentRefactoringHelper.java

License:Open Source License

public RefactoringStatus checkConditions(IProgressMonitor monitor, CheckConditionsContext context)
        throws OperationCanceledException {
    SubMonitor progress = SubMonitor.convert(monitor,
            Messages.ComponentRefactoringHelper_checkConditionsTaskLabel, elements.size());
    try {/*from  w  w  w  .  j  a  v  a  2 s  .c om*/
        modelFiles = new HashMap<>(elements.size());
        componentNames = new HashMap<>(elements.size());
        renames = new HashMap<>(elements.size());
        HashMap<IJavaProject, ProjectState> states = new HashMap<>();
        HashSet<IJavaProject> unmanaged = new HashSet<>();

        ResourceChangeChecker checker = (ResourceChangeChecker) context.getChecker(ResourceChangeChecker.class);
        IResourceChangeDescriptionFactory deltaFactory = checker.getDeltaFactory();
        for (Map.Entry<Object, RefactoringArguments> entry : elements.entrySet()) {
            if (progress.isCanceled())
                throw new OperationCanceledException();

            progress.worked(1);

            RefactoringArguments args = entry.getValue();
            if (!getUpdateReferences(args))
                continue;

            IJavaElement element = (IJavaElement) entry.getKey();
            IJavaProject javaProject = element.getJavaProject();
            if (unmanaged.contains(javaProject))
                continue;

            ProjectState state = states.get(javaProject);
            if (state == null) {
                state = DSAnnotationCompilationParticipant.getState(javaProject);
            }

            if (state == null) {
                unmanaged.add(javaProject);
                continue;
            }

            states.put(javaProject, state);

            if (element.getElementType() == IJavaElement.TYPE)
                createRenames((IType) element, args, state, deltaFactory);
            else if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT)
                createRenames((IPackageFragment) element, args, state, deltaFactory);
        }

        return new RefactoringStatus();
    } catch (JavaModelException e) {
        // TODO double-check!
        return RefactoringStatus.create(e.getStatus());
    }
}

From source file:org.eclipse.pde.ds.internal.annotations.ComponentRefactoringHelper.java

License:Open Source License

public Change createChange(IProgressMonitor monitor) throws CoreException, OperationCanceledException {
    SubMonitor progress = SubMonitor.convert(monitor, Messages.ComponentRefactoringHelper_createChangeTaskLabel,
            elements.size());/*from  ww  w. ja va2 s. com*/
    CompositeChange compositeChange = new CompositeChange(
            Messages.ComponentRefactoringHelper_topLevelChangeLabel);

    for (Map.Entry<Object, RefactoringArguments> entry : elements.entrySet()) {
        if (progress.isCanceled())
            throw new OperationCanceledException();

        progress.worked(1);

        RefactoringArguments args = entry.getValue();
        if (!getUpdateReferences(args))
            continue;

        IJavaElement element = (IJavaElement) entry.getKey();
        if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT)
            collectChanges((IPackageFragment) element, compositeChange);
        else if (element.getElementType() == IJavaElement.TYPE)
            collectChanges((IType) element, compositeChange);
    }

    return compositeChange;
}

From source file:org.eclipse.pde.ds.internal.annotations.ComponentRenameParticipant.java

License:Open Source License

public String getComponentNameRoot(IJavaElement element, RefactoringArguments args) {
    String newName = ((RenameArguments) args).getNewName();
    if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
        return newName;
    }// ww  w. j  a va  2 s .  com

    IType type = (IType) element;
    String compName;
    IType container = type.getDeclaringType();
    if (container == null) {
        compName = String.format("%s.%s", type.getPackageFragment().getElementName(), newName); //$NON-NLS-1$
    } else {
        compName = container.getType(newName).getFullyQualifiedName();
    }

    return compName;
}

From source file:org.eclipse.pde.internal.ui.correction.java.QuickFixProcessor.java

License:Open Source License

private void handleAccessRestrictionProblem(IInvocationContext context, IProblemLocation location,
        AbstractClassResolutionCollector collector) {
    IBinding referencedElement = null;/*from  w  w w  .  j av a 2 s . c o m*/
    ASTNode node = location.getCoveredNode(context.getASTRoot());
    if (node instanceof Type) {
        referencedElement = ((Type) node).resolveBinding();
    } else if (node instanceof Name) {
        referencedElement = ((Name) node).resolveBinding();
    } else if (node instanceof MethodInvocation) {
        IMethodBinding tempMethod = ((MethodInvocation) node).resolveMethodBinding();
        if (tempMethod != null) {
            referencedElement = tempMethod.getDeclaringClass();
        }
    } else if (node instanceof FieldAccess) {
        IVariableBinding tempVariable = ((FieldAccess) node).resolveFieldBinding();
        if (tempVariable != null) {
            referencedElement = tempVariable.getDeclaringClass();
        }
    }
    if (referencedElement != null) {
        // get the project that contains the reference element
        // ensure it exists in the workspace and is a plug-in project
        IJavaProject referencedJavaProject = referencedElement.getJavaElement().getJavaProject();
        if (referencedJavaProject != null
                && WorkspaceModelManager.isPluginProject(referencedJavaProject.getProject())) {
            IPackageFragment referencedPackage = (IPackageFragment) referencedElement.getJavaElement()
                    .getAncestor(IJavaElement.PACKAGE_FRAGMENT);
            IJavaProject currentProject = context.getCompilationUnit().getJavaProject();
            // only find proposals for Plug-in projects
            if (!WorkspaceModelManager.isPluginProject(currentProject.getProject()))
                return;
            // get the packages exported by the referenced plug-in project
            if (!referencedJavaProject.equals(currentProject)) {
                IPluginModelBase referencedModel = PluginRegistry.findModel(referencedJavaProject.getProject());
                ExportPackageDescription[] exportPackages = referencedModel.getBundleDescription()
                        .getExportPackages();
                // check if the required package is exported already
                boolean packageExported = false;
                if (referencedPackage != null) {
                    for (ExportPackageDescription exportPackage : exportPackages) {
                        if (exportPackage.getName().equals(referencedPackage.getElementName())) {
                            packageExported = true;
                            // check to see if access restriction is caused by Import-Package
                            handleAccessRestrictionByImportPackage(
                                    context.getCompilationUnit().getJavaProject().getProject(), exportPackage,
                                    collector);
                            break;
                        }
                    }
                    // if the package is not exported, add the quickfix
                    if (!packageExported) {
                        collector.addExportPackageResolutionModification(referencedPackage);
                    }
                }
            } else {
                handleAccessRestrictionByImportPackage(referencedPackage, collector);
            }
        }
    }
}

From source file:org.eclipse.pde.internal.ui.search.ClassSearchParticipant.java

License:Open Source License

public void search(ISearchRequestor requestor, QuerySpecification querySpecification, IProgressMonitor monitor)
        throws CoreException {

    if (querySpecification.getLimitTo() != S_LIMIT_REF && querySpecification.getLimitTo() != S_LIMIT_ALL)
        return;//from  w  ww.  ja  va 2  s. com

    String search;
    if (querySpecification instanceof ElementQuerySpecification) {
        IJavaElement element = ((ElementQuerySpecification) querySpecification).getElement();
        if (element instanceof IType)
            search = ((IType) element).getFullyQualifiedName('.');
        else
            search = element.getElementName();
        int type = element.getElementType();
        if (type == IJavaElement.TYPE)
            fSearchFor = S_FOR_TYPES;
        else if (type == IJavaElement.PACKAGE_FRAGMENT || type == IJavaElement.PACKAGE_FRAGMENT_ROOT)
            fSearchFor = S_FOR_PACKAGES;
    } else {
        fSearchFor = ((PatternQuerySpecification) querySpecification).getSearchFor();
        search = ((PatternQuerySpecification) querySpecification).getPattern();
    }
    if (fSearchFor != S_FOR_TYPES && fSearchFor != S_FOR_PACKAGES)
        return;
    fSearchPattern = PatternConstructor.createPattern(search, true);
    fSearchRequestor = requestor;

    IPath[] enclosingPaths = querySpecification.getScope().enclosingProjectsAndJars();
    IPluginModelBase[] pluginModels = PluginRegistry.getWorkspaceModels();
    monitor.beginTask(PDEUIMessages.ClassSearchParticipant_taskMessage, pluginModels.length);
    for (int i = 0; i < pluginModels.length; i++) {
        IProject project = pluginModels[i].getUnderlyingResource().getProject();
        if (!monitor.isCanceled() && encloses(enclosingPaths, project.getFullPath()))
            searchProject(project, monitor);
    }
}

From source file:org.eclipse.recommenders.internal.apidocs.rcp.ApidocsView.java

License:Open Source License

private void addCurrentSelectionHeader() {
    final IJavaElement element = activeSelection.getElement();
    final String text;
    switch (element.getElementType()) {
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
    case IJavaElement.PACKAGE_FRAGMENT:
        text = element.getElementName();
        break;//ww w.  ja va 2 s  .c o  m
    case IJavaElement.LOCAL_VARIABLE:
        text = JavaElementLabels.getElementLabel(element,
                JavaElementLabels.F_PRE_TYPE_SIGNATURE | JavaElementLabels.F_POST_QUALIFIED);
        break;
    default:
        text = JavaElementLabels.getElementLabel(element, LABEL_FLAGS);
        break;
    }
    Composite header = new Composite(content, SWT.NONE);
    ApidocsViewUtils.setInfoBackgroundColor(header);
    header.setLayout(new GridLayout(2, false));

    Label img = new Label(header, SWT.NONE);
    img.setImage(labelProvider.getImage(element));
    setInfoForegroundColor(img);
    setInfoBackgroundColor(img);

    Label name = createLabel(header, text, true);
    name.setFont(JFaceResources.getHeaderFont());
}

From source file:org.eclipse.recommenders.internal.apidocs.rcp.StaticHooksProvider.java

License:Open Source License

@JavaSelectionSubscriber
public void onPackageRootSelection(final IPackageFragmentRoot root, final JavaElementSelectionEvent event,
        final Composite parent) throws ExecutionException {

    final TreeMultimap<IType, IMethod> index = TreeMultimap.create(new TypeNameComparator(),
            new MethodNameComparator());
    try {//from w  w w  .j a va  2  s  .com
        for (final IJavaElement e : root.getChildren()) {
            if (e.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                final IPackageFragment pkg = (IPackageFragment) e;
                findStaticHooks(pkg, index);
                pkg.close();
            }
        }
    } catch (final Exception x) {
        log(ERROR_FAILED_TO_DETERMINE_STATIC_MEMBERS, x, root.getElementName());
    }
    runSyncInUiThread(new HooksRendererRunnable(index, parent));
}

From source file:org.eclipse.recommenders.internal.apidocs.rcp.StaticHooksProvider.java

License:Open Source License

@JavaSelectionSubscriber
public void onJavaElementSelection(final IJavaElement e, final JavaElementSelectionEvent event,
        final Composite parent) throws ExecutionException {
    IPackageFragment pkg = (IPackageFragment) e.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
    if (pkg != null) {
        onPackageSelection(pkg, event, parent);
    }/*from  ww  w .  j a v  a  2s  .c om*/
}

From source file:org.eclipse.recommenders.internal.rcp.JavaElementSelections.java

License:Open Source License

public static JavaElementSelectionLocation resolveSelectionLocationFromJavaElement(final IJavaElement element) {
    ensureIsNotNull(element);/*from   w w w . java  2s.c  om*/

    switch (element.getElementType()) {
    case IJavaElement.CLASS_FILE:
    case IJavaElement.COMPILATION_UNIT:
    case IJavaElement.PACKAGE_DECLARATION:
    case IJavaElement.IMPORT_DECLARATION:
    case IJavaElement.IMPORT_CONTAINER:
    case IJavaElement.TYPE:
        return TYPE_DECLARATION;
    case IJavaElement.METHOD:
    case IJavaElement.INITIALIZER:
        return METHOD_DECLARATION;
    case IJavaElement.FIELD:
        return FIELD_DECLARATION;
    case IJavaElement.LOCAL_VARIABLE:
        // shouldn't happen in a viewer selection, right?
        return METHOD_BODY;
    case IJavaElement.JAVA_MODEL:
    case IJavaElement.PACKAGE_FRAGMENT:
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
    case IJavaElement.ANNOTATION:
    default:
        return JavaElementSelectionLocation.UNKNOWN;
    }
}