Example usage for org.eclipse.jdt.internal.core.util Messages status_nameCollision

List of usage examples for org.eclipse.jdt.internal.core.util Messages status_nameCollision

Introduction

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

Prototype

String status_nameCollision

To view the source code for org.eclipse.jdt.internal.core.util Messages status_nameCollision.

Click Source Link

Usage

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

License:Open Source License

/**
 * Returns the message that is relevant to the code of this status.
 *///from  w  w  w.  jav  a2s.  c  o m
public String getMessage() {
    Throwable exception = getException();
    if (exception == null) {
        switch (getCode()) {
        case CORE_EXCEPTION:
            return Messages.status_coreException;

        case BUILDER_INITIALIZATION_ERROR:
            return Messages.build_initializationError;

        case BUILDER_SERIALIZATION_ERROR:
            return Messages.build_serializationError;

        case DEVICE_PATH:
            return Messages.bind(Messages.status_cannotUseDeviceOnPath, getPath().toString());

        case DOM_EXCEPTION:
            return Messages.status_JDOMError;

        case ELEMENT_DOES_NOT_EXIST:
            return Messages.bind(Messages.element_doesNotExist,
                    ((JavaElement) this.elements[0]).toStringWithAncestors());

        case ELEMENT_NOT_ON_CLASSPATH:
            return Messages.bind(Messages.element_notOnClasspath,
                    ((JavaElement) this.elements[0]).toStringWithAncestors());

        case EVALUATION_ERROR:
            return Messages.bind(Messages.status_evaluationError, this.string);

        case INDEX_OUT_OF_BOUNDS:
            return Messages.status_indexOutOfBounds;

        case INVALID_CONTENTS:
            return Messages.status_invalidContents;

        case INVALID_DESTINATION:
            return Messages.bind(Messages.status_invalidDestination,
                    ((JavaElement) this.elements[0]).toStringWithAncestors());

        case INVALID_ELEMENT_TYPES:
            StringBuffer buff = new StringBuffer(Messages.operation_notSupported);
            for (int i = 0; i < this.elements.length; i++) {
                if (i > 0) {
                    buff.append(", "); //$NON-NLS-1$
                }
                buff.append(((JavaElement) this.elements[i]).toStringWithAncestors());
            }
            return buff.toString();

        case INVALID_NAME:
            return Messages.bind(Messages.status_invalidName, this.string);

        case INVALID_PACKAGE:
            return Messages.bind(Messages.status_invalidPackage, this.string);

        case INVALID_PATH:
            if (this.string != null) {
                return this.string;
            } else {
                return Messages.bind(Messages.status_invalidPath,
                        new String[] { getPath() == null ? "null" : getPath().toString() } //$NON-NLS-1$
                );
            }

        case INVALID_PROJECT:
            return Messages.bind(Messages.status_invalidProject, this.string);

        case INVALID_RESOURCE:
            return Messages.bind(Messages.status_invalidResource, this.string);

        case INVALID_RESOURCE_TYPE:
            return Messages.bind(Messages.status_invalidResourceType, this.string);

        case INVALID_SIBLING:
            if (this.string != null) {
                return Messages.bind(Messages.status_invalidSibling, this.string);
            } else {
                return Messages.bind(Messages.status_invalidSibling,
                        ((JavaElement) this.elements[0]).toStringWithAncestors());
            }

        case IO_EXCEPTION:
            return Messages.status_IOException;

        case NAME_COLLISION:
            if (this.elements != null && this.elements.length > 0) {
                IJavaElement element = this.elements[0];
                if (element instanceof org.eclipse.jdt.internal.core.PackageFragment
                        && ((PackageFragment) element).isDefaultPackage()) {
                    return Messages.operation_cannotRenameDefaultPackage;
                }
            }
            if (this.string != null) {
                return this.string;
            } else {
                return Messages.bind(Messages.status_nameCollision, ""); //$NON-NLS-1$
            }
        case NO_ELEMENTS_TO_PROCESS:
            return Messages.operation_needElements;

        case NULL_NAME:
            return Messages.operation_needName;

        case NULL_PATH:
            return Messages.operation_needPath;

        case NULL_STRING:
            return Messages.operation_needString;

        case PATH_OUTSIDE_PROJECT:
            return Messages.bind(Messages.operation_pathOutsideProject,
                    new String[] { this.string, ((JavaElement) this.elements[0]).toStringWithAncestors() });

        case READ_ONLY:
            IJavaElement element = this.elements[0];
            String name = element.getElementName();
            if (element instanceof IPackageFragment && name.equals(IPackageFragment.DEFAULT_PACKAGE_NAME)) {
                return Messages.status_defaultPackageReadOnly;
            }
            return Messages.bind(Messages.status_readOnly, name);

        case RELATIVE_PATH:
            return Messages.bind(Messages.operation_needAbsolutePath, getPath().toString());

        case TARGET_EXCEPTION:
            return Messages.status_targetException;

        case UPDATE_CONFLICT:
            return Messages.status_updateConflict;

        case NO_LOCAL_CONTENTS:
            return Messages.bind(Messages.status_noLocalContents, getPath().toString());

        case CP_CONTAINER_PATH_UNBOUND:
            IJavaProject javaProject = (IJavaProject) this.elements[0];
            ClasspathContainerInitializer initializer = JavaCore
                    .getClasspathContainerInitializer(this.path.segment(0));
            String description = null;
            if (initializer != null)
                description = initializer.getDescription(this.path, javaProject);
            if (description == null)
                description = this.path.makeRelative().toString();
            return Messages.bind(Messages.classpath_unboundContainerPath,
                    new String[] { description, javaProject.getElementName() });

        case INVALID_CP_CONTAINER_ENTRY:
            javaProject = (IJavaProject) this.elements[0];
            IClasspathContainer container = null;
            description = null;
            try {
                container = JavaCore.getClasspathContainer(this.path, javaProject);
            } catch (JavaModelException e) {
                // project doesn't exist: ignore
            }
            if (container == null) {
                initializer = JavaCore.getClasspathContainerInitializer(this.path.segment(0));
                if (initializer != null)
                    description = initializer.getDescription(this.path, javaProject);
            } else {
                description = container.getDescription();
            }
            if (description == null)
                description = this.path.makeRelative().toString();
            return Messages.bind(Messages.classpath_invalidContainer,
                    new String[] { description, javaProject.getElementName() });

        case CP_VARIABLE_PATH_UNBOUND:
            javaProject = (IJavaProject) this.elements[0];
            return Messages.bind(Messages.classpath_unboundVariablePath,
                    new String[] { this.path.makeRelative().toString(), javaProject.getElementName() });

        case CLASSPATH_CYCLE:
            javaProject = (IJavaProject) this.elements[0];
            return Messages.bind(Messages.classpath_cycle,
                    new String[] { javaProject.getElementName(), this.string });

        case DISABLED_CP_EXCLUSION_PATTERNS:
            javaProject = (IJavaProject) this.elements[0];
            String projectName = javaProject.getElementName();
            IPath newPath = this.path;
            if (this.path.segment(0).toString().equals(projectName)) {
                newPath = this.path.removeFirstSegments(1);
            }
            return Messages.bind(Messages.classpath_disabledInclusionExclusionPatterns,
                    new String[] { newPath.makeRelative().toString(), projectName });

        case DISABLED_CP_MULTIPLE_OUTPUT_LOCATIONS:
            javaProject = (IJavaProject) this.elements[0];
            projectName = javaProject.getElementName();
            newPath = this.path;
            if (this.path.segment(0).toString().equals(projectName)) {
                newPath = this.path.removeFirstSegments(1);
            }
            return Messages.bind(Messages.classpath_disabledMultipleOutputLocations,
                    new String[] { newPath.makeRelative().toString(), projectName });

        case CANNOT_RETRIEVE_ATTACHED_JAVADOC:
            if (this.elements != null && this.elements.length == 1) {
                if (this.string != null) {
                    return Messages.bind(Messages.status_cannot_retrieve_attached_javadoc,
                            ((JavaElement) this.elements[0]).toStringWithAncestors(), this.string);
                }
                return Messages.bind(Messages.status_cannot_retrieve_attached_javadoc,
                        ((JavaElement) this.elements[0]).toStringWithAncestors(), ""); //$NON-NLS-1$
            }
            if (this.string != null) {
                return Messages.bind(Messages.status_cannot_retrieve_attached_javadoc, this.string, "");//$NON-NLS-1$
            }
            break;

        case CANNOT_RETRIEVE_ATTACHED_JAVADOC_TIMEOUT:
            if (this.elements != null && this.elements.length == 1) {
                if (this.string != null) {
                    return Messages.bind(Messages.status_timeout_javadoc,
                            ((JavaElement) this.elements[0]).toStringWithAncestors(), this.string);
                }
                return Messages.bind(Messages.status_timeout_javadoc,
                        ((JavaElement) this.elements[0]).toStringWithAncestors(), ""); //$NON-NLS-1$
            }
            if (this.string != null) {
                return Messages.bind(Messages.status_timeout_javadoc, this.string, "");//$NON-NLS-1$
            }
            break;

        case UNKNOWN_JAVADOC_FORMAT:
            return Messages.bind(Messages.status_unknown_javadoc_format,
                    ((JavaElement) this.elements[0]).toStringWithAncestors());

        case DEPRECATED_VARIABLE:
            javaProject = (IJavaProject) this.elements[0];
            return Messages.bind(Messages.classpath_deprecated_variable, new String[] {
                    this.path.segment(0).toString(), javaProject.getElementName(), this.string });
        }
        if (this.string != null) {
            return this.string;
        } else {
            return ""; //$NON-NLS-1$
        }
    } else {
        String message = exception.getMessage();
        if (message != null) {
            return message;
        } else {
            return exception.toString();
        }
    }
}

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

