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

wicket.extensions.util.resource.TextTemplate Maven / Gradle / Ivy

/*
 * $Id: StringBufferResourceStream.java 3307 2005-11-30 15:57:34 -0800 (Wed, 30
 * Nov 2005) ivaynberg $ $Revision: 3307 $ $Date: 2005-11-30 15:57:34 -0800
 * (Wed, 30 Nov 2005) $
 * 
 * ==============================================================================
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package wicket.extensions.util.resource;

import java.util.Map;

import wicket.util.resource.AbstractStringResourceStream;
import wicket.util.string.interpolator.MapVariableInterpolator;

/**
 * Represents a text template that can do variable interpolation.
 * 
 * @author Eelco Hillenius
 * @author Jonathan Locke
 */
public abstract class TextTemplate extends AbstractStringResourceStream
{
	private static final long serialVersionUID = 1L;

	/**
	 * Construct.
	 */
	public TextTemplate()
	{
	}

	/**
	 * Construct.
	 * 
	 * @param contentType
	 *            The mime type of this resource, such as "image/jpeg" or
	 *            "text/html".
	 */
	public TextTemplate(String contentType)
	{
		super(contentType);
	}

	/**
	 * Interpolate the map of variables with the content and return the
	 * resulting string without replacing the content. Variables are denoted in
	 * this string by the syntax ${variableName}. The contents will be altered
	 * by replacing each variable of the form ${variableName} with the value
	 * returned by variables.getValue("variableName").
	 * 
	 * @param variables
	 *            The variables to interpolate
	 * @return the result of the interpolation
	 */
	public String asString(Map variables)
	{
		if (variables != null)
		{
			return new MapVariableInterpolator(getString(), variables).toString();
		}
		return getString();
	}

	/**
	 * @see wicket.util.resource.AbstractResourceStream#asString()
	 */
	public String asString()
	{
		return getString();
	}

	/**
	 * Gets the string resource.
	 * 
	 * @return The string resource
	 */
	public abstract String getString();

	/**
	 * Interpolates values into this text template.
	 * 
	 * @param variables
	 *            Variables to interpolate into this text template
	 * @return This for chaining
	 */
	public abstract TextTemplate interpolate(Map variables);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy