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

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

Introduction

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

Prototype

boolean exists();

Source Link

Document

Returns whether this Java element exists in the model.

Usage

From source file:net.sourceforge.c4jplugin.internal.ui.contracthierarchy.ContractHierarchyLifeCycle.java

License:Open Source License

public void ensureRefreshedContractHierarchy(final IJavaElement element, IRunnableContext context)
        throws InvocationTargetException, InterruptedException {
    if (element == null || !element.exists()) {
        freeHierarchy();//w w  w.  j av a 2 s.  com
        return;
    }
    boolean hierachyCreationNeeded = (fHierarchy == null || !element.equals(fInputElement));

    if (hierachyCreationNeeded || fHierarchyRefreshNeeded) {

        IRunnableWithProgress op = new IRunnableWithProgress() {
            public void run(IProgressMonitor pm) throws InvocationTargetException, InterruptedException {
                try {
                    doHierarchyRefresh(element, pm);
                } catch (JavaModelException e) {
                    throw new InvocationTargetException(e);
                } catch (OperationCanceledException e) {
                    throw new InterruptedException();
                }
            }
        };
        fHierarchyRefreshNeeded = true;
        context.run(true, true, op);
        fHierarchyRefreshNeeded = false;
    }
}

From source file:nz.ac.massey.cs.care.refactoring.executers.IntroduceFactoryRefactoring.java

License:Open Source License

private RefactoringStatus initialize(JavaRefactoringArguments arguments) {
    final String selection = arguments.getAttribute(JavaRefactoringDescriptorUtil.ATTRIBUTE_SELECTION);
    if (selection != null) {
        int offset = -1;
        int length = -1;
        final StringTokenizer tokenizer = new StringTokenizer(selection);
        if (tokenizer.hasMoreTokens())
            offset = Integer.valueOf(tokenizer.nextToken()).intValue();
        if (tokenizer.hasMoreTokens())
            length = Integer.valueOf(tokenizer.nextToken()).intValue();
        if (offset >= 0 && length >= 0) {
            fSelectionStart = offset;/*  ww w  .j  av a2 s  .c  o m*/
            fSelectionLength = length;
        } else
            return RefactoringStatus.createFatalErrorStatus(
                    Messages.format(RefactoringCoreMessages.InitializableRefactoring_illegal_argument,
                            new Object[] { selection, JavaRefactoringDescriptorUtil.ATTRIBUTE_SELECTION }));
    } else
        return RefactoringStatus.createFatalErrorStatus(
                Messages.format(RefactoringCoreMessages.InitializableRefactoring_argument_not_exist,
                        JavaRefactoringDescriptorUtil.ATTRIBUTE_SELECTION));
    String handle = arguments.getAttribute(JavaRefactoringDescriptorUtil.ATTRIBUTE_INPUT);
    if (handle != null) {
        final IJavaElement element = JavaRefactoringDescriptorUtil.handleToElement(arguments.getProject(),
                handle, false);
        if (element == null || !element.exists() || element.getElementType() != IJavaElement.COMPILATION_UNIT)
            return JavaRefactoringDescriptorUtil.createInputFatalStatus(element, getName(),
                    IJavaRefactorings.INTRODUCE_FACTORY);
        else {
            fCUHandle = (ICompilationUnit) element;
            initialize();
        }
    } else
        return RefactoringStatus.createFatalErrorStatus(
                Messages.format(RefactoringCoreMessages.InitializableRefactoring_argument_not_exist,
                        JavaRefactoringDescriptorUtil.ATTRIBUTE_INPUT));
    handle = arguments.getAttribute(JavaRefactoringDescriptorUtil.ATTRIBUTE_ELEMENT + 1);
    if (handle != null) {
        final IJavaElement element = JavaRefactoringDescriptorUtil.handleToElement(arguments.getProject(),
                handle, false);
        if (element == null || !element.exists() || element.getElementType() != IJavaElement.TYPE)
            return JavaRefactoringDescriptorUtil.createInputFatalStatus(element, getName(),
                    IJavaRefactorings.INTRODUCE_FACTORY);
        else {
            final IType type = (IType) element;
            fFactoryClassName = type.getFullyQualifiedName();
        }
    } else
        return RefactoringStatus.createFatalErrorStatus(
                Messages.format(RefactoringCoreMessages.InitializableRefactoring_argument_not_exist,
                        JavaRefactoringDescriptorUtil.ATTRIBUTE_INPUT));
    final String name = arguments.getAttribute(JavaRefactoringDescriptorUtil.ATTRIBUTE_NAME);
    if (name != null && !"".equals(name)) //$NON-NLS-1$
        fNewMethodName = name;
    else
        return RefactoringStatus.createFatalErrorStatus(
                Messages.format(RefactoringCoreMessages.InitializableRefactoring_argument_not_exist,
                        JavaRefactoringDescriptorUtil.ATTRIBUTE_NAME));
    final String protect = arguments.getAttribute(ATTRIBUTE_PROTECT);
    if (protect != null) {
        fProtectConstructor = Boolean.valueOf(protect).booleanValue();
    } else
        return RefactoringStatus.createFatalErrorStatus(Messages.format(
                RefactoringCoreMessages.InitializableRefactoring_argument_not_exist, ATTRIBUTE_PROTECT));
    return new RefactoringStatus();
}

