Example usage for org.eclipse.jdt.internal.compiler.lookup ReferenceBinding signature

List of usage examples for org.eclipse.jdt.internal.compiler.lookup ReferenceBinding signature

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.compiler.lookup ReferenceBinding signature.

Prototype

null signature

To view the source code for org.eclipse.jdt.internal.compiler.lookup ReferenceBinding signature.

Click Source Link

Usage

From source file:org.eclipse.recommenders.internal.chain.rcp.TypeBindingAnalyzer.java

License:Open Source License

public static boolean isAssignable(final ChainElement edge, final TypeBinding expectedType,
        final int expectedDimension) {
    if (expectedDimension <= edge.getReturnTypeDimension()) {
        final TypeBinding base = removeArrayWrapper(edge.getReturnType());
        if (base instanceof BaseTypeBinding) {
            return false;
        }/*from  w  w  w  .  j ava2  s.  c  o  m*/
        if (base.isCompatibleWith(expectedType)) {
            return true;
        }
        final LinkedList<ReferenceBinding> supertypes = Lists.newLinkedList();
        supertypes.add((ReferenceBinding) base);
        final String expectedSignature = String.valueOf(expectedType.signature());
        while (!supertypes.isEmpty()) {
            final ReferenceBinding type = supertypes.poll();
            if (String.valueOf(type.signature()).equals(expectedSignature)) {
                return true;
            }
            final ReferenceBinding superclass = type.superclass();
            if (superclass != null) {
                supertypes.add(superclass);
            }
            for (final ReferenceBinding intf : type.superInterfaces()) {
                supertypes.add(intf);
            }
        }
    }
    return false;
}