Package com.papercut.silken

Source Code of com.papercut.silken.RequestAttributeModelResolver

package com.papercut.silken;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.google.template.soy.data.SoyMapData;

/**
* This implementation extracts the model from a HTTP request attribute. If you'd like to change the default model key,
* simply subclass this implementation and set via the super constructor, and reference the class via the
* "modelResolver" Servlet init parameter.
*
* @author chris
*/
public class RequestAttributeModelResolver implements ModelResolver {

    private static final String DEFAULT_MODEL_KEY = "model";

    private final String modelKey;

    public RequestAttributeModelResolver() {
        this.modelKey = DEFAULT_MODEL_KEY;
    }

    public RequestAttributeModelResolver(String modelKey) {
        this.modelKey = modelKey;
    }

    /*
     * @see com.papercut.silken.ModelResolver#resolveModel(javax.servlet.http.HttpServletRequest)
     */
    public SoyMapData resolveModel(HttpServletRequest request) {
        Object model = request.getAttribute(modelKey);
        if (model == null) {
            return null;
        }

        if (model instanceof SoyMapData) {
            return (SoyMapData) model;
        }

        Map<String, ?> modeMap  = Utils.toSoyCompatibleMap(model);
      
        return new SoyMapData(modeMap);
    }

}
TOP

Related Classes of com.papercut.silken.RequestAttributeModelResolver

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.