Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Base Library: Class Reflection

This library cluster has 122 classes.

ECF: base.ecf

Source code: directory list

Building on the basic ISE reflection mechanisms, this cluster makes possible a very flexible way of exchanging data between Eiffel objects and any structured plaintext format, and also a binary memory block conforming to EL_MEMORY_READER_WRITER (inherits SED_MEMORY_READER_WRITER)

Key Features

EL_REFLECTED_FIELD*
   EL_REFLECTED_REFERENCE [G]
      EL_REFLECTED_COLLECTION [G]
      EL_REFLECTED_TEMPORAL* [G -> ABSOLUTE]
         EL_REFLECTED_TIME
         EL_REFLECTED_DATE_TIME
         EL_REFLECTED_DATE
      EL_REFLECTED_TUPLE
      EL_REFLECTED_BOOLEAN_REF
      EL_REFLECTED_MANAGED_POINTER
      EL_REFLECTED_STORABLE
      EL_REFLECTED_REFERENCE_ANY
      EL_REFLECTED_HASHABLE_REFERENCE [H -> HASHABLE]
         EL_REFLECTED_STRING* [S -> READABLE_STRING_GENERAL create make end]
            EL_REFLECTED_STRING_8
            EL_REFLECTED_IMMUTABLE_STRING_8
            EL_REFLECTED_IMMUTABLE_STRING_32
            EL_REFLECTED_STRING_32
            EL_REFLECTED_URI [U -> EL_URI create make end]
            EL_REFLECTED_ZSTRING
         EL_REFLECTED_PATH
      EL_REFLECTED_MAKEABLE_FROM_STRING* [MAKEABLE -> EL_MAKEABLE_FROM_STRING [STRING_GENERAL]]
         EL_REFLECTED_MAKEABLE_FROM_STRING_8
         EL_REFLECTED_MAKEABLE_FROM_STRING_32
         EL_REFLECTED_MAKEABLE_FROM_ZSTRING
   EL_REFLECTED_EXPANDED_FIELD* [G]
      EL_REFLECTED_BOOLEAN
      EL_REFLECTED_NUMERIC_FIELD* [N -> NUMERIC]
         EL_REFLECTED_REAL_32
         EL_REFLECTED_INTEGER_FIELD* [N -> NUMERIC]
            EL_REFLECTED_INTEGER_8
            EL_REFLECTED_INTEGER_32
            EL_REFLECTED_INTEGER_64
            EL_REFLECTED_NATURAL_8
            EL_REFLECTED_NATURAL_16
            EL_REFLECTED_NATURAL_32
            EL_REFLECTED_NATURAL_64
            EL_REFLECTED_INTEGER_16
         EL_REFLECTED_REAL_64
      EL_REFLECTED_CHARACTER_8
      EL_REFLECTED_CHARACTER_32
      EL_REFLECTED_POINTER

Directory: library/base/kernel/reflection

. /class

. /data-types

. /enumeration

. /factory

. /fields

. /fields/expanded

. /fields/expanded/numeric

. /fields/reference

. /fields/reference/date-time

. /fields/reference/makeable

. /fields/reference/string

. /helper

. /representation

. /routine

. /settable

. /shared

. /table

. /tuple

class

EL_CLASS_META_DATA

Class reflective meta data

Further Information

Click on class link to see descendants.

EL_CLASS_TYPE_ID_ENUM

Common class type identifiers accesible via EL_SHARED_CLASS_ID

EL_COMPACTABLE_REFLECTIVE

Object whose expanded fields can be compactly represented as a single NATURAL_64 number

Further Information

Click on class link to see instructions, descendants and client examples.

EL_FIELD_LIST_ORDER

Implementation of field ordering and shifting to be applied to an instance of EL_FIELD_LIST associated with object conforming to EL_REFLECTIVE

EL_NUMERIC_TYPE_ID_ENUMERATION

Numeric type identifier enumerations for inclusion in class EL_CLASS_TYPE_ID_ENUM

EL_OBJECT_FIELDS_TABLE

Lookup reflected reference object field information by field name

EL_REFLECTIVE

Stateless class with reflective routines

