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

org.directwebremoting.servlet.InterfaceHandler Maven / Gradle / Ivy

Go to download

DWR is easy Ajax for Java. It makes it simple to call Java code directly from Javascript. It gets rid of almost all the boilerplate code between the web browser and your Java code. This version 4.0.2 works with Jakarta Servlet 4.0.2.

The newest version!
package org.directwebremoting.servlet;

import org.directwebremoting.Container;
import org.directwebremoting.extend.ContainerUtil;
import org.directwebremoting.extend.EnginePrivate;

/**
 * A handler for interface generation requests
 * @author Joe Walker [joe at getahead dot ltd dot uk]
 */
public class InterfaceHandler extends BaseInterfaceHandler
{
    /* (non-Javadoc)
     * @see org.directwebremoting.servlet.BaseInterfaceHandler#getBaseInterfacePath()
     */
    @Override
    protected String getBaseInterfacePath()
    {
        return interfaceHandlerUrl;
    }

    /* (non-Javadoc)
     * @see org.directwebremoting.servlet.BaseInterfaceHandler#generateInterface(java.lang.String, java.lang.String)
     */
    @Override
    public String generateInterfaceScript(String contextPath, String servletPath, String scriptName)
    {
        StringBuilder buffer = new StringBuilder();

        buffer
            .append(EnginePrivate.getRequireEngineScript())
            .append("\n");

        // An optimization here might be to only generate class
        // definitions for classes used as parameters in the class that we are
        // currently generating a proxy for.
        if (generateDtoClasses.matches(".*\\binterface\\b.*") && converterManager.getNamedConverterJavaScriptNames().size() > 0)
        {
            buffer
                .append(dtoAllHandler.generateDtoAllScript(contextPath, servletPath))
                .append("\n");
        }

        buffer
            .append("(function() {\n")
            .append("  if (dwr.engine._getObject(\"" + scriptName + "\") == undefined) {\n")
            .append("    var p;\n")
            .append("    \n")
            .append(remoter.generateInterfaceJavaScript(scriptName, "    ", "p", contextPath + servletPath))
            .append("    \n")
            .append("    dwr.engine._setObject(\"" + scriptName + "\", p);\n")
            .append("  }\n")
            .append("})();\n");

        return buffer.toString();
    }

    /**
     * We use the container to find the DtoAllHandler
     * @param container the container to set
     */
    public void setContainer(Container container)
    {
        dtoAllHandler = (DtoAllHandler) ContainerUtil.getHandlerForUrlProperty(container, "dtoAllHandlerUrl");
    }

    /**
     * Setter for the URL that this handler available on
     * @param interfaceHandlerUrl the interfaceHandlerUrl to set
     */
    public void setInterfaceHandlerUrl(String interfaceHandlerUrl)
    {
        this.interfaceHandlerUrl = interfaceHandlerUrl;
    }

    /**
     * What URL is this handler available on?
     */
    protected String interfaceHandlerUrl;

    /**
     * We use the container to find the DtoAllHandler
     */
    protected Container container;

    /**
     * We use the DtoAllHandler to generate DTO classes when applicable.
     */
    protected DtoAllHandler dtoAllHandler;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy