Example usage for org.eclipse.jdt.core BindingKey isRawType

List of usage examples for org.eclipse.jdt.core BindingKey isRawType

Introduction

In this page you can find the example usage for org.eclipse.jdt.core BindingKey isRawType.

Prototype

public boolean isRawType() 

Source Link

Document

Returns whether this binding key represents a raw type.

Usage

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

License:Open Source License

void storeTypeSignaturesAndArguments(IType type) {
    if (type.isResolved()) {
        BindingKey bindingKey = new BindingKey(type.getKey());
        if (bindingKey.isParameterizedType() || bindingKey.isRawType()) {
            String signature = bindingKey.toSignature();
            this.typeSignatures = Util.splitTypeLevelsSignature(signature);
            setTypeArguments(Util.getAllTypeArguments(this.typeSignatures));
        }//  w  w w  .j  a  v a 2  s  . c om
        return;
    }

    // Scan hierarchy to store type arguments at each level
    char[][][] typeParameters = new char[10][][];
    int ptr = -1;
    boolean hasParameters = false;
    try {
        IJavaElement parent = type;
        ITypeParameter[] parameters = null;
        while (parent != null && parent.getElementType() == IJavaElement.TYPE) {
            if (++ptr > typeParameters.length) {
                System.arraycopy(typeParameters, 0, typeParameters = new char[typeParameters.length + 10][][],
                        0, ptr);
            }
            IType parentType = (IType) parent;
            parameters = parentType.getTypeParameters();
            if (parameters != null) {
                int length = parameters.length;
                if (length > 0) {
                    hasParameters = true;
                    typeParameters[ptr] = new char[length][];
                    for (int i = 0; i < length; i++)
                        typeParameters[ptr][i] = Signature
                                .createTypeSignature(parameters[i].getElementName(), false).toCharArray();
                }
            }
            parent = parent.getParent();
        }
    } catch (JavaModelException jme) {
        return;
    }

    // Store type arguments if any
    if (hasParameters) {
        if (++ptr < typeParameters.length)
            System.arraycopy(typeParameters, 0, typeParameters = new char[ptr][][], 0, ptr);
        setTypeArguments(typeParameters);
    }
}