ecologylab.services.messages
Class RequestMessage<S extends Scope>

java.lang.Object
  extended by ecologylab.generic.Debug
      extended by ecologylab.xml.ElementState
          extended by ecologylab.services.messages.ServiceMessage<S>
              extended by ecologylab.services.messages.RequestMessage<S>
All Implemented Interfaces:
FieldTypes, XMLTranslationExceptionTypes, java.lang.Comparable<ServiceMessage>
Direct Known Subclasses:
CfCollaborationGetSurrogate, CfCollaborationGetSurrogate, ChatRequest, CloseMessage, DisconnectRequest, HistoryEchoRequest, HttpRequest, IgnoreRequest, InitConnectionRequest, LogEvent, Login, Ping, SeedCf, SetPreferences, ShutdownRequest, StopMessage, UrlMessage

public abstract class RequestMessage<S extends Scope>
extends ServiceMessage<S>

Abstract base class for ecologylab.services DCF request messages.

Author:
blake, andruid

Nested Class Summary
 
Nested classes/interfaces inherited from class ecologylab.xml.ElementState
ElementState.DeclarationStyle, ElementState.xml_attribute, ElementState.xml_bind_from, ElementState.xml_bind_to, ElementState.xml_class, ElementState.xml_classes, ElementState.xml_collection, ElementState.xml_format, ElementState.xml_leaf, ElementState.xml_map, ElementState.xml_nested, ElementState.xml_nowrap, ElementState.xml_other_tags, ElementState.xml_scope, ElementState.xml_tag, ElementState.xml_text
 
Field Summary
 
Fields inherited from class ecologylab.xml.ElementState
CDATA, NORMAL, UTF16, UTF16_LE, UTF8
 
Fields inherited from interface ecologylab.xml.FieldTypes
ATTRIBUTE, AWFUL_OLD_NESTED_ELEMENT, BAD_FIELD, COLLECTION_ELEMENT, COLLECTION_SCALAR, IGNORED_ATTRIBUTE, IGNORED_ELEMENT, LEAF, MAP_ELEMENT, MAP_SCALAR, NAME_SPACE_ATTRIBUTE, NAME_SPACE_LEAF_NODE, NAME_SPACE_MASK, NAME_SPACE_NESTED_ELEMENT, NAMESPACE_IGNORED_ELEMENT, NAMESPACE_TRIAL_ELEMENT, NESTED_ELEMENT, PSEUDO_FIELD_DESCRIPTOR, ROOT, TEXT_ELEMENT, TEXT_NODE_VALUE, UNSET_TYPE, WRAPPER, XMLNS_ATTRIBUTE, XMLNS_IGNORED
 
Fields inherited from interface ecologylab.xml.XMLTranslationExceptionTypes
FILE_NOT_FOUND, IO_EXCEPTION, NULL_PURL, UNKNOWN
 
Constructor Summary
RequestMessage()
           
 
Method Summary
 ParsedURL errorRedirectUrl(S clientSessionScope)
          A URL can be provided, indicating the response should be accomplished with HTTP redirect.
 boolean isDisposable()
          Indicates whether or not this type of message may be ignored by the server, if the server becomes backed-up.
 ParsedURL okRedirectUrl(S clientSessionScope)
          A URL can be provided, indicating the response should be accomplished with HTTP redirect.
abstract  ResponseMessage performService(S clientSessionScope)
          Perform the service associated with the request, using the supplied context as needed.
 
Methods inherited from class ecologylab.services.messages.ServiceMessage
compareTo, getSender, getTimeStamp, getUid, setSender, setUid, stampTime
 
Methods inherited from class ecologylab.xml.ElementState
buildDOM, buildDOM, buildDOM, buildDOM, buildDOM, buildDOMFromXMLCharSequence, buildDOMFromXMLString, checkAnnotation, classDescriptor, createParentDirs, getChildFieldAccessors, getElementStateById, getFieldDescriptors, getNestedNameSpace, getTextNodeString, hasScalarTextField, lookupNestedNameSpace, parent, recycle, setDeclarationStyle, setParent, setUseDOMForTranslateTo, translateFromXML, translateFromXML, translateFromXML, translateFromXML, translateFromXML, translateFromXMLCharSequence, translateFromXMLDOM, translateFromXMLDOM, translateFromXMLDOM, translateFromXMLDOM, translateFromXMLDOM, translateFromXMLDOM, translateFromXMLDOMCharSequence, translateFromXMLDOMCharSequence, translateFromXMLRootNode, translateFromXMLSAX, translateFromXMLSAX, translateFromXMLSAX, translateFromXMLSAX, translateFromXMLSAX, translateToDOM, translateToXML, translateToXML, translateToXML, translateToXML, writePrettyXML, writePrettyXML, writePrettyXML
 
Methods inherited from class ecologylab.generic.Debug
classSimpleName, closeLoggingFile, debug, debug, debug, debug, debugA, debugA, debugA, debugI, debugI, debugI, error, error, getClassName, getClassName, getInteractive, getPackageName, getPackageName, getPackageName, initialize, level, level, level, logToFile, print, print, println, println, println, println, println, println, printlnA, printlnA, printlnA, printlnI, printlnI, printlnI, printlnI, setLoggingFile, show, show, superString, toggleInteractive, toString, toString, warning, warning, weird, weird
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RequestMessage

public RequestMessage()
Method Detail

performService

public abstract ResponseMessage performService(S clientSessionScope)
Perform the service associated with the request, using the supplied context as needed.

Parameters:
localScope - Context to perform it in/with.
Returns:
Response to pass back to the (remote) caller.

isDisposable

public boolean isDisposable()
Indicates whether or not this type of message may be ignored by the server, if the server becomes backed-up. For example, a RequestMessage subclass that simply requests the server's current state may be ignored if a more recent copy of one has arrived later. By default, RequestMessages are not disposable; this method should be overriden if they are to be.

Returns:
false.

okRedirectUrl

public ParsedURL okRedirectUrl(S clientSessionScope)
A URL can be provided, indicating the response should be accomplished with HTTP redirect. Used when browser security is an issue.

This is the redirect URL for response when processing is successful.

Parameters:
clientSessionScope - Can be used to generate HTTP GET style arguments in the redirect URL.
Returns:
null in this the base class case.

errorRedirectUrl

public ParsedURL errorRedirectUrl(S clientSessionScope)
A URL can be provided, indicating the response should be accomplished with HTTP redirect. Used when browser security is an issue.

This is the redirect URL for response when processing results in an error.

Parameters:
clientSessionScope - Can be used to generate HTTP GET style arguments in the redirect URL.
Returns:
null in this the base class case.