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

freemarker.core.TemplateMarkupOutputModel Maven / Gradle / Ivy

There is a newer version: 7.0.58
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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 freemarker.core;

import freemarker.template.TemplateModel;
import freemarker.template.TemplateScalarModel;

/**
 * "markup output" template language data-type; stores markup (some kind of "rich text" / structured format, as opposed
 * to plain text) that meant to be printed as template output. This type is related to the {@link OutputFormat}
 * mechanism. Values of this kind are exempt from {@link OutputFormat}-based automatic escaping.
 * 
 * 

* Each implementation of this type has a corresponding {@link OutputFormat} subclass, whose singleton instance is * returned by {@link #getOutputFormat()}. See more about how markup output values work at {@link OutputFormat}. * *

* Note that {@link TemplateMarkupOutputModel}-s are by design not treated like {@link TemplateScalarModel}-s, and so * the implementations of this interface usually shouldn't implement {@link TemplateScalarModel}. (Because, operations * applicable on plain strings, like converting to upper case, substringing, etc., can corrupt markup.) If the template * author wants to pass in the "source" of the markup as string somewhere, he should use {@code ?markup_string}. * * @param * Refers to the interface's own type, which is useful in interfaces that extend * {@link TemplateMarkupOutputModel} (Java Generics trick). * * @since 2.3.24 */ public interface TemplateMarkupOutputModel> extends TemplateModel { /** * Returns the singleton {@link OutputFormat} object that implements the operations for the "markup output" value. */ MarkupOutputFormat getOutputFormat(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy