Package abel_extension
Extensions to the functionality of the ABEL library.
Purpose: To extend and enhance the facilities of the ABEL library, specifically adding general features found in most databases (e.g. min, max, count, etc).
How: By adding a series of extension, helper, and constants classes designed to meet the purpose statement above.
Prerequisites: The ABEL ("A Better Eiffelstore Library") library and its Tutorial documentation as well as the "back-end" documentation.
Basics: The ABEL extension library is mostly about two ideas: Making generic, easy, and reusable complex queries, hiding the complexity. Second, it is about making various helper classes such as AE_DATA_IDENTIFIED.
* AE_DATA_ACCESSOR and AE_OBJECT_DATA_ACCESSOR [G]. Both of these classes allow
for query access to a database, where AE_DATA_ACCESSOR is generic
to any object type stored in the database and AE_OBJECT_DATA_ACCESSOR [G]
is about a specific object type (e.g. the G generic parameter).
* AE_DATA_IDENTIFIED is the heart of adding facilities like "primary_key" to
objects being stored in the database. Currently, ABEL offers no
way to access the primary keys and other common database facilities.
I believe this is due to the cross-database nature of the library
where the target repositories may or may not have the same
features available in them. AE_DATA_IDENTIFIED attempts to bring
these common facilities like "primary_key" to every database.
* AE_OBJECT_STORE facilitates having `primary_key'-based references in objects
rather than direct references (e.g. my_feature_id: INTEGER_64 a
my_feature: detachable MY_FEATURE
do Result := (create AE_OBJECT_STORE [MY_FEATURE]).object_for_id (my_feature_id) end
This means that each object can be loaded very quickly without
having to load the entire object-graph. Facilitates loading the graph
only as deep as is needed. However, it does not bar one from loading
the deep object graph (e.g. all of it).
tags: ABEL Eiffelstore extension database
Thu, 01 Jan 1970 00:00:00 GMT