All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.wizzardo.http.framework.ControllerUrlMapping Maven / Gradle / Ivy

package com.wizzardo.http.framework;

import com.wizzardo.epoll.readable.ReadableData;
import com.wizzardo.http.Handler;
import com.wizzardo.http.framework.di.DependencyFactory;
import com.wizzardo.http.mapping.UrlMapping;
import com.wizzardo.http.mapping.UrlTemplate;
import com.wizzardo.http.request.Request;
import com.wizzardo.tools.collections.CollectionTools.Closure;

/**
 * Created by wizzardo on 05.05.15.
 */
public class ControllerUrlMapping extends UrlMapping {

    public  ControllerUrlMapping append(String url, Class controllerClass, String action, Request.Method... methods) {
        return append(url, new ControllerHandler<>(controllerClass, action, methods));
    }

    public  ControllerUrlMapping append(String url, Class controllerClass, String action, Closure renderer, Request.Method... methods) {
        return append(url, new ControllerHandler<>(controllerClass, action, renderer, methods));
    }

    @Override
    public ControllerUrlMapping append(String url, Handler handler) {
        super.append(url, handler.name(), handler);
        return this;
    }

    @Override
    public ControllerUrlMapping append(String url, String name, Handler handler) {
        super.append(url, name, handler);
        return this;
    }

    public  ControllerUrlMapping get(String url, Class controllerClass, String action) {
        return append(url, controllerClass, action, Request.Method.GET, Request.Method.HEAD);
    }

    public  ControllerUrlMapping post(String url, Class controllerClass, String action) {
        return append(url, controllerClass, action, Request.Method.POST);
    }

    public  ControllerUrlMapping put(String url, Class controllerClass, String action) {
        return append(url, controllerClass, action, Request.Method.PUT);
    }

    public  ControllerUrlMapping delete(String url, Class controllerClass, String action) {
        return append(url, controllerClass, action, Request.Method.DELETE);
    }

    public ControllerUrlMapping append(String url, Class handlerClass) {
        return append(url, DependencyFactory.get(handlerClass));
    }

    public UrlTemplate getUrlTemplate(Class controllerClass, String action) {
        return getUrlTemplate(toMapping(controllerClass, action));
    }

    public UrlTemplate getUrlTemplate(String controller, String action) {
        return getUrlTemplate(toMapping(controller, action));
    }

    public String toMapping(Class controllerClass, String action) {
        return toMapping(Controller.getControllerName(controllerClass), action);
    }

    public String toMapping(String controller, String action) {
        return controller + "." + action;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy