Example usage for org.eclipse.jdt.core IPackageFragmentRoot K_BINARY

List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot K_BINARY

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragmentRoot K_BINARY.

Prototype

int K_BINARY

To view the source code for org.eclipse.jdt.core IPackageFragmentRoot K_BINARY.

Click Source Link

Document

Kind constant for a binary path root.

Usage

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

License:Open Source License

private IStatus validateClassFile() {
    IPackageFragmentRoot root = getPackageFragmentRoot();
    try {//from www  .j a v  a  2 s .c o  m
        if (root.getKind() != IPackageFragmentRoot.K_BINARY)
            return new JavaModelStatus(IJavaModelStatusConstants.INVALID_ELEMENT_TYPES, root);
    } catch (JavaModelException e) {
        return e.getJavaModelStatus();
    }
    IJavaProject project = getJavaProject();
    if (org.eclipse.jdt.internal.compiler.util.Util.isClassFileName(getElementName())) {
        return Status.OK_STATUS;
    }
    return Status.CANCEL_STATUS;
    //   return JavaConventions.validateClassFileName(getElementName(), project.getOption(JavaCore.COMPILER_SOURCE, true),
    //                                     project.getOption(JavaCore.COMPILER_COMPLIANCE, true));
}

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

License:Open Source License

/**
 * Returns a printable representation of this classpath entry.
 *//*  w  ww  .  j  a  v  a2  s  .co m*/
public String toString() {
    StringBuffer buffer = new StringBuffer();
    Object target = JavaModel.getTarget(getPath(), true);
    if (target instanceof File)
        buffer.append(getPath().toOSString());
    else
        buffer.append(String.valueOf(getPath()));
    buffer.append('[');
    switch (getEntryKind()) {
    case IClasspathEntry.CPE_LIBRARY:
        buffer.append("CPE_LIBRARY"); //$NON-NLS-1$
        break;
    case IClasspathEntry.CPE_PROJECT:
        buffer.append("CPE_PROJECT"); //$NON-NLS-1$
        break;
    case IClasspathEntry.CPE_SOURCE:
        buffer.append("CPE_SOURCE"); //$NON-NLS-1$
        break;
    case IClasspathEntry.CPE_VARIABLE:
        buffer.append("CPE_VARIABLE"); //$NON-NLS-1$
        break;
    case IClasspathEntry.CPE_CONTAINER:
        buffer.append("CPE_CONTAINER"); //$NON-NLS-1$
        break;
    }
    buffer.append("]["); //$NON-NLS-1$
    switch (getContentKind()) {
    case IPackageFragmentRoot.K_BINARY:
        buffer.append("K_BINARY"); //$NON-NLS-1$
        break;
    case IPackageFragmentRoot.K_SOURCE:
        buffer.append("K_SOURCE"); //$NON-NLS-1$
        break;
    case ClasspathEntry.K_OUTPUT:
        buffer.append("K_OUTPUT"); //$NON-NLS-1$
        break;
    }
    buffer.append(']');
    if (getSourceAttachmentPath() != null) {
        buffer.append("[sourcePath:"); //$NON-NLS-1$
        buffer.append(getSourceAttachmentPath());
        buffer.append(']');
    }
    if (getSourceAttachmentRootPath() != null) {
        buffer.append("[rootPath:"); //$NON-NLS-1$
        buffer.append(getSourceAttachmentRootPath());
        buffer.append(']');
    }
    buffer.append("[isExported:"); //$NON-NLS-1$
    buffer.append(this.isExported);
    buffer.append(']');
    IPath[] patterns = this.inclusionPatterns;
    int length;
    if ((length = patterns == null ? 0 : patterns.length) > 0) {
        buffer.append("[including:"); //$NON-NLS-1$
        for (int i = 0; i < length; i++) {
            buffer.append(patterns[i]);
            if (i != length - 1) {
                buffer.append('|');
            }
        }
        buffer.append(']');
    }
    patterns = this.exclusionPatterns;
    if ((length = patterns == null ? 0 : patterns.length) > 0) {
        buffer.append("[excluding:"); //$NON-NLS-1$
        for (int i = 0; i < length; i++) {
            buffer.append(patterns[i]);
            if (i != length - 1) {
                buffer.append('|');
            }
        }
        buffer.append(']');
    }
    if (this.accessRuleSet != null) {
        buffer.append('[');
        buffer.append(this.accessRuleSet.toString(false/*on one line*/));
        buffer.append(']');
    }
    if (this.entryKind == CPE_PROJECT) {
        buffer.append("[combine access rules:"); //$NON-NLS-1$
        buffer.append(this.combineAccessRules);
        buffer.append(']');
    }
    if (getOutputLocation() != null) {
        buffer.append("[output:"); //$NON-NLS-1$
        buffer.append(getOutputLocation());
        buffer.append(']');
    }
    if ((length = this.extraAttributes == null ? 0 : this.extraAttributes.length) > 0) {
        buffer.append("[attributes:"); //$NON-NLS-1$
        for (int i = 0; i < length; i++) {
            buffer.append(this.extraAttributes[i]);
            if (i != length - 1) {
                buffer.append(',');
            }
        }
        buffer.append(']');
    }
    return buffer.toString();
}

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

