## org.apache.commons.jelly
Class TagSupport

    java.lang.Object
      org.apache.commons.jelly.TagSupport

All Implemented Interfaces:
  Tag

Direct Known Subclasses:
  BaseClassLoaderTag, BreakTag, CaseTag, CatchTag, ChooseTag, DefaultTag, DynaTagSupport, ExprTag, FileTag, ForEachTag, GetStaticTag, IfTag, ImportTag, IncludeTag, InvokeStaticTag, InvokeTag, JellyTag, MuteTag, OtherwiseTag, ParseTag, RemoveTag, ScopeTag, SetTag, SwitchTag, ThreadTag, WhenTag, WhileTag, WhitespaceTag, XPathTagSupport

    public abstract class TagSupport

extends java.lang.Object
implements Tag

`TagSupport` an abstract base class which is useful to inherit from if developing your own tag.

Version:
  $Revision: 155420 $
Author:
  James Strachan

Field Summary
`protected Script` `body` the body of the tag
`protected JellyContext` `context`
`protected boolean` `hasTrimmed`
`protected Tag` `parent` the parent of this tag
`protected java.lang.Boolean` `shouldTrim` The current context

Constructor Summary
`TagSupport()`
`TagSupport(boolean shouldTrim)`

Method Summary
`protected Tag` `findAncestorWithClass(java.lang.Class parentClass)` Searches up the parent hierarchy for a Tag of the given type.
`protected Tag` `findAncestorWithClass(java.lang.Class[] parentClasses)` Searches up the parent hierarchy for a Tag of one of the given types.
`protected Tag` `findAncestorWithClass(java.util.Collection parentClasses)` Searches up the parent hierarchy for a Tag of one of the given types.
`static Tag` `findAncestorWithClass(Tag from, java.lang.Class tagClass)` Searches up the parent hierarchy from the given tag for a Tag of the given type
`static Tag` `findAncestorWithClass(Tag from, java.lang.Class[] tagClasses)` Searches up the parent hierarchy from the given tag for a Tag matching one or more of given types.
`static Tag` `findAncestorWithClass(Tag from, java.util.Collection tagClasses)` Searches up the parent hierarchy from the given tag for a Tag matching one or more of given types.
`Script` `getBody()`
`protected java.lang.String` `getBodyText()` Executes the body of the tag and returns the result as a String.
`protected java.lang.String` `getBodyText(boolean shouldEscape)` Executes the body of the tag and returns the result as a String.
`JellyContext` `getContext()` Gets the context in which the tag will be run
`Tag` `getParent()`
`void` `invokeBody(XMLOutput output)` Invokes the body of this tag using the given output
`boolean` `isEscapeText()` Returns whether the body of this tag will be escaped or not.
`boolean` `isTrim()`
`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` `setEscapeText(boolean escapeText)` Sets whether the body of the tag should be escaped as text (so that < and > are escaped as &lt; and &gt;), which is the default or leave the text as XML.
`void` `setParent(Tag parent)` Sets the parent of this tag
`void` `setTrim(boolean shouldTrim)` Sets whether whitespace inside this tag should be trimmed or not.
`protected void` `trimBody()` Find all text nodes inside the top level of this body and if they are just whitespace then remove them

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.commons.jelly.Tag
`doTag`

Field Detail

### parent

    protected Tag parent

  the parent of this tag

### body

    protected Script body

  the body of the tag

### shouldTrim

    protected java.lang.Boolean shouldTrim

  The current context

### hasTrimmed

    protected boolean hasTrimmed

### context

    protected JellyContext context

Constructor Detail

### TagSupport

    public TagSupport()

### TagSupport

    public TagSupport(boolean shouldTrim)

Method Detail

### findAncestorWithClass

    public static Tag findAncestorWithClass(Tag from,
                                            java.lang.Class tagClass)

  Searches up the parent hierarchy from the given tag for a Tag of the given type

  Parameters:
    `from` - the tag to start searching from
    `tagClass` - the type of the tag to find
  Returns:
    the tag of the given type or null if it could not be found