From source file:org.codehaus.groovy.eclipse.refactoring.core.extract.ExtractGroovyMethodRefactoring.java

License:Apache License

private RefactoringStatus initialize(JavaRefactoringArguments arguments) {
    final String selection = arguments.getAttribute(JavaRefactoringDescriptorUtil.ATTRIBUTE_SELECTION);
    if (selection == null) {
        return RefactoringStatus.createFatalErrorStatus(
                Messages.format(RefactoringCoreMessages.InitializableRefactoring_argument_not_exist,
                        JavaRefactoringDescriptorUtil.ATTRIBUTE_SELECTION));
    }//from ww  w.j  a v a2  s .  co  m

    int offset = -1;
    int length = -1;
    final StringTokenizer tokenizer = new StringTokenizer(selection);
    if (tokenizer.hasMoreTokens())
        offset = Integer.valueOf(tokenizer.nextToken()).intValue();
    if (tokenizer.hasMoreTokens())
        length = Integer.valueOf(tokenizer.nextToken()).intValue();
    if (offset < 0 || length < 0)
        return RefactoringStatus.createFatalErrorStatus(
                Messages.format(RefactoringCoreMessages.InitializableRefactoring_illegal_argument,
                        new Object[] { selection, JavaRefactoringDescriptorUtil.ATTRIBUTE_SELECTION }));
    selectedText = new Region(offset, length);

    final String handle = arguments.getAttribute(JavaRefactoringDescriptorUtil.ATTRIBUTE_INPUT);
    if (handle == null)
        return RefactoringStatus.createFatalErrorStatus(
                Messages.format(RefactoringCoreMessages.InitializableRefactoring_argument_not_exist,
                        JavaRefactoringDescriptorUtil.ATTRIBUTE_INPUT));

    IJavaElement element = JavaRefactoringDescriptorUtil.handleToElement(arguments.getProject(), handle, false);
    if (element == null || !element.exists() || element.getElementType() != IJavaElement.COMPILATION_UNIT
            || !(element instanceof GroovyCompilationUnit))
        return JavaRefactoringDescriptorUtil.createInputFatalStatus(element, getName(),
                IJavaRefactorings.EXTRACT_METHOD);
    unit = (GroovyCompilationUnit) element;

    final String name = arguments.getAttribute(JavaRefactoringDescriptorUtil.ATTRIBUTE_NAME);
    if (name == null || name.length() == 0)
        return RefactoringStatus.createFatalErrorStatus(
                Messages.format(RefactoringCoreMessages.InitializableRefactoring_argument_not_exist,
                        JavaRefactoringDescriptorUtil.ATTRIBUTE_NAME));
    newMethodName = name;

    return new RefactoringStatus();
}

From source file:org.codehaus.groovy.eclipse.refactoring.test.rename.RenameTypeTests.java

License:Open Source License

