# Package freemarker.core

The seldom used or advanced parts of the fundamental FreeMarker API, compared to `freemarker.template`.

See: Description

Interface Summary
DirectiveCallPlace: Gives information about the place where a directive is called from, also lets you attach a custom data object to that place.
ParserConfiguration: Don't implement this interface yourself; use the existing implementation(s).
TemplateClassResolver: Used by built-ins and other template language features that get a class based on a string.
TemplateMarkupOutputModel<MO extends TemplateMarkupOutputModel<MO>>: "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.

Class Summary
AliasTemplateDateFormatFactory: Creates an alias to another format, so that the format can be referred to with a simple name in the template, rather than as a concrete pattern or other kind of format string.
AliasTemplateNumberFormatFactory: Creates an alias to another format, so that the format can be referred to with a simple name in the template, rather than as a concrete pattern or other kind of format string.
ArithmeticEngine: Class to perform arithmetic operations.
ArithmeticEngine.BigDecimalEngine: This is the default arithmetic engine in FreeMarker.
ArithmeticEngine.ConservativeEngine: An arithmetic engine that conservatively widens the operation arguments to extent that they can hold the result of the operation.
CombinedMarkupOutputFormat: Represents two markup formats nested into each other.
CommandLine: Deprecated Will be removed (main method in a library, often classified as CWE-489 "Leftover Debug Code").
CommonMarkupOutputFormat<MO extends CommonTemplateMarkupOutputModel>: Common superclass for implementing `MarkupOutputFormat`-s that use a `CommonTemplateMarkupOutputModel` subclass.
CommonTemplateMarkupOutputModel<MO extends CommonTemplateMarkupOutputModel<MO>>: Common superclass for implementing `TemplateMarkupOutputModel`-s that belong to a `CommonMarkupOutputFormat` subclass format.
Configurable: This is a common superclass of `Configuration`, `Template`, and `Environment` classes.
CSSOutputFormat: Represents the CSS output format (MIME type "text/css", name "CSS").
CustomAttribute: A class that allows one to associate custom data with a `Configuration`, a `Template`, or `Environment`.
Environment: Object that represents the runtime environment during template processing.
FreeMarkerTree: Deprecated Will be removed, as Swing classes aren't accessible on Google App Engine.
HTMLOutputFormat: Represents the HTML output format (MIME type "text/html", name "HTML").
JavaScriptOutputFormat: Represents the JavaScript output format (MIME type "application/javascript", name "JavaScript").
JSONOutputFormat: Represents the JSON output format (MIME type "application/json", name "JSON").
MarkupOutputFormat<MO extends TemplateMarkupOutputModel>: Superclass of `OutputFormat`-s that represent a "markup" format, which is any format where certain character sequences have special meaning and thus may need escaping.
OptInTemplateClassResolver: A `TemplateClassResolver` that resolves only the classes whose name was specified in the constructor.
OutputFormat: Represents an output format.
PlainTextOutputFormat: Represents the plain text output format (MIME type "text/plain", name "plainText").
RTFOutputFormat: Represents the Rich Text Format output format (MIME type "application/rtf", name "RTF").
TemplateCombinedMarkupOutputModel: Stores combined markup to be printed; used with `CombinedMarkupOutputFormat`.
TemplateConfiguration: Used for customizing the configuration settings for individual `Template`-s (or rather groups of templates), relatively to the common setting values coming from the `Configuration`.
TemplateDateFormat: Represents a date/time/dateTime format; used in templates for formatting and parsing with that format.
TemplateDateFormatFactory: Factory for a certain kind of date/time/dateTime formatting (`TemplateDateFormat`).
TemplateFormatUtil: Utility classes for implementing `TemplateValueFormat`-s.
TemplateHTMLOutputModel: Stores HTML markup to be printed; used with `HTMLOutputFormat`.
TemplateNumberFormat: Represents a number format; used in templates for formatting and parsing with that format.
TemplateNumberFormatFactory: Factory for a certain kind of number formatting (`TemplateNumberFormat`).
TemplateRTFOutputModel: Stores RTF markup to be printed; used with `RTFOutputFormat`.
TemplateValueFormat: Superclass of all value format objects; objects that convert values to strings, or parse strings.
TemplateValueFormatFactory: Superclass of all format factories.
TemplateXHTMLOutputModel: Stores HTML markup to be printed; used with `HTMLOutputFormat`.
TemplateXMLOutputModel: Stores XML markup to be printed; used with `XMLOutputFormat`.
UndefinedOutputFormat: Represents the output format used when the template output format is undecided.
XHTMLOutputFormat: Represents the XML output format (MIME type "application/xhtml+xml", name "XHTML").
XMLOutputFormat: Represents the XML output format (MIME type "application/xml", name "XML").

