Example usage for org.eclipse.jdt.internal.core.util Util concatWith

List of usage examples for org.eclipse.jdt.internal.core.util Util concatWith

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.core.util Util concatWith.

Prototype

public static final String concatWith(String[] array, char separator) 

Source Link

Document

Returns the concatenation of the given array parts using the given separator between each part.

Usage

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

License:Open Source License

@Override
public void findPackages(String[] name, ISearchRequestor requestor) {
    SimpleSet knownPackageNames = getKnownPackages();
    for (Object value : knownPackageNames.values) {
        if (value == null) {
            continue;
        }//from   w  w w . j  a v  a2  s . co m
        String pkg = value.toString();
        String[] pkgName = Util.splitOn('/', pkg, 0, pkg.length());

        if (pkgName != null && Util.startsWithIgnoreCase(pkgName, name, true)) {
            requestor.acceptPackage(Util.concatWith(pkgName, '.').toCharArray());
        }

    }
}

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

License:Open Source License

/**
 * Add an element to the java search scope.
 *
 * @param element//from  w  w w. j  a v a  2 s .c o m
 *         The element we want to add to current java search scope
 * @throws org.eclipse.jdt.core.JavaModelException
 *         May happen if some Java Model info are not available
 */
public void add(IJavaElement element) throws JavaModelException {
    IPath containerPath = null;
    String containerPathToString = null;
    PackageFragmentRoot root = null;
    int includeMask = SOURCES | APPLICATION_LIBRARIES | SYSTEM_LIBRARIES;
    switch (element.getElementType()) {
    case IJavaElement.JAVA_MODEL:
        // a workspace sope should be used
        break;
    case IJavaElement.JAVA_PROJECT:
        add((JavaProject) element, null, includeMask, new HashSet(2), new HashSet(2), null);
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        root = (PackageFragmentRoot) element;
        IPath rootPath = root.internalPath();
        containerPath = root.getKind() == IPackageFragmentRoot.K_SOURCE ? root.getParent().getPath() : rootPath;
        containerPathToString = containerPath.getDevice() == null ? containerPath.toString()
                : containerPath.toOSString();
        IResource rootResource = root.resource();
        String projectPath = root.getJavaProject().getPath().toString();
        if (rootResource != null && rootResource.isAccessible()) {
            String relativePath = Util.relativePath(rootResource.getFullPath(), containerPath.segmentCount());
            add(projectPath, relativePath, containerPathToString, false/*not a package*/, null);
        } else {
            add(projectPath, "", containerPathToString, false/*not a package*/, null); //$NON-NLS-1$
        }
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        root = (PackageFragmentRoot) element.getParent();
        projectPath = root.getJavaProject().getPath().toString();
        if (root.isArchive()) {
            String relativePath = Util.concatWith(((PackageFragment) element).names, '/');
            containerPath = root.getPath();
            containerPathToString = containerPath.getDevice() == null ? containerPath.toString()
                    : containerPath.toOSString();
            add(projectPath, relativePath, containerPathToString, true/*package*/, null);
        } else {
            IResource resource = ((JavaElement) element).resource();
            if (resource != null) {
                if (resource.isAccessible()) {
                    containerPath = root.getKind() == IPackageFragmentRoot.K_SOURCE ? root.getParent().getPath()
                            : root.internalPath();
                } else {
                    // for working copies, get resource container full path
                    containerPath = resource.getParent().getFullPath();
                }
                containerPathToString = containerPath.getDevice() == null ? containerPath.toString()
                        : containerPath.toOSString();
                String relativePath = Util.relativePath(resource.getFullPath(), containerPath.segmentCount());
                add(projectPath, relativePath, containerPathToString, true/*package*/, null);
            }
        }
        break;
    default:
        // remember sub-cu (or sub-class file) java elements
        if (element instanceof IMember) {
            if (this.elements == null) {
                this.elements = new ArrayList();
            }
            this.elements.add(element);
        }
        root = (PackageFragmentRoot) element.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
        projectPath = root.getJavaProject().getPath().toString();
        String relativePath;
        if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
            containerPath = root.getParent().getPath();
            relativePath = Util.relativePath(getPath(element, false/*full path*/), 1/*remove project segment*/);
        } else {
            containerPath = root.internalPath();
            relativePath = getPath(element, true/*relative path*/).toString();
        }
        containerPathToString = containerPath.getDevice() == null ? containerPath.toString()
                : containerPath.toOSString();
        add(projectPath, relativePath, containerPathToString, false/*not a package*/, null);
    }

    if (root != null)
        addEnclosingProjectOrJar(
                root.getKind() == IPackageFragmentRoot.K_SOURCE ? root.getParent().getPath() : root.getPath());
}

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