Further Information

Click on class link to see notes, descendants and client examples.

EL_REFLECTIVELY_SETTABLE

Object with field_table attribute of field getter-setter's. See class EL_FIELD_TABLE

Further Information

Click on class link to see notes, tests, descendants and client examples.

EL_REFLECTIVELY_SETTABLE_STORABLE

Object that can read and write itself to a memory buffer of type EL_MEMORY_READER_WRITER. Field reading, writing and object comparison is handled using class reflection.

Further Information

Click on class link to see descendants, notes and client examples.

EL_REFLECTIVE_CONSOLE_PRINTER

Displays reflective fields conforming to EL_REFLECTED_FIELD in call to {EL_REFLECTIVE}.print_fields

EL_REFLECTIVE_I

Basic interface to reflective object useful in parallel inheritance

EL_REFLECTIVE_STRING_CONSTANTS

Fields conforming to READABLE_STRING_8 are initialized from the attribute name

Further Information

Click on class link to see client examples.

EL_TUPLE_FIELD_TABLE

Name table for tuple fields in object conforming to EL_REFLECTIVE

Also contains a table of agent functions to convert READABLE_STRING_GENERAL to adjusted EL_SPLIT_READABLE_STRING_LIST for initializing tuple field

data-types

EL_ENUMERATION_VALUE

Wrapper object for enumeration value defined by a class inheriting from EL_ENUMERATION. An instance of an implemention class can be initialized by a name string either matching the enumeration name or imported from a foreign naming convention.

It is especially useful as a field attribute in a class inheriting EL_REFLECTIVE.

Further Information

Click on class link to see client examples.

EL_REFLECTIVE_BOOLEAN_REF

Binary state object that can be associated with a descriptive name pair. on or off for example.

Further Information

Click on class link to see notes and tests.

enumeration

EL_BOOLEAN_ENUMERATION

Enumeration with two values representing True and False. The values can be renamed in descendant

Examples:

confirmed/unconfirmed
yes/no
etc..

EL_BOOLEAN_ON_OFF_ENUM

{EL_BOOLEAN_ENUMERATION} with boolean string mapping

True -> "on"
False -> "off"

EL_ENUMERATION

Abstraction for mapping names to code numbers with bi-directional lookups, i.e. obtain the code from a name and the name from a code. The generic parameter can be any NUMERIC type.

Further Information

Click on class link to see notes, instructions, descendants and client examples.

EL_ENUMERATION_NATURAL_16

Implementation EL_ENUMERATION [NATURAL_16]

Further Information

Click on class link to see client examples.

EL_ENUMERATION_NATURAL_32

Implementation EL_ENUMERATION [NATURAL_32]

EL_ENUMERATION_NATURAL_8

Implementation EL_ENUMERATION [NATURAL_8]

Further Information

Click on class link to see client examples.

EL_TYPE_ID_ENUMERATION

Enumeration of type identifiers by correspondence of fields names to type names. Example: EL_CLASS_TYPE_ID_ENUM

Further Information

Click on class link to see notes.

factory

EL_INITIALIZED_FIELD_FACTORY

Factory to create initialized instances of objects conforming to EL_REFLECTED_FIELD

EL_MAKEABLE_READER_WRITER_FACTORY

Factory for objects of type EL_MAKEABLE_READER_WRITER [EL_MAKEABLE]

EL_REFLECTED_COLLECTION_FACTORY

Factory for objects of type EL_REFLECTED_COLLECTION [G]

Further Information

Click on class link to see client examples.

EL_REFLECTED_FIELD_FACTORY

Reflected field factory

EL_REFLECTIVELY_SETTABLE_FACTORY

Factory for objects of type EL_REFLECTIVELY_SETTABLE

EL_ROUTINE_INFO_FACTORY

Routine info factory

Further Information

Click on class link to see client examples.

fields

EL_FIELD_LIST

List of fields conforming to EL_REFLECTED_FIELD

EL_REFLECTED_FIELD

Manages attribute field for a class

Further Information

Click on class link to see descendants and client examples.

EL_REFLECTED_FIELD_IMPLEMENTATION

