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

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

Introduction

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

Prototype

int PACKAGE_FRAGMENT_ROOT

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

Click Source Link

Document

Constant representing a package fragment root.

Usage

From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.TypeParameterPattern.java

License:Open Source License

public void findIndexMatches(Index index, IndexQueryRequestor requestor, SearchParticipant participant,
        IJavaSearchScope scope, IProgressMonitor progressMonitor) {
    IPackageFragmentRoot root = (IPackageFragmentRoot) this.typeParameter
            .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
    String documentPath;//from   w w w  .  j av  a 2 s.c  o m
    String relativePath;
    if (root.isArchive()) {
        IType type = (IType) this.typeParameter.getAncestor(IJavaElement.TYPE);
        relativePath = (type.getFullyQualifiedName('$')).replace('.', '/')
                + SuffixConstants.SUFFIX_STRING_class;
        documentPath = root.getPath() + IJavaSearchScope.JAR_FILE_ENTRY_SEPARATOR + relativePath;
    } else {
        IPath path = this.typeParameter.getPath();
        documentPath = path.toString();
        relativePath = Util.relativePath(path, 1/*remove project segment*/);
    }

    if (scope instanceof JavaSearchScope) {
        JavaSearchScope javaSearchScope = (JavaSearchScope) scope;
        // Get document path access restriction from java search scope
        // Note that requestor has to verify if needed whether the document violates the access restriction or not
        AccessRuleSet access = javaSearchScope.getAccessRuleSet(relativePath, index.containerPath);
        if (access != JavaSearchScope.NOT_ENCLOSED) { // scope encloses the path
            if (!requestor.acceptIndexMatch(documentPath, this, participant, access))
                throw new OperationCanceledException();
        }
    } else if (scope.encloses(documentPath)) {
        if (!requestor.acceptIndexMatch(documentPath, this, participant, null))
            throw new OperationCanceledException();
    }
}

From source file:com.codenvy.ide.ext.java.server.internal.core.SearchableEnvironmentRequestor.java

License:Open Source License

/**
 * @see org.eclipse.jdt.internal.core.IJavaElementRequestor
 *///from  www  .j  av  a2 s.c  o m
public void acceptType(IType type) {
    try {
        if (this.unitToSkip != null && this.unitToSkip.equals(type.getCompilationUnit())) {
            return;
        }
        char[] packageName = type.getPackageFragment().getElementName().toCharArray();
        boolean isBinary = type instanceof BinaryType;

        // determine associated access restriction
        AccessRestriction accessRestriction = null;

        if (this.checkAccessRestrictions && (isBinary || !type.getJavaProject().equals(this.project))) {
            PackageFragmentRoot root = (PackageFragmentRoot) type
                    .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
            ClasspathEntry entry = (ClasspathEntry) this.nameLookup.rootToResolvedEntries.get(root);
            if (entry != null) { // reverse map always contains resolved CP entry
                AccessRuleSet accessRuleSet = entry.getAccessRuleSet();
                if (accessRuleSet != null) {
                    // TODO (philippe) improve char[] <-> String conversions to avoid performing them on the fly
                    char[][] packageChars = CharOperation.splitOn('.', packageName);
                    char[] fileWithoutExtension = type.getElementName().toCharArray();
                    accessRestriction = accessRuleSet.getViolatedRestriction(
                            CharOperation.concatWith(packageChars, fileWithoutExtension, '/'));
                }
            }
        }
        this.requestor.acceptType(packageName, type.getElementName().toCharArray(), null, type.getFlags(),
                accessRestriction);
    } catch (JavaModelException jme) {
        // ignore
    }
}

From source file:com.codenvy.ide.ext.java.server.internal.core.util.Util.java

License:Open Source License

public static final boolean isExcluded(IJavaElement element) {
    int elementType = element.getElementType();
    switch (elementType) {
    case IJavaElement.JAVA_MODEL:
    case IJavaElement.JAVA_PROJECT:
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        return false;

    case IJavaElement.PACKAGE_FRAGMENT:
        PackageFragmentRoot root = (PackageFragmentRoot) element
                .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
        File resource = ((PackageFragment) element).resource();
        return resource != null
                && isExcluded(resource, root.fullInclusionPatternChars(), root.fullExclusionPatternChars());

    case IJavaElement.COMPILATION_UNIT:
        root = (PackageFragmentRoot) element.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
        resource = ((CompilationUnit) element).resource();
        if (resource == null)
            return false;
        if (isExcluded(resource, root.fullInclusionPatternChars(), root.fullExclusionPatternChars()))
            return true;
        return isExcluded(element.getParent());

    default://from ww w  . j  a v a2  s. c  o m
        IJavaElement cu = element.getAncestor(IJavaElement.COMPILATION_UNIT);
        return cu != null && isExcluded(cu);
    }
}

