org.w3c.tools.resources
Class LookupState

java.lang.Object
  extended by org.w3c.tools.resources.LookupState

public class LookupState
extends java.lang.Object

This object keeps the state info around while looking up an entity.


Constructor Summary
LookupState(RequestInterface request)
          Create a lookup state to handle the given request on behalf of client.
LookupState(java.lang.String uri)
          Construct a lookup state to be resolved internnaly by the server.
 
Method Summary
 int countRemainingComponents()
          How much components have not yet been looked up in this state.
 java.lang.String getFragment()
          Get the fragment part of the URL, if any.
 java.lang.String getNextComponent()
          Get next part of the URL to be look for.
 java.lang.String getQuery()
          Get the query part of the URL, if any.
 java.lang.String getRemainingPath()
          Get the remaiing path, without consuming it.
 java.lang.String getRemainingPath(boolean consume)
          Get the remaining path.
 RequestInterface getRequest()
          Get this lookup state request.
 java.lang.String getType()
          Get the type part of the URL, if any.
 java.lang.String getURI()
          Get this lookpu state full URI.
 boolean hasMoreComponents()
          Does this look up state has more components to be looked for.
 boolean hasRequest()
          Is this lookup state object associated with a request ?
 boolean isDirectory()
          Is the requested URI a directory URI ?
 boolean isInternal()
          Is this lookup state internal to the server.
 void markInternal()
          Mark this lookup state as being done internally.
protected  void parseURI()
          Parse the given URI into an array of hierarchical components.
 java.lang.String peekNextComponent()
          Get the next component, without consuming it.
static java.lang.String unescape(java.lang.String s)
          Unescape a escaped string
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LookupState

public LookupState(RequestInterface request)
            throws ProtocolException
Create a lookup state to handle the given request on behalf of client.

Parameters:
client - The client that issued the request.
request - The request whose URI is to bee looked up.
Throws:
ProtocolException - if an error relative to the protocol occurs

LookupState

public LookupState(java.lang.String uri)
            throws ProtocolException
Construct a lookup state to be resolved internnaly by the server. This method allows for internal lookup of object, even if there is no real client making the request.

Parameters:
uri - The URI to be looked up.
Throws:
ProtocolException - if an error relative to the protocol occurs
Method Detail

unescape

public static java.lang.String unescape(java.lang.String s)
Unescape a escaped string

Parameters:
s - The string to be unescaped
Returns:
the unescaped string.

parseURI

protected void parseURI()
                 throws ProtocolException
Parse the given URI into an array of hierarchical components. The optional query string and an optional fragment are recorded into the request as new fields.

The query string and the fragment are recorded into the request as the query and frag attributes.

Throws:
ProtocolException - if unable to parse

getFragment

public java.lang.String getFragment()
Get the fragment part of the URL, if any. The fragment is anything beyond the # character in a URL.

Returns:
A String instance, or null.

getQuery

public java.lang.String getQuery()
Get the query part of the URL, if any. The query is anything beyond a ? character in a URL.

Returns:
A String instance, or null.

getType

public java.lang.String getType()
Get the type part of the URL, if any. The type is anything beyond a ; character in a URL.

Returns:
A String instance, or null.

isDirectory

public boolean isDirectory()
Is the requested URI a directory URI ?

Returns:
A boolean true if the requested URI ends with a slash, false otherwise.

getURI

public java.lang.String getURI()
Get this lookpu state full URI.


getNextComponent

public final java.lang.String getNextComponent()
Get next part of the URL to be look for.

Returns:
A String giving the next component.

peekNextComponent

public final java.lang.String peekNextComponent()
Get the next component, without consuming it.

Returns:
A String giving the next component, or null if none is available.

getRemainingPath

public final java.lang.String getRemainingPath(boolean consume)
Get the remaining path.

Parameters:
consume - If true, consume the components, otherwise, just peek them.
Returns:
A String giving the remaining URL.

getRemainingPath

public final java.lang.String getRemainingPath()
Get the remaiing path, without consuming it.

Returns:
The remaining path.

hasMoreComponents

public boolean hasMoreComponents()
Does this look up state has more components to be looked for.

Returns:
true if more components are to be looked for.

countRemainingComponents

public int countRemainingComponents()
How much components have not yet been looked up in this state.


getRequest

public final RequestInterface getRequest()
Get this lookup state request.

Returns:
An instance of RequestInterface, or null if this is an internal request.

hasRequest

public boolean hasRequest()
Is this lookup state object associated with a request ?

Returns:
A boolean true if a request is associated.

markInternal

public void markInternal()
Mark this lookup state as being done internally. This allows lookup methods to be more kind (for example, not throwing redirections error, etc).


isInternal

public boolean isInternal()
Is this lookup state internal to the server. Internal lookup state may not have an associated request.

Returns:
A boolean true if this is an internal request.