org.springframework.expression.MethodResolver

Here are the examples of the java api org.springframework.expression.MethodResolver taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

9 Examples 7

19 Source : StandardEvaluationContext.java
with MIT License
from Vip-Augus

public boolean removeMethodResolver(MethodResolver methodResolver) {
    return initMethodResolvers().remove(methodResolver);
}

19 Source : StandardEvaluationContext.java
with MIT License
from Vip-Augus

public void addMethodResolver(MethodResolver resolver) {
    addBeforeDefault(initMethodResolvers(), resolver);
}

19 Source : MethodReference.java
with MIT License
from Vip-Augus

private MethodExecutor findAccessorForMethod(List<TypeDescriptor> argumentTypes, Object targetObject, EvaluationContext evaluationContext) throws SpelEvaluationException {
    AccessException accessException = null;
    List<MethodResolver> methodResolvers = evaluationContext.getMethodResolvers();
    for (MethodResolver methodResolver : methodResolvers) {
        try {
            MethodExecutor methodExecutor = methodResolver.resolve(evaluationContext, targetObject, this.name, argumentTypes);
            if (methodExecutor != null) {
                return methodExecutor;
            }
        } catch (AccessException ex) {
            accessException = ex;
            break;
        }
    }
    String method = FormatHelper.formatMethodForMessage(this.name, argumentTypes);
    String clreplacedName = FormatHelper.formatClreplacedNameForMessage(targetObject instanceof Clreplaced ? ((Clreplaced<?>) targetObject) : targetObject.getClreplaced());
    if (accessException != null) {
        throw new SpelEvaluationException(getStartPosition(), accessException, SpelMessage.PROBLEM_LOCATING_METHOD, method, clreplacedName);
    } else {
        throw new SpelEvaluationException(getStartPosition(), SpelMessage.METHOD_NOT_FOUND, method, clreplacedName);
    }
}

19 Source : MethodInvocationTests.java
with Apache License 2.0
from SourceHot

@Test
public void testAddingMethodResolvers() {
    StandardEvaluationContext ctx = new StandardEvaluationContext();
    // reflective method accessor is the only one by default
    List<MethodResolver> methodResolvers = ctx.getMethodResolvers();
    replacedertThat(methodResolvers.size()).isEqualTo(1);
    MethodResolver dummy = new DummyMethodResolver();
    ctx.addMethodResolver(dummy);
    replacedertThat(ctx.getMethodResolvers().size()).isEqualTo(2);
    List<MethodResolver> copy = new ArrayList<>();
    copy.addAll(ctx.getMethodResolvers());
    replacedertThat(ctx.removeMethodResolver(dummy)).isTrue();
    replacedertThat(ctx.removeMethodResolver(dummy)).isFalse();
    replacedertThat(ctx.getMethodResolvers().size()).isEqualTo(1);
    ctx.setMethodResolvers(copy);
    replacedertThat(ctx.getMethodResolvers().size()).isEqualTo(2);
}

19 Source : StandardEvaluationContext.java
with Apache License 2.0
from langtianya

public boolean removeMethodResolver(MethodResolver methodResolver) {
    ensureMethodResolversInitialized();
    return this.methodResolvers.remove(methodResolver);
}

19 Source : StandardEvaluationContext.java
with Apache License 2.0
from langtianya

public void addMethodResolver(MethodResolver resolver) {
    ensureMethodResolversInitialized();
    this.methodResolvers.add(this.methodResolvers.size() - 1, resolver);
}

19 Source : MethodReference.java
with Apache License 2.0
from langtianya

private MethodExecutor findAccessorForMethod(String name, List<TypeDescriptor> argumentTypes, Object targetObject, EvaluationContext evaluationContext) throws SpelEvaluationException {
    List<MethodResolver> methodResolvers = evaluationContext.getMethodResolvers();
    if (methodResolvers != null) {
        for (MethodResolver methodResolver : methodResolvers) {
            try {
                MethodExecutor methodExecutor = methodResolver.resolve(evaluationContext, targetObject, name, argumentTypes);
                if (methodExecutor != null) {
                    return methodExecutor;
                }
            } catch (AccessException ex) {
                throw new SpelEvaluationException(getStartPosition(), ex, SpelMessage.PROBLEM_LOCATING_METHOD, name, targetObject.getClreplaced());
            }
        }
    }
    throw new SpelEvaluationException(getStartPosition(), SpelMessage.METHOD_NOT_FOUND, FormatHelper.formatMethodForMessage(name, argumentTypes), FormatHelper.formatClreplacedNameForMessage(targetObject instanceof Clreplaced ? ((Clreplaced<?>) targetObject) : targetObject.getClreplaced()));
}

18 Source : MethodInvocationTests.java
with MIT License
from Vip-Augus

@Test
public void testAddingMethodResolvers() {
    StandardEvaluationContext ctx = new StandardEvaluationContext();
    // reflective method accessor is the only one by default
    List<MethodResolver> methodResolvers = ctx.getMethodResolvers();
    replacedertEquals(1, methodResolvers.size());
    MethodResolver dummy = new DummyMethodResolver();
    ctx.addMethodResolver(dummy);
    replacedertEquals(2, ctx.getMethodResolvers().size());
    List<MethodResolver> copy = new ArrayList<>();
    copy.addAll(ctx.getMethodResolvers());
    replacedertTrue(ctx.removeMethodResolver(dummy));
    replacedertFalse(ctx.removeMethodResolver(dummy));
    replacedertEquals(1, ctx.getMethodResolvers().size());
    ctx.setMethodResolvers(copy);
    replacedertEquals(2, ctx.getMethodResolvers().size());
}

18 Source : MethodInvocationTests.java
with Apache License 2.0
from langtianya

@Test
public void testAddingMethodResolvers() {
    StandardEvaluationContext ctx = new StandardEvaluationContext();
    // reflective method accessor is the only one by default
    List<MethodResolver> methodResolvers = ctx.getMethodResolvers();
    replacedertEquals(1, methodResolvers.size());
    MethodResolver dummy = new DummyMethodResolver();
    ctx.addMethodResolver(dummy);
    replacedertEquals(2, ctx.getMethodResolvers().size());
    List<MethodResolver> copy = new ArrayList<MethodResolver>();
    copy.addAll(ctx.getMethodResolvers());
    replacedertTrue(ctx.removeMethodResolver(dummy));
    replacedertFalse(ctx.removeMethodResolver(dummy));
    replacedertEquals(1, ctx.getMethodResolvers().size());
    ctx.setMethodResolvers(copy);
    replacedertEquals(2, ctx.getMethodResolvers().size());
}