/*
* #%L
* Alfresco Repository WAR Community
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see
* The URL to the servlet should be generated thus: *
/alfresco/template/workspace/SpacesStore/0000-0000-0000-0000* or *
/alfresco/template/workspace/SpacesStore/0000-0000-0000-0000/workspace/SpacesStore/0000-0000-0000-0000* or *
/alfresco/template?templatePath=/Company%20Home/Data%20Dictionary/Presentation%20Templates/doc_info.ftl&contextPath=/Company%20Home/mydoc.txt*
* The store protocol, followed by the store ID, followed by the content Node Id used to * identify the node to execute the default template for. The second set of elements encode * the store and node Id of the template to used if a default is not set or not requested. Instead * of using NodeRef references to the template and context, path arguments can be used. The URL args * of 'templatePath' and 'contextPath' can be used instead to specify name based encoded Paths to the * template and its context. *
* The URL may be followed by a 'mimetype' argument specifying the mimetype to return the result as * on the stream. Otherwise it is assumed that HTML is the default response mimetype. *
* Like most Alfresco servlets, the URL may be followed by a valid 'ticket' argument for authentication: * ?ticket=1234567890 *
* And/or also followed by the "?guest=true" argument to force guest access login for the URL. If the * guest=true parameter is used the current session will be logged out and the guest user logged in. * Therefore upon completion of this request the current user will be "guest". *
* If the user attempting the request is not authorised to access the requested node the login page
* will be redirected to.
*
* @author Kevin Roast
* @deprecated 5.0 not exposed in web-client web.xml
*/
public class TemplateContentServlet extends BaseTemplateContentServlet
{
private static final long serialVersionUID = -2510767849932627519L;
private static final Log logger = LogFactory.getLog(TemplateContentServlet.class);
private static final String DEFAULT_URL = "/t/{0}/{1}/{2}";
private static final String TEMPLATE_URL = "/t/{0}/{1}/{2}/{3}/{4}/{5}";
@Override
protected Log getLogger()
{
return logger;
}
@Override
protected Map
* The result of the template is supplied returned as the response.
*
* @param nodeRef NodeRef of the content node to generate URL for (cannot be null)
* @param templateRef NodeRef of the template to process against, or null to use default
*
* @return URL to process the template
*/
public final static String generateURL(NodeRef nodeRef, NodeRef templateRef)
{
if (templateRef == null)
{
return MessageFormat.format(DEFAULT_URL, new Object[] {
nodeRef.getStoreRef().getProtocol(),
nodeRef.getStoreRef().getIdentifier(),
nodeRef.getId() } );
}
else
{
return MessageFormat.format(TEMPLATE_URL, new Object[] {
nodeRef.getStoreRef().getProtocol(),
nodeRef.getStoreRef().getIdentifier(),
nodeRef.getId(),
templateRef.getStoreRef().getProtocol(),
templateRef.getStoreRef().getIdentifier(),
templateRef.getId()} );
}
}
}