Open Data Access

Identifier:
org.eclipse.datatools.connectivity.oda.dataSource

Since:
3.0

Description:
[API] This extension point is used to support the extension of design-time and run-time data source access by a data application. Each extension must implement the Open Data Access (ODA) Java runtime interfaces defined in the org.eclipse.datatools.connectivity.oda package.

Configuration Markup:

<!ELEMENT extension (dataSource , dataSet+)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED

>


<!ELEMENT dataSource (traceLogging? , properties? , relationship*)>

<!ATTLIST dataSource

id                          CDATA #REQUIRED

odaVersion                  CDATA "3.0"

defaultDisplayName          CDATA #IMPLIED

driverClass                 CDATA #REQUIRED

setThreadContextClassLoader (true | false) "false"

overrideExplorerFiltering   (true | false) "false"

>

The definition of a type of ODA data source extension for use at design-time and run-time.



<!ELEMENT dataSet (dataTypeMapping+ , properties? , relationship?)>

<!ATTLIST dataSet

id                 CDATA #REQUIRED

defaultDisplayName CDATA #IMPLIED

>

The definition of a type of data set supported by the dataSource extension.



<!ELEMENT dataTypeMapping (alternativeOdaDataType*)>

<!ATTLIST dataTypeMapping

nativeDataType     CDATA #IMPLIED

nativeDataTypeCode CDATA #REQUIRED

odaScalarDataType  (Date|Double|Integer|String|Time|Timestamp|Decimal|Blob|Clob|Boolean|JavaObject) "String"

>

A data types mapping from a data provider's native data type to one or more ODA data types. Each native data type must be mapped to a primary ODA scalar data type. The driver can optionally provide a list of alternate ODA data types to which it is capable of converting a native data type. This data type mapping facilitates all ODA consumers to map from the same set of ODA data types to its own application-specific data types.



<!ELEMENT alternativeOdaDataType EMPTY>

<!ATTLIST alternativeOdaDataType

odaScalarDataType (Date|Double|Integer|String|Time|Timestamp|Decimal|Blob|Clob|Boolean|JavaObject)

>

Provide an alternative mapping to an ODA scalar data type.



<!ELEMENT traceLogging EMPTY>

<!ATTLIST traceLogging

logLevel          CDATA "WARNING"

logFileNamePrefix CDATA #IMPLIED

logDirectory      CDATA #IMPLIED

logFormatterClass CDATA #IMPLIED

>

Configures the ODA run-time driver's trace logging settings for the data source extension. The configured values are passed through to the driver's implementation of the IDriver.setLogConfiguration method.
It is up to individual ODA driver on how to honor any of these trace logging attributes as appropriate.

Note: The trace logging configuration specified in the plug-in PDE .options file would take precedence over those configured in this element, if the debug tracing flag is set to "true".
The ODA plug-in's PDE tracing options, listed below for cross reference, match the attributes of this element.
    <plug-in Id>/debug = true/false
    <plug-in Id>/traceLogging/logLevel
    <plug-in Id>/traceLogging/logFileNamePrefix
    <plug-in Id>/traceLogging/logDirectory
    <plug-in Id>/traceLogging/logFormatterClass



<!ELEMENT property (choice*)>

<!ATTLIST property

name                   CDATA #REQUIRED

defaultDisplayName     CDATA #IMPLIED

type                   (string|choice) "string"

canInherit             (true | false) "true"

defaultValue           CDATA #IMPLIED

isEncryptable          (true | false) "false"

allowsEmptyValueAsNull (true | false) "true"

>

A property whose value can be edited at design-time using an ODA consumer application's designer tool. Its value is then passed to the ODA runtime driver during run-time.



<!ELEMENT propertyGroup (property+)>

<!ATTLIST propertyGroup

name               CDATA #REQUIRED

defaultDisplayName CDATA #IMPLIED

>

A grouping of one or more properties in an ODA consumer application's designer tool. The group attributes are for display only. All properties listed under a propertyGroup are handled as scalar properties at run-time.



<!ELEMENT propertyVisibility EMPTY>

<!ATTLIST propertyVisibility

name       CDATA #REQUIRED

visibility (change|lock|hide)

>

Used to set the visibility level of the named property when it is shown in the property sheet of an ODA consumer application's designer tool.



<!ELEMENT choice EMPTY>

<!ATTLIST choice

name               CDATA #REQUIRED

value              CDATA #IMPLIED

defaultDisplayName CDATA #IMPLIED

>

Choice of property values.



<!ELEMENT properties (property* , propertyGroup* , propertyVisibility*)>

A collection of property definitions in a data source extension or its supported data set definitions.



<!ELEMENT relationship EMPTY>

<!ATTLIST relationship

type      (replacedBy|wrapperOf)

relatedId CDATA #REQUIRED

>

An optional element to specify the relationship(s) of this element.



