| # Section 8.11.3.2: ADDRESS |

###### class ADDRESS < $ANCHORED_FMT, $MULTI_STR

#### Formal Types

types
SAME = ADDRESS ;
ADDRESS ::
care_of : [RUNES]
building : [RUNES]
country : [RUNES]
country_CEPT : [RUNES]
dept : [RUNES]
floor : [CARD]
organisation : [RUNES]
house : [RUNES]
room : [RUNES]
street : [RUNES]
town : [RUNES]
post_code : [RUNES]

This class implements the concept of a postal address as specified in the draft standard ISO/IEC 14652.

#### External specifications

The following features are required to be implemented for this class in accordance with the specifications given in $STR :-

- str(lib : LIBCHARS) : STR
- str : STR

The following feature is required to be implemented for this class in accordance with the specification given in $FMT :-

- build(str : STR_CURSOR) : SAME

The following features are required to be implemented for this class in accordance with the specifications given in $ANCHORED_FMT :-

- fmt(descr : ANCHORED_DESCR, lib : LIBCHARS) : STR
- fmt(descr : ANCHORED_DESCR) : STR

The following features are required to be implemented for this class in accordance with the specifications given in $MULTI_STR :-

- render(component : STR, lib : LIBCHARS) : STR
- render(component : RUNES, romanize : BOOL) : STR
- as_runes(component : RUNES, romanize : BOOL) : RUNES
- runes : RUNES
- fmt_runes(descr : ANCHORED_DESCR, lib : LIBCHARS) : RUNES
- fmt_runes(descr : ANCHORED_DESCR) : RUNES

#### Reader/Writer pairs

The class is required to have readers and writers for each of the following features. There are neither pre nor post conditions required for either reader or writer for these features.

- care_of : RUNES
- building : RUNES
- country : RUNES
- country_CEPT : RUNES
- dept : RUNES
- floor : CARD
- organisation : RUNES
- house : RUNES
- room : RUNES
- street : RUNES
- town : RUNES
- post_code : RUNES

#### create

This creation feature provides a new object all the components of which are void. Note that this possibility is fore-shadowed by the type definition having optional component types.

create | : SAME

##### Formal Signature

create() res : SAME

##### Pre-condition

Because there are no arguments to this feature, the pre-condition is vacuouly true.

##### Post-condition

post res.care_of = nil
and res.building = nil
and res.country = nil
and res.country_CEPT = nil
and res.dept = nil
and res.floor = nil
and res.organisation = nil
and res.house = nil
and res.room = nil
and res.street = nil
and res.town = nil
and res.post_code = nil

This routine creates a new address object all the components of which are void.

| Language Index |  | Library Index |  | Non-numeric Index

Comments or enquiries should be made to Keith Hopper. Page last modified: Tuesday, 30 May 2000. |