While Java SDO closely models the capabilities of the ABL ProDataSet, the ProDataGraph extensions provide additional support to address the following Java SDO limitations:

  • Java SDO provides a minimal meta data API that allows clients to introspect data in a DataGraph. However, to more easily define and access the meta data of a ProDataGraph, OpenEdge provides its own classes, ProDataGraphMetaData and ProDataObjectMetaData, to store the schema for a ProDataGraph.
  • Java SDO provides relationship support by allowing a DataObject (table row) to contain references to other DataObject instances (representing rows in another table). However, it provides no means to describe these relationships as provided for ProDataSets. There is no meta data that describes the field names in the parent and child tables that form the primary-foreign key relationships. OpenEdge provides its own ProDataRelationMetaData class to describe each entity relation (data-relation) in a ProDataGraph.
  • Java SDO does not support the java.util.GregorianCalendar class as a data type for DataObject column properties. This data type is essential to map ProDataSet fields that have the DATETIME or DATETIME-TZ data type. The OpenEdge ProDataObject class supports the java.util.GregorianCalendar class as a data type for ProDataObject column properties (fields).
    Note: Java SDO supports the java.util.Date class, but many of its methods are deprecated as of JDK 1.1 because they are not suitable for internationalization.
  • The Java SDO ChangeSummary object that tracks changes to any DataObject rows in a DataGraph returns these changes as a list of DataObject rows. However, to efficiently marshall these updates back to the application server, these changed rows must be returned to the application server as a changes-only ProDataGraph, which maps to a changes-only ProDataSet in the application service. The OpenEdge ProChangeSummary class tracks all ProDataObject changes and returns them in a changes-only ProDataGraph.

The following table summarizes all the OpenEdge classes that support the ProDataGraph extension to Java SDO. They all reside in the com.progress.open4gl package. For more information on how these objects work together, in a typical ProDataGraph, see ProDataGraph object model.

Table 1. OpenEdge classes that extend Java SDO
OpenEdge class Basis For more information, see . . .
ProDataGraph Extends DataGraph to map ProDataSets ProDataGraph class
ProDataObject Extends DataObject to support java.util.GregorianCalendar and provide relational navigation among tables ProDataObject class
ProChangeSummary Extends ChangeSummary to return all ProDataObject changes in a changes-only ProDataGraph ProChangeSummary class
ProDataGraphMetaData OpenEdge-based class to more easily manage ProDataGraph schema information ProDataGraphMetaData class
ProDataObjectMetaData OpenEdge-based class to more easily manage ProDataObject schema information ProDataObjectMetaData class
ProDataRelationMetaData OpenEdge-based class to describe ProDataGraph data-relations ProDataRelationMetaData class