org.weborganic.furi
Class TokenLiteral

java.lang.Object
  extended by org.weborganic.furi.TokenLiteral
All Implemented Interfaces:
Expandable, Matchable, Token

public class TokenLiteral
extends Object
implements Token, Matchable

A URI token corresponding to the literal text part of the URI template.

Literal text remains identical during the expansion process (parameters are ignored).

Literal text tokens only match text that is equal.

The expression for a literal token does contain curly brackets.

Version:
9 February 2009
Author:
Christophe Lauret

Constructor Summary
TokenLiteral(String text)
          Creates a new literal text token.
 
Method Summary
 boolean equals(Object o)
          Two tokens are equals if and only if their string expression is equal.
 String expand(Parameters parameters)
          Expands this object to produce a URI fragment as defined by the URI Template specifications.
 String expression()
          The expression corresponding to this token.
 int hashCode()
          
 boolean isResolvable()
          Indicates whether this token can be resolved.
 boolean match(String part)
          Indicates whether this token matches the specified part of a URL.
 Pattern pattern()
          Returns a regular expression pattern corresponding to this object.
 boolean resolve(String expanded, Map<Variable,Object> values)
          Resolves the specified expanded URI part for this token.
 String toString()
          
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.weborganic.furi.Token
expression, isResolvable
 

Constructor Detail

TokenLiteral

public TokenLiteral(String text)
             throws NullPointerException
Creates a new literal text token.

Parameters:
text - The text corresponding to this URI token.
Throws:
NullPointerException - If the specified text is null.
Method Detail

expand

public String expand(Parameters parameters)
Expands this object to produce a URI fragment as defined by the URI Template specifications.

Specified by:
expand in interface Expandable
Parameters:
parameters - The list of parameters and their values for substitution.
Returns:
The expanded URI fragment

match

public boolean match(String part)
Indicates whether this token matches the specified part of a URL.

Specified by:
match in interface Matchable
Parameters:
part - The part of URL to test for matching.
Returns:
true if it matches; false otherwise.

pattern

public Pattern pattern()
Returns a regular expression pattern corresponding to this object.

Specified by:
pattern in interface Matchable
Returns:
The regular expression pattern corresponding to this object.

resolve

public boolean resolve(String expanded,
                       Map<Variable,Object> values)
Resolves the specified expanded URI part for this token.

The resolution process requires all variables referenced in the token to be mapped to the value that is present in the expanded URI data. By definition, no variable in this token. This method does nothing and always returns true.

Specified by:
resolve in interface Token
Parameters:
expanded - The part of the URI that correspond to an expanded version of the token.
values - The variables mapped to their values as a result of resolution.
Returns:
true this operation was successful; false otherwise.

isResolvable

public boolean isResolvable()
Indicates whether this token can be resolved.

A resolvable token contains variables which can be resolved. By default a token is resolvable if it can be matched.

Specified by:
isResolvable in interface Token
Returns:
true if variables can be resolved from the specified pattern; false otherwise.

expression

public String expression()
The expression corresponding to this token.

Specified by:
expression in interface Token
Returns:
The expression corresponding to this token.

equals

public boolean equals(Object o)
Two tokens are equals if and only if their string expression is equal.

Overrides:
equals in class Object

hashCode

public int hashCode()

Overrides:
hashCode in class Object

toString

public String toString()

Overrides:
toString in class Object