org.apache.commons.jelly

## Interface Tag

All Known Subinterfaces:
  DynaTag, NamespaceAwareTag

All Known Implementing Classes:
  ArgTag, AssertEqualsTag, AssertFileContainsTag, AssertFileExistsTag, AssertFileNotFoundTag, AssertTag, AssertTagSupport, AssertThrowsTag, AttributeTag, AttributeTag, BaseClassLoaderTag, BeanTag, BreakTag, BundleTag, CaseTag, CaseTag, CatchTag, ChooseTag, ClassLoaderTag, CommentTag, CopyOfTag, CopyTag, DebugTag, DefaultTag, DefineTagSupport, DoctypeTag, DynabeanTag, DynaBeanTag, DynaBeanTagSupport, DynaclassTag, DynamicBeanTag, DynamicDynaBeanTag, DynamicTag, DynaTagSupport, ElementTag, ErrorTag, ExprTag, ExprTag, ExtendTag, FailTag, FatalTag, FileTag, ForEachTag, ForEachTag, FormatDateTag, GetStaticTag, IfTag, IfTag, ImportTag, IncludeTag, InfoTag, InvokeBodyTag, InvokeStaticTag, InvokeTag, InvokeTag, JellyBeanTag, JellyTag, LogTagSupport, MapTagSupport, MessageTag, MuteTag, NewTag, OtherwiseTag, ParamTag, ParamTag, ParseTag, ParseTag, ParseTagSupport, PropertyTag, RemoveTag, ReplaceNamespaceTag, RunTag, ScopeTag, ScriptTag, SetBundleTag, SetLocaleTag, SetPropertiesTag, SetTag, SetTag, SetTag, SetTimeZoneTag, SortTag, StaticTag, SuiteTag, SuperTag, SwitchTag, TaglibTag, TagSupport, TagTag, ThreadTag, TimeZoneTag, TraceTag, TransformTag, UseBeanTag, UseListTag, WarnTag, WhenTag, WhileTag, WhitespaceTag, XPathTagSupport

    public interface Tag

`Tag` represents a Jelly custom tag. A Tag is only ever used by a single thread so that Tag developers do not need to concern themselves with mutli-threading issues when writing a Tag. A Tag is created per custom tag in a script, per invocation. So there is no need to worry about pooling errors like those caused in JSP 1.x.(

Version:
  $Revision: 155420 $
Author:
  James Strachan

### Method Summary

Methods
`void` `doTag(XMLOutput output)` Evaluates this tag after all the tags properties have been initialized.
`Script` `getBody()`
`JellyContext` `getContext()` Gets the context in which the tag will be run
`Tag` `getParent()`
`void` `invokeBody(XMLOutput output)` A helper method to invoke this tags body
`void` `setBody(Script body)` Sets the body of the tag
`void` `setContext(JellyContext context)` Sets the context in which the tag will be run
`void` `setParent(Tag parent)` Sets the parent of this tag

### Method Detail

#### getParent

    Tag getParent()

Returns:
  the parent of this tag

#### setParent

    void setParent(Tag parent)

Sets the parent of this tag

#### getBody

    Script getBody()

Returns:
  the body of the tag

#### setBody

    void setBody(Script body)

Sets the body of the tag

#### getContext

    JellyContext getContext()

Gets the context in which the tag will be run

#### setContext

    void setContext(JellyContext context)
                    throws JellyTagException

Sets the context in which the tag will be run

Throws:
  `JellyTagException`

#### doTag

    void doTag(XMLOutput output)
               throws MissingAttributeException,
                      JellyTagException

Evaluates this tag after all the tags properties have been initialized.

Throws:
  `MissingAttributeException`
  `JellyTagException`

#### invokeBody

    void invokeBody(XMLOutput output)
                    throws JellyTagException

A helper method to invoke this tags body

Throws:
  `JellyTagException`