org.apache.tuscany.samples.sdo.specExampleSection
Class AccessingDataObjectsViaPropertyIndex

java.lang.Object
  extended by org.apache.tuscany.samples.sdo.specExampleSection.AccessingDataObjectsViaPropertyIndex

public class AccessingDataObjectsViaPropertyIndex
extends java.lang.Object

Demonstrates accessing the properties of a DataObject using property indices. The following sample is from the Apache Tuscany project. It was written to help users understand and experiment with SDO. It is based upon example code contained within, and is meant for use with, and reference to the SDO Specification. In general this sample attempts to use the code and comments contained within the specification, exceptions to this are noted in comments.

The following sample is based upon the 'Accessing DataObjects via Property Index' example from the Examples section of the SDO specification. It shows the use of DataObjects and the XMLHelper amd demonstrates accessing the properties of a DataObject using property indices.

The following example has the same effect as AccessDataObjectsUsingXPath. The indexes for the properties are defined as constants in this class.

This sample reads an xml file representing a DataObject of a company. In order to create a DataObject or DataGraph this sample relies upon XMLHelper class which is essentially example of a XML DAS implementation. The code shown here would work just as well against an equivalent DataObject that was provided by any DAS.

To define the correct Types for each DataObject ( CompanyType, DepartmentType etc ) this sample relies upon SdoSampleConstants.COMPANY_XSD which is provided in the resources directory of these samples
The xml file SdoSampleConstants.COMPANY_DATAOBJECT_XML used to load the DataObject is also located in this resources directory. To help ensure consistancy with the xsd the xml was generated by CreateCompany which is a good resource for populating DataObjects, or creating DataGraphs dynamically.

Usage:
This sample can easily be run from within Eclipse as a Java Application if tuscany or the sample-sdo project is imported into Eclipse as an existing project.

If executing as a standalone application please do the following:

Note: when reading this source code in conjunction with the specification there is scope for confusion over what the values of the numeric indices ought to be, depending on your understanding of the word "lexical" in the context of sequencing. So the SDO specification at the 2.0.1 level (and before) says The order of Properties in Type.getDeclaredProperties() is the lexical order of declarations in the XML Schema ComplexType.. So if your background is in computing and in particular in lexical parsing then you would understand this to mean "the sequence of tokens produced by the lexical analyis (first) phase of a compiler" and if you ran a lexical parser against the complex type then you would see the elements emerege in the order they were written down. If however you think more in terms of lexical in the context of lexicons or dictionaries, you may expect the indices to correspond to the lexically sorted (essentially alphabetically sorted) list of element names. After some investigation it is understood that the intention of the spec is to convey the first of these meanings. A clarification in the SDO 2.1 spec is being sought, but may not make it into that document in time.

Author:
Robbie Minshall

Constructor Summary
AccessingDataObjectsViaPropertyIndex()
           
 
Method Summary
static void main(java.lang.String[] args)
          Execute this method in order to run the sample.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AccessingDataObjectsViaPropertyIndex

public AccessingDataObjectsViaPropertyIndex()
Method Detail

main

public static void main(java.lang.String[] args)
Execute this method in order to run the sample.

Parameters:
args -


Copyright © 2007 Apache Software Foundation. All Rights Reserved.