Georg Heeg eK

Eurydike

Package NameEurydike
Package text (de)

Eurydike ist ein schemaloser, objektrelationaler Mapper, der für eine einfache Anwendung konzipiert wurde. Sie brauchen keine Tabellen-Deskriptoren oder irgendetwas anderes zu schreiben, um ein Mapping zwischen Objekten und Tabellen zu beschreiben. Mit Eurydike ist es möglich, jedes beliebige Objekt in einer SQL-Datenbank zu speichern und über ein Wurzelobjekt namens ObjectSpace darauf zuzugreifen. Aus Leistungsgründen können primitive Objekte wie Zeichenketten, Symbole, Zahlen und byteencodierte Objekte wie ByteArray oder UninterpretedBytes nicht direkt als eigenständiges Objekt gespeichert werden, sondern nur als Variablen eines anderen komplexen Objekts.

Ein ObjectSpace definiert die Wurzel der Objekte, die in Ihrer Datenbank verbleiben sollen. Sie müssen ObjectSpace unterklassifizieren und die Klassenmethode #connectionProfile implementieren. Diese Methode muss eine Instanz von Eurydike.ConnectionProfile zurückgeben und enthält die Datenbankverbindungsinformationen wie Umgebung, Benutzer und Kennwort. Sie können dann die benötigten Instanzvariablen oder Zugriffsmethoden zu Ihrem ObjectSpace hinzufügen. Normalerweise werden Sie nur mit der Standardinstanz Ihres ObjectSpace sprechen. Diese kann abgerufen werden, indem Sie die Nachricht #default an Ihre ObjectSpace-Klasse senden. Ihre Änderungen am ObjectSpace oder an allen referenzierten Objekten werden in der Datenbank gespeichert, indem Sie #commit an Ihre ObjectSpace-Instanz senden.

Angenommen, wir haben eine PersonObjectSpace-Klasse mit der Instanz-Zugriffsmethode #person, dann könnte ein Beispielcode wie folgt aussehen:

      | space |
      space := PersonObjectSpace default.
      space person
            name: 'Winnie';
            lastName: 'Puuh';
            yourself.
      space commit

Weitere Beispiele finden Sie unter den Klassen AddressManagementSpace und AddressManagementTestCase.

Package text (en)

Eurydike is a schema-less object-relational mapper designed for easy-to-use. You do not need to write table-descriptors or anything else to describe a mapping between objects and tables. With Eurydike it is possible to store any object on an SQL database and access it through a root object called ObjectSpace. Because of performance reasons primitive objects like strings, symbols, numbers and byteencoded objects like ByteArray or UninterpretedBytes cannot be stored directly as stand-alone object, they can be only stored as variables of another complex object.

An ObjectSpace defines the root of the objects you want to persist in your database. You need to subclass ObjectSpace and implement the class-method #connectionProfile. This method must return an instance of Eurydike.ConnectionProfile and contains the database connection information like environment, user and password. You can then add your needed instance variables or accessor methods to your ObjectSpace. Normally you will speak only with the default instance of your ObjectSpace. This can be retrieved be sending the message #default to your ObjectSpace class. Your changes on the ObjectSpace or any referenced objects will be stored in the database by sending #commit to your ObjectSpace instance.

Assume we have an PersonObjectSpace class with instance accessor method #person, an example code could look like this:

| space |
space := PersonObjectSpace default.
space person
name: 'Winnie';
lastName: 'Puuh';
yourself.
space commit

Please have a look at class AddressManagementSpace and AddressManagementTestCase for more examples.

Package image
Package tag
Package prerequisiteVisualWorks 9.0, ISAM Toolbox
Package video
Package PDF
Package responsibleJörg Belger
Contact
Imprint
Press