License:Open Source License

private IPath getPath(IJavaElement element, boolean relativeToRoot) {
    switch (element.getElementType()) {
    case IJavaElement.JAVA_MODEL:
        return Path.EMPTY;
    case IJavaElement.JAVA_PROJECT:
        return element.getPath();
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        if (relativeToRoot)
            return Path.EMPTY;
        return element.getPath();
    case IJavaElement.PACKAGE_FRAGMENT:
        String relativePath = Util.concatWith(((PackageFragment) element).names, '/');
        return getPath(element.getParent(), relativeToRoot).append(new Path(relativePath));
    case IJavaElement.COMPILATION_UNIT:
    case IJavaElement.CLASS_FILE:
        return getPath(element.getParent(), relativeToRoot).append(new Path(element.getElementName()));
    default:/*from www . j a va  2s.c  o m*/
        return getPath(element.getParent(), relativeToRoot);
    }
}

From source file:org.eclipse.jdt.internal.core.CopyResourceElementsOperation.java

License:Open Source License

private TextEdit updateNonJavaContent(ICompilationUnit cu, String[] destPackageName, String[] currPackageName,
        String newName) throws JavaModelException {
    // package statement
    IPackageDeclaration[] packageDecls = cu.getPackageDeclarations();
    boolean doPackage = !Util.equalArraysOrNull(currPackageName, destPackageName);
    boolean doName = newName != null;
    MultiTextEdit multiEdit = new MultiTextEdit();
    if (doPackage) {
        if (packageDecls.length == 1) {
            ISourceRange packageRange = packageDecls[0].getSourceRange();
            if (destPackageName == null || destPackageName.length == 0) {
                // move to default package
                multiEdit.addChild(new DeleteEdit(packageRange.getOffset(), packageRange.getLength()));
            } else {
                multiEdit.addChild(new ReplaceEdit(packageRange.getOffset(), packageRange.getLength(),
                        "package " + Util.concatWith(destPackageName, '.'))); //$NON-NLS-1$
            }/*from w ww .  j a  va  2s.  co  m*/
        } else {
            // move from default package
            // we don't keep track of comments, so we don't know where they start.  Just add the package declaration at location 0
            multiEdit.addChild(new InsertEdit(0, "package " + Util.concatWith(destPackageName, '.') + "\n")); //$NON-NLS-1$//$NON-NLS-2$
        }
    }

    if (doName) {
        int dotIndex = cu.getElementName().indexOf('.');
        dotIndex = dotIndex == -1 ? cu.getElementName().length() : dotIndex;
        String oldTypeName = cu.getElementName().substring(0, dotIndex);
        dotIndex = newName.indexOf('.');
        dotIndex = dotIndex == -1 ? newName.length() : dotIndex;
        String newTypeName = newName.substring(0, dotIndex);
        IType type = cu.getType(oldTypeName);
        if (type.exists()) {
            ISourceRange nameRange = type.getNameRange();
            // main type can be implicitly defined, so check offsets
            if (nameRange.getOffset() > 0 && nameRange.getLength() > 0
                    && oldTypeName.length() == nameRange.getLength()) {
                multiEdit.addChild(new ReplaceEdit(nameRange.getOffset(), nameRange.getLength(), newTypeName));
            }
            IJavaElement[] children = type.getChildren();
            for (int i = 0; i < children.length; i++) {
                if (children[i].getElementType() == IJavaElement.METHOD) {
                    IMethod method = (IMethod) children[i];
                    if (method.isConstructor()) {
                        nameRange = method.getNameRange();
                        // main type can be implicitly defined, so check offsets
                        if (nameRange.getOffset() > 0 && nameRange.getLength() > 0) {
                            multiEdit.addChild(
                                    new ReplaceEdit(nameRange.getOffset(), nameRange.getLength(), newTypeName));
                        }
                    }
                }
            }
        }
    }
    return multiEdit;
}

From source file:org.eclipse.jdt.internal.core.PackageFragment.java

License:Open Source License

public String getElementName() {
    if (this.names.length == 0)
        return DEFAULT_PACKAGE_NAME;
    return Util.concatWith(this.names, '.');
}

From source file:org.eclipse.objectteams.otdt.internal.debug.adaptor.launching.PDELaunchingAdaptor.java

License:Open Source License

static String extendVMArguments(String args, ISharedPluginModel hookModel, String mode) {
     String[] otArgss = getOTArgs(mode);
     if (otArgss == null)
         return args;

     String otArgs = Util.concatWith(otArgss, ' ');

     if (args == null || args.length() == 0)
         return otArgs;

     return args + ' ' + otArgs;
 }