Implementation routines for EL_REFLECTED_FIELD

fields/expanded

EL_REFLECTED_BOOLEAN

Reflected BOOLEAN field

Further Information

Click on class link to see notes.

EL_REFLECTED_CHARACTER_32

Reflected CHARACTER_32 field

EL_REFLECTED_CHARACTER_8

Reflected CHARACTER_8 field

EL_REFLECTED_EXPANDED_FIELD

Base class for reflected fields of common expanded types

Further Information

Click on class link to see descendants.

EL_REFLECTED_POINTER

Reflected POINTER field

fields/expanded/numeric

EL_REFLECTED_INTEGER_16

Reflected INTEGER_16 field

EL_REFLECTED_INTEGER_32

Reflected INTEGER_32 field

Further Information

Click on class link to see client examples.

EL_REFLECTED_INTEGER_64

Reflected INTEGER_64 field

EL_REFLECTED_INTEGER_8

Reflected INTEGER_8 field

EL_REFLECTED_INTEGER_FIELD

Field with type name pattern: NATURAL_* or INTEGER_*

EL_REFLECTED_NATURAL_16

Reflected NATURAL_16 field

EL_REFLECTED_NATURAL_32

Reflected NATURAL_32 field

EL_REFLECTED_NATURAL_64

Reflected NATURAL_64 field

EL_REFLECTED_NATURAL_8

Reflected NATURAL_8 field

EL_REFLECTED_NUMERIC_FIELD

Field conforming to NUMERIC

Further Information

Click on class link to see client examples.

EL_REFLECTED_REAL_32

Reflected REAL_32 field

Further Information

Click on class link to see client examples.

EL_REFLECTED_REAL_64

Reflected REAL_64 field

fields/reference

EL_REFLECTED_BOOLEAN_REF

Reflected field conforming to BOOLEAN_REF

Further Information

Click on class link to see tests.

EL_REFLECTED_COLLECTION

Reflected field conforming to COLLECTION [G] with ability to create factories for types conforming to ARRAYED_LIST [G] or HASH_TABLE [G, HASHABLE]

Further Information

Click on class link to see notes and client examples.

EL_REFLECTED_HASHABLE_REFERENCE

Reflected reference field conforming to HASHABLE with the possibility to eliminate duplicate values by looking up values in a EL_HASH_SET object.

Further Information

Click on class link to see descendants.

EL_REFLECTED_MANAGED_POINTER

Reflected field of type MANAGED_POINTER

EL_REFLECTED_PATH

Reflected field conforming to type EL_PATH

EL_REFLECTED_REFERENCE

Reflected reference field conforming to parameter G

Further Information

Click on class link to see descendants.

EL_REFLECTED_REFERENCE_ANY

Default reflected reference field

EL_REFLECTED_STORABLE

Reflected field conforming to type EL_STORABLE

EL_REFLECTED_TUPLE

Reflected field conforming to type TUPLE

fields/reference/date-time

EL_REFLECTED_DATE

Reflected field conforming to DATE

EL_REFLECTED_DATE_TIME

Reflected field conforming to DATE_TIME

Further Information

Click on class link to see client examples.

EL_REFLECTED_TEMPORAL

Reflected field conforming to temporal object ABSOLUTE

EL_REFLECTED_TIME

Reflected field of type TIME

Further Information

Click on class link to see client examples.

fields/reference/makeable

EL_REFLECTED_MAKEABLE_FROM_STRING

Field that conforms to type EL_REFLECTED_REFERENCE [EL_MAKEABLE_FROM_STRING_GENERAL]

EL_REFLECTED_MAKEABLE_FROM_STRING_32

Reflected field for object conforming to EL_MAKEABLE_FROM_STRING [STRING_32]

EL_REFLECTED_MAKEABLE_FROM_STRING_8

Reflected field for object conforming to EL_MAKEABLE_FROM_STRING [STRING_8]

EL_REFLECTED_MAKEABLE_FROM_ZSTRING

Reflected field for object conforming to EL_MAKEABLE_FROM_STRING [ZSTRING]

fields/reference/string

EL_REFLECTED_IMMUTABLE_STRING_32

