The GNUstep Database Library 2 (GDL2) is a set of libraries to map Objective-C objects to rows of relational database management systems (RDBMS). It aims to be compatible with Enterprise Objects Framework (EOF) as released with WebObjects 4.5 from Apple Inc.
Find a file
Matt Rice e205cd1324 2005-05-12 Matt Rice <ratmice@yahoo.com>
* ChangeLog: Fix previous ChangeLog entry.
        * EOInterface/EOActionAssociation.m: Implemented aspects enabled and
        action.
        (-establishConnection): Implement
        (-breakConnection, -subjectChanged, -action): Ditto.
        * EOInterface/EOAssociation.m (-associationClassesForObject:): Fixed
        argument passed to -isUsableWithObject:. Assign count
        (-init): Assign self.
        (-establishConnection:): Add unused local variable to pass to
        NSNextMapEnumeratorPair instead of 0.
        (-breakConnection:): Ditto.
        (-initWithCoder:, -encodeWithCoder:): Initial implementation of
        methods.
        (-valueForAspect:,-setValue:forAspect:,-valueForAspect:atIndex:): Ditto.
        (-setValueForAspect:atIndex:): Ditto.
        * EOInterface/SubclassFlags.h: New file.
        * EOInterface/EOAspectConnector.h/m: New file and implementation.
        * EOInterface/EOColumnAssociation.m: Implemented aspects value and
        enabled
        (-objectKeysTaken): Take identifier key.
        (-establishConnection, -breakConnection, -endEditing): Implement
        methods.
        (-tableView:setObjectValueForTableColumn:row:): Ditto.
        (-tableView:objectValueForTableColumn:row:): Ditto.
        (-tableView:willDisplayCell:forTableColumn:row:): Ditto.
        (-control:didFailToFormatString:errorDescription:): Ditto.
        (-control:textShouldBeginEditing:): Ditto.
        * EOInterface/EOControlAssociation.m: (-control): Ditto
        (-editingAssociation, -establishConnection, -breakConnection): Ditto.
        * EOInterface/EOGenericControlAssociation.m: Implemented aspects value
        and enabled.
        (+objectKeysTaken): add target key.
        (-establishConnection: -breakConnection:, -subjectChanged:): Ditto.
        (-_action:, -endEditing, -control:textShouldBeginEditing:): Ditto.
        * EOInterface/EOMatrixAssociation.m: Implemented aspects image, title,
        and enabled.
        (-establishConnection, -breakConnection, -subjectChanged): Ditto.
        * EOInterface/EOPopUpAssociation.m: Implemented aspects titles,
        selectedTitle, selectedTag, selectedObject, enabled.
        (-initWithObject:, -_action:): Implemented method.
        (-establishConnection:, -breakConnection, -subjectChanged): Ditto.
        * EOInterface/EORadioMatrixAssociation.m: Implemented aspects
        selectedTag, selectedTitle, enabled.
        (NSCell -_selectCellWithTitle:): Private category.
        (-initWithObject:, -_action:): Implemented method.
        (-establishConnection:, -breakConnection, -subjectChanged): Ditto.
        * EOInterface/EOTableViewAssociation.m: Implemented aspects
	enabled, tableView.
        (-establishConnection, -breakConnection, subjectChanged): Implement
        method.
        (-bindToTableView:displayGroup:, -editingAssociation): Ditto.
        (-numberOfRowsInTableView:):
        (-tableView:setObjectValue:forTableColumn:row:): Ditto.
        (-tableView:objectValueForTableColumn:row:): Ditto.
        (-tableView:shouldEditTableColumn:row:): Ditto.
        (-tableView:willDisplayCell:forTableColumn:row:): Ditto.
        (-tableView:selectionDidChange:): Ditto.
        (-control:didFailToFormatString:errorDescription:): Ditto.
        (-control:isValidObject:, -control:textShouldBeginEditing:):
	Ditto.
        (-dealloc): Ditto.
        * EOInterface/EOTextAssociation.m: Implemented aspect value,
