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

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

Introduction

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

Prototype

IJavaElement getParent();

Source Link

Document

Returns the element directly containing this element, or null if this element has no parent.

Usage

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

License:Open Source License

public IPackageFragment getPackageFragment() {
    IJavaElement parentElement = this.parent;
    while (parentElement != null) {
        if (parentElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
            return (IPackageFragment) parentElement;
        } else {/*from ww  w.  j a  v  a2s.  co  m*/
            parentElement = parentElement.getParent();
        }
    }
    Assert.isTrue(false); // should not happen
    return null;
}

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

License:Open Source License

/**
 * @see org.eclipse.jdt.core.IClassFile/*from w  w  w . j a  v a  2s .  c o  m*/
 */
public IJavaElement getElementAt(int position) throws JavaModelException {
    IJavaElement parentElement = getParent();
    while (parentElement.getElementType() != IJavaElement.PACKAGE_FRAGMENT_ROOT) {
        parentElement = parentElement.getParent();
    }
    PackageFragmentRoot root = (PackageFragmentRoot) parentElement;
    SourceMapper mapper = root.getSourceMapper();
    if (mapper == null) {
        return null;
    } else {
        // ensure this class file's buffer is open so that source ranges are computed
        getBuffer();

        IType type = getType();
        return findElement(type, position, mapper);
    }
}

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

License:Open Source License

/**
 * @see org.eclipse.jdt.core.ICompilationUnit#findElements(org.eclipse.jdt.core.IJavaElement)
 *//* w w w.  j  av  a2s. c o  m*/
public IJavaElement[] findElements(IJavaElement element) {
    ArrayList children = new ArrayList();
    while (element != null && element.getElementType() != IJavaElement.COMPILATION_UNIT) {
        children.add(element);
        element = element.getParent();
    }
    if (element == null)
        return null;
    IJavaElement currentElement = this;
    for (int i = children.size() - 1; i >= 0; i--) {
        SourceRefElement child = (SourceRefElement) children.get(i);
        switch (child.getElementType()) {
        case IJavaElement.PACKAGE_DECLARATION:
            currentElement = ((ICompilationUnit) currentElement).getPackageDeclaration(child.getElementName());
            break;
        case IJavaElement.IMPORT_CONTAINER:
            currentElement = ((ICompilationUnit) currentElement).getImportContainer();
            break;
        case IJavaElement.IMPORT_DECLARATION:
            currentElement = ((IImportContainer) currentElement).getImport(child.getElementName());
            break;
        case IJavaElement.TYPE:
            switch (currentElement.getElementType()) {
            case IJavaElement.COMPILATION_UNIT:
                currentElement = ((ICompilationUnit) currentElement).getType(child.getElementName());
                break;
            case IJavaElement.TYPE:
                currentElement = ((IType) currentElement).getType(child.getElementName());
                break;
            case IJavaElement.FIELD:
            case IJavaElement.INITIALIZER:
            case IJavaElement.METHOD:
                currentElement = ((IMember) currentElement).getType(child.getElementName(),
                        child.occurrenceCount);
                break;
            }
            break;
        case IJavaElement.INITIALIZER:
            currentElement = ((IType) currentElement).getInitializer(child.occurrenceCount);
            break;
        case IJavaElement.FIELD:
            currentElement = ((IType) currentElement).getField(child.getElementName());
            break;
        case IJavaElement.METHOD:
            currentElement = ((IType) currentElement).getMethod(child.getElementName(),
                    ((IMethod) child).getParameterTypes());
            break;
        }

    }
    if (currentElement != null && currentElement.exists()) {
        return new IJavaElement[] { currentElement };
    } else {
        return null;
    }
}

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

License:Open Source License

/**
 * @see org.eclipse.jdt.core.IJavaElement
 *//*from  w ww .  java2s .c  om*/
public IJavaElement getAncestor(int ancestorType) {

    IJavaElement element = this;
    while (element != null) {
        if (element.getElementType() == ancestorType)
            return element;
        element = element.getParent();
    }
    return null;
}

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

License:Open Source License

/**
 * @see org.eclipse.jdt.core.IJavaElement
 *///from w w  w .j a v a  2  s . c  o m
public IJavaModel getJavaModel() {
    IJavaElement current = this;
    do {
        if (current instanceof IJavaModel)
            return (IJavaModel) current;
    } while ((current = current.getParent()) != null);
    return null;
}

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

License:Open Source License

/**
 * @see org.eclipse.jdt.core.IJavaElement
 *//*w  w w .  j av a  2  s .c  o  m*/
public IJavaProject getJavaProject() {
    IJavaElement current = this;
    do {
        if (current instanceof IJavaProject)
            return (IJavaProject) current;
    } while ((current = current.getParent()) != null);
    return null;
}

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

License:Open Source License

/**
 * Returns true if this element is an ancestor of the given element,
 * otherwise false.//from  ww  w  .  j av a  2 s  . c om
 */
public boolean isAncestorOf(IJavaElement e) {
    IJavaElement parentElement = e.getParent();
    while (parentElement != null && !parentElement.equals(this)) {
        parentElement = parentElement.getParent();
    }
    return parentElement != null;
}

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

License:Open Source License

/**
 * Returns whether the two java elements are equals and have the same parent.
 *//*w w w .ja v a  2  s.  co m*/
protected boolean equalsAndSameParent(IJavaElement e1, IJavaElement e2) {
    IJavaElement parent1;
    return e1.equals(e2) && ((parent1 = e1.getParent()) != null) && parent1.equals(e2.getParent());
}

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

License:Open Source License

/**
 * Returns a collection of all the parents of this element up to (but
 * not including) the root of this tree in bottom-up order. If the given
 * element is not a descendant of the root of this tree, <code>null</code>
 * is returned.//from   ww  w  .  j av  a 2 s  .  c o m
 */
private ArrayList getAncestors(IJavaElement element) {
    IJavaElement parent = element.getParent();
    if (parent == null) {
        return null;
    }
    ArrayList parents = new ArrayList();
    while (!parent.equals(this.changedElement)) {
        parents.add(parent);
        parent = parent.getParent();
        if (parent == null) {
            return null;
        }
    }
    parents.trimToSize();
    return parents;
}

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

License:Open Source License

/**
 * @see org.eclipse.jdt.core.IMember#getClassFile()
 *///  www .j av  a 2  s.  co  m
public IClassFile getClassFile() {
    IJavaElement element = getParent();
    while (element instanceof IMember) {
        element = element.getParent();
    }
    if (element instanceof IClassFile) {
        return (IClassFile) element;
    }
    return null;
}