| 120 | |
| 121 | = Структура иерархии пакетов = |
| 122 | |
| 123 | == Пакеты интерфейса библиотек == |
| 124 | |
| 125 | Корневым пакетом для всех пакетов является пакет AMF. Пакет AMF содержит объявления основных типов данных и типов их опциональных значений. |
| 126 | |
| 127 | Каждая метамодель имеет свой пакет вида AMF.<metamodel> (например, AMF.CMOF или AMF.UML). Этот пакет содержит объявления базовых типов данных специфичных для метамодели. |
| 128 | |
| 129 | Интерфейс каждого класса метамодели объявляется в пакете вида AMF.<metamodel>.<class>s (например, AMF.CMOF.Classes). |
| 130 | |
| 131 | == Пакеты внутренней реализации == |
| 132 | |
| 133 | Реализация каждого класса метамодели помещается в пакеты виды AMF.Internals.<metamodel>_<class>s (например, AMF.Internals.CMOF_Classes). ''Такое именование позволяет минимизировать конфликты имён.'' |
| 134 | |
| 135 | Таблицы данных каждой метамодели помещаются в пакет вида AMF.Internals.Tables.<metamodel>_Tables (например, AMF.Internals.Tables.CMOF_Tables). |
| 136 | |
| 137 | = Замечания разновсяческие = |
| 138 | |
| 139 | Идентификатор объекта является целым 32-битным числом, старшие 8 бит которого являются кодом метамодели. Таким образом, для индексации таблиц возможно использовать поддиапазоны идентификатора элемента. |