License:Open Source License

/**
 * Copies/moves a compilation unit with the name <code>newCUName</code>
 * to the destination package.<br>
 * The package statement in the compilation unit is updated if necessary.
 * The main type of the compilation unit is renamed if necessary.
 *
 * @exception JavaModelException if the operation is unable to
 * complete//  ww w  . java 2 s. c o m
 */
private void processCompilationUnitResource(ICompilationUnit source, PackageFragment dest)
        throws JavaModelException {
    String newCUName = getNewNameFor(source);
    String destName = (newCUName != null) ? newCUName : source.getElementName();
    TextEdit edit = updateContent(source, dest, newCUName); // null if unchanged

    // TODO (frederic) remove when bug 67606 will be fixed (bug 67823)
    // store encoding (fix bug 66898)
    IFile sourceResource = (IFile) source.getResource();
    String sourceEncoding = null;
    try {
        sourceEncoding = sourceResource.getCharset(false);
    } catch (CoreException ce) {
        // no problem, use default encoding
    }
    // end todo
    // copy resource
    IContainer destFolder = (IContainer) dest.getResource(); // can be an IFolder or an IProject
    IFile destFile = destFolder.getFile(new Path(destName));
    // GROOVY start
    /* old {
    org.eclipse.jdt.internal.core.CompilationUnit destCU = new org.eclipse.jdt.internal.core.CompilationUnit(dest, destName, DefaultWorkingCopyOwner.PRIMARY);
    } new */
    org.eclipse.jdt.internal.core.CompilationUnit destCU = LanguageSupportFactory.newCompilationUnit(dest,
            destName, DefaultWorkingCopyOwner.PRIMARY);
    // GROOVY end

    if (!destFile.equals(sourceResource)) {
        try {
            if (!destCU.isWorkingCopy()) {
                if (destFile.exists()) {
                    if (this.force) {
                        // we can remove it
                        deleteResource(destFile, IResource.KEEP_HISTORY);
                        destCU.close(); // ensure the in-memory buffer for the dest CU is closed
                    } else {
                        // abort
                        throw new JavaModelException(
                                new JavaModelStatus(IJavaModelStatusConstants.NAME_COLLISION, Messages.bind(
                                        Messages.status_nameCollision, destFile.getFullPath().toString())));
                    }
                }
                int flags = this.force ? IResource.FORCE : IResource.NONE;
                if (isMove()) {
                    flags |= IResource.KEEP_HISTORY;
                    sourceResource.move(destFile.getFullPath(), flags, getSubProgressMonitor(1));
                } else {
                    if (edit != null)
                        flags |= IResource.KEEP_HISTORY;
                    sourceResource.copy(destFile.getFullPath(), flags, getSubProgressMonitor(1));
                }
                setAttribute(HAS_MODIFIED_RESOURCE_ATTR, TRUE);
            } else {
                destCU.getBuffer().setContents(source.getBuffer().getContents());
            }
        } catch (JavaModelException e) {
            throw e;
        } catch (CoreException e) {
            throw new JavaModelException(e);
        }

        // update new resource content
        if (edit != null) {
            boolean wasReadOnly = destFile.isReadOnly();
            try {
                saveContent(dest, destName, edit, sourceEncoding, destFile);
            } catch (CoreException e) {
                if (e instanceof JavaModelException)
                    throw (JavaModelException) e;
                throw new JavaModelException(e);
            } finally {
                Util.setReadOnly(destFile, wasReadOnly);
            }
        }

        // register the correct change deltas
        prepareDeltas(source, destCU, isMove());
        if (newCUName != null) {
            //the main type has been renamed
            String oldName = Util.getNameWithoutJavaLikeExtension(source.getElementName());
            String newName = Util.getNameWithoutJavaLikeExtension(newCUName);
            prepareDeltas(source.getType(oldName), destCU.getType(newName), isMove());
        }
    } else {
        if (!this.force) {
            throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.NAME_COLLISION,
                    Messages.bind(Messages.status_nameCollision, destFile.getFullPath().toString())));
        }
        // update new resource content
        // in case we do a saveas on the same resource we have to simply update the contents
        // see http://dev.eclipse.org/bugs/show_bug.cgi?id=9351
        if (edit != null) {
            saveContent(dest, destName, edit, sourceEncoding, destFile);
        }
    }
}

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