Exception Summary
BugException: An unexpected state was reached that is certainly caused by a bug in FreeMarker.
CallPlaceCustomDataInitializationException: Thrown by `DirectiveCallPlace.getOrCreateCustomData(Object, freemarker.template.utility.ObjectFactory)`
Configurable.SettingValueAssignmentException: The setting name was recognized, but its value couldn't be parsed or the setting couldn't be set for some other reason.
Configurable.UnknownSettingException: The setting name was not recognized.
InvalidFormatParametersException: Used when creating `TemplateDateFormat`-s and `TemplateNumberFormat`-s to indicate that the parameters part of the format string (like some kind of pattern) is malformed.
InvalidFormatStringException: Used when creating `TemplateDateFormat`-s and `TemplateNumberFormat`-s to indicate that the format string (like the value of the `dateFormat` setting) is malformed.
InvalidReferenceException: A subclass of `TemplateException` that says that an FTL expression has evaluated to `null` or it refers to something that doesn't exist.
NonBooleanException: Indicates that a `TemplateBooleanModel` value was expected, but the value had a different type.
NonDateException: Indicates that a `TemplateDateModel` value was expected, but the value had a different type.
NonExtendedHashException: Indicates that a `TemplateHashModelEx` value was expected, but the value had a different type.
NonHashException: Indicates that a `TemplateHashModel` value was expected, but the value had a different type.
NonMarkupOutputException: Indicates that a `TemplateMarkupOutputModel` value was expected, but the value had a different type.
NonMethodException: Indicates that a `TemplateMethodModel` value was expected, but the value had a different type.
NonNodeException: Indicates that a `TemplateNodeModel` value was expected, but the value had a different type.
NonNumericalException: Indicates that a `TemplateNumberModel` value was expected, but the value had a different type.
NonSequenceException: Indicates that a `TemplateSequenceModel` value was expected, but the value had a different type.
NonSequenceOrCollectionException: Indicates that a `TemplateSequenceModel` or `TemplateCollectionModel` value was expected, but the value had a different type.
NonStringException: Indicates that a `TemplateScalarModel` value was expected (or maybe something that can be automatically coerced to that), but the value had a different type.
NonStringOrTemplateOutputException: Indicates that a `TemplateScalarModel` (or maybe something that can be automatically coerced to that) or `TemplateMarkupOutputModel` value was expected, but the value had a different type.
ParseException: Parsing-time exception in a template (as opposed to a runtime exception, a `TemplateException`).
ParsingNotSupportedException: Thrown when the `TemplateValueFormat` doesn't support parsing, and parsing was invoked.
StopException: This exception is thrown when a `#stop` directive is encountered.
TemplateValueFormatException: Error while getting, creating or applying `TemplateValueFormat`-s (including its subclasses, like `TemplateNumberFormat`).
UndefinedCustomFormatException
UnexpectedTypeException: The type of a value differs from what was expected.
UnformattableValueException: Thrown when a `TemplateModel` can't be formatted because of the value/properties of it are outside of that the `TemplateValueFormat` supports.
UnknownDateTypeFormattingUnsupportedException: Thrown when a `TemplateDateModel` can't be formatted because its type is `TemplateDateModel.UNKNOWN`.
UnknownDateTypeParsingUnsupportedException: Thrown when a string can't be parsed to `TemplateDateModel`, because the provided target type is `TemplateDateModel.UNKNOWN`.
UnparsableValueException: Thrown when the content of the string that should be parsed by the `TemplateValueFormat` doesn't match what the format expects.
UnregisteredOutputFormatException

## Package freemarker.core Description

The seldom used or advanced parts of the fundamental FreeMarker API, compared to `freemarker.template`. This package also encloses FreeMarker's core parsing/rendering functionality.