
package org.docksidestage.remote.swagger.tricky.urlcharacter;

import java.util.function.Consumer;

import org.dbflute.remoteapi.FlutyRemoteApiRule;
import org.docksidestage.remote.swagger.tricky.AbstractRemoteSwaggerTrickyBhv;
import org.lastaflute.web.servlet.request.RequestManager;

/**
 * The base class as generation gap for remote API of urlcharacter.
 * @author FreeGen
 */
public abstract class BsRemoteSwaggerTrickyUrlcharacterBhv extends AbstractRemoteSwaggerTrickyBhv {

    // ===================================================================================
    //                                                                         Constructor
    //                                                                         ===========
    /**
     * @param requestManager The manager of request, LastaFlute component. (NotNull)
     */
    public BsRemoteSwaggerTrickyUrlcharacterBhv(RequestManager requestManager) {
        super(requestManager);
    }

    // ===================================================================================
    //                                                                             Execute
    //                                                                             =======
    /**
     * Request remote call to /urlcharacter/hyphen-hyphen/. (auto-generated method)<br>
     * <pre>
     * url: /urlcharacter/hyphen-hyphen/
     * httpMethod: GET
     * </pre>
     */
    public void requestHyphenhyphen() {
        doRequestHyphenhyphen(rule -> {});
    }

    /**
     * Request remote call to /urlcharacter/hyphen-hyphen/. (auto-generated method)<br>
     * <pre>
     * url: /urlcharacter/hyphen-hyphen/
     * httpMethod: GET
     * </pre>
     * @param ruleLambda The callback for setting rule as dynamic requirement. (NotNull)
     */
    protected void doRequestHyphenhyphen(Consumer<FlutyRemoteApiRule> ruleLambda) {
        doRequestGet(void.class, "/urlcharacter/hyphen-hyphen/", noMoreUrl(), noQuery(), rule -> {
            ruleOfHyphenhyphen(rule);
            ruleLambda.accept(rule);
        });
    }

    /**
     * Set up method-level rule of /urlcharacter/hyphen-hyphen/.<br>
     * @param rule The rule that class default rule is already set. (NotNull)
     */
    protected void ruleOfHyphenhyphen(FlutyRemoteApiRule rule) {
    }

    /**
     * Request remote call to /urlcharacter/dot.dot/. (auto-generated method)<br>
     * <pre>
     * url: /urlcharacter/dot.dot/
     * httpMethod: GET
     * </pre>
     */
    public void requestDot() {
        doRequestDot(rule -> {});
    }

    /**
     * Request remote call to /urlcharacter/dot.dot/. (auto-generated method)<br>
     * <pre>
     * url: /urlcharacter/dot.dot/
     * httpMethod: GET
     * </pre>
     * @param ruleLambda The callback for setting rule as dynamic requirement. (NotNull)
     */
    protected void doRequestDot(Consumer<FlutyRemoteApiRule> ruleLambda) {
        doRequestGet(void.class, "/urlcharacter/dot.dot/", noMoreUrl(), noQuery(), rule -> {
            ruleOfDot(rule);
            ruleLambda.accept(rule);
        });
    }

    /**
     * Set up method-level rule of /urlcharacter/dot.dot/.<br>
     * @param rule The rule that class default rule is already set. (NotNull)
     */
    protected void ruleOfDot(FlutyRemoteApiRule rule) {
    }
}
