package org.restler.spring.data.methods; import com.google.common.collect.ImmutableMultimap; import org.restler.client.Call; import java.lang.reflect.Method; import java.net.URI; import java.util.Map; import java.util.Set; /** * Represents some repository method, allowing building of call descriptions for different methods. */ public interface RepositoryMethod { /** * Builds call description. * @param declaringClass class object whose method was called. * @param unmappedArgs arguments that weren't mapped into {@code requestParams} and {@code pathVariables}. */ Call getDescription(URI baseUrl, Class<?> declaringClass, ImmutableMultimap<String, String> requestParams, Map<String, Object> pathVariables, Set<Object> unmappedArgs); /** * Checks that method is supported by current implementation. */ boolean isRepositoryMethod(Method method); }