org.wisdom.api.router.Router Maven / Gradle / Ivy
The newest version!
/*
* #%L
* Wisdom-Framework
* %%
* Copyright (C) 2013 - 2014 Wisdom Framework
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
package org.wisdom.api.router;
import org.wisdom.api.Controller;
import org.wisdom.api.http.HttpMethod;
import org.wisdom.api.http.Request;
import java.util.Collection;
import java.util.Map;
/**
* The router service interface.
*/
public interface Router {
/**
* Gets the route for the given method and uri.
*
* @param method the method
* @param uri the uri
* @return the route, {@literal unbound} if no controller handles the request
* @deprecated use {@link #getRouteFor(HttpMethod, String, Request)}
*/
@Deprecated
Route getRouteFor(HttpMethod method, String uri);
/**
* Gets the route for the given method and uri.
*
* @param method the method (must be a valid HTTP method)
* @param uri the uri
* @return the route, {@literal unbound} if no controller handles the request
* @deprecated use {@link #getRouteFor(String, String, Request)}
*/
@Deprecated
Route getRouteFor(String method, String uri);
/**
* Gets the route for the given method and uri.
*
* @param method the method (must be a valid HTTP method)
* @param uri the uri
* @param request the incoming request, used to handle negotiation
* @return the route, {@literal unbound} if no controller handles the request
* @since 0.8.1
*/
Route getRouteFor(String method, String uri, Request request);
/**
* Gets the route for the given method and uri.
*
* @param method the method (must be a valid HTTP method)
* @param uri the uri
* @param request the incoming request, used to handle negotiation
* @return the route, {@literal unbound} if no controller handles the request
* @since 0.8.1
*/
Route getRouteFor(HttpMethod method, String uri, Request request);
/**
* Gets the url of the route handled by the specified action method.
*
* @param clazz the controller class
* @param method the controller method
* @param params map of parameter name - value
* @return the url, {@literal null} if the action method is not found
*/
String getReverseRouteFor(Class extends Controller> clazz, String method, Map params);
/**
* Gets the url of the route handled by the specified action method.
*
* @param className the controller class
* @param method the controller method
* @param params map of parameter name - value
* @return the url, {@literal null} if the action method is not found
*/
String getReverseRouteFor(String className, String method, Map params);
/**
* Gets the url of the route handled by the specified action method. The action does not takes parameters.
*
* @param className the controller class
* @param method the controller method
* @return the url, {@literal null} if the action method is not found
*/
String getReverseRouteFor(String className, String method);
/**
* Gets the url of the route handled by the specified action method.
*
* @param controller the controller object
* @param method the controller method
* @param params map of parameter name - value
* @return the url, {@literal null} if the action method is not found
*/
String getReverseRouteFor(Controller controller, String method, Map params);
/**
* Gets the url of the route handled by the specified action method. The action does not takes parameters.
*
* @param clazz the controller class
* @param method the controller method
* @return the url, {@literal null} if the action method is not found
*/
String getReverseRouteFor(Class extends Controller> clazz, String method);
/**
* Gets the url of the route handled by the specified action method. The action does not takes parameters.
*
* @param controller the controller object
* @param method the controller method
* @return the url, {@literal null} if the action method is not found
*/
String getReverseRouteFor(Controller controller, String method);
/**
* Gets the set of routes that are currently handled by controllers.
* Because of the dynamics of routes, a copy of the currently available routes is returned.
*
* @return the set of routes
*/
Collection getRoutes();
// Method avoiding using maps in controllers.
/**
* Gets the url of the route handled by the specified action method.
*
* @param controller the controller object
* @param method the controller method
* @param var1 the first parameter name
* @param val1 the first parameter value
* @return the url, {@literal null} if the action method is not found.
*/
String getReverseRouteFor(Controller controller, String method, String var1, Object val1);
/**
* Gets the url of the route handled by the specified action method.
*
* @param controller the controller object
* @param method the controller method
* @param var1 the first parameter name
* @param val1 the first parameter value
* @param var2 the second parameter name
* @param val2 the second parameter value
* @return the url, {@literal null} if the action method is not found.
*/
String getReverseRouteFor(Controller controller, String method, String var1, Object val1, String var2,
Object val2);
/**
* Gets the url of the route handled by the specified action method.
*
* @param controller the controller object
* @param method the controller method
* @param var1 the first parameter name
* @param val1 the first parameter value
* @param var2 the second parameter name
* @param val2 the second parameter value
* @param var3 the third parameter name
* @param val3 the third parameter value
* @return the url, {@literal null} if the action method is not found.
*/
String getReverseRouteFor(Controller controller, String method, String var1, Object val1, String var2,
Object val2, String var3, Object val3);
/**
* Gets the url of the route handled by the specified action method.
*
* @param controller the controller object
* @param method the controller method
* @param var1 the first parameter name
* @param val1 the first parameter value
* @param var2 the second parameter name
* @param val2 the second parameter value
* @param var3 the third parameter name
* @param val3 the third parameter value
* @param var4 the fourth parameter name
* @param val4 the fourth parameter value
* @return the url, {@literal null} if the action method is not found.
*/
String getReverseRouteFor(Controller controller, String method, String var1, Object val1, String var2,
Object val2, String var3, Object val3, String var4, Object val4);
/**
* Gets the url of the route handled by the specified action method.
*
* @param controller the controller object
* @param method the controller method
* @param var1 the first parameter name
* @param val1 the first parameter value
* @param var2 the second parameter name
* @param val2 the second parameter value
* @param var3 the third parameter name
* @param val3 the third parameter value
* @param var4 the fourth parameter name
* @param val4 the fourth parameter value
* @param var5 the fifth parameter name
* @param val5 the fifth parameter value
* @return the url, {@literal null} if the action method is not found.
*/
String getReverseRouteFor(Controller controller, String method, String var1, Object val1, String var2,
Object val2, String var3, Object val3, String var4, Object val4, String var5,
Object val5);
/**
* Gets the url of the route handled by the specified action method.
*
* @param clazz the controller class
* @param method the controller method
* @param var1 the first parameter name
* @param val1 the first parameter value
* @return the url, {@literal null} if the action method is not found.
*/
String getReverseRouteFor(Class extends Controller> clazz, String method, String var1, Object val1);
/**
* Gets the url of the route handled by the specified action method.
*
* @param clazz the controller class
* @param method the controller method
* @param var1 the first parameter name
* @param val1 the first parameter value
* @param var2 the second parameter name
* @param val2 the second parameter value
* @return the url, {@literal null} if the action method is not found.
*/
String getReverseRouteFor(Class extends Controller> clazz, String method, String var1, Object val1, String var2,
Object val2);
/**
* Gets the url of the route handled by the specified action method.
*
* @param clazz the controller class
* @param method the controller method
* @param var1 the first parameter name
* @param val1 the first parameter value
* @param var2 the second parameter name
* @param val2 the second parameter value
* @param var3 the third parameter name
* @param val3 the third parameter value
* @return the url, {@literal null} if the action method is not found.
*/
String getReverseRouteFor(Class extends Controller> clazz, String method, String var1, Object val1, String var2,
Object val2, String var3, Object val3);
/**
* Gets the url of the route handled by the specified action method.
*
* @param clazz the controller class
* @param method the controller method
* @param var1 the first parameter name
* @param val1 the first parameter value
* @param var2 the second parameter name
* @param val2 the second parameter value
* @param var3 the third parameter name
* @param val3 the third parameter value
* @param var4 the fourth parameter name
* @param val4 the fourth parameter value
* @return the url, {@literal null} if the action method is not found.
*/
String getReverseRouteFor(Class extends Controller> clazz, String method, String var1, Object val1, String var2,
Object val2, String var3, Object val3, String var4, Object val4);
/**
* Gets the url of the route handled by the specified action method.
*
* @param clazz the controller class
* @param method the controller method
* @param var1 the first parameter name
* @param val1 the first parameter value
* @param var2 the second parameter name
* @param val2 the second parameter value
* @param var3 the third parameter name
* @param val3 the third parameter value
* @param var4 the fourth parameter name
* @param val4 the fourth parameter value
* @param var5 the fifth parameter name
* @param val5 the fifth parameter value
* @return the url, {@literal null} if the action method is not found.
*/
String getReverseRouteFor(Class extends Controller> clazz, String method, String var1, Object val1, String var2,
Object val2, String var3, Object val3, String var4, Object val4, String var5,
Object val5);
}