From source file:com.codenvy.ide.ext.java.server.JavadocFinder.java

License:Open Source License

private String getJavadoc(IMember element) {
    StringBuffer buffer = new StringBuffer();
    boolean hasContents = false;
    if (element instanceof IPackageFragment || element instanceof IMember) {
        HTMLPrinter.addSmallHeader(buffer, getInfoText(element, element.getTypeRoot(), true));
        buffer.append("<br>"); //$NON-NLS-1$
        addAnnotations(buffer, element, element.getTypeRoot(), null);
        Reader reader = null;//w  w w  .j  a  va2s. c  o  m
        try {
            String content = element instanceof IMember
                    ? JavadocContentAccess2.getHTMLContent(element, true, baseHref)
                    : null;//JavadocContentAccess2.getHTMLContent((IPackageFragment)element);
            IPackageFragmentRoot root = (IPackageFragmentRoot) element
                    .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
            //                boolean isBinary = root.exists() && root.getKind() == IPackageFragmentRoot.K_BINARY;
            if (content != null) {
                //                base= JavaDocLocations.getBaseURL(element, isBinary);
                reader = new StringReader(content);
            } else {
                String explanationForMissingJavadoc = JavaDocLocations.getExplanationForMissingJavadoc(element,
                        root);
                if (explanationForMissingJavadoc != null)
                    reader = new StringReader(explanationForMissingJavadoc);
            }
        } catch (CoreException ex) {
            reader = new StringReader(JavaDocLocations.handleFailedJavadocFetch(ex));
        }

        if (reader != null) {
            HTMLPrinter.addParagraph(buffer, reader);
        }
        hasContents = true;
    }

    if (!hasContents)
        return null;

    if (buffer.length() > 0) {
        //todo use url for css
        HTMLPrinter.insertPageProlog(buffer, 0, getStyleSheet());
        //            if (base != null) {
        //                int endHeadIdx= buffer.indexOf("</head>"); //$NON-NLS-1$
        //                buffer.insert(endHeadIdx, "\n<base href='" + base + "'>\n"); //$NON-NLS-1$ //$NON-NLS-2$
        //            }
        HTMLPrinter.addPageEpilog(buffer);
        return buffer.toString();
    }

    return null;
}

From source file:com.drgarbage.bytecodevisualizer.editors.NoSourceViewer.java

License:Apache License

/**
 * Returns the package fragment root of this file.
 * /*from w  w  w .j  a  v a2  s .c  o  m*/
 * @param file the class file 
 * @return the package fragment root of the given class file
 */
private IPackageFragmentRoot getPackageFragmentRoot(IClassFile file) {

    IJavaElement element = file.getParent();
    while (element != null && element.getElementType() != IJavaElement.PACKAGE_FRAGMENT_ROOT)
        element = element.getParent();

    return (IPackageFragmentRoot) element;
}

From source file:com.ebmwebsourcing.petals.common.internal.provisional.ui.jdt.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;
    }//from w w  w .ja  v  a2s .  c om
    return (this.fFilterContainers && !isContainer) || (!this.fFilterContainers && isContainer);
}

From source file:com.google.appengine.eclipse.core.validators.java.GaeChecker.java

License:Open Source License

private static IPackageFragmentRoot getPackageFragmentRoot(IJavaElement element) {
    return (IPackageFragmentRoot) element.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
}

From source file:com.google.gdt.eclipse.core.ClasspathUtilities.java

License:Open Source License

/**
 * Return the raw classpath entry on the project's classpath that contributes
 * the given type to the project.//www.j  a  va2 s.c  o m
 * 
 * @param javaProject The java project
 * @param fullyQualifiedName The fully-qualified type name
 * @return The raw classpath entry that contributes the type to the project,
 *         or <code>null</code> if no such classpath entry can be found.
 * @throws JavaModelException
 */
