Package org.mojavemvc.tests.controllers

Source Code of org.mojavemvc.tests.controllers.SomeSingletonController

/*
* Copyright (C) 2011-2013 Mojavemvc.org
*
* 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.
*/
package org.mojavemvc.tests.controllers;

import javax.servlet.http.HttpServletRequest;

import org.mojavemvc.annotations.Action;
import org.mojavemvc.annotations.DefaultAction;
import org.mojavemvc.annotations.Param;
import org.mojavemvc.annotations.SingletonController;
import org.mojavemvc.tests.services.SomeService;
import org.mojavemvc.tests.views.HTMLPage;
import org.mojavemvc.views.View;

import com.google.inject.Inject;

@SingletonController("some-singleton")
public class SomeSingletonController {

    @Inject
    private HttpServletRequest request;

    @Inject
    private SomeService someService;

    private String someStatefulVar;

    @DefaultAction
    public View defaultAction() {
        return new HTMLPage();
    }

    @Action("some-action")
    public View someAction() {
        return new HTMLPage()
            .withH1Content("some-singleton/some-action");
    }

    @Action("set-var")
    public View setVarAction(@Param("var") String var) {

        someStatefulVar = var;
        return new HTMLPage()
            .withH1Content("some-singleton/set-var");
    }

    @Action("get-var")
    public View getVarAction() {

        return new HTMLPage()
            .withH2Content(someStatefulVar);
    }

    @Action("get-req")
    public View getReqAction() {

        /*
         * it appears that some servlet containers may
         * recycle request objects, so we can't determine if
         * the request was re-injected by looking at object
         * identity; set an attribute on the request instead,
         * and if it's the same request, it will have the same
         * attribute
         */
        Long ts = (Long)request.getAttribute("ts");
        if (ts == null) {
            ts = System.currentTimeMillis();
            request.setAttribute("ts", ts);
        }
        return new HTMLPage()
            .withH2Content(String.valueOf(ts));
    }

    @Action("get-inj")
    public View getInjAction() {

        return new HTMLPage()
            .withH2Content(Integer.toHexString(System.identityHashCode(someService)));
    }
}
TOP

Related Classes of org.mojavemvc.tests.controllers.SomeSingletonController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.