Reflected field of type IMMUTABLE_STRING_32

EL_REFLECTED_IMMUTABLE_STRING_8

Reflected field of type IMMUTABLE_STRING_8

EL_REFLECTED_STRING

Reflected field that conforms to READABLE_STRING_GENERAL

EL_REFLECTED_STRING_32

Reflected field of type STRING_32

EL_REFLECTED_STRING_8

Reflected field of type STRING_8

EL_REFLECTED_SUBSTRING

EL_REFLECTED_REFERENCE for field conforming to EL_REFLECTED_REFERENCE

EL_REFLECTED_URI

Reflected uri

EL_REFLECTED_ZSTRING

Reflected field of type EL_ZSTRING

Further Information

Click on class link to see client examples.

helper

EL_ATTRIBUTE_BIT_RANGE_TABLE

Mask and bit-shift information used to compact the expanded fields of an object conforming to EL_COMPACTABLE_REFLECTIVE into a NATURAL_64 number. And also to set the fields from a supplied compact number.

Further Information

Click on class link to see notes and client examples.

EL_ATTRIBUTE_RANGE_TABLE

An EL_ATTRIBUTE_BIT_RANGE_TABLE object with the mask and bit-shift information calculated from range values supplied for each field using the field address operator '$'

Further Information

Click on class link to see notes, instructions and client examples.

EL_FIELD_INDICES_SET

Sorted set of field indices for reflected object

EL_FIELD_NAME_SET

Set of field names

EL_FIELD_TYPE_PROPERTIES

Properties of field type in a reference object

Further Information

Click on class link to see client examples.

EL_FIELD_TYPE_QUERY_ROUTINES

Field type query routines

EL_INTEGER_64_INTERVAL

INTEGER_64 interval conforming to INTEGER_INTERVAL for use by EL_ATTRIBUTE_RANGE_TABLE

EL_INTERNAL

Internal reflection routines accessible via EL_MODULE_EIFFEL

Further Information

Click on class link to see notes.

EL_OBJECT_MANGER

Object to "jail-break" inaccessible fields in an object.

Further Information

Click on class link to see notes.

EL_REFLECTED_REFERENCE_LIST

List of uninitialized EL_REFLECTED_REFERENCE fields for type query purposes

EL_REFLECTED_REFERENCE_OBJECT

Reflected reference object

EL_REFLECTION_HANDLER

Access control for features of class EL_REFLECTIVE

Further Information

Click on class link to see client examples.

EL_REFLECTIVE_DESCRIPTIONS

Object to map textual descriptions in description to attributes

Further Information

Click on class link to see notes.

EL_REFLECTIVE_STRING_TABLE

Map text fields conforming to EL_SUBSTRING [STRING_GENERAL] to a value in a single manifest string formatted as follows:

key_1:
   Value One Line 1
   Value One Line 2
   ..
key_2:
   Value Two
   etc

Further Information

Click on class link to see descendants and client examples.

EL_SHARED_CODE_REPRESENTATIONS

Shared instances of EL_CODE_16_REPRESENTATION, EL_CODE_32_REPRESENTATION and EL_CODE_64_REPRESENTATION

EL_STRING_REPRESENTABLE_FIELD

Reflected field can be associated with a string representation type G, for example an INTEGER_32 field can be associated with a DATE type.

representation

EL_BOOLEAN_REPRESENTATION

A reflected BOOLEAN field representing set of two strings conforming to READABLE_STRING_GENERAL

Further Information

Click on class link to see client examples.

EL_CODE_16_REPRESENTATION

2 byte implementation of EL_CODE_REPRESENTATION

EL_CODE_32_REPRESENTATION

4 byte implementation of EL_CODE_REPRESENTATION

EL_CODE_64_REPRESENTATION

8 byte implementation of EL_CODE_REPRESENTATION

EL_CODE_REPRESENTATION

Fixed length alpha-numeric 8-bit codes stored in one of:

1. NATURAL_16 (2 byte code string)
2. NATURAL_32 (4 byte code string)
3. NATURAL_64 (8 byte code string)

Further Information

Click on class link to see descendants.

