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

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

Introduction

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

Prototype

int COMPILATION_UNIT

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

Click Source Link

Document

Constant representing a Java compilation unit.

Usage

From source file:org.eclipse.xtext.common.types.ui.refactoring.JvmRenameRefactoringProvider.java

License:Open Source License

/**
 * Copied from {@link org.eclipse.jdt.internal.ui.refactoring.reorg.RenameLinkedMode}. There does not seem to be a
 * clean way to initialize a JDT refactoring from the outside.
 *///from  ww w  .ja  v a2s.  c  o m
public RenameJavaElementDescriptor createRenameDescriptor(IJavaElement javaElement, String newName)
        throws JavaModelException {
    String contributionId;
    // see RefactoringExecutionStarter#createRenameSupport(..):
    int elementType = javaElement.getElementType();
    switch (elementType) {
    case IJavaElement.JAVA_PROJECT:
        contributionId = IJavaRefactorings.RENAME_JAVA_PROJECT;
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        contributionId = IJavaRefactorings.RENAME_SOURCE_FOLDER;
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        contributionId = IJavaRefactorings.RENAME_PACKAGE;
        break;
    case IJavaElement.COMPILATION_UNIT:
        contributionId = IJavaRefactorings.RENAME_COMPILATION_UNIT;
        break;
    case IJavaElement.TYPE:
        contributionId = IJavaRefactorings.RENAME_TYPE;
        break;
    case IJavaElement.METHOD:
        final IMethod method = (IMethod) javaElement;
        if (method.isConstructor())
            return createRenameDescriptor(method.getDeclaringType(), newName);
        else
            contributionId = IJavaRefactorings.RENAME_METHOD;
        break;
    case IJavaElement.FIELD:
        IField field = (IField) javaElement;
        if (field.isEnumConstant())
            contributionId = IJavaRefactorings.RENAME_ENUM_CONSTANT;
        else
            contributionId = IJavaRefactorings.RENAME_FIELD;
        break;
    case IJavaElement.TYPE_PARAMETER:
        contributionId = IJavaRefactorings.RENAME_TYPE_PARAMETER;
        break;
    case IJavaElement.LOCAL_VARIABLE:
        contributionId = IJavaRefactorings.RENAME_LOCAL_VARIABLE;
        break;
    default:
        return null;
    }

    RenameJavaElementDescriptor descriptor = (RenameJavaElementDescriptor) RefactoringCore
            .getRefactoringContribution(contributionId).createDescriptor();
    descriptor.setJavaElement(javaElement);
    descriptor.setNewName(newName);
    if (elementType != IJavaElement.PACKAGE_FRAGMENT_ROOT)
        descriptor.setUpdateReferences(true);

    IDialogSettings javaSettings = JavaPlugin.getDefault().getDialogSettings();
    IDialogSettings refactoringSettings = javaSettings.getSection(RefactoringWizardPage.REFACTORING_SETTINGS); //TODO: undocumented API
    if (refactoringSettings == null) {
        refactoringSettings = javaSettings.addNewSection(RefactoringWizardPage.REFACTORING_SETTINGS);
    }

    switch (elementType) {
    case IJavaElement.METHOD:
    case IJavaElement.FIELD:
        descriptor.setDeprecateDelegate(refactoringSettings.getBoolean(DelegateUIHelper.DELEGATE_DEPRECATION));
        descriptor.setKeepOriginal(refactoringSettings.getBoolean(DelegateUIHelper.DELEGATE_UPDATING));
    }
    switch (elementType) {
    case IJavaElement.TYPE:
        //         case IJavaElement.COMPILATION_UNIT: // TODO
        descriptor.setUpdateSimilarDeclarations(
                refactoringSettings.getBoolean(RenameRefactoringWizard.TYPE_UPDATE_SIMILAR_ELEMENTS));
        int strategy;
        try {
            strategy = refactoringSettings.getInt(RenameRefactoringWizard.TYPE_SIMILAR_MATCH_STRATEGY);
        } catch (NumberFormatException e) {
            strategy = RenamingNameSuggestor.STRATEGY_EXACT;
        }
        descriptor.setMatchStrategy(strategy);
    }
    switch (elementType) {
    case IJavaElement.PACKAGE_FRAGMENT:
        descriptor.setUpdateHierarchy(
                refactoringSettings.getBoolean(RenameRefactoringWizard.PACKAGE_RENAME_SUBPACKAGES));
    }
    switch (elementType) {
    case IJavaElement.PACKAGE_FRAGMENT:
    case IJavaElement.TYPE:
        String fileNamePatterns = refactoringSettings.get(RenameRefactoringWizard.QUALIFIED_NAMES_PATTERNS);
        if (fileNamePatterns != null && fileNamePatterns.length() != 0) {
            descriptor.setFileNamePatterns(fileNamePatterns);
            boolean updateQualifiedNames = refactoringSettings
                    .getBoolean(RenameRefactoringWizard.UPDATE_QUALIFIED_NAMES);
            descriptor.setUpdateQualifiedNames(updateQualifiedNames);
            //               fShowPreview|= updateQualifiedNames;
        }
    }
    switch (elementType) {
    case IJavaElement.PACKAGE_FRAGMENT:
    case IJavaElement.TYPE:
    case IJavaElement.FIELD:
        boolean updateTextualOccurrences = refactoringSettings
                .getBoolean(RenameRefactoringWizard.UPDATE_TEXTUAL_MATCHES);
        descriptor.setUpdateTextualOccurrences(updateTextualOccurrences);
        //            fShowPreview|= updateTextualOccurrences;
    }
    switch (elementType) {
    case IJavaElement.FIELD:
        descriptor
                .setRenameGetters(refactoringSettings.getBoolean(RenameRefactoringWizard.FIELD_RENAME_GETTER));
        descriptor
                .setRenameSetters(refactoringSettings.getBoolean(RenameRefactoringWizard.FIELD_RENAME_SETTER));
    }
    return descriptor;
}

