# URI:Scheme:Hierarchical

### Import List

        ADT:StringBuffer
        Exception
        Exception
        Object
        Object
        TextRider
        URI

Class List
Generic | This class implements the generic hierarchical URI.
Parameter |
Segment |

Class Summary: Generic [Detail]

      +---Object.Object
           |
           +---URI.URI
                |
                +---URI.HierarchicalURI
                     |
                     +--URI:Scheme:Hierarchical.Generic

This class implements the generic hierarchical URI.

Field Summary
absolutePath-: BOOLEAN If TRUE, then pathList is an absolute path beginning at the root of the authority's name space.
pathList-: Segment List of path segments of an URI.
Inherited Fields
From URI.URI: schemeId From URI.HierarchicalURI: authority, query
Constructor Summary
Init(Generic, STRING, Authority, Query) See Generic.
New(STRING, Authority, Query): Generic See Generic.
Method Summary
AppendPath(StringBuffer) Appends the textual representation of the path component of uri to the string sb.
AppendSegment(Segment) Adds the segment segm to the end of the list of path segments of uri.
ClearPath() Sets the path component of uri to the empty path.
Clone(): Generic Creates a deep copy of the URI referenced by uri.
Copy(URI) Copies contents of source uri to target dest.
MakeRelative(HierarchicalURI): Generic Converts uri into an URI relative to baseURI.
NewAuthority(): Authority Creates a new instance of the authority component of URI uri.
NewQuery(): Query Creates a new instance of the query component of URI uri.
ParsePath(CharsLatin1, BOOLEAN, Offset) Parses the path component str of an URI.
RemoveSegment(Segment) Removes the segment segm from the list of path segments of uri.
ResolveRelative(HierarchicalURI) Resolves the relative URI uri to an absolute URI.
StripSegments(LONGINT) Strips the last n segments from the hierarchical URI uri.
ToString(): String8 Converts the URI uri to its string representation.
WriteXML(Writer) Writes an XML fragment describing the URI uri to the writer w.
Inherited Methods
From Object.Object: Equals, HashCode From URI.URI: AppendScheme, Clone, GetChannel, SetSchemeId, ToString, WriteXML From URI.HierarchicalURI: AppendPath, AuthorityMandatory, ClearPath, Copy, MakeRelative, NewAuthority, NewQuery, ParsePath, ResolveRelative, SetAuthority, SetQuery

Class Summary: Parameter [Detail]

      +--URI:Scheme:Hierarchical.Parameter

Field Summary
next-: Parameter
string-: STRING Parameter text.
Constructor Summary
InitParameter(Parameter, STRING)
NewParameter(STRING): Parameter
Method Summary
Append(StringBuffer)
Clone(): Parameter
Copy(Parameter)
WriteXML(Writer)

Class Summary: Segment [Detail]

      +--URI:Scheme:Hierarchical.Segment

Field Summary
next-: Segment
paramList-: Parameter List of parameters for this segment.
string-: STRING Segment text.
Constructor Summary
InitSegment(Segment, STRING)
NewSegment(STRING): Segment
Method Summary
Append(StringBuffer)
AppendParameter(Parameter)
Clone(): Segment
Copy(Segment)
WriteXML(Writer)

Class Detail: Generic

Field Detail

### absolutePath

    FIELD absolutePath-: BOOLEAN

> If TRUE, then pathList is an absolute path beginning at the root of the authority's name space. Otherwise, the path is relative.

### pathList

    FIELD pathList-: Segment

> List of path segments of an URI. A hierarchical URI may have an empty path. In this case, this field is NIL.

Constructor Detail

### Init

    PROCEDURE Init(uri: Generic;
                   schemeId: STRING;
                   authority: Authority;
                   query: Query)

> See Generic.

### New

    PROCEDURE New(schemeId: STRING;
                  authority: Authority;
                  query: Query): Generic

> See Generic.

Method Detail

### AppendPath

    PROCEDURE (uri: Generic) AppendPath(sb: StringBuffer)

> Appends the textual representation of the path component of uri to the string sb.

> [Description inherited from AppendPath]

> Redefines: AppendPath

### AppendSegment

    PROCEDURE (uri: Generic) AppendSegment(segm: Segment)

> Adds the segment segm to the end of the list of path segments of uri.

> Pre-condition: segm has not been added to a URI previously.

### ClearPath

    PROCEDURE (uri: Generic) ClearPath()

> Sets the path component of uri to the empty path. Unlike the authority or query component, an URI always includes a path component.

> [Description inherited from ClearPath]

> Redefines: ClearPath

### Clone

    PROCEDURE (uri: Generic) Clone(): Generic

> Creates a deep copy of the URI referenced by uri. That is, it creates a new instance of uri and calls URI.Copy on it.

> [Description inherited from Clone]

> Redefines: Clone, Clone

