Example usage for org.eclipse.jdt.internal.compiler.lookup MethodBinding isDefaultAbstract

List of usage examples for org.eclipse.jdt.internal.compiler.lookup MethodBinding isDefaultAbstract

Introduction

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

Prototype

public final boolean isDefaultAbstract() 

Source Link

Usage

From source file:com.codenvy.ide.ext.java.server.internal.codeassist.SelectionEngine.java

License:Open Source License

private void selectStaticMethodFromStaticImport(CompilationUnitDeclaration parsedUnit, char[] lastToken,
        ReferenceBinding ref) {/*from   w ww  .  java2  s.com*/
    int methodLength = lastToken.length;
    MethodBinding[] methods = ref.availableMethods();
    next: for (int j = 0; j < methods.length; j++) {
        MethodBinding method = methods[j];

        if (method.isSynthetic())
            continue next;

        if (method.isDefaultAbstract())
            continue next;

        if (method.isConstructor())
            continue next;

        if (!method.isStatic())
            continue next;

        if (methodLength > method.selector.length)
            continue next;

        if (!CharOperation.equals(lastToken, method.selector, true))
            continue next;

        selectFrom(method, parsedUnit, false);
    }
}

From source file:lombok.eclipse.agent.PatchDelegate.java

License:Open Source License

private static void addAllMethodBindings0(List<BindingTuple> list, TypeBinding binding, Set<String> banList,
        char[] fieldName, ASTNode responsible) throws DelegateRecursion {
    if (binding instanceof SourceTypeBinding)
        ((SourceTypeBinding) binding).scope.environment().globalOptions.storeAnnotations = true;
    if (binding == null)
        return;//from   w ww. jav  a 2  s. c o  m

    TypeBinding inner;

    if (binding instanceof ParameterizedTypeBinding) {
        inner = ((ParameterizedTypeBinding) binding).genericType();
    } else {
        inner = binding;
    }

    if (inner instanceof SourceTypeBinding) {
        ClassScope cs = ((SourceTypeBinding) inner).scope;
        if (cs != null) {
            try {
                Reflection.classScopeBuildFieldsAndMethodsMethod.invoke(cs);
            } catch (Exception e) {
                // See 'Reflection' class for why we ignore this exception.
            }
        }
    }

    if (binding instanceof ReferenceBinding) {
        ReferenceBinding rb = (ReferenceBinding) binding;
        MethodBinding[] availableMethods = rb.availableMethods();
        FieldBinding[] availableFields = rb.availableFields();
        failIfContainsAnnotation(binding, availableMethods);
        failIfContainsAnnotation(binding, availableFields);

        MethodBinding[] parameterizedSigs = availableMethods;
        MethodBinding[] baseSigs = parameterizedSigs;
        if (binding instanceof ParameterizedTypeBinding) {
            baseSigs = ((ParameterizedTypeBinding) binding).genericType().availableMethods();
            if (baseSigs.length != parameterizedSigs.length) {
                // The last known state of eclipse source says this can't happen, so we rely on it,
                // but if this invariant is broken, better to go with 'arg0' naming instead of crashing.
                baseSigs = parameterizedSigs;
            }
        }
        for (int i = 0; i < parameterizedSigs.length; i++) {
            MethodBinding mb = parameterizedSigs[i];
            String sig = printSig(mb);
            if (mb.isStatic())
                continue;
            if (mb.isBridge())
                continue;
            if (mb.isConstructor())
                continue;
            if (mb.isDefaultAbstract())
                continue;
            if (!mb.isPublic())
                continue;
            if (mb.isSynthetic())
                continue;
            if (!banList.add(sig))
                continue; // If add returns false, it was already in there.
            BindingTuple pair = new BindingTuple(mb, baseSigs[i], fieldName, responsible);
            list.add(pair);
        }
        addAllMethodBindings0(list, rb.superclass(), banList, fieldName, responsible);
        ReferenceBinding[] interfaces = rb.superInterfaces();
        if (interfaces != null) {
            for (ReferenceBinding iface : interfaces)
                addAllMethodBindings0(list, iface, banList, fieldName, responsible);
        }
    }
}