Example usage for org.springframework.data.gemfire.function GemfireFunctionUtils getAnnotationParameterPosition

List of usage examples for org.springframework.data.gemfire.function GemfireFunctionUtils getAnnotationParameterPosition

Introduction

In this page you can find the example usage for org.springframework.data.gemfire.function GemfireFunctionUtils getAnnotationParameterPosition.

Prototype

public static int getAnnotationParameterPosition(Method method, Class<?> targetAnnotationType,
        Class<?>[] requiredTypes) 

Source Link

Document

Determine the order position of a an annotated method parameter

Usage

From source file:org.springframework.data.gemfire.function.FunctionContextInjectingArgumentResolver.java

public FunctionContextInjectingArgumentResolver(Method method) {
    this.method = method;

    int regionDataAnnotationParameterPosition = GemfireFunctionUtils.getAnnotationParameterPosition(method,
            RegionData.class, new Class[] { Map.class });

    int regionTypeParameterPosition = getArgumentTypePosition(method, Region.class);

    if (regionDataAnnotationParameterPosition >= 0 && regionTypeParameterPosition >= 0) {
        Assert.isTrue(regionDataAnnotationParameterPosition == regionTypeParameterPosition, String.format(
                "Function method signature for method %s cannot contain an @RegionData parameter and a different Region type parameter",
                method.getName()));/*  w  ww .  java 2s  . c  o m*/
    }

    regionParameterPosition = (regionDataAnnotationParameterPosition >= 0
            ? regionDataAnnotationParameterPosition
            : (regionTypeParameterPosition >= 0 ? regionTypeParameterPosition : -1));

    filterParameterPosition = GemfireFunctionUtils.getAnnotationParameterPosition(method, Filter.class,
            new Class[] { Set.class });

    if (regionParameterPosition >= 0 && filterParameterPosition >= 0) {
        Assert.state(regionParameterPosition != filterParameterPosition,
                "region parameter and filter parameter must be different");
    }

    functionContextParameterPosition = getArgumentTypePosition(method, FunctionContext.class);

    resultSenderParameterPosition = getArgumentTypePosition(method, ResultSender.class);
}