Spring Data Core

org.springframework.data.repository.query
Class Parameters<S extends Parameters<S,T>,T extends Parameter>

java.lang.Object
  extended by org.springframework.data.repository.query.Parameters<S,T>
All Implemented Interfaces:
Iterable<T>
Direct Known Subclasses:
DefaultParameters

public abstract class Parameters<S extends Parameters<S,T>,T extends Parameter>
extends Object
implements Iterable<T>

Abstracts method parameters that have to be bound to query parameters or applied to the query independently.

Author:
Oliver Gierke

Field Summary
static List<Class<?>> TYPES
           
 
Constructor Summary
protected Parameters(List<T> originals)
          Creates a new Parameters instance with the given Parameters put into new context.
  Parameters(Method method)
          Creates a new instance of Parameters.
 
Method Summary
protected abstract  S createFrom(List<T> parameters)
           
protected abstract  T createParameter(MethodParameter parameter)
          Creates a Parameter instance for the given MethodParameter.
 T getBindableParameter(int bindableIndex)
          Returns a bindable parameter with the given index.
 S getBindableParameters()
          Returns a Parameters instance with effectively all special parameters removed.
 int getNumberOfParameters()
          Returns the number of parameters.
 int getPageableIndex()
          Returns the index of the Pageable Method parameter if available.
 T getParameter(int index)
          Returns the parameter with the given index.
 int getSortIndex()
          Returns the index of the Sort Method parameter if available.
 boolean hasPageableParameter()
          Returns whether the method the Parameters was created for contains a Pageable argument.
 boolean hasParameterAt(int position)
          Returns whether we have a parameter at the given position.
 boolean hasSortParameter()
          Returns whether the method the Parameters was created for contains a Sort argument.
 boolean hasSpecialParameter()
          Returns whether the method signature contains one of the special parameters (Pageable, Sort).
static boolean isBindable(Class<?> type)
          Returns whether the given type is a bindable parameter.
 Iterator<T> iterator()
           
 boolean potentiallySortsDynamically()
          Returns whether we potentially find a Sort parameter in the parameters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TYPES

public static final List<Class<?>> TYPES
Constructor Detail

Parameters

public Parameters(Method method)
Creates a new instance of Parameters.

Parameters:
method -

Parameters

protected Parameters(List<T> originals)
Creates a new Parameters instance with the given Parameters put into new context.

Parameters:
originals -
Method Detail

createParameter

protected abstract T createParameter(MethodParameter parameter)
Creates a Parameter instance for the given MethodParameter.

Parameters:
parameter - will never be null.
Returns:

hasPageableParameter

public boolean hasPageableParameter()
Returns whether the method the Parameters was created for contains a Pageable argument.

Returns:

getPageableIndex

public int getPageableIndex()
Returns the index of the Pageable Method parameter if available. Will return -1 if there is no Pageable argument in the Method's parameter list.

Returns:
the pageableIndex

getSortIndex

public int getSortIndex()
Returns the index of the Sort Method parameter if available. Will return -1 if there is no Sort argument in the Method's parameter list.

Returns:

hasSortParameter

public boolean hasSortParameter()
Returns whether the method the Parameters was created for contains a Sort argument.

Returns:

potentiallySortsDynamically

public boolean potentiallySortsDynamically()
Returns whether we potentially find a Sort parameter in the parameters.

Returns:

getParameter

public T getParameter(int index)
Returns the parameter with the given index.

Parameters:
index -
Returns:

hasParameterAt

public boolean hasParameterAt(int position)
Returns whether we have a parameter at the given position.

Parameters:
position -
Returns:

hasSpecialParameter

public boolean hasSpecialParameter()
Returns whether the method signature contains one of the special parameters (Pageable, Sort).

Returns:

getNumberOfParameters

public int getNumberOfParameters()
Returns the number of parameters.

Returns:

getBindableParameters

public S getBindableParameters()
Returns a Parameters instance with effectively all special parameters removed.

Returns:
See Also:
Parameter.TYPES, Parameter.isSpecialParameter()

createFrom

protected abstract S createFrom(List<T> parameters)

getBindableParameter

public T getBindableParameter(int bindableIndex)
Returns a bindable parameter with the given index. So for a method with a signature of (Pageable pageable, String name) a call to #getBindableParameter(0) will return the String parameter.

Parameters:
bindableIndex -
Returns:

isBindable

public static boolean isBindable(Class<?> type)
Returns whether the given type is a bindable parameter.

Parameters:
type -
Returns:

iterator

public Iterator<T> iterator()
Specified by:
iterator in interface Iterable<T extends Parameter>

Spring Data Core

Copyright © 2011-2013-2013 Pivotal. All Rights Reserved.