net.htmlparser.jericho
Class EndTagType

java.lang.Object
  extended by TagType
      extended by EndTagType
Direct Known Subclasses:
EndTagTypeGenericImplementation

public abstract class EndTagType
extends TagType

Defines the syntax for an end tag type.

An end tag type is a TagType that starts with the characters '</'.

The singleton instances of all the standard end tag types are available in this class as static fields.

Because all EndTagType instaces must be singletons, the '==' operator can be used to test for a particular tag type instead of the equals(Object) method.

See Also:
StartTagType

Field Summary
static EndTagType NORMAL
          The tag type given to a normal HTML or XML end tag (</name>).
static EndTagType UNREGISTERED
          The tag type given to an unregistered end tag (</ ... >).
 
Constructor Summary
protected EndTagType(java.lang.String description, java.lang.String startDelimiter, java.lang.String closingDelimiter, boolean isServerTag)
          Constructs a new EndTagType object with the specified properties.
 
Method Summary
protected  EndTag constructEndTag(Source source, int begin, int end, java.lang.String name)
          Internal method for the construction of an EndTag object of this type.
 java.lang.String generateHTML(java.lang.String startTagName)
          Generates the HTML text of an end tag of this type given the name of a corresponding start tag.
 StartTagType getCorrespondingStartTagType()
          Returns the type of start tag that is usually paired with an end tag of this type to form an Element.
 java.lang.String getEndTagName(java.lang.String startTagName)
          Returns the end tag name that is required to match a corresponding start tag with the specified name.
 
Methods inherited from class TagType
constructTagAt, deregister, getClosingDelimiter, getDescription, getNamePrefix, getRegisteredTagTypes, getStartDelimiter, getTagTypesIgnoringEnclosedMarkup, isServerTag, isValidPosition, register, setTagTypesIgnoringEnclosedMarkup, tagEncloses, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

UNREGISTERED

public static final EndTagType UNREGISTERED
The tag type given to an unregistered end tag (</ ... >).

See the documentation of the Tag.isUnregistered() method for details.

Properties:
Property/MethodValue
Description/unregistered
StartDelimiter</
ClosingDelimiter>
IsServerTagfalse
NamePrefix(empty string)
CorrespondingStartTagTypenull
generateHTML("StartTagName")</StartTagName>
Example:
</ "This is not recognised as any of the predefined end tag types in this library">

See Also:
StartTagType.UNREGISTERED

NORMAL

public static final EndTagType NORMAL
The tag type given to a normal HTML or XML end tag (</name>).

Properties:
Property/MethodValue
Description/normal
StartDelimiter</
ClosingDelimiter>
IsServerTagfalse
NamePrefix(empty string)
CorrespondingStartTagTypeStartTagType.NORMAL
generateHTML("StartTagName")</StartTagName>
Example:
</div>

Constructor Detail

EndTagType

protected EndTagType(java.lang.String description,
                     java.lang.String startDelimiter,
                     java.lang.String closingDelimiter,
                     boolean isServerTag)
Constructs a new EndTagType object with the specified properties.
(implementation assistance method)

As EndTagType is an abstract class, this constructor is only called from sub-class constructors.

Parameters:
description - a description of the new end tag type useful for debugging purposes.
startDelimiter - the start delimiter of the new end tag type.
closingDelimiter - the closing delimiter of the new end tag type.
isServerTag - indicates whether the new end tag type is a server tag.
Method Detail

getCorrespondingStartTagType

public StartTagType getCorrespondingStartTagType()
Returns the type of start tag that is usually paired with an end tag of this type to form an Element.
(default implementation method)

The default implementation returns null.

This property is informational only and is not used by the parser in any way.

The mapping of end tag type to the corresponding start tag type is in any case one-to-many, which is why the definition emphasises the word "usually". An example of this is the PHPTagTypes.PHP_SCRIPT start tag type, whose corresponding end tag type is EndTagType.NORMAL, while the converse is not true.

The only predefined end tag type that returns null for this property is the special UNREGISTERED end tag type.

Although this method is used like a property method, it is implemented as a default implementation method to avoid cyclic references between statically instantiated StartTagType and EndTagType objects.

Standard Tag Type Values:
End Tag TypeCorresponding Start Tag Type
UNREGISTEREDnull
NORMALStartTagType.NORMAL
Extended Tag Type Values:
End Tag TypeCorresponding Start Tag Type
MasonTagTypes.MASON_COMPONENT_CALLED_WITH_CONTENT_ENDMasonTagTypes.MASON_COMPONENT_CALLED_WITH_CONTENT
MasonTagTypes.MASON_NAMED_BLOCK_ENDMasonTagTypes.MASON_NAMED_BLOCK

Returns:
the type of start tag that is usually paired with an end tag of this type to form an Element.
See Also:
StartTagType.getCorrespondingEndTagType()

getEndTagName

public java.lang.String getEndTagName(java.lang.String startTagName)
Returns the end tag name that is required to match a corresponding start tag with the specified name.
(property method)

This default implementation simply returns startTagName.

Note that the startTagName parameter should include the start tag's name prefix if it has one.

Parameters:
startTagName - the name of a corresponding start tag, including its name prefix.
Returns:
the end tag name that is required to match a corresponding start tag with the specified name.

generateHTML

public java.lang.String generateHTML(java.lang.String startTagName)
Generates the HTML text of an end tag of this type given the name of a corresponding start tag.
(property method)

This default implementation returns "</"+getEndTagName(startTagName)+TagType.getClosingDelimiter().

Note that the startTagName parameter should include the start tag's name prefix if it has one.

Parameters:
startTagName - the name of a corresponding start tag, including its name prefix.
Returns:
the HTML text of an end tag of this type given the name of a corresponding start tag.

constructEndTag

protected final EndTag constructEndTag(Source source,
                                       int begin,
                                       int end,
                                       java.lang.String name)
Internal method for the construction of an EndTag object of this type.
(implementation assistance method)

Intended for use from within the constructTagAt(Source, int pos) method.

Parameters:
source - the Source document.
begin - the character position in the source document where this tag begins.
end - the character position in the source document where this tag ends.
name - the name of the tag.
Returns:
the new EndTag object.