EL_DATE_REPRESENTATION

A reflected INTEGER_32 representing a DATE

EL_DATE_TIME_REPRESENTATION

A reflected INTEGER_32 representing a EL_DATE_TIME

Further Information

Click on class link to see client examples.

EL_ENUMERATION_REPRESENTATION

A reflected type N conforming to NUMERIC representing a EL_ENUMERATION [N]]

Further Information

Click on class link to see client examples.

EL_FIELD_REPRESENTATION

A field value G that represents an item of type H

EL_HASH_SET_REPRESENTATION

Reflected field representation that links a field to a set of values

EL_STRING_FIELD_REPRESENTATION

A field value G that represents an item of type H capable of conversion to and from a string conforming to READABLE_STRING_GENERAL.

Further Information

Click on class link to see notes.

EL_TIME_REPRESENTATION

A reflected INTEGER_32 representing a TIME

EL_VERSION_REPRESENTATION

A reflected NATURAL_32 representing a EL_VERSION_ARRAY

routine

EL_FUNCTION_INFO

Function info

Further Information

Click on class link to see client examples.

EL_PROCEDURE_INFO

Procedure info

EL_ROUTINE_INFO

Routine info

settable

EL_SETTABLE_FROM_STRING

Used in conjunction with EL_REFLECTIVELY_SETTABLE to reflectively set fields from name-value pairs, where value conforms to READABLE_STRING_GENERAL.

Further Information

Click on class link to see descendants.

EL_SETTABLE_FROM_STRING_32

Used in conjunction with EL_REFLECTIVE to reflectively set fields from name-value pairs, where value conforms to STRING_32.

Further Information

Click on class link to see client examples.

EL_SETTABLE_FROM_STRING_8

Used in conjunction with EL_REFLECTIVE to reflectively set fields from name-value pairs, where value conforms to STRING_8.

EL_SETTABLE_FROM_ZSTRING

Used in conjunction with EL_REFLECTIVE to reflectively set fields from name-value pairs, where value conforms to EL_ZSTRING (aka ZSTRING)

Further Information

Click on class link to see tests and client examples.

shared

EL_MODULE_EIFFEL

Shared access to routines of class EL_INTERNAL and ISE base class INTERNAL

Further Information

Click on class link to see client examples.

EL_REFLECTION_CONSTANTS

Type constants for object reflection

Further Information

Click on class link to see client examples.

EL_SHARED_CLASS_ID

Shared instance of class EL_CLASS_TYPE_ID_ENUM

Further Information

Click on class link to see client examples.

EL_SHARED_NEW_INSTANCE_TABLE

Shared access to table of object creation functions to initialize reference attributes reflectively. See class EL_REFLECTED_REFERENCE.

You can indirectly add to this table by overriding new_instance_functions from class EL_REFLECTIVE.

EL_SHARED_OBJECT_POOL

Shared object pool

EL_SHARED_READER_WRITER_TABLE

Shared reader writer table

EL_TYPE_CATEGORY_CONSTANTS

Type category constants

EL_TYPE_FLAG

Flags corresponding to macros defined in rt_struct.h

IS_DEAD: NATURAL_16 =         0x4000
IS_FROZEN: NATURAL_16 =         0x2000
IS_DEFERRED: NATURAL_16 =         0x1000
IS_COMPOSITE: NATURAL_16 =         0x0800
HAS_DISPOSE: NATURAL_16 =         0x0400
IS_EXPANDED: NATURAL_16 =         0x0200
IS_DECLARED_EXPANDED: NATURAL_16 =   0x0100

Plus two extra: Is_special and Is_tuple.

table

EL_FIELD_TABLE

Reflected field table

Further Information

Click on class link to see client examples.

EL_FUNCTIONS_BY_RESULT_TYPE

Functions by result type

tuple

EL_TUPLE_TYPE_ARRAY

Array of TUPLE parameter types: ARRAY [TYPE [ANY]]

EL_TUPLE_TYPE_LIST

List of tuple element types conforming to generic type T

Further Information

Click on class link to see client examples.

EL_TYPE_ID_ARRAY

Array of dynamic type identifiers