The genericbnf package provides for storage and manipulation of Backus-Naur Form (BNF) headers, and generic messages composed of BNFHeaders.
The classes and intefaces of this package can be sub-divided into the following 4 types:
Headers
Each header is represented by a key. The GenericKeys class constitutes the base abstract class representing a key. Eack key is identified by a name and an ordinal used for matching. The HeaderKeys abstract class adds HTTP marshalling semantics to the GenricKeys class. The BaseVersionValues class is a key for representing a generic protocol version in the format of "name/major.minor".
Header Storage
The HeaderStorage interface is for the storage of headers that are in the Augmented BNF format, which looks like "Name: value". This interface provides various methods for interacting with the headers in storage, adding, removing, comparing, etc.
Header Manipulation
The BNFHeaders interface provides methods for marshalling, parsing and duplicating headers.
Generic Messages
The GenericMessage interface constitutes the Base Generic Message and holds the parsing and marshalling routines for the first lines of the message. The GenericStreamServiceContext interface exposes address information common to to both the inbound/request and outbound/response streams.