enabled.
        (-establishConnection): Implemented method.
        (-breakConnection, -subjectChanged, -endEditing): Ditto.
        (-control:isValidObject:,textShouldBeginEditing:): Ditto.
        (-textShouldEndEditing:): Ditto.
        * EOInterface/GNUmakefile: Make EOInterface a native-library, whitespace
        changes.
        * EOInterface/Makefile.preamble: Change linker flag to use FND_LIBS
        and GUI_LIBS variables.
        * EOInterface/EODisplayGroup.h: Comment on whether ivars are retained.
        * EOInterface/EODisplayGroup.m:
        (DG_SHOULD_CHANGE_SELECTION_TO_IDX): New macros.
        (DG_DISPLAY_ARRAY_FOR_OBJECTS, DG_SHOULD_DISPLAY_ALERT): Ditto.
        (DG_DID_FETCH_OBJECTS, DG_CREATE_OBJECT_FAILED): Ditto.
        (DG_SHOULD_INSERT_OBJECT, DG_DID_INSERT_OBJECT): Ditto.
        (DG_DID_CHANGE_SELECTION): Ditto.
        (NSArray -indexesForObjectsIdenticalTo:): Implement category method.
        (_presentAlertWithTitle:message:): New private methods.
        (-_endObserverNotification:): Implement notification observer methods.
        (-_beginObserverNotification:): Ditto.
        (-objectsInvalidatedInEditingContext:): Ditto.
        (-objectsChangedInEditingContext:): Ditto.
        (+initialize, -init, -initWithCoder:,): Implement methods.
        (-encodeWithCoder:, -setDataSource:, -fetch, -allObjects): Ditto.
        (-setObjectArray:, -redisplay, -updateDisplayedObjects): Ditto.
        (-selectionIndexes, -setSelectionIndexes, -selectObject): Ditto.
        (-selectObjectsIdenticalTo:, -clearSelection, -selectedObjects): Ditto.
        (-selectObjectsIdenticalTo:selectFirstOnNoMatch:): Ditto.
        (-setSelectedObjects, -selectedObject, -setSelectedObject:): Ditto.
        (-insertObjectAtIndex:, -insertObject:atIndex:): Ditto.
        (-setInsertedObjectDefaultValues:, -deleteSelection): Ditto.
        (-observingAssociations, -endEditing, -fetch:, -insert:): Ditto.
        (-selectionChanged, -contentsChanged, -valueForObject🔑): Ditto.
        (-selectedObjectValueForKey:, -valueForObjectAtIndex:): Ditto.
        (-setValue:forObject:key:, -setSelectedObjectValue:forKey:): Ditto.
        (-setValue:forObjectAtIndex:key:, -associationDidBeginEditing:):
	Ditto.
        (-associationDidEndEditing:): Ditto.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21222 72102866-910b-0410-8b05-ffd578937521