private void checkMappers(Refactoring refactoring, IType type, String newCUName,
        IJavaElement[] someClassMembers) {
    RenameTypeProcessor rtp = (RenameTypeProcessor) ((RenameRefactoring) refactoring).getProcessor();

    ICompilationUnit newUnit = (ICompilationUnit) rtp.getRefactoredJavaElement(type.getCompilationUnit());
    assertTrue(newUnit.exists());/* w ww .j  a v  a 2 s.  c o  m*/
    assertTrue(newUnit.getElementName().equals(newCUName));

    IFile newFile = (IFile) rtp.getRefactoredResource(type.getResource());
    assertTrue(newFile.exists());
    assertTrue(newFile.getName().equals(newCUName));

    if ((type.getParent().getElementType() == IJavaElement.COMPILATION_UNIT)
            && type.getCompilationUnit().getElementName().equals(type.getElementName() + ".groovy")) {
        assertFalse(type.getCompilationUnit().exists());
        assertFalse(type.getResource().exists());
    }

    IPackageFragment oldPackage = (IPackageFragment) type.getCompilationUnit().getParent();
    IPackageFragment newPackage = (IPackageFragment) rtp.getRefactoredJavaElement(oldPackage);
    assertEquals(oldPackage, newPackage);

    for (int i = 0; i < someClassMembers.length; i++) {
        IMember member = (IMember) someClassMembers[i];
        IJavaElement refactoredMember = rtp.getRefactoredJavaElement(member);
        if (member instanceof IMethod && member.getElementName().equals(type.getElementName()))
            continue; // constructor
        assertTrue(refactoredMember.exists());
        assertEquals(member.getElementName(), refactoredMember.getElementName());
        assertFalse(refactoredMember.equals(member));
    }
}

From source file:org.dev.toos.constcode.model.ConstModel.java

License:Apache License

/**?*/
private void iterateIJavaElement(IJavaElement atElement, String resourceName, Map<String, Object> findRes)
        throws CoreException {
    if (atElement.exists() == false)
        return;/* w  ww . j  a v a 2  s .  c  o  m*/
    switch (atElement.getElementType()) {
    /*package root*/
    case IJavaElement.PACKAGE_FRAGMENT_ROOT: {
        IPackageFragmentRoot e = (IPackageFragmentRoot) atElement;
        Object[] resourcesItem = e.getNonJavaResources();
        if (resourcesItem != null)
            for (Object element : resourcesItem)
                iterateItem(element, resourceName, findRes);
        //            IJavaElement[] childs = e.getChildren();
        //            if (childs != null)
        //                for (IJavaElement elementItem : childs)
        //                    iterateItem(elementItem, resourceName);
        break;
    }
    /*package*/
    case IJavaElement.PACKAGE_FRAGMENT: {
        IPackageFragment e = (IPackageFragment) atElement;
        Object[] resourcesItem = e.getNonJavaResources();
        if (resourcesItem != null)
            for (Object element : resourcesItem)
                iterateItem(element, resourceName, findRes);
        //            IJavaElement[] childs = e.getChildren();
        //            if (childs != null)
        //                for (IJavaElement elementItem : childs)
        //                    iterateItem(elementItem, resourceName);
        break;
    }
    }
}

From source file:org.eclim.plugin.jdt.command.bean.PropertiesCommand.java

License:Open Source License

/**
 * Determines the sibling to insert relative to for the next property.
 *
 * @param type The parent type.//from  ww w  . j  av  a  2 s.co  m
 * @param fields List of all the fields.
 * @param field The resolved field.
 * @param lastSibling The last sibling.
 * @param methodType The type of the method to be inserted.
 *
 * @return The relative sibling to use.
 */
