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:
- @(#)MapPage.java 2.4
- Author:
- Stephen Uhler
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddMapEntry(String name, String value) Add or remove an item to the map tablevoidaddPatternEntry(String pattern, String replacement) Add or remove an item to the pattern tablevoidadd a tag/attribute pair to the rewrite list.voidClear the pattern map.convertHtml(String content) Rewrite all the url's in this document.convertString(String fix) Rewrite a url inside a tag parameter.voiddiagnostic outputintmapCount()How many tags have been mapped?voidSet the map table for cross-linked sites.voidChange 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
-
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
-
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(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
-
log
diagnostic output
-