From source file:org.eclipselabs.stlipse.cache.BeanPropertyCache.java

License:Open Source License

protected static void parseSource(IJavaProject project, final IType type, final String qualifiedName,
        final Map<String, String> readableFields, final Map<String, String> writableFields,
        final Map<String, EventProperty> eventHandlers) throws JavaModelException {
    ICompilationUnit compilationUnit = (ICompilationUnit) type.getAncestor(IJavaElement.COMPILATION_UNIT);
    ASTParser parser = ASTParser.newParser(AST.JLS4);
    parser.setKind(ASTParser.K_COMPILATION_UNIT);
    parser.setSource(compilationUnit);/*from   w  ww  .  j  a  va2s. c  o m*/
    parser.setResolveBindings(true);
    // parser.setIgnoreMethodBodies(true);
    CompilationUnit astUnit = (CompilationUnit) parser.createAST(null);
    astUnit.accept(
            new BeanPropertyVisitor(project, qualifiedName, readableFields, writableFields, eventHandlers));
}

From source file:org.evolizer.changedistiller.job.ChangeDistiller.java

License:Apache License

private IStatus processElement(IJavaElement element, IProgressMonitor group, int tick) {
    Job changeDistillerJob = null;//from w w w.  ja v a 2s .c o  m
    try {
        // ICompilationUnit
        if (element.getElementType() == IJavaElement.COMPILATION_UNIT) {
            changeDistillerJob = new SourceDistiller("Process class " + element.getElementName());
            SourceDistiller job = (SourceDistiller) changeDistillerJob;
            List<Revision> revisions = ChangeDistillerPlugin.getPersistencyProvider()
                    .query("from Revision as r where r.file.path like '%/" + element.getElementName()
                            + "' and r.number not like '1.%.%'" + " order by r.report.creationTime asc",
                            Revision.class);
            job.setProject(element.getJavaProject().getProject());
            job.setRevisionsToDistill(revisions);

            // IPackageFragment; but only process source fragments (exclude binary Jars)
        } else if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
            IPackageFragment fragment = (IPackageFragment) element;

            if ((fragment.getKind() == IPackageFragmentRoot.K_SOURCE) && fragment.containsJavaResources()) {
                changeDistillerJob = new PackageFragmentDistiller(
                        "Process Package " + fragment.getElementName());
                ((PackageFragmentDistiller) changeDistillerJob).setPackageFragment(fragment);
            }

            // IJavaProject
        } else if (element.getElementType() == IJavaElement.JAVA_PROJECT) {

            changeDistillerJob = new ProjectDistiller("Process project " + element.getElementName());
            ((ProjectDistiller) changeDistillerJob).setJavaProject((IJavaProject) element);

        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    if (changeDistillerJob != null) {
        changeDistillerJob.setProgressGroup(group, tick);
        changeDistillerJob.setPriority(Job.LONG);
        changeDistillerJob.schedule();

        try {
            // wait until ChangeDistiller finished selected element
            changeDistillerJob.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return changeDistillerJob.getResult();
    }
    return Status.OK_STATUS;
}

From source file:org.evolizer.changedistiller.job.PackageFragmentDistiller.java

License:Apache License

/**
 * {@inheritDoc}/*from  w  w w .j a  v a 2 s  . com*/
 */
@Override
protected IStatus run(IProgressMonitor monitor) {
    boolean jobCanceled = false;
    boolean jobError = false;
    IStatus result = Status.OK_STATUS;
    try {
        monitor.beginTask("Distill package", WORK);
        IJavaElement[] javaElements = fFragment.getChildren();
        int tick = WORK / javaElements.length;

        // process each Java element in package fragment.
        for (int i = 0; (i < javaElements.length) && !jobError && !jobCanceled && !monitor.isCanceled(); i++) {
            // compilation units are distilled in a separate job
            if (javaElements[i].getElementType() == IJavaElement.COMPILATION_UNIT) {
                SourceDistiller job = new SourceDistiller("Process class " + javaElements[i].getElementName());
                List<Revision> revisions = ChangeDistillerPlugin.getPersistencyProvider().query(
                        "from Revision as r where r.file.path like '%/" + javaElements[i].getElementName()
                                + "' and r.number not like '1.%.%'" + " order by r.report.creationTime asc",
                        Revision.class);
                job.setProject(fFragment.getJavaProject().getProject());
                job.setRevisionsToDistill(revisions);
                job.setProgressGroup(monitor, SourceDistiller.WORK);
                job.setPriority(Job.LONG);
                monitor.setTaskName(job.getName() + " (" + (i + 1) + "/" + javaElements.length + ")");
                job.schedule();
                job.join();
                jobCanceled = job.getResult().getSeverity() == IStatus.CANCEL;
                jobError = job.getResult().getSeverity() == IStatus.ERROR;
                if (jobError) {
                    result = job.getResult();
                }
                if (job.getResult().getSeverity() == IStatus.INFO) {
                    ChangeDistillerPlugin.getDefault().addToFailureSet(javaElements[i].getElementName());
                }
            }
            monitor.worked(tick);
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    if (monitor.isCanceled() || jobCanceled) {
        result = Status.CANCEL_STATUS;
    }
    return result;
}

From source file:org.evolizer.famix.importer.ProjectParser.java

License:Apache License

/**
 * Dispatcher method for handling selected Java elements.
 * //from  w ww . j a  v a2 s . co m
 * @param monitor
 *            Progress monitor.
 * @return status.
 */
public IStatus parse(IProgressMonitor monitor) {
    fParsedElements = new HashSet<IJavaElement>();
    IStatus status = Status.OK_STATUS;

    SubMonitor progress = SubMonitor.convert(monitor, 100);
    progress.setTaskName("Parse selected items");
    SubMonitor loopProgress = progress.newChild(100).setWorkRemaining(getSelection().size());

    try {
        for (IJavaElement javaElement : getSelection()) {
            switch (javaElement.getElementType()) {
            case IJavaElement.JAVA_PROJECT:
                status = parseProject((IJavaProject) javaElement, loopProgress.newChild(1));
                break;
            case IJavaElement.PACKAGE_FRAGMENT:
                status = parsePackageFragment((IPackageFragment) javaElement, loopProgress.newChild(1));
                break;
            case IJavaElement.COMPILATION_UNIT:
                status = parseCompilationUnit((ICompilationUnit) javaElement, loopProgress.newChild(1));
                break;
            default:
                sLogger.error("Parsing of this Java element is not supported.");
                break;
            }

            if (status.getSeverity() == IStatus.ERROR) {
                sLogger.error("Error in parsing " + javaElement + " - continuing with next selected element.");
            } else if (status.getSeverity() == IStatus.CANCEL) {
                sLogger.info("Parsing job canceled");
                break;
            }
        }
    } finally {
        if (monitor != null) {
            monitor.done();
            monitor.subTask("");
        }
    }

    return status;
}

From source file:org.evosuite.eclipse.popup.actions.TestExtensionJob.java

License:Open Source License

@Override
protected IStatus run(IProgressMonitor monitor) {
    IStatus status = super.run(monitor);

    newTests.clear();/*w  w w .j a  v  a 2 s  .c  om*/
    IJavaElement element = JavaCore.create(target);
    if (element.getElementType() == IJavaElement.COMPILATION_UNIT) {
        ICompilationUnit compilationUnit = (ICompilationUnit) element;
        CodeFormatter formatter = ToolFactory.createCodeFormatter(null);

        try {
            if (compilationUnit.getTypes().length == 0) {
                System.out.println("The compilation unit is empty :|");
                return status;
            }
            IType classType = compilationUnit.getTypes()[0];
            // new tests
            loadTestSuiteContent(getTestClassName());

            for (ImportDeclaration newImport : newImports) {
                if (!hasImport(compilationUnit, newImport)) {
                    int flag = newImport.isStatic() ? Flags.AccStatic : Flags.AccDefault;
                    String strImport = newImport.getName().toString();
                    // Names of onDemand import declarations do not contain the '*'
                    if (newImport.isOnDemand())
                        strImport += ".*";
                    compilationUnit.createImport(strImport, null, flag, null);
                }
            }

            for (MethodDeclaration newMethod : newMethods) {

                if (hasMethod(classType, newMethod.getName().toString())) {

                    System.out.println("Test suite already contains method called: " + newMethod.getName());
                    int num = 1;
                    newMethod.setName(
                            newMethod.getAST().newSimpleName(newMethod.getName().toString() + "_" + num));
                    while (hasMethod(classType, newMethod.getName().toString())) {
                        num += 1;
                        String name = newMethod.getName().toString();
                        newMethod.setName(newMethod.getAST()
                                .newSimpleName(name.substring(0, name.length() - 2) + "_" + num));
                    }
                }
                String testContent = newMethod.toString();

                IMethod methodToAdd = classType.createMethod(testContent, null, false,
                        new NullProgressMonitor());
                ISourceRange range = methodToAdd.getSourceRange();
                TextEdit indent_edit = formatter.format(CodeFormatter.K_COMPILATION_UNIT,
                        classType.getCompilationUnit().getSource(), range.getOffset(), range.getLength(), 0,
                        null);
                classType.getCompilationUnit().applyTextEdit(indent_edit, null);
                newTests.add(newMethod.getName().toString());
            }
            classType.getCompilationUnit().commitWorkingCopy(false, null);
            // write markers
            writeMarkersExtendedTestSuite();

        } catch (JavaModelException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return status;
}

From source file:org.fusesource.ide.jvmmonitor.internal.ui.properties.cpu.actions.AddPackageDialog.java

License:Open Source License

/**
 * Adds the package.//from w  ww .jav  a2  s.  c o m
 * 
 * @param packageElements
 *            The package elements into which package is added
 * @param element
 *            The element which contains package element to be added
 * @throws JavaModelException
 */
private void addPackage(Set<String> packageElements, IJavaElement element) throws JavaModelException {

    // java source folder
    if (element instanceof IPackageFragmentRoot) {
        int kind = ((IPackageFragmentRoot) element).getKind();
        if (kind == IPackageFragmentRoot.K_SOURCE) {
            IJavaElement[] children = ((IPackageFragmentRoot) element).getChildren();
            for (IJavaElement child : children) {
                addPackage(packageElements, child);
            }
        }
    }

    // java package
    if (element instanceof IPackageFragment) {
        IJavaElement[] children = ((IPackageFragment) element).getChildren();
        for (IJavaElement child : children) {
            if (IJavaElement.COMPILATION_UNIT == child.getElementType()) {
                packageElements.add(element.getElementName());
                break;
            }
        }
    }
}

From source file:org.grails.ide.eclipse.editor.groovy.elements.GrailsProject.java

License:Open Source License

public ServiceClass getServiceClass(IType target) {
    IJavaElement cu = target.getAncestor(IJavaElement.COMPILATION_UNIT);
    if (cu instanceof GroovyCompilationUnit) {
        GroovyCompilationUnit gcu = (GroovyCompilationUnit) cu;
        return getServiceClass(gcu);
    }/*  www.ja  v  a 2s .c  o m*/
    return null;
}

From source file:org.grails.ide.eclipse.editor.groovy.elements.GrailsProject.java

License:Open Source License

public TestClass getTestClass(IType target) {
    IJavaElement cu = target.getAncestor(IJavaElement.COMPILATION_UNIT);
    if (cu instanceof GroovyCompilationUnit) {
        GroovyCompilationUnit gcu = (GroovyCompilationUnit) cu;
        return getTestClass(gcu);
    }/*www .  j a v  a2s  .c  om*/
    return null;
}

From source file:org.grails.ide.eclipse.editor.groovy.elements.GrailsProject.java

License:Open Source License

public ControllerClass getControllerClass(IType target) {
    IJavaElement cu = target.getAncestor(IJavaElement.COMPILATION_UNIT);
    if (cu instanceof GroovyCompilationUnit) {
        GroovyCompilationUnit gcu = (GroovyCompilationUnit) cu;
        return getControllerClass(gcu);
    }/*w  w  w  .ja v a2  s .co  m*/
    return null;
}