Package sunlabs.brazil.handler
Class MapPage
java.lang.Object
sunlabs.brazil.handler.MapPage
Utility class to rewrite links inside of web pages so they appear to
come from a different site.
Note: This only works for "http", not "https".
- Version:
- Author:
- Stephen Uhler
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addMapEntry
(String name, String value) Add or remove an item to the map tablevoid
addPatternEntry
(String pattern, String replacement) Add or remove an item to the pattern tablevoid
add a tag/attribute pair to the rewrite list.void
Clear the pattern map.convertHtml
(String content) Rewrite all the url's in this document.convertString
(String fix) Rewrite a url inside a tag parameter.void
diagnostic outputint
mapCount()
How many tags have been mapped?void
Set the map table for cross-linked sites.void
Change the prefix that will replace the leading "/" in a URL.
-
Field Details
-
tagMap
Initialized to all tag/attribute pairs whose attribute values are considered for rewriting. -
urlMap
-
patternMap
-
prefix
-
log
public static boolean log -
count
public int count
-
-
Constructor Details
-
MapPage
Create a site mapper. The following table maps all the entity/attribute combinations that are (or could be) URL's to (possibly) rewrite.- Parameters:
prefix
- Every link starting with "/" has the leading slash replaced byprefix
. If prefix is null, then only fully qualified url's are considered for rewriting.
-
-
Method Details
-
setPrefix
Change the prefix that will replace the leading "/" in a URL. -
addTag
add a tag/attribute pair to the rewrite list. If the attribute is null, remove the tag. -
setMap
Set the map table for cross-linked sites. Foreach key in the table that matches a URL, replace the key portion of the url with the key's value. -
addMapEntry
Add or remove an item to the map table- Parameters:
name
- The prefix of the url to matchvalue
- The prefix to replace it with. If null, remove the prefix
-
addPatternEntry
Add or remove an item to the pattern table- Parameters:
pattern
- The prefix pattern of the url to match Full tcl8.0-style regexps are supportedreplacement
- The prefix to replace it with. If null, remove the prefix. \n's are replaced by the corrosponding sub-matches in the namePatterns are stored in a vector, with each pattern taking 3 concecutive elements: the pattern, the replacement rule, and the compiled expression. This way they are searched in order. Sample usage: http://www.([^.]*).com/ /site/\1/ will replace the url: http://www.foo.com/a/b.html with /site/foo/a/b.html
-
clearPatterns
public void clearPatterns()Clear the pattern map. -
mapCount
public int mapCount()How many tags have been mapped? -
convertHtml
Rewrite all the url's in this document. This is accomplished via repeated calls toconvertString(java.lang.String)
.- Parameters:
content
- The HTML to be processed.- Returns:
- The smae HTML, will all URL's rewritten. URL's starting with "/" have the "/" replaced with the prefix. All others are re-written based on the supplied mapping tables.
-
convertString
Rewrite a url inside a tag parameter.- Parameters:
fix
- The value of the tag to be rewritten (fixed)- Returns:
- null of the existing value is OK, otherwise the new value is returned
-
log
diagnostic output
-