License:Open Source License

/**
 * A Jar is always K_BINARY.
 */
protected int determineKind(File underlyingResource) {
    return IPackageFragmentRoot.K_BINARY;
}

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

License:Open Source License

/**
 * @see IPackageFragmentRoot
 */
public int getKind() {
    return IPackageFragmentRoot.K_BINARY;
}

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

License:Open Source License

int internalKind() throws JavaModelException {
    return IPackageFragmentRoot.K_BINARY;
}

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

License:Open Source License

protected URL getJavadocBaseLocation() throws JavaModelException {
    IPackageFragmentRoot root = (IPackageFragmentRoot) getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
    if (root == null) {
        return null;
    }/*from  w ww .ja v a 2  s  .c o  m*/

    if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
        IClasspathEntry entry = null;
        try {
            entry = root.getResolvedClasspathEntry();
            URL url = getLibraryJavadocLocation(entry);
            if (url != null) {
                return url;
            }
        } catch (JavaModelException jme) {
            // Proceed with raw classpath
        }

        entry = root.getRawClasspathEntry();
        switch (entry.getEntryKind()) {
        case IClasspathEntry.CPE_LIBRARY:
        case IClasspathEntry.CPE_VARIABLE:
            return getLibraryJavadocLocation(entry);
        default:
            return null;
        }
    }
    return null;
}

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

License:Open Source License

/**
 * Notifies the given requestor of all types (classes and interfaces) in the
 * given package fragment with the given (unqualified) name.
 * Checks the requestor at regular intervals to see if the requestor
 * has canceled. If the given package fragment is <code>null</code>, all types in the
 * project whose simple name matches the given name are found.
 *
 * @param name/*from  www  . j ava 2  s  .c o  m*/
 *         The name to search
 * @param pkg
 *         The corresponding package fragment
 * @param partialMatch
 *         partial name matches qualify when <code>true</code>;
 *         only exact name matches qualify when <code>false</code>
 * @param acceptFlags
 *         a bit mask describing if classes, interfaces or both classes and interfaces
 *         are desired results. If no flags are specified, all types are returned.
 * @param requestor
 *         The requestor that collects the result
 * @see #ACCEPT_CLASSES
 * @see #ACCEPT_INTERFACES
 * @see #ACCEPT_ENUMS
 * @see #ACCEPT_ANNOTATIONS
 */
public void seekTypes(String name, IPackageFragment pkg, boolean partialMatch, int acceptFlags,
        IJavaElementRequestor requestor, boolean considerSecondaryTypes) {
    /*      if (VERBOSE) {
             Util.verbose(" SEEKING TYPES");  //$NON-NLS-1$
             Util.verbose(" -> name: " + name);  //$NON-NLS-1$
             Util.verbose(" -> pkg: " + ((JavaElement) pkg).toStringWithAncestors());  //$NON-NLS-1$
             Util.verbose(" -> partial match:" + partialMatch);  //$NON-NLS-1$
          }
    */
    String matchName = partialMatch ? name.toLowerCase() : name;
    if (pkg == null) {
        findAllTypes(matchName, partialMatch, acceptFlags, requestor);
        return;
    }
    PackageFragmentRoot root = (PackageFragmentRoot) pkg.getParent();
    try {

        // look in working copies first
        int firstDot = -1;
        String topLevelTypeName = null;
        int packageFlavor = root.internalKind();
        if (this.typesInWorkingCopies != null || packageFlavor == IPackageFragmentRoot.K_SOURCE) {
            firstDot = matchName.indexOf('.');
            if (!partialMatch)
                topLevelTypeName = firstDot == -1 ? matchName : matchName.substring(0, firstDot);
        }
        if (this.typesInWorkingCopies != null) {
            if (seekTypesInWorkingCopies(matchName, pkg, firstDot, partialMatch, topLevelTypeName, acceptFlags,
                    requestor, considerSecondaryTypes))
                return;
        }

        // look in model
        switch (packageFlavor) {
        case IPackageFragmentRoot.K_BINARY:
            matchName = matchName.replace('.', '$');
            seekTypesInBinaryPackage(matchName, pkg, partialMatch, acceptFlags, requestor);
            break;
        case IPackageFragmentRoot.K_SOURCE:
            seekTypesInSourcePackage(matchName, pkg, firstDot, partialMatch, topLevelTypeName, acceptFlags,
                    requestor);
            if (matchName.indexOf('$') != -1) {
                matchName = matchName.replace('$', '.');
                firstDot = matchName.indexOf('.');
                if (!partialMatch)
                    topLevelTypeName = firstDot == -1 ? matchName : matchName.substring(0, firstDot);
                seekTypesInSourcePackage(matchName, pkg, firstDot, partialMatch, topLevelTypeName, acceptFlags,
                        requestor);
            }
            break;
        default:
            return;
        }
    } catch (JavaModelException e) {
        return;
    }
}

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