Examples:


   <extension
         point="org.eclipse.datatools.connectivity.oda.dataSource">
      <dataSource
            odaVersion="3.1"
            driverClass="org.eclipse.datatools.connectivity.oda.flatfile.FlatFileDriver"
            defaultDisplayName="Flat File Data Source"
            id="org.eclipse.datatools.connectivity.oda.flatfile"
            setThreadContextClassLoader="false">
         <properties>
         <propertyGroup
               defaultDisplayName="Connection Properties"
               name="connectionProperties">
            <property
                  type="string"
                  defaultDisplayName="Home Folder"
                  canInherit="true"
                  name="HOME"/>
            <property
                  type="string"
                  defaultDisplayName="Character Set"
                  canInherit="true"
                  name="CHARSET"/>
            <property
                  type="string"
                  canInherit="true"
                  defaultDisplayName="Includes Data Type (Yes/No)"
                  name="INCLTYPELINE"/>                 
         </propertyGroup>
         </properties>
      </dataSource>
      <dataSet
            defaultDisplayName="Flat File Data Set"
            id="org.eclipse.datatools.connectivity.oda.flatfile.dataSet">
            <dataTypeMapping
                  nativeDataType="BIT"
                  nativeDataTypeCode="-7"
                  odaScalarDataType="Integer"/>
            <dataTypeMapping
                  nativeDataType="TINYINT"
                  nativeDataTypeCode="-6"
                  odaScalarDataType="Integer"/>
            <dataTypeMapping
                  nativeDataType="SMALLINT"
                  nativeDataTypeCode="5"
                  odaScalarDataType="Integer"/>
            <dataTypeMapping
                  nativeDataType="INTEGER"
                  nativeDataTypeCode="4"
                  odaScalarDataType="Integer"/>
            <dataTypeMapping
                  nativeDataType="BIGINT"
                  nativeDataTypeCode="-5"
                  odaScalarDataType="Decimal"/>
            <dataTypeMapping
                  nativeDataType="FLOAT"
                  nativeDataTypeCode="6"
                  odaScalarDataType="Double"/>
            <dataTypeMapping
                  nativeDataType="REAL"
                  nativeDataTypeCode="7"
                  odaScalarDataType="Double"/>
            <dataTypeMapping
                  nativeDataType="DOUBLE"
                  nativeDataTypeCode="8"
                  odaScalarDataType="Double"/>
            <dataTypeMapping
                  nativeDataType="NUMERIC"
                  nativeDataTypeCode="2"
                  odaScalarDataType="Decimal"/>
            <dataTypeMapping
                  nativeDataType="DECIMAL"
                  nativeDataTypeCode="3"
                  odaScalarDataType="Decimal"/>
            <dataTypeMapping
                  nativeDataType="CHAR"
                  nativeDataTypeCode="1"
                  odaScalarDataType="String"/>
            <dataTypeMapping
                  nativeDataType="VARCHAR"
                  nativeDataTypeCode="12"
                  odaScalarDataType="String"/>
            <dataTypeMapping
                  nativeDataType="LONGVARCHAR"
                  nativeDataTypeCode="-1"
                  odaScalarDataType="String"/>
            <dataTypeMapping
                  nativeDataType="DATE"
                  nativeDataTypeCode="91"
                  odaScalarDataType="Date"/>
            <dataTypeMapping
                  nativeDataType="TIME"
                  nativeDataTypeCode="92"
                  odaScalarDataType="Time"/>
            <dataTypeMapping
                  nativeDataType="TIMESTAMP"
                  nativeDataTypeCode="93"
                  odaScalarDataType="Timestamp"/>
            <dataTypeMapping
                  nativeDataType="BINARY"
                  nativeDataTypeCode="-2"
                  odaScalarDataType="String"/>
            <dataTypeMapping
                  nativeDataType="VARBINARY"
                  nativeDataTypeCode="-3"
                  odaScalarDataType="String"/>
            <dataTypeMapping
                  nativeDataType="LONGVARBINARY"
                  nativeDataTypeCode="-4"
                  odaScalarDataType="String"/>
            <dataTypeMapping
                  nativeDataType="BOOLEAN"
                  nativeDataTypeCode="16"
                  odaScalarDataType="Boolean"/>
            <dataTypeMapping
                  nativeDataType="BLOB"
                  nativeDataTypeCode="2004"
                  odaScalarDataType="String"/>
            <dataTypeMapping
                  nativeDataType="CLOB"
                  nativeDataTypeCode="2005"
                  odaScalarDataType="String"/>
      </dataSet>
   </extension> 
   

API Information:
The data source extension's driver must implement the interfaces defined in the org.eclipse.datatools.connectivity.oda package. See the package's JavaDoc documentation and API interfaces for more information.

Supplied Implementation:
The ODA framework provides an ODA Plug-in Project Template Wizard to automatically generate a custom ODA plug-in project with a set of default implementation of the main ODA interfaces. The wizard is available in the New->Project... dialog; one for ODA Runtime Driver, another for ODA Designer.
Their generated implementation classes assume the behavior of a simple ODA driver and designer UI. They contain TODO task tags for an ODA driver developer to implement data source specific behavior. These concrete classes are provided to aid in the development of a custom ODA data source. Their use is purely optional.


Copyright (c) 2004-2009 Actuate Corporation. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/