### findAncestorWithClass

    public static Tag findAncestorWithClass(Tag from,
                                            java.util.Collection tagClasses)

  Searches up the parent hierarchy from the given tag for a Tag matching one or more of given types.

  Parameters:
    `from` - the tag to start searching from
    `tagClasses` - a Collection of Class types that might match
  Returns:
    the tag of the given type or null if it could not be found

### findAncestorWithClass

    public static Tag findAncestorWithClass(Tag from,
                                            java.lang.Class[] tagClasses)

  Searches up the parent hierarchy from the given tag for a Tag matching one or more of given types.

  Parameters:
    `from` - the tag to start searching from
    `tagClasses` - an array of types that might match
  Returns:
    the tag of the given type or null if it could not be found
  See Also:
    `findAncestorWithClass(Tag,Collection)`

### setTrim

    public void setTrim(boolean shouldTrim)

  Sets whether whitespace inside this tag should be trimmed or not. Defaults to true so whitespace is trimmed

### isTrim

    public boolean isTrim()

### getParent

    public Tag getParent()

  Specified by:
    `getParent` in interface `Tag`
  Returns:
    the parent of this tag

### setParent

    public void setParent(Tag parent)

  Sets the parent of this tag

  Specified by:
    `setParent` in interface `Tag`

### getBody

    public Script getBody()

  Specified by:
    `getBody` in interface `Tag`
  Returns:
    the body of the tag

### setBody

    public void setBody(Script body)

  Sets the body of the tag

  Specified by:
    `setBody` in interface `Tag`

### getContext

    public JellyContext getContext()

  Description copied from interface: `Tag`
  Gets the context in which the tag will be run

  Specified by:
    `getContext` in interface `Tag`
  Returns:
    the context in which the tag will be run

### setContext

    public void setContext(JellyContext context)
                    throws JellyTagException

  Sets the context in which the tag will be run

  Specified by:
    `setContext` in interface `Tag`
  Throws:
    `JellyTagException`

### invokeBody

    public void invokeBody(XMLOutput output)
                    throws JellyTagException

  Invokes the body of this tag using the given output

  Specified by:
    `invokeBody` in interface `Tag`
  Throws:
    `JellyTagException`

### findAncestorWithClass

    protected Tag findAncestorWithClass(java.lang.Class parentClass)

  Searches up the parent hierarchy for a Tag of the given type.

  Returns:
    the tag of the given type or null if it could not be found

### findAncestorWithClass

    protected Tag findAncestorWithClass(java.lang.Class[] parentClasses)

  Searches up the parent hierarchy for a Tag of one of the given types.

  Returns:
    the tag of the given type or null if it could not be found
  See Also:
    `findAncestorWithClass(Collection)`

### findAncestorWithClass

    protected Tag findAncestorWithClass(java.util.Collection parentClasses)

  Searches up the parent hierarchy for a Tag of one of the given types.

  Returns:
    the tag of the given type or null if it could not be found

### getBodyText

    protected java.lang.String getBodyText()
                                    throws JellyTagException

  Executes the body of the tag and returns the result as a String.

  Returns:
    the text evaluation of the body
  Throws:
    `JellyTagException`

### getBodyText

    protected java.lang.String getBodyText(boolean shouldEscape)
                                    throws JellyTagException

  Executes the body of the tag and returns the result as a String.

  Parameters:
    `shouldEscape` - Signal if the text should be escaped.
  Returns:
    the text evaluation of the body
  Throws:
    `JellyTagException`

### trimBody

    protected void trimBody()

  Find all text nodes inside the top level of this body and if they are just whitespace then remove them

### isEscapeText

    public boolean isEscapeText()

  Returns whether the body of this tag will be escaped or not.

### setEscapeText

    public void setEscapeText(boolean escapeText)

  Sets whether the body of the tag should be escaped as text (so that < and > are escaped as &lt; and &gt;), which is the default or leave the text as XML.

Copyright © 2002-2005 Apache Software Foundation. All Rights Reserved.