public static IClasspathEntry findRawClasspathEntryFor(IJavaProject javaProject, String fullyQualifiedName)
        throws JavaModelException {
    IType type = javaProject.findType(fullyQualifiedName);
    if (type != null) {
        IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) type
                .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);

        JavaProject jProject = (JavaProject) javaProject;

        IClasspathEntry[] rawClasspath = javaProject.getRawClasspath();
        for (IClasspathEntry rawClasspathEntry : rawClasspath) {
            IClasspathEntry[] resolvedClasspath = jProject
                    .resolveClasspath(new IClasspathEntry[] { rawClasspathEntry });
            IPackageFragmentRoot[] computePackageFragmentRoots = jProject
                    .computePackageFragmentRoots(resolvedClasspath, true, null);
            if (Arrays.asList(computePackageFragmentRoots).contains(packageFragmentRoot)) {
                return rawClasspathEntry;
            }
        }

        return packageFragmentRoot.getRawClasspathEntry();
    }

    return null;
}

From source file:com.google.gdt.eclipse.managedapis.impl.ManagedApiChangeListener.java

License:Open Source License

/**
 * Implements the standard elementChanged method defined by the
 * IElementChangedListener, this method identifies events of importance to a
 * specific ManagedApiProject and calls the appropriate abstract method on a
 * match.// w w w.j a  v  a 2 s.  co m
 */
public void elementChanged(ElementChangedEvent event) {
    if (managedApiProject == null) {
        throw new IllegalStateException("managedApiProject must be set prior to registering the listener");
    }

    for (IJavaElementDelta delta : event.getDelta().getRemovedChildren()) {
        int flags = delta.getFlags();
        if (flags == 0) {
            IJavaElement element = delta.getElement();
            IJavaProject javaProject = (IJavaProject) element.getAdapter(IJavaProject.class);
            if (javaProject != null) {
                IProject project = javaProject.getProject();
                if (project.equals(managedApiProject.getJavaProject().getProject())) {
                    managedApiProjectRemoved();
                }
            }
        }
    }

    for (IJavaElementDelta delta : event.getDelta().getChangedChildren()) {
        int flags = delta.getFlags();
        if ((flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) {
            IJavaElement element = delta.getElement();
            if (element.getElementType() == IJavaElement.JAVA_PROJECT
                    && element.equals(managedApiProject.getJavaProject())) {
                Set<ManagedApi> managedApiRemovalSet = new HashSet<ManagedApi>(
                        delta.getChangedChildren().length);
                List<String> managedApiFolderNames = new ArrayList();
                for (IJavaElementDelta childDelta : delta.getChangedChildren()) {
                    if ((childDelta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) != 0) {
                        IJavaElement childElement = childDelta.getElement();
                        if (childElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT
                                && managedApiProject.isPackageFragmentRootInManagedApi(
                                        (IPackageFragmentRoot) childElement)) {
                            String managedApiFolderName = managedApiProject
                                    .getPathRelativeToManagedApiRoot((IPackageFragmentRoot) childElement);
                            if (!managedApiFolderNames.contains(managedApiFolderName)) {
                                managedApiFolderNames.add(managedApiFolderName);
                                managedApiRemovalSet
                                        .add(managedApiProject.createManagedApi(managedApiFolderName));
                            }
                        }
                    }
                }
                if (managedApiRemovalSet.size() > 0) {
                    managedApiRemoved(
                            managedApiRemovalSet.toArray(new ManagedApiImpl[managedApiRemovalSet.size()]));
                }
            }
        } else if ((flags & IJavaElementDelta.F_CLOSED) != 0) {
            IJavaElement element = delta.getElement();
            if (element.getElementType() == IJavaElement.JAVA_PROJECT
                    && element.equals(managedApiProject.getJavaProject())) {
                managedApiProjectClosed();
            }
        }
    }
}

From source file:com.google.gdt.eclipse.maven.sdk.GWTMavenRuntime.java

License:Open Source License

/**
 * Find the classpath for get-dev.jar which is used to run super dev mode.
 *
 * @return IClasspathEntry for the path to gwt-dev.jar
 * @throws JavaModelException/*w  w  w.  j  a v  a 2  s .c  o  m*/
 */
private IClasspathEntry findGwtCodeServerClasspathEntry() throws JavaModelException {
    IType type = javaProject
            .findType(GwtLaunchConfigurationProcessorUtilities.SUPERDEVMODE_CODESERVER_MAIN_TYPE);
    if (type == null) {
        return null;
    }

    IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) type
            .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
    if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_BINARY) {
        return JavaCore.newLibraryEntry(packageFragmentRoot.getPath(), null, null);
    }

    return null;
}