Class sun.server.misc.RegexpPool
All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class sun.server.misc.RegexpPool

java.lang.Object
   |
   +----sun.server.misc.RegexpPool

public class RegexpPool
extends Object
A class to represent a pool of regular expressions. A string can be matched against the whole pool all at once. It is much faster than doing individual regular expression matches one-by-one.
See Also:
RegexpTarget

Constructor Index

 o RegexpPool()

Method Index

 o add(String, Object)
Add a regular expression to the pool of regular expressions.
 o delete(String)
Delete the regular expression and its target.
 o main(String[])
 o match(String)
Search for a match to a string & return the object associated with it with the match.
 o matchNext(String)
Identical to match except that it will only find matches to regular expressions that were added to the pool after the last regular expression that matched in the last call to match() or matchNext()
 o print(PrintStream)
Print this pool to standard output
 o replace(String, Object)
Replace the target for the regular expression with a different target.
 o reset()
Resets the pool so that the next call to matchNext looks at all regular expressions in the pool.

Constructors

 o RegexpPool
  public RegexpPool()

Methods

 o add
  public void add(String re,
                  Object ret) throws REException
Add a regular expression to the pool of regular expressions.
Parameters:
re - The regular expression to add to the pool. For now, only handles strings that either begin or end with a '*'.
ret - The object to be returned when this regular expression is matched. If ret is an instance of the RegexpTarget class, ret.found is called with the string fragment that matched the '*' as its parameter.
Throws: REException
error
 o replace
  public void replace(String re,
                      Object ret)
Replace the target for the regular expression with a different target.
Parameters:
re - The regular expression to be replaced in the pool. For now, only handles strings that either begin or end with a '*'.
ret - The object to be returned when this regular expression is matched. If ret is an instance of the RegexpTarget class, ret.found is called with the string fragment that matched the '*' as its parameter.
 o delete
  public Object delete(String re)
Delete the regular expression and its target.
Parameters:
re - The regular expression to be deleted from the pool. must begin or end with a '*'
Returns:
target - the old target.
 o match
  public Object match(String s)
Search for a match to a string & return the object associated with it with the match. When multiple regular expressions would match the string, the best match is returned first. The next best match is returned the next time matchNext is called. @param s The string to match against the regular expressions in the pool. @return null on failure, otherwise the object associated with the regular expression when it was added to the pool. If the object is an instance of RegexpTarget, then the return value is the result from calling return.found(string_that_matched_wildcard).
 o matchNext
  public Object matchNext(String s)
Identical to match except that it will only find matches to regular expressions that were added to the pool after the last regular expression that matched in the last call to match() or matchNext()
 o reset
  public void reset()
Resets the pool so that the next call to matchNext looks at all regular expressions in the pool. match(s); is equivalent to reset(); matchNext(s);

Multithreading note: reset/nextMatch leave state in the regular expression pool. If multiple threads could be using this pool this way, they should be syncronized to avoid race hazards. match() was done in such a way that there are no such race hazards: multiple threads can be matching in the same pool simultaneously.

 o main
  public static void main(String argv[])
 o print
  public void print(PrintStream out)
Print this pool to standard output

All Packages  Class Hierarchy  This Package  Previous  Next  Index