License:Open Source License

/**
 * @see Openable//from ww  w.ja  va 2  s  . c om
 */
protected boolean buildStructure(OpenableElementInfo info, IProgressMonitor pm, Map newElements,
        File underlyingResource) throws JavaModelException {
    // add compilation units/class files from resources
    HashSet vChildren = new HashSet();
    int kind = getKind();
    PackageFragmentRoot root = getPackageFragmentRoot();
    char[][] inclusionPatterns = root.fullInclusionPatternChars();
    char[][] exclusionPatterns = root.fullExclusionPatternChars();
    File[] members = underlyingResource.listFiles();

    {
        int length = members.length;
        if (length > 0) {
            IJavaProject project = getJavaProject();
            String sourceLevel = project.getOption(JavaCore.COMPILER_SOURCE, true);
            String complianceLevel = project.getOption(JavaCore.COMPILER_COMPLIANCE, true);
            for (int i = 0; i < length; i++) {
                File child = members[i];
                if (child.isFile() && !Util.isExcluded(new Path(child.getAbsolutePath()), inclusionPatterns,
                        exclusionPatterns, false)) {
                    IJavaElement childElement;
                    if (kind == IPackageFragmentRoot.K_SOURCE
                            && Util.isValidCompilationUnitName(child.getName(), sourceLevel, complianceLevel)) {
                        childElement = new CompilationUnit(this, manager, child.getName(),
                                DefaultWorkingCopyOwner.PRIMARY);
                        vChildren.add(childElement);
                    } else if (kind == IPackageFragmentRoot.K_BINARY
                            && Util.isValidClassFileName(child.getName(), sourceLevel, complianceLevel)) {
                        childElement = getClassFile(child.getName());
                        vChildren.add(childElement);
                    }
                }
            }
        }
    }
    if (kind == IPackageFragmentRoot.K_SOURCE) {
        // add primary compilation units
        ICompilationUnit[] primaryCompilationUnits = getCompilationUnits(DefaultWorkingCopyOwner.PRIMARY);
        for (int i = 0, length = primaryCompilationUnits.length; i < length; i++) {
            ICompilationUnit primary = primaryCompilationUnits[i];
            vChildren.add(primary);
        }
    }

    IJavaElement[] children = new IJavaElement[vChildren.size()];
    vChildren.toArray(children);
    info.setChildren(children);
    return true;
}

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

License:Open Source License

/**
 * @see org.eclipse.jdt.core.IPackageFragment#getCompilationUnits()
 *///from   w ww  . j  a  v a 2s.  co m
public ICompilationUnit[] getCompilationUnits() throws JavaModelException {
    if (getKind() == IPackageFragmentRoot.K_BINARY) {
        return NO_COMPILATION_UNITS;
    }

    ArrayList list = getChildrenOfType(COMPILATION_UNIT);
    ICompilationUnit[] array = new ICompilationUnit[list.size()];
    list.toArray(array);
    return array;
}

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

License:Open Source License

private IPath[] computeProjectsAndJars(IType type) throws JavaModelException {
    HashSet set = new HashSet();
    IPackageFragmentRoot root = (IPackageFragmentRoot) type.getPackageFragment().getParent();
    if (root.isArchive()) {
        // add the root
        set.add(root.getPath());//ww w  .ja v  a 2s .  co m
        // add all projects that reference this archive and their dependents
        IPath rootPath = root.getPath();
        IJavaModel model = JavaModelManager.getJavaModelManager().getJavaModel();
        IJavaProject[] projects = model.getJavaProjects();
        HashSet visited = new HashSet();
        for (int i = 0; i < projects.length; i++) {
            JavaProject project = (JavaProject) projects[i];
            IClasspathEntry entry = project.getClasspathEntryFor(rootPath);
            if (entry != null) {
                // add the project and its binary pkg fragment roots
                IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
                set.add(project.getPath());
                for (int k = 0; k < roots.length; k++) {
                    IPackageFragmentRoot pkgFragmentRoot = roots[k];
                    if (pkgFragmentRoot.getKind() == IPackageFragmentRoot.K_BINARY) {
                        set.add(pkgFragmentRoot.getPath());
                    }
                }
                // add the dependent projects
                computeDependents(project, set, visited);
            }
        }
    } else {
        // add all the project's pkg fragment roots
        IJavaProject project = (IJavaProject) root.getParent();
        IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            IPackageFragmentRoot pkgFragmentRoot = roots[i];
            if (pkgFragmentRoot.getKind() == IPackageFragmentRoot.K_BINARY) {
                set.add(pkgFragmentRoot.getPath());
            } else {
                set.add(pkgFragmentRoot.getParent().getPath());
            }
        }
        // add the dependent projects
        computeDependents(project, set, new HashSet());
    }
    IPath[] result = new IPath[set.size()];
    set.toArray(result);
    return result;
}