Contributions to this library should be conform to the coding style rules stated in the books Object-Oriented Software Construction, 2nd edition and Eiffel, the language, 2nd printing. These rules also can be obtained here as a PDF document.
The features of all classes should always belong to one of the following feature clause categories, except in very rare cases:
Name | Description |
Initialization | Commands used to set up the contents of objects; usually they are creation procedures. This category should be exported to NONE in order to avoid accidental calling of creation features without the createion instruction (!! or create). |
Access | Queries used to obtain elements in the structure. |
Measurement | Queries pertaining to the size of the structure. |
Comparison | Features (usually queries) which compare elements according to various order relations. |
Status report | Queries used to determine general properties of the structure, including options. |
Status setting | Procedures which change general properties, in particular options (which can then be queried through features of the preceding category). |
Cursor movement | For structures which maintain a "current position" marked by a cursor, procedures which change that position. |
Element change | Procedures which change elements of the structure, or add elements to it. |
Removal | Commands which remove elements from the structure. |
Resizing | Commands which change the size allocated to the structure. |
Transformation | Commands which may transform the overall organization of the structure. |
Conversion | Features which produce different structures made of some or all of the same elements. |
Duplication | Features which produce copies of the structure. |
Basic operations | Features implementing various standard mechanisms (such as arithmetic operations). |
Output | Commands which produce output to the user or to an external device (such as a file or a network). |
Input | Commands which fetch input from the user or from an external device (such as a file or a network). |
Miscellaneous | Anything that does not fit in the other categories (there is currently no example of this category in the Base libraries). |
Obsolete | Features declared obsolete, kept only for compatibility with previous versions. Such features will not appear in the flat-short form. |
Inapplicable | Features inherited from ancestors where they were exported to clients, but made secret or restrictively exported in the current class. Such features will not appear in the flat-short form. |
Implementation | Secret or restrictively exported features, used only for the implementation of the current class. Such features will not appear in the flat-short form. |