Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## things.data.processing.http
Class ResponseLineParserOLD

    java.lang.Object
      things.data.processing.LexicalTool
          things.data.processing.http.ResponseLineParserOLD

    public class ResponseLineParserOLD

extends LexicalTool

An HTTP Response Line parser. Uses the same method as the AddressParser.

Version:
  1.0

  Version History

      EPG - Initial - 12 FEB 07

Author:
  Erich P. Gatejen

Field Summary

Fields inherited from class things.data.processing.LexicalTool
`ALLOWED, ASCII_HIGH, BAD, BREAKING, CHAR, CHAR_DNSCHAR, CHAR_DNSCHAR_NUMERIC, CHAR_DNSCHAR_POUND, CLASS_ALPHA, CLASS_CONTROL, CLASS_NONE, CLASS_NUMERIC, CLASS_PUNCTUATION, COLONVALUE, CONTROL, CRBYTEVALUE, DASHVALUE, DNSCHAR, DOLLARBYTEVALUE, HEADER_READ_STATE_CHART, HEADER_READ_STATE_CHARTV2, HP____SPECIAL_DEAD, HP____SPECIAL_PAUSE, HP____SPECIAL_WALKING_DEAD, HP_BROKEN, HP_CLEAR_PAUSE, HP_CLEAR_PAUSE_CRLF, HP_CLOSURE, HP_CR, HP_HEAD_CR, HP_HEAD_CRLF, HP_HEAD_LF, HP_LF, HP_LFCR, HP_NOT_USED, HP_PAUSE, HP_PAUSE_CRLF, HP_PAUSE_CRLFCR, HP_READ, HP_START, LEXICAL_HEADER_TERMINATION, LEXICAL_MAP, LEXICAL_MAP_822_HEADERNAME, LEXICAL_MAP_822_TYPE, LEXICAL_MAP_CLASSIFICATION, LEXICAL_MAP_DNS_TYPE, LEXICAL_MAP_HEXVALUE, LEXICAL_MAP_NAME, LEXICAL_MAP_URI_TYPE, LEXICAL_MAP_URLF_TYPE, LFBYTEVALUE, NO_CHARACTER, NOT_ALLOWED, OPENBBYTEVALUE, OTHER, PIPEBYTEVALUE, SLASHBYTEVALUE, SPACEVALUE, SPECIAL, SPECIAL_AMP, SPECIAL_AT, SPECIAL_BACKSLASH, SPECIAL_CHAR_DNSCHAR_DOT, SPECIAL_CLOSEBRACK, SPECIAL_CLOSEPAREN, SPECIAL_COLON, SPECIAL_COMMA, SPECIAL_DOLLAR, SPECIAL_EQ, SPECIAL_GT, SPECIAL_LT, SPECIAL_OPENBRACK, SPECIAL_OPENPAREN, SPECIAL_PERCENT, SPECIAL_PLUS, SPECIAL_QUEST, SPECIAL_QUOTE, SPECIAL_SEMICOLON, SPECIAL_SLASH, SPECIAL_SPLAT, STRING_CRLF, TABVALUE, URLCHAR, URLFCHAR, VALUE_ASCII_BOTTOM, VALUE_ASCII_HIGH_BOTTOM, VALUE_ASCII_HIGH_TOP, VALUE_ASCII_LOW_BOTTOM, VALUE_ASCII_LOW_TOP, VALUE_ASCII_TOP, WS, WS_CR_CONTROL, WS_LF_CONTROL, WS_SPACE, WS_TAB_CONTROL`

Constructor Summary
`ResponseLineParserOLD()`

Method Summary
`void` | `parser(java.io.InputStream ins, HttpResponse response)` Call with an InputStream.
`void` | `parser(StreamSource source, HttpResponse response)` Parse engine grammar.
`void` | `parser(java.lang.String data, HttpResponse response)` Call with a String.

Methods inherited from class things.data.processing.LexicalTool
`get822HeadernameType, get822HeadernameTypeWithDollar, get822Type, getClassification, getDNSType, getHexValue, getLower, getName, getUpper, getURIType, getURLFType`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ResponseLineParserOLD

    public ResponseLineParserOLD()

Method Detail

### parser

    public void parser(StreamSource source,
                       HttpResponse response)
                throws ThingsException

  Parse engine grammar.

       HTTP/1.1 200 OK

      Lexical elements:
                      URLCHAR = Letters (A-Z and a-z), numbers (0-9) and the characters '.', '-', '~' and '_', plus we treat # as a character because
                        we don't distinguish is for processing.
                      WS = whitespace not including CR/LF
                      SLASH = forward slash.
                      !OTHER! (meaning anything not listed).

      Registers
                      Version                 - response.version
                      Code                    - response.code
                      Text                    - response.text

      HTTP/1.1200OK...

      [START]
              -> [OPEN]
              -> ^RETURN^

      [OPEN]
              - URLCHAR       - push, VERSION, ^RETURN^
              - !OTHER!       - [DEPLETE], error(must start with a character)
              - !EOF!         - fault(No request present)

      [VERSION]
              - URLCHAR       - push
              - SLASH         - push
              - WS            - pop->$Version, [CODE], ^RETURN^
              - !OTHER!       - [DEPLETE], error(expecting code)
              - !EOF!         - fault(Only VERSION present)

      [CODE]
              - URLCHAR       - push
              - WS            - pop->$Code, [TEXT], ^RETURN^
              - !OTHER!       - [DEPLETE], error(bad code)
              - !EOF!         - error(No TEXT present)

      [TEXT]
              - URLCHAR       - push
              - WS            - push
              - CR            - pop->$Text, [DEPLETE], ^RETURN^
              - !OTHER!       - [DEPLETE], errorbad characters in Text.
              - !EOF!         - error(status line not terminated)

      [DEPLETE]
              - CR            - [DEPLETE_CR], ^RETURN^
              - !OTHER!       - burn
              - !EOF!         - error(missing CR at end of line)

      [DEPLETE_CR]
              - LF            - ^RETURN^
              - !EOF!         - error(missing LF after CR at end of line: truncated.)
              - !OTHER!       - fault(missing LF after CR at end of line: odd characters found, so stream is unreliable.)

  Parameters:
    `source` - the stream source.
    `response` - the response object to fill.
  Throws:
    `ThingsException` - If it is a fault, the request should be considered completely invalid. If it is an error, whatever was set in the request might be useful.

### parser

    public void parser(java.io.InputStream ins,
                       HttpResponse response)
                throws ThingsException

  Call with an InputStream.

  Parameters:
    `ins` - the source stream.
    `response` - the response object to fill.
  Throws:
    `ThingsException` - If it is a fault, the request should be considered completely invalid. If it is an error, whatever was set in the request might be useful.

### parser

    public void parser(java.lang.String data,
                       HttpResponse response)
                throws ThingsException

  Call with a String.

  Parameters:
    `data` - the String
    `response` - the response object to fill.
  Throws:
    `ThingsException` - If it is a fault, the request should be considered completely invalid. If it is an error, whatever was set in the request might be useful.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Things.