protected IJavaElement getSibling(IType type, List<IField> fields, IField field, IJavaElement lastSibling,
        int methodType) throws Exception {
    // first run through
    if (lastSibling == null || !lastSibling.exists()) {
        // first try other methods for the same field.
        for (int ii = TYPE_GET; ii <= TYPE_SET_INDEX; ii++) {
            if (ii != methodType) {
                IMethod method = getBeanMethod(type, field, ii);
                if (method != null) {
                    if (ii < methodType) {
                        method = MethodUtils.getMethodAfter(type, method);
                    }
                    if (method != null) {
                        return method;
                    } else {
                        return getFirstInnerType(type);
                    }
                }
            }
        }

        int index = fields.indexOf(field);

        // insert before the next property's bean methods, if there are other
        // properties.
        if (fields.size() > 1 && (index + 1) < fields.size()) {
            IMethod method = null;
            for (int ii = index + 1; method == null && ii < fields.size(); ii++) {
                IField property = (IField) fields.get(ii);
                method = getBeanMethod(type, property, false);
            }
            if (method != null) {
                return method;
            }
        }

        // insert after previous property's bean methods, if there are other
        // properties.
        if (fields.size() > 1 && index > 0) {
            IMethod method = null;
            for (int ii = index - 1; method == null && ii >= 0; ii--) {
                IField property = (IField) fields.get(ii);
                method = getBeanMethod(type, property, true);
            }
            if (method != null) {
                method = MethodUtils.getMethodAfter(type, method);
                if (method != null) {
                    return method;
                }
            }
        }

        return getFirstInnerType(type);
    }
    if (lastSibling != null && lastSibling.exists()) {
        return lastSibling;
    }
    return null;
}

From source file:org.eclipse.ajdt.core.model.AJModelChecker.java

License:Open Source License

private static List<String> invalidAdviceRelationsip(IRelationship rel, AJProjectModelFacade model) {
    List<String> problems = new ArrayList<String>();
    if (rel.getKind() == IRelationship.Kind.ADVICE || rel.getKind() == IRelationship.Kind.ADVICE_AFTER
            || rel.getKind() == IRelationship.Kind.ADVICE_AFTERRETURNING
            || rel.getKind() == IRelationship.Kind.ADVICE_AFTERTHROWING
            || rel.getKind() == IRelationship.Kind.ADVICE_BEFORE
            || rel.getKind() == IRelationship.Kind.ADVICE_AROUND) {

        IJavaElement elt = model.programElementToJavaElement(rel.getSourceHandle());
        if (!elt.exists()) {
            problems.add("Java Element does not exist: " + rel.getSourceHandle()
                    + "\n\tIt is the source relationship of " + toRelString(rel)
                    + "\n\tThis may not actually be a problem if compiling broken code or advising static initializers.");
        }//from w ww. ja  v  a2 s .  c  om
        if (elt.getElementType() == IJavaElement.COMPILATION_UNIT
                || elt.getElementType() == IJavaElement.CLASS_FILE) {
            problems.add(
                    "Java Element is wrong type (advice relationships should not contain any types or compilation units): "
                            + rel.getSourceHandle() + "\n\tIt is the source relationship of "
                            + toRelString(rel));
        }

        for (Iterator<String> targetIter = rel.getTargets().iterator(); targetIter.hasNext();) {
            String target = targetIter.next();
            elt = model.programElementToJavaElement(target);
            if (!elt.exists()) {
                problems.add("Java Element does not exist: " + target + "\n\tIt is the source relationship of "
                        + toRelString(rel)
                        + "\n\tThis may not actually be a problem if compiling broken code or advising static initializers.");
            }
            if (elt != AJProjectModelFacade.ERROR_JAVA_ELEMENT
                    && (elt.getElementType() == IJavaElement.COMPILATION_UNIT
                            || elt.getElementType() == IJavaElement.CLASS_FILE)) {
                problems.add(
                        "Java Element is wrong type (advice relationships should not contain any types or compilation units): "
                                + target + "\n\tIt is the source relationship of " + toRelString(rel));
            }
        }

    }
    return problems;
}

From source file:org.eclipse.ajdt.core.model.AJModelChecker.java

License:Open Source License

