Package org.opencms.staticexport
Class CmsLinkProcessor
- java.lang.Object
-
- org.htmlparser.visitors.NodeVisitor
-
- org.opencms.util.CmsHtmlParser
-
- org.opencms.staticexport.CmsLinkProcessor
-
- All Implemented Interfaces:
I_CmsHtmlNodeVisitor
public class CmsLinkProcessor extends CmsHtmlParser
Implements the HTML parser node visitor pattern to exchange all links on the page.- Since:
- 6.0.0
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ATTRIBUTE_HREF
Constant for the attribute name.static java.lang.String
ATTRIBUTE_SRC
Constant for the attribute name.static java.lang.String
ATTRIBUTE_VALUE
Constant for the attribute name.static java.lang.String
HTML_END
HTML end.static java.lang.String
HTML_START
HTML start.static java.lang.String
TAG_AREA
Constant for the tag name.static java.lang.String
TAG_EMBED
Constant for the tag name.static java.lang.String
TAG_IFRAME
Constant for the tag name.static java.lang.String
TAG_PARAM
Constant for the tag name.-
Fields inherited from class org.opencms.util.CmsHtmlParser
m_echo, m_noAutoCloseTags, m_result, TAG_ARRAY, TAG_LIST
-
-
Constructor Summary
Constructors Constructor Description CmsLinkProcessor(CmsObject cms, CmsLinkTable linkTable, java.lang.String encoding, java.lang.String relativePath)
Creates a new link processor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.String
escapeLink(java.lang.String source)
Escapes all&
, e.g.CmsLinkTable
getLinkTable()
Returns the link table this link processor was initialized with.protected void
processAreaTag(org.htmlparser.Tag tag)
Process an area tag.protected void
processEmbedTag(org.htmlparser.Tag tag)
Process an embed tag.protected void
processImageTag(org.htmlparser.tags.ImageTag tag)
Process an image tag.protected void
processLink(org.htmlparser.Tag tag, java.lang.String attr, CmsRelationType type)
Process a tag having a link in the given attribute, considering the link as the given type.java.lang.String
processLinks(java.lang.String content)
Starts link processing for the given content in processing mode.protected void
processLinkTag(org.htmlparser.tags.LinkTag tag)
Process a link tag.protected void
processObjectTag(org.htmlparser.tags.ObjectTag tag)
Process an object tag.java.lang.String
replaceLinks(java.lang.String content)
Starts link processing for the given content in replacement mode.protected void
setAltAttributeFromTitle(org.htmlparser.Tag tag, java.lang.String internalUri)
Ensures that the given tag has the "alt" attribute set.static java.lang.String
unescapeLink(java.lang.String source)
Unescapes all&
, that is replaces them with a&
.void
visitTag(org.htmlparser.Tag tag)
Visitor method to process a tag (start).-
Methods inherited from class org.opencms.util.CmsHtmlParser
collapse, configureNoAutoCorrectionTags, getConfiguration, getNoAutoCloseTags, getResult, getTagHtml, process, setConfiguration, setNoAutoCloseTags, visitEndTag, visitRemarkNode, visitStringNode
-
-
-
-
Field Detail
-
ATTRIBUTE_HREF
public static final java.lang.String ATTRIBUTE_HREF
Constant for the attribute name.- See Also:
- Constant Field Values
-
ATTRIBUTE_SRC
public static final java.lang.String ATTRIBUTE_SRC
Constant for the attribute name.- See Also:
- Constant Field Values
-
ATTRIBUTE_VALUE
public static final java.lang.String ATTRIBUTE_VALUE
Constant for the attribute name.- See Also:
- Constant Field Values
-
HTML_END
public static final java.lang.String HTML_END
HTML end.- See Also:
- Constant Field Values
-
HTML_START
public static final java.lang.String HTML_START
HTML start.- See Also:
- Constant Field Values
-
TAG_AREA
public static final java.lang.String TAG_AREA
Constant for the tag name.- See Also:
- Constant Field Values
-
TAG_EMBED
public static final java.lang.String TAG_EMBED
Constant for the tag name.- See Also:
- Constant Field Values
-
TAG_IFRAME
public static final java.lang.String TAG_IFRAME
Constant for the tag name.- See Also:
- Constant Field Values
-
TAG_PARAM
public static final java.lang.String TAG_PARAM
Constant for the tag name.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CmsLinkProcessor
public CmsLinkProcessor(CmsObject cms, CmsLinkTable linkTable, java.lang.String encoding, java.lang.String relativePath)
Creates a new link processor.- Parameters:
cms
- the current users OpenCms contextlinkTable
- the link table to useencoding
- the encoding to use for parsing the HTML contentrelativePath
- additional path for links with relative path (only used in "replace" mode)
-
-
Method Detail
-
escapeLink
public static java.lang.String escapeLink(java.lang.String source)
Escapes all&
, e.g. replaces them with a&
.- Parameters:
source
- the String to escape- Returns:
- the escaped String
-
unescapeLink
public static java.lang.String unescapeLink(java.lang.String source)
Unescapes all&
, that is replaces them with a&
.- Parameters:
source
- the String to unescape- Returns:
- the unescaped String
-
getLinkTable
public CmsLinkTable getLinkTable()
Returns the link table this link processor was initialized with.- Returns:
- the link table this link processor was initialized with
-
processLinks
public java.lang.String processLinks(java.lang.String content) throws org.htmlparser.util.ParserException
Starts link processing for the given content in processing mode.Macros are replaced by links.
- Parameters:
content
- the content to process- Returns:
- the processed content with replaced macros
- Throws:
org.htmlparser.util.ParserException
- if something goes wrong
-
replaceLinks
public java.lang.String replaceLinks(java.lang.String content) throws org.htmlparser.util.ParserException
Starts link processing for the given content in replacement mode.Links are replaced by macros.
- Parameters:
content
- the content to process- Returns:
- the processed content with replaced links
- Throws:
org.htmlparser.util.ParserException
- if something goes wrong
-
visitTag
public void visitTag(org.htmlparser.Tag tag)
Visitor method to process a tag (start).- Specified by:
visitTag
in interfaceI_CmsHtmlNodeVisitor
- Overrides:
visitTag
in classCmsHtmlParser
- Parameters:
tag
- the tag to process- See Also:
I_CmsHtmlNodeVisitor.visitTag(org.htmlparser.Tag)
-
processAreaTag
protected void processAreaTag(org.htmlparser.Tag tag)
Process an area tag.- Parameters:
tag
- the tag to process
-
processEmbedTag
protected void processEmbedTag(org.htmlparser.Tag tag)
Process an embed tag.- Parameters:
tag
- the tag to process
-
processImageTag
protected void processImageTag(org.htmlparser.tags.ImageTag tag)
Process an image tag.- Parameters:
tag
- the tag to process
-
processLink
protected void processLink(org.htmlparser.Tag tag, java.lang.String attr, CmsRelationType type)
Process a tag having a link in the given attribute, considering the link as the given type.- Parameters:
tag
- the tag to processattr
- the attributetype
- the link type
-
processLinkTag
protected void processLinkTag(org.htmlparser.tags.LinkTag tag)
Process a link tag.- Parameters:
tag
- the tag to process
-
processObjectTag
protected void processObjectTag(org.htmlparser.tags.ObjectTag tag)
Process an object tag.- Parameters:
tag
- the tag to process
-
setAltAttributeFromTitle
protected void setAltAttributeFromTitle(org.htmlparser.Tag tag, java.lang.String internalUri)
Ensures that the given tag has the "alt" attribute set.if not set, it will be set from the title of the given resource.
- Parameters:
tag
- the tag to set the alt attribute forinternalUri
- the internal URI to get the title from
-
-