001/* 002 * Copyright (c) 2013 Nu Echo Inc. All rights reserved. 003 */ 004 005package com.nuecho.rivr.voicexml.servlet; 006 007import static com.nuecho.rivr.voicexml.rendering.voicexml.VoiceXmlDomUtil.*; 008 009import javax.servlet.http.*; 010 011import org.w3c.dom.*; 012 013import com.nuecho.rivr.core.util.*; 014 015/** 016 * Generates the standard Rivr root document. The root document will: 017 * <ul> 018 * <li>declare the <code>rivr</code> variable (an object)</li> 019 * <li>load the <code>rivr.js</code> script which contains the necessary 020 * JavaScript methods for result manipulation</li> 021 * </ul> 022 * 023 * @author Nu Echo Inc. 024 */ 025public class DefaultVoiceXmlRootDocumentFactory implements VoiceXmlRootDocumentFactory { 026 027 @Override 028 public Document getDocument(HttpServletRequest request) { 029 String contextPath = request.getContextPath(); 030 String servletPath = request.getServletPath(); 031 032 Element vxmlElement = createVoiceXmlDocumentRoot(); 033 createVarElement(vxmlElement, RIVR_VARIABLE, "new Object()"); 034 035 Element scriptElement = DomUtils.appendNewElement(vxmlElement, SCRIPT_ELEMENT); 036 scriptElement.setAttribute(SRC_ATTRIBUTE, contextPath + servletPath + VoiceXmlDialogueServlet.RIVR_SCRIPT); 037 return vxmlElement.getOwnerDocument(); 038 } 039 040}