opendap.servlet
Class GetInfoHandler

java.lang.Object
  extended by opendap.servlet.GetInfoHandler

public class GetInfoHandler
extends java.lang.Object

Default handler for OPeNDAP info requests. This class is used by AbstractServlet. This code exists as a seperate class in order to alleviate code bloat in the AbstractServlet class. As such, it contains virtually no state, just behaviors.

Author:
Nathan David Potter

Constructor Summary
GetInfoHandler()
           
 
Method Summary
 java.lang.String loadOverrideDoc(java.lang.String infoDir, java.lang.String dataSet)
          ************************************************************************ Checks the info directory for user supplied override documents for the passed dataset name.
 void sendINFO(java.io.PrintStream pw, GuardedDataset gds, ReqState rs)
          ************************************************************************ Default handler for OPeNDAP info requests.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GetInfoHandler

public GetInfoHandler()
Method Detail

sendINFO

public void sendINFO(java.io.PrintStream pw,
                     GuardedDataset gds,
                     ReqState rs)
              throws DAP2Exception,
                     ParseException
************************************************************************ Default handler for OPeNDAP info requests. Returns an html document describing the contents of the servers datasets.

The "INFOcache" <init-param> element in the web.xml file specifies the designated location for:

The server specific HTML* files must be named #servlet#.html where #servlet# is the name of the servlet that is running as the OPeNDAP server in question. This name is determined at run time by using the class called Class ( this.getClass().getName() ).

In the C++ code the analogy is the per-cgi file names.

The dataset specific HTML* files are located by catenating `.html' to #name#, where #name# is the name of the dataset. If the filename part of #name# is of the form [A-Za-z]+[0-9]*.* then this function also looks for a file whose name is [A-Za-z].html For example, if #name# is .../data/fnoc1.nc this function first looks for .../data/fnoc1.nc.html. However, if that does not exist it will look for .../data/fnoc.html. This allows one `per-dataset' file to be used for a collection of files with the same root name.

NB: An HTML* file contains HTML without the , or tags (my own notation).

Look for the user supplied Server- and dataset-specific HTML* documents.

Parameters:
pw - The PrintStream to which the output should be written.
gds - The thread safe dataset.
rs - The ReqState object for theis client request.
Throws:
DAP2Exception
ParseException
See Also:
GuardedDataset, ReqState

loadOverrideDoc

public java.lang.String loadOverrideDoc(java.lang.String infoDir,
                                        java.lang.String dataSet)
                                 throws DAP2Exception
************************************************************************ Checks the info directory for user supplied override documents for the passed dataset name. If there are overridedocuments present then the contents are read and returned to the caller as a string.

Parameters:
dataSet - The name of the dataset.
Throws:
DAP2Exception