License:Open Source License

/**
 * Copies/moves a package fragment with the name <code>newName</code>
 * to the destination package.<br>
 *
 * @exception JavaModelException if the operation is unable to
 * complete/*from  w w  w .  j a v a 2s .com*/
 */
private void processPackageFragmentResource(PackageFragment source, PackageFragmentRoot root, String newName)
        throws JavaModelException {
    try {
        String[] newFragName = (newName == null) ? source.names : Util.getTrimmedSimpleNames(newName);
        PackageFragment newFrag = root.getPackageFragment(newFragName);
        IResource[] resources = collectResourcesOfInterest(source);

        // if isMove() can we move the folder itself ? (see http://bugs.eclipse.org/bugs/show_bug.cgi?id=22458)
        boolean shouldMoveFolder = isMove() && !newFrag.resource().exists(); // if new pkg fragment exists, it is an override
        IFolder srcFolder = (IFolder) source.resource();
        IPath destPath = newFrag.getPath();
        if (shouldMoveFolder) {
            // check if destination is not included in source
            if (srcFolder.getFullPath().isPrefixOf(destPath)) {
                shouldMoveFolder = false;
            } else {
                // check if there are no sub-packages
                IResource[] members = srcFolder.members();
                for (int i = 0; i < members.length; i++) {
                    if (members[i] instanceof IFolder) {
                        shouldMoveFolder = false;
                        break;
                    }
                }
            }
        }
        boolean containsReadOnlySubPackageFragments = createNeededPackageFragments(
                (IContainer) source.parent.resource(), root, newFragName, shouldMoveFolder);
        boolean sourceIsReadOnly = Util.isReadOnly(srcFolder);

        // Process resources
        if (shouldMoveFolder) {
            // move underlying resource
            // TODO Revisit once bug 43044 is fixed
            if (sourceIsReadOnly) {
                Util.setReadOnly(srcFolder, false);
            }
            srcFolder.move(destPath, this.force, true /* keep history */, getSubProgressMonitor(1));
            if (sourceIsReadOnly) {
                Util.setReadOnly(srcFolder, true);
            }
            setAttribute(HAS_MODIFIED_RESOURCE_ATTR, TRUE);
        } else {
            // process the leaf resources
            if (resources.length > 0) {
                if (isRename()) {
                    if (!destPath.equals(source.getPath())) {
                        moveResources(resources, destPath);
                    }
                } else if (isMove()) {
                    // we need to delete this resource if this operation wants to override existing resources
                    for (int i = 0, max = resources.length; i < max; i++) {
                        IResource destinationResource = ResourcesPlugin.getWorkspace().getRoot()
                                .findMember(destPath.append(resources[i].getName()));
                        if (destinationResource != null) {
                            if (this.force) {
                                deleteResource(destinationResource, IResource.KEEP_HISTORY);
                            } else {
                                throw new JavaModelException(
                                        new JavaModelStatus(IJavaModelStatusConstants.NAME_COLLISION,
                                                Messages.bind(Messages.status_nameCollision,
                                                        destinationResource.getFullPath().toString())));
                            }
                        }
                    }
                    moveResources(resources, destPath);
                } else {
                    // we need to delete this resource if this operation wants to override existing resources
                    for (int i = 0, max = resources.length; i < max; i++) {
                        IResource destinationResource = ResourcesPlugin.getWorkspace().getRoot()
                                .findMember(destPath.append(resources[i].getName()));
                        if (destinationResource != null) {
                            if (this.force) {
                                // we need to delete this resource if this operation wants to override existing resources
                                deleteResource(destinationResource, IResource.KEEP_HISTORY);
                            } else {
                                throw new JavaModelException(
                                        new JavaModelStatus(IJavaModelStatusConstants.NAME_COLLISION,
                                                Messages.bind(Messages.status_nameCollision,
                                                        destinationResource.getFullPath().toString())));
                            }
                        }
                    }
                    copyResources(resources, destPath);
                }
            }
        }

        // Update package statement in compilation unit if needed
        if (!Util.equalArraysOrNull(newFragName, source.names)) { // if package has been renamed, update the compilation units
            char[][] inclusionPatterns = root.fullInclusionPatternChars();
            char[][] exclusionPatterns = root.fullExclusionPatternChars();
            for (int i = 0; i < resources.length; i++) {
                String resourceName = resources[i].getName();
                if (Util.isJavaLikeFileName(resourceName)) {
                    // we only consider potential compilation units
                    ICompilationUnit cu = newFrag.getCompilationUnit(resourceName);
                    if (Util.isExcluded(cu.getPath(), inclusionPatterns, exclusionPatterns,
                            false/*not a folder*/))
                        continue;
                    this.parser.setSource(cu);
                    CompilationUnit astCU = (CompilationUnit) this.parser.createAST(this.progressMonitor);
                    AST ast = astCU.getAST();
                    ASTRewrite rewrite = ASTRewrite.create(ast);
                    updatePackageStatement(astCU, newFragName, rewrite, cu);
                    TextEdit edits = rewrite.rewriteAST();
                    applyTextEdit(cu, edits);
                    cu.save(null, false);
                }
            }
        }

        // Discard empty old package (if still empty after the rename)
        boolean isEmpty = true;
        if (isMove()) {
            // delete remaining files in this package (.class file in the case where Proj=src=bin)
            // in case of a copy
            updateReadOnlyPackageFragmentsForMove((IContainer) source.parent.resource(), root, newFragName,
                    sourceIsReadOnly);
            if (srcFolder.exists()) {
                IResource[] remaining = srcFolder.members();
                for (int i = 0, length = remaining.length; i < length; i++) {
                    IResource file = remaining[i];
                    if (file instanceof IFile) {
                        if (Util.isReadOnly(file)) {
                            Util.setReadOnly(file, false);
                        }
                        deleteResource(file, IResource.FORCE | IResource.KEEP_HISTORY);
                    } else {
                        isEmpty = false;
                    }
                }
            }
            if (isEmpty) {
                IResource rootResource;
                // check if source is included in destination
                if (destPath.isPrefixOf(srcFolder.getFullPath())) {
                    rootResource = newFrag.resource();
                } else {
                    rootResource = source.parent.resource();
                }

                // delete recursively empty folders
                deleteEmptyPackageFragment(source, false, rootResource);
            }
        } else if (containsReadOnlySubPackageFragments) {
            // in case of a copy
            updateReadOnlyPackageFragmentsForCopy((IContainer) source.parent.resource(), root, newFragName);
        }
        // workaround for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=24505
        if (isEmpty && isMove() && !(Util.isExcluded(source) || Util.isExcluded(newFrag))) {
            IJavaProject sourceProject = source.getJavaProject();
            getDeltaFor(sourceProject).movedFrom(source, newFrag);
            IJavaProject destProject = newFrag.getJavaProject();
            getDeltaFor(destProject).movedTo(newFrag, source);
        }
    } catch (JavaModelException e) {
        throw e;
    } catch (CoreException ce) {
        throw new JavaModelException(ce);
    }
}