private static List<String> itdsNotOnType(IRelationship rel, AJProjectModelFacade model) {
    List<String> problems = new ArrayList<String>();
    if (rel.getKind() == IRelationship.Kind.DECLARE_INTER_TYPE) {

        IJavaElement elt = model.programElementToJavaElement(rel.getSourceHandle());
        if (!elt.exists()) {
            problems.add("Java Element does not exist: " + rel.getSourceHandle()
                    + "\n\tIt is the source relationship of " + toRelString(rel)
                    + "\n\tThis may not actually be a problem if compiling broken code.");
        }//from   w  w  w .j  a v a 2s.  com
        if (elt != AJProjectModelFacade.ERROR_JAVA_ELEMENT
                && (elt.getElementType() == IJavaElement.FIELD || elt.getElementType() == IJavaElement.METHOD
                        || elt.getElementType() == IJavaElement.LOCAL_VARIABLE
                        || elt.getElementType() == IJavaElement.INITIALIZER
                        || elt.getElementType() == IJavaElement.COMPILATION_UNIT
                        || elt.getElementType() == IJavaElement.CLASS_FILE)
                && !(elt instanceof IntertypeElement || elt instanceof DeclareElement)) {
            problems.add(
                    "Java Element is wrong type (ITD relationships should only contain types and intertype elements): "
                            + rel.getSourceHandle() + "\n\tIt is the source relationship of "
                            + toRelString(rel));
        }

        for (Iterator<String> targetIter = rel.getTargets().iterator(); targetIter.hasNext();) {
            String target = targetIter.next();
            elt = model.programElementToJavaElement(target);
            if (!elt.exists()) {
                problems.add("Java Element does not exist: " + target + "\n\tIt is the source relationship of "
                        + toRelString(rel)
                        + "\n\tThis may not actually be a problem if compiling broken code.");
            }
            if (elt != AJProjectModelFacade.ERROR_JAVA_ELEMENT
                    && (elt.getElementType() == IJavaElement.FIELD
                            || elt.getElementType() == IJavaElement.METHOD
                            || elt.getElementType() == IJavaElement.LOCAL_VARIABLE
                            || elt.getElementType() == IJavaElement.INITIALIZER
                            || elt.getElementType() == IJavaElement.COMPILATION_UNIT
                            || elt.getElementType() == IJavaElement.CLASS_FILE)
                    && !(elt instanceof IntertypeElement || elt instanceof DeclareElement)) {
                problems.add(
                        "Java Element is wrong type (ITD relationships should only contain types and intertype elements): "
                                + target + "\n\tIt is the source relationship of " + toRelString(rel));
            }
        }

    }
    return problems;
}

From source file:org.eclipse.ajdt.core.tests.builder.LinkedFoldersTestBug270202.java

License:Open Source License

public void testHandlesInsideLinkedFolders() throws Exception {
    IJavaElement ije = AspectJCore.create(linkedFile);
    assertTrue("Compilation unit should exist " + ije.getHandleIdentifier(), ije.exists());
    AJProjectModelFacade model = AJProjectModelFactory.getInstance().getModelForProject(project);
    IProgramElement ipe = model.javaElementToProgramElement(ije);
    assertNotSame("IProgramElement should exist", IHierarchy.NO_STRUCTURE, ipe);
    IJavaElement recreated = model.programElementToJavaElement(ipe);
    assertTrue("Compilation unit should exist " + recreated.getHandleIdentifier(), recreated.exists());
}

From source file:org.eclipse.ajdt.core.tests.codeselect.AbstractITDAwareCodeSelectionTests.java

License:Open Source License

protected void validateCodeSelect(ICompilationUnit unit, IRegion region, String expected,
        boolean expectingProblems, int numParams) throws Exception {
    if (!expectingProblems) {
        this.assertNoProblems(unit.getJavaProject().getProject());
    }// www  . j a v a2 s.  co m
    performDummySearch(unit.getJavaProject());
    IJavaElement[] result = unit.codeSelect(region.getOffset(), region.getLength());
    assertEquals("Should have found exactly one hyperlink", 1, result.length);
    IJavaElement elt = result[0];
    assertTrue("Java element " + elt.getHandleIdentifier() + " should exist", elt.exists());
    assertEquals(expected, elt.getElementName());

    if (numParams >= 0 && elt instanceof IMethod) {
        assertEquals("Wrong number of parameters for " + elt, numParams,
                ((IMethod) elt).getNumberOfParameters());
    }
}