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

com.commercetools.sunrise.common.localization.changelanguage.SunriseChangeLanguageController Maven / Gradle / Ivy

The newest version!
package com.commercetools.sunrise.common.localization.changelanguage;

import com.commercetools.sunrise.framework.controllers.SunriseFormController;
import com.commercetools.sunrise.framework.controllers.WithFormFlow;
import com.commercetools.sunrise.framework.hooks.EnableHooks;
import com.commercetools.sunrise.framework.reverserouters.SunriseRoute;
import com.commercetools.sunrise.framework.reverserouters.common.localization.LocalizationReverseRouter;
import play.data.FormFactory;
import play.mvc.Result;

import java.util.concurrent.CompletionStage;

import static java.util.concurrent.CompletableFuture.completedFuture;

public abstract class SunriseChangeLanguageController extends SunriseFormController
        implements WithFormFlow {

    private final ChangeLanguageFormData formData;
    private final ChangeLanguageControllerAction controllerAction;

    protected SunriseChangeLanguageController(final FormFactory formFactory, final ChangeLanguageFormData formData,
                                              final ChangeLanguageControllerAction controllerAction) {
        super(formFactory);
        this.formData = formData;
        this.controllerAction = controllerAction;
    }

    @Override
    public final Class getFormDataClass() {
        return formData.getClass();
    }

    @EnableHooks
    @SunriseRoute(LocalizationReverseRouter.CHANGE_LANGUAGE_PROCESS)
    public CompletionStage process() {
        return processForm(null);
    }

    @Override
    public CompletionStage executeAction(final Void input, final ChangeLanguageFormData formData) {
        controllerAction.accept(formData);
        return completedFuture(null);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy