sunlabs.brazil.handler
Class MapPage

java.lang.Object
  extended by sunlabs.brazil.handler.MapPage (view source)

public class MapPage
extends Object

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".

This class is deprecated, use the MapHtmlUrl class instead.


Field Summary
 int count
           
static boolean log
           
 Vector patternMap
           
 String prefix
           
 Hashtable tagMap
          Initialized to all tag/attribute pairs whose attribute values are considered for rewriting.
 Hashtable urlMap
           
 
Constructor Summary
MapPage(String prefix)
          Create a site mapper.
 
Method Summary
 void addMapEntry(String name, String value)
          Add or remove an item to the map table
 void addPatternEntry(String pattern, String replacement)
          Add or remove an item to the pattern table
 void addTag(String name, String attribute)
          add a tag/attribute pair to the rewrite list.
 void clearPatterns()
          Clear the pattern map.
 String convertCSS(String style)
          Rewrite URL's in style sheets.
 String convertHtml(String content)
          Rewrite all the url's in this document.
 String convertString(String fix)
          Rewrite a url inside a tag parameter.
 void log(String message)
          diagnostic output
static void main(String[] argv)
          test this stuff out, sort of.
 int mapCount()
          How many tags have been mapped?
 void rewriteStyleAttributes(boolean b)
          Look for url's in style attributes.
 void setMap(Hashtable map)
          Set the map table for cross-linked sites.
 void setPrefix(String prefix)
          Change the prefix that will replace the leading "/" in a URL.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tagMap

public Hashtable tagMap
Initialized to all tag/attribute pairs whose attribute values are considered for rewriting.


urlMap

public Hashtable urlMap

patternMap

public Vector patternMap

prefix

public String prefix

log

public static boolean log

count

public int count
Constructor Detail

MapPage

public MapPage(String prefix)
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 by prefix. If prefix is null, then only fully qualified url's are considered for rewriting.
Method Detail

setPrefix

public void setPrefix(String prefix)
Change the prefix that will replace the leading "/" in a URL.


rewriteStyleAttributes

public void rewriteStyleAttributes(boolean b)
Look for url's in style attributes. This is "false" by default, as it is expensive and URL's in style attributes are rare.


addTag

public void addTag(String name,
                   String attribute)
add a tag/attribute pair to the rewrite list. If the attribute is null, remove the tag.


setMap

public void setMap(Hashtable map)
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

public void addMapEntry(String name,
                        String value)
Add or remove an item to the map table

Parameters:
name - The prefix of the url to match
value - The prefix to replace it with. If null, remove the prefix

addPatternEntry

public void addPatternEntry(String pattern,
                            String replacement)
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 supported
replacement - The prefix to replace it with. If null, remove the prefix. \n's are replaced by the corrosponding sub-matches in the name

Patterns 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

public String convertHtml(String content)
Rewrite all the url's in this document. This is accomplished via repeated calls to convertString(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.

convertCSS

public String convertCSS(String style)
Rewrite URL's in style sheets. This works via repeated calls to convertString(). (This implementation is preliminary).

Look for url(href) in a stylesheet value. "href" may be delimited by (") or ('), and surrounding whitespace is ignored.


convertString

public String convertString(String fix)
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

public void log(String message)
diagnostic output


main

public static void main(String[] argv)
                 throws IOException
test this stuff out, sort of. Usage: MapPage markup
- read markup from "markup" file - write markup to stdout - surround all url's with []

Throws:
IOException

Version Kenai-svn-r24, Generated 08/18/09
Copyright (c) 2001-2009, Sun Microsystems.