com.liferay.shipping.impl.util.TemplateParserImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.shipping.impl.util.TemplateParserImpl.java

Source

/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library 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 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library 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.
 */

package com.liferay.shipping.impl.util;

import com.liferay.portal.kernel.io.unsync.UnsyncStringWriter;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.shipping.api.util.TemplateParser;

import freemarker.cache.ClassTemplateLoader;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;

import java.util.Map;

import org.osgi.service.component.annotations.Component;

/**
 * @author Julio Camarero
 * @author Eduardo Garcia
 */

@Component(immediate = true, service = TemplateParser.class)
public class TemplateParserImpl implements TemplateParser {

    public String parseTemplate(Class clazz, String templatePath, Map<String, Object> context) throws Exception {

        Configuration configuration = new Configuration();

        configuration.setObjectWrapper(new DefaultObjectWrapper());
        configuration.setTemplateLoader(new ClassTemplateLoader(clazz, StringPool.SLASH));
        configuration.setTemplateUpdateDelay(Integer.MAX_VALUE);

        Template template = configuration.getTemplate(templatePath);

        UnsyncStringWriter unsyncStringWriter = new UnsyncStringWriter();

        template.process(context, unsyncStringWriter);

        return unsyncStringWriter.toString();
    }

}