### Copy

    PROCEDURE (uri: Generic) Copy(dest: URI)

> Copies contents of source uri to target dest.

> Pre-condition: The dynamic type of dest is an extension of the dynamic type of uri.

> [Description inherited from Copy]

> Redefines: Copy, Copy

### MakeRelative

    PROCEDURE (uri: Generic) MakeRelative(baseURI: HierarchicalURI): Generic

> Converts uri into an URI relative to baseURI. The result is uri itself, if

> - baseURI is NIL,

> - uri is not an extension of HierarchicalURI, or

> - uri and baseURI have no common base.

> Otherwise, a new URI is constructed that holds only those parts of uri, that cannot be derived from baseURI. The inverse transformation is done by HierarchicalURI.ResolveRelative.

> [Description inherited from MakeRelative]

> Redefines: MakeRelative, MakeRelative

### NewAuthority

    PROCEDURE (uri: Generic) NewAuthority(): Authority

> Creates a new instance of the authority component of URI uri. The new object is subsequently filled in by parsing the authority component of the URI string (see URI:Authority.ParseAuthority).

> [Description inherited from NewAuthority]

> Redefines: NewAuthority

### NewQuery

    PROCEDURE (uri: Generic) NewQuery(): Query

> Creates a new instance of the query component of URI uri. The new object is subsequently filled in by parsing the query component of the URI string (see URI:Query.ParseQuery).

> [Description inherited from NewQuery]

> Redefines: NewQuery

### ParsePath

    PROCEDURE (uri: Generic) ParsePath(str: CharsLatin1;
                        absolute: BOOLEAN;
                        offset: Offset)
      RAISES ParseError;

> Parses the path component str of an URI. The parameter absolute indicates, whether the path is absolute or relative. On success, the data is stored in the URI uri and the result is NIL. In case of error, an error message is returned and uri is not modified. A character position in an error message refers to an index in str, incremented by the value of offset.

> [Description inherited from ParsePath]

> Redefines: ParsePath

### RemoveSegment

    PROCEDURE (uri: Generic) RemoveSegment(segm: Segment)

> Removes the segment segm from the list of path segments of uri.

> Pre-condition: segm is part of uri

### ResolveRelative

    PROCEDURE (uri: Generic) ResolveRelative(baseURI: HierarchicalURI)

> Resolves the relative URI uri to an absolute URI. The missing parts of uri are taken from baseURI. This is the inverse transformation to URI.MakeRelative.

> [Description inherited from ResolveRelative]

> Redefines: ResolveRelative

### StripSegments

    PROCEDURE (uri: Generic) StripSegments(n: LONGINT)

> Strips the last n segments from the hierarchical URI uri.

> Pre-condition: n >= 0

### ToString

    PROCEDURE (uri: Generic) ToString(): String8

> Converts the URI uri to its string representation. Reserved characters in the URI and characters that may not appear in a valid URI are escaped where necessary.

> [Description inherited from ToString]

> Redefines: ToString, ToString, ToString

### WriteXML

    PROCEDURE (uri: Generic) WriteXML(w: Writer)

> Writes an XML fragment describing the URI uri to the writer w.

> [Description inherited from WriteXML]

> Redefines: WriteXML, WriteXML

Class Detail: Parameter

Field Detail

### next

    FIELD next-: Parameter

### string

    FIELD string-: STRING

> Parameter text. Any escaped characters have been replaced by their character value.

Constructor Detail

### InitParameter

    PROCEDURE InitParameter(param: Parameter;
                            string: STRING)

### NewParameter

    PROCEDURE NewParameter(string: STRING): Parameter

Method Detail

### Append

    PROCEDURE (param: Parameter) Append(sb: StringBuffer)

### Clone

    PROCEDURE (param: Parameter) Clone(): Parameter

### Copy

    PROCEDURE (param: Parameter) Copy(dest: Parameter)

### WriteXML

    PROCEDURE (param: Parameter) WriteXML(w: Writer)

Class Detail: Segment

Field Detail

### next

    FIELD next-: Segment

### paramList

    FIELD paramList-: Parameter

> List of parameters for this segment.

### string

    FIELD string-: STRING

> Segment text. Any escaped characters have been replaced by their character value.

Constructor Detail

### InitSegment

    PROCEDURE InitSegment(segm: Segment;
                          string: STRING)

### NewSegment

    PROCEDURE NewSegment(string: STRING): Segment

Method Detail

### Append

    PROCEDURE (segm: Segment) Append(sb: StringBuffer)

### AppendParameter

    PROCEDURE (segm: Segment) AppendParameter(param: Parameter)

### Clone

    PROCEDURE (segm: Segment) Clone(): Segment

### Copy

    PROCEDURE (segm: Segment) Copy(dest: Segment)

### WriteXML

    PROCEDURE (segm: Segment) WriteXML(w: Writer)