2005-05-12 19:55:41 +00:00
config * config.h.in (HAVE_DECL_PQFREEMEM, HAVE_DECL_PQUNESCAPEBYTEA): 2004-09-09 10:40:50 +00:00
EOAccess * EOAccess/Makefile.preamble: Change link flag to use FND_LIBS 2005-05-12 19:13:34 +00:00
EOAdaptors * EOAccess/Makefile.preamble: Change link flag to use FND_LIBS 2005-05-12 19:13:34 +00:00
EOControl * EOAccess/Makefile.preamble: Change link flag to use FND_LIBS 2005-05-12 19:13:34 +00:00
EOInterface 2005-05-12 Matt Rice <ratmice@yahoo.com> 2005-05-12 19:55:41 +00:00
EOModeler * */*.h: Format declarations consistently. Add -*-objc-* 2004-04-17 11:30:47 +00:00
Tools * EOAccess/Makefile.preamble: Change link flag to use FND_LIBS 2005-05-12 19:13:34 +00:00
AUTHORS changed email 2004-04-18 20:17:41 +00:00
ChangeLog 2005-05-12 Matt Rice <ratmice@yahoo.com> 2005-05-12 19:55:41 +00:00
config.h.in * config.h.in (HAVE_DECL_PQFREEMEM, HAVE_DECL_PQUNESCAPEBYTEA): 2004-09-09 10:40:50 +00:00
configure * config.h.in (HAVE_DECL_PQFREEMEM, HAVE_DECL_PQUNESCAPEBYTEA): 2004-09-09 10:40:50 +00:00
configure.ac * configure.ac: Replace generation of 2004-03-06 12:18:08 +00:00
COPYING.LIB *** empty log message *** 2002-11-15 22:57:05 +00:00
GDL2.gsdoc * GDL2.gsdoc: New file for documentation project. 2004-11-02 16:17:32 +00:00
gdl2.make.in Corrected define. 2003-06-01 17:41:07 +00:00
GNUmakefile * GDL2.gsdoc: New file for documentation project. 2004-11-02 16:17:32 +00:00
INSTALL * README: New file. 2004-04-21 16:52:01 +00:00
Makefile.postamble * EOAdaptors/Postgres95/Makefile.preamble: Add link flags 2004-04-15 14:18:50 +00:00
NEWS * README: New file. 2004-04-21 16:52:01 +00:00
README * GDL2.gsdoc: New file for documentation project. 2004-11-02 16:17:32 +00:00
TODO * EOAccess/EOAccessFault.m: Include privat headers locally. 2004-07-23 18:33:29 +00:00
Version * README: New file. 2004-04-21 16:52:01 +00:00

Readme
******

The GNUstep Database Library 2 (GDL2) is a set of libraries to map
Objective-C objects to rows of relational database management systems
(RDBMS).  It aims to be compatible with Enterprise Objects Framework
(EOF) as released with WebObjects 4.5 from Apple Inc.  It requires the
GNUstep Make Package 1.9.1 and the Base Library 1.9.1.  Alternatively
it is meant to work with other OpenStep-like implementations like
Cocoa together with the GNUstep BaseAdditions Library 1.9.1.  For UI
applications which may want to use adaptor specific login panels, you
should also install the GNUstep GUI Library 0.9.2 and the GNUstep
Backend Library 0.9.2.  These should also work with AppKit.

GDL2 consists of the following components:

- EOControl (gnustep-db2control)

The fundamental abstraction library which includes many non RDBMS
related extensions such as KeyValueCoding extensions and other
categories.  Most importantly it contains the classes which handle the
coordination of object graphs namely EOEditingContext.

- EOAccess (gnustep-db2)

This library implements the underlying mechanism to retrieve and store
data in RDBMS.  It defines the abstract classes like EOAdaptor which
are subclassed to interface with concrete RDBMS implementations.

- EOInterface

This library implements classes used to synchronize UI components such
as NSTextFields, NSButtons and NSTableViews with the state of objects
which an EOEditingContext contains.
*Note this library is still missing in GDL2.  Some people have tried
to use http://www.mulle-kybernetik.com/software/MulleEOInterface/ with
some success.

- EOAdaptors

This is a collection of concrete EOAdaptor projects needed to connect
to specific databases.  GDL2 currently only supplies an Adaptor for
the PostgreSQL database.  Even though the Adaptor is still called
Postgres95 we aim to support PostgreSQL 7.2 and higher API.  In fact
the Adaptor may very soon be renamed to PostgreSQL.

- EOModeler (???)

GDL2 will offer a UI application to create and maintain .eomodel(d)
files.  Currently it is not defined if this will be a EOModeler clone
or different style of application.  Some people have started some
preliminary work so ask on <discuss-gnustep@gnu.org> before starting
on this.

======================
*** Important Note ***
======================

This release is meant for developers who can help test and contribute
the current code or are willing to test the interface.  It is not
ready for general purpose production code.  Having said that, it
should be mentioned that GDL2 is being used in production environments
and has been much tested in those contexts.

Expect the current interface to change especially with respect to
functions and methods not documented in EOF 4.5.  Even the library
names themselves may change.

With respect to EOF, GDL2 is currently missing EOSharedEditingContext,
EOMultiReaderLocks and the EOEvent classes.  Also we currently do not
support the EOSchemaSynchronization methods yet.  But you are likely
to find many more missing implementations within the source.  If you
identify something that you need, please let us know at
<discuss-gnustep@gnu.org> or even better get copyright assignment for
the FSF and post a patch.

Initial reading
===============

   The file `NEWS' has the library's feature history.

   The files `INSTALL' gives instructions for installing the library.

License
=======

   The GNUstep libraries are covered under the GNU Lesser Public
License.  This means you can use these libraries in any program (even
non-free programs).  If you distribute the libraries along with your
program, you must make the improvements you have made to the libraries
available to those you distribute to.  You should read the COPYING.LIB
file for more information.

   GNUstep tools, test programs, and other files are covered under the
GNU General Public License.  This means if you distribute derivative works
of these programs you must distribute them in compliance with the
GPL.  You should read the COPYING file for more information.

How can you help?
=================

   * Give us feedback!  Tell us what you like; tell us what you think
     could be better.

     Please log bug reports on the GNUstep project page
     <http://savannah.gnu.org/support/?group=gnustep> or send bug
     reports to <bug-gnustep@gnu.org>.


     Happy hacking!