You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ke...@apache.org on 2007/06/19 21:44:13 UTC

svn commit: r548833 - in /incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo: ./ otherSources/ specCodeSnippets/ specExampleSection/ tuscanyapi/

Author: kelvingoodson
Date: Tue Jun 19 12:44:11 2007
New Revision: 548833

URL: http://svn.apache.org/viewvc?view=rev&rev=548833
Log:
More sample improvement.  Most samples still require a fair bit of work.  Key changes here are to CreateCompany (now in two separate files for two variants)

Added:
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/tuscanyapi/
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/tuscanyapi/CreateCompany.java   (with props)
Modified:
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/SampleBase.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/SampleInfrastructure.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/CreateCompany.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/CreatePurchaseOrder.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/PurchaseOrderControl.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/ReadPurchaseOrder.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/AccessDataObjectPropertiesByName.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/AccessDataObjectUsingValidXPath.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/CreateDataObjectFromXmlString.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/CreateDataObjectFromXsdAndXmlFiles.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/DynamicCustomerTypeSample.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/ObtainingDataGraphFromXml.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/PrintPropertiesOfDataObject.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/UsingXPath.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessDataObjectsUsingXPath.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessingDataObjectsViaPropertyIndex.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessingTheContentsOfASequence.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/CreatingDataObjectTreesFromXMLDocuments.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/CreatingXmlFromDataObjects.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/SerializingDesearializingADataObject.java
    incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/UsingTypeAndPropertyWithDataObjects.java

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/SampleBase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/SampleBase.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/SampleBase.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/SampleBase.java Tue Jun 19 12:44:11 2007
@@ -32,7 +32,6 @@
 
 public class SampleBase extends SampleInfrastructure {
 
-  protected HelperContext scope;
 
   public SampleBase()
   {
@@ -56,7 +55,7 @@
         "So we use a Tuscany specific API to do this ...\n\n" +
         "HelperContext scope = SDOUtil.createHelperContext();",
         
-        "Setting a new HelperContext scope for types for the next sample run"
+        "Creating a new HelperContext scope for types for the next sample run"
     );
         
     HelperContext scope = SDOUtil.createHelperContext();
@@ -84,7 +83,7 @@
   }
   
   
-  protected void loadXMLSchemaFromFile(String fileName) {
+  protected void loadXMLSchemaFromFile(HelperContext scope, String fileName) {
     commentary(NOVICE,
         "If you want to create types dynamically by loading an XML schema you\n" +
         "use an instance of XSDHelper. You get that helper from a HelperContext.\n" +
@@ -113,7 +112,7 @@
    }
   }
   
-  public DataObject loadXMLFromFile(String filename)
+  public DataObject loadXMLFromFile(HelperContext scope, String filename)
       throws Exception {
 
     DataObject result = null;

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/SampleInfrastructure.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/SampleInfrastructure.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/SampleInfrastructure.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/SampleInfrastructure.java Tue Jun 19 12:44:11 2007
@@ -20,6 +20,8 @@
 
 package org.apache.tuscany.samples.sdo;
 
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -118,7 +120,31 @@
   }
   
 
-  
+  /**
+   * Utility method to obtain information from the user about whether or not they would like to use a DataGraph or simply use a DataObject
+   * 
+   * @return whether or not a DataGraph should be used
+   * @throws Exception
+   */
+  protected boolean yesOrNoFromUser(String question) throws Exception {
+
+      System.out.print(question + " {y,n} :");
+      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
+      String answer = in.readLine();
+      while ((! answer.equalsIgnoreCase("n")) && (! answer.equalsIgnoreCase("y"))) {
+          
+          System.out.println();
+          System.out.print("Sorry, please enter 'y' or 'n':");
+          answer = in.readLine();
+      }
+      System.out.println();
+
+      if (answer.equalsIgnoreCase("y")) {
+          return true;
+      } else {
+          return false;
+      }
+  }
   
   
 }

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/CreateCompany.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/CreateCompany.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/CreateCompany.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/CreateCompany.java Tue Jun 19 12:44:11 2007
@@ -20,30 +20,15 @@
 
 package org.apache.tuscany.samples.sdo.otherSources;
 
-import java.io.BufferedReader;
 import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-import java.util.List;
-
-import commonj.sdo.DataObject;
-import commonj.sdo.Type;
-import commonj.sdo.DataGraph;
-import commonj.sdo.helper.TypeHelper;
-import commonj.sdo.helper.DataFactory;
-import commonj.sdo.helper.XMLHelper;
-import commonj.sdo.helper.XSDHelper;
 
 import org.apache.tuscany.samples.sdo.SampleBase;
 import org.apache.tuscany.samples.sdo.SdoSampleConstants;
-import org.apache.tuscany.sdo.util.SDOUtil;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.HelperContext;
 
 /**
- * Demonstrates creating a DataObject using the Types defined in a previously generated XML Schema ({@link SdoSampleConstants#COMPANY_XSD}) then persisting to an XML file
- * This example is useful as a reference for creating valid xml documents that conform to an existing XSD and has been used to create valid XML files for use 
- * with specification code samples.
- * <p>
  * <b>Usage:</b> <br>
  * 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.
@@ -84,13 +69,7 @@
     /**
      * XML file generated for the company DataObject
      */    
-    public static final String COMPANY_GENERATED_XML = "companyGenerated.xml";
-
-    /**
-     * XML file generated for the company DataGraph
-     */  
-    public static final String COMPANY_DATAGRAPH_GENERATED_XML = "companyDataGraphGenerated.xml";
-
+    private static final String COMPANY_GENERATED_XML = "companyGenerated.xml";
     
     /**
      * Main method.  Execute this method in order to run sample
@@ -98,9 +77,12 @@
      * @throws Exception
      */
     public static void main(String[] args) {
-      // TODO make the default level NOVICE, once the rest of the sample has been
-      // converted to using commentary()
-      CreateCompany sample = new CreateCompany(INTERMEDIATE);
+      /*
+       * this sample is suitable for a novice to SDO.
+       * Change the experience level argument to change
+       * the level of commentary output.
+       */
+      CreateCompany sample = new CreateCompany(NOVICE);
 
       try {
         sample.run();
@@ -112,153 +94,74 @@
 
     public void run () throws Exception {
       
-        
-        System.out.println("***************************************");
-        System.out.println("SDO Sample CreateCompany");
-        System.out.println("***************************************");
-        System.out.println("Demonstrates creating a DataObject using the Types defined in a previously generated xsd {@link SdoSampleConstants#COMPANY_XSD} then persisting to a XML file");
-        System.out.println("***************************************");
-        /**
-         * Use xsd to define model
-         */
-        scope = useDefaultScopeForTypes();
-        defineCompanyTypes();
-
-        /**
-         * DataObjects can exist on there own or can be associated with a DataGraph. This sample allows you to create and then generate xml for a
-         * company DataObject That is either associated with a DataGraph or independent
-         */
-        boolean useDataGraph = shouldUseDataGraph();
-
-        // define these so that they will be scoped appropriately.
-        DataGraph dataGraph = null;
-        DataObject company = null;
-
-        if (useDataGraph) {
-
-            /**
-             * The SDO specification says the following about creating a DataGraph. A DataGraph is created by a DAS, which returns either an empty
-             * DataGraph, or a DataGraph filled with DataObjects. An empty DataGraph can have a root assigned by the createRootObject() methods.
-             * However, if a previous root DataObject exists then an IllegalStateException is thrown.
-             * 
-             * In order to create a simple sample which creates a DataGraph without the use of a DAS this sample will use the
-             * {@link org.apache.tuscany.sdo.util.SDOUtil} class to create a DataObject
-             */
-
-            dataGraph = SDOUtil.createDataGraph();
-            company = dataGraph.createRootObject(SdoSampleConstants.COMPANY_NAMESPACE, "CompanyType");                                         
-            
-        } else {
-
-            /*
-             * The following creates a DataObject without a DataGraph
-             */
-            Type companyType = scope.getTypeHelper().getType(SdoSampleConstants.COMPANY_NAMESPACE, "CompanyType");
-            // this is equivilent to
-            // DataObject company = DataFactory.INSTANCE.create(SdoSampleConstants.COMPANY_NAMESPACE, "CompanyType");            
-            company = scope.getDataFactory().create(companyType);
-        }
-
-        System.out.println("Populating company DataObject");
-        company.setString("name", "ACME");
-        company.setString("employeeOfTheMonth", "E0001");
-
-        System.out.println("Creating Deptartment");
-        DataObject depts = company.createDataObject("departments",SdoSampleConstants.COMPANY_NAMESPACE,"DepartmentType");
-
-        depts.setString("name", "Advanced Technologies");
-        depts.setString("location", "NY");
-        depts.setString("number", "123");
-
-        System.out.println("Creating employee John Jones");
-        DataObject johnJones = depts.createDataObject("employees",SdoSampleConstants.COMPANY_NAMESPACE, "EmployeeType");
-        johnJones.setString("name", "John Jones");
-
-        johnJones.setString("SN", "E0001");
-
-        System.out.println("Creating employee Jane Doe");
-        DataObject janeDoe = depts.createDataObject("employees",SdoSampleConstants.COMPANY_NAMESPACE, "EmployeeType");
-        janeDoe.setString("name", "Jane Doe");
-        janeDoe.setString("SN", "E0003");
-
-        System.out.println("Creating manager A Varone");
-        DataObject fVarone = depts.createDataObject("employees",SdoSampleConstants.COMPANY_NAMESPACE, "EmployeeType");
-        fVarone.setString("name", "A Varone");
-        fVarone.setString("SN", "E0004");
-        fVarone.setString("manager", "true");
-        System.out.println("DataObject creation completed");
-        System.out.println();
+        banner('*',
+               "               SDO Sample Create Company                 \n\n"+
+               "Demonstrates how to create a data graph using a model loaded\n"+
+               "from an XML Schema contained in a file on the file system");
                 
-        // print out the generated company DataObject or DataGraph according to user preferences
-        if (useDataGraph) {
-            //write the DataGraph to generated xml file
-            FileOutputStream fos = new FileOutputStream(COMPANY_DATAGRAPH_GENERATED_XML);
-            System.out.println("Writing company DataGraph to " + COMPANY_DATAGRAPH_GENERATED_XML);
-            // print the Company DataObject
-            SDOUtil.saveDataGraph(dataGraph, fos, null);
-                        
-            // print the company DataGraph to System.out
-            System.out.println("The xml for the created DataGraph would like : ");
-            SDOUtil.saveDataGraph(dataGraph, System.out, null);
-
-        } else {
-            
-            //write out to a generated xml file      
-            FileOutputStream fos = new FileOutputStream(COMPANY_GENERATED_XML);
-            System.out.println("Writing company DataObject to " + COMPANY_GENERATED_XML);
-            // print the Company DataObject
-            scope.getXMLHelper().save(company, SdoSampleConstants.COMPANY_NAMESPACE, "company", fos);
+        HelperContext scope = createScopeForTypes();       
+        loadXMLSchemaFromFile(scope, SdoSampleConstants.COMPANY_XSD);
+        
+        commentary(NOVICE,
+            "Now that our type system has been loaded and made available through the scope\n"+
+            "DataObjects can be created by a DataFactory that has access to the required types.\n\n"+
+            "DataObject company = scope.getDataFactory().create(SdoSampleConstants.COMPANY_NAMESPACE, \"CompanyType\");");
+        
+        DataObject company = scope.getDataFactory().create(SdoSampleConstants.COMPANY_NAMESPACE, "CompanyType");
+        
+        populateGraph(scope, company);
             
-            // print the company DataObject to System.out
-            String generatedXml = scope.getXMLHelper().save(company, SdoSampleConstants.COMPANY_NAMESPACE, "company");
-            System.out.println("The generated xml for the DataObject would look like : " );
-                    System.out.println(generatedXml);
-        }
+        FileOutputStream fos = new FileOutputStream(COMPANY_GENERATED_XML);
+        
+        commentary(NOVICE,
+            "The XMLHelper can be used to write an XML serialized version of the data graph\n\n"+
+            "scope.getXMLHelper().save(company, SdoSampleConstants.COMPANY_NAMESPACE, \"company\", fos);");
+        
+        scope.getXMLHelper().save(company, SdoSampleConstants.COMPANY_NAMESPACE, "company", fos);
+        
+        commentary(NOVICE,
+            "Similarly we can serialize the graph to an XML String using the XMLHelper\n\n"+
+            "String xml = scope.getXMLHelper().save(company, SdoSampleConstants.COMPANY_NAMESPACE, \"company\");\n");
+        
+        String xml = scope.getXMLHelper().save(company, SdoSampleConstants.COMPANY_NAMESPACE, "company");
+        
+        System.out.println(xml);
 
     }
     
-    /**
-     * Defines company types using XSD.
-     * @throws Exception
-     */
-    private void defineCompanyTypes() throws Exception {
-
-        System.out.println("Defining Types using XSD");
-        InputStream is = null;
-
-        System.out.println("Opening input stream to  " + SdoSampleConstants.COMPANY_XSD);
-        is = ClassLoader.getSystemResourceAsStream(SdoSampleConstants.COMPANY_XSD);
-        List types = scope.getXSDHelper().define(is, null);      
-        is.close();
-        System.out.println("Type definition completed");
+    public void populateGraph(HelperContext scope, DataObject company)
+    {
 
+      System.out.println("Populating the company DataObject");
+      company.setString("name", "ACME");
+      company.setString("employeeOfTheMonth", "E0001");
+    
+      System.out.println("Creating a Department");
+    
+      DataObject depts = company.createDataObject("departments");
+    
+      depts.setString("name", "Advanced Technologies");
+      depts.setString("location", "NY");
+      depts.setString("number", "123");
+    
+      System.out.println("Creating an employee: John Jones");
+      DataObject johnJones = depts.createDataObject("employees");
+      johnJones.setString("name", "John Jones");
+    
+      johnJones.setString("SN", "E0001");
+    
+      System.out.println("Creating an employee: Jane Doe");
+      DataObject janeDoe = depts.createDataObject("employees");
+      janeDoe.setString("name", "Jane Doe");
+      janeDoe.setString("SN", "E0003");
+    
+      System.out.println("Creating a manager: Fred Bloggs");
+      DataObject fVarone = depts.createDataObject("employees");
+      fVarone.setString("name", "Fred Bloggs");
+      fVarone.setString("SN", "E0004");
+      fVarone.setString("manager", "true");
+      System.out.println("DataObject creation completed");
+      System.out.println();
     }
-
-    /**
-     * Utility method to obtain information from the user about whether or not they would like to use a DataGraph or simply use a DataObject
-     * 
-     * @return whether or not a DataGraph should be used
-     * @throws Exception
-     */
-    private static boolean shouldUseDataGraph() throws Exception {
-
-        System.out.print("Create company DataObject associated with a DataGraph {y,n} :");
-        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
-        String answer = in.readLine();
-        while ((! answer.equalsIgnoreCase("n")) && (! answer.equalsIgnoreCase("y"))) {
-            
-            System.out.println();
-            System.out.print("Sorry, please enter 'y' or 'n':");
-            answer = in.readLine();
-        }
-        System.out.println();
-
-        if (answer.equalsIgnoreCase("y")) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
 
 }

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/CreatePurchaseOrder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/CreatePurchaseOrder.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/CreatePurchaseOrder.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/CreatePurchaseOrder.java Tue Jun 19 12:44:11 2007
@@ -27,6 +27,7 @@
 
 import commonj.sdo.DataObject;
 import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
 
@@ -90,7 +91,7 @@
      * 
      * @throws Exception
      */
-    private void definePOTypes() throws Exception {
+    private void definePOTypes(HelperContext scope) throws Exception {
 
         InputStream is = ClassLoader.getSystemResourceAsStream(SdoSampleConstants.PO_XSD_RESOURCE);
         if (is == null) {
@@ -134,9 +135,9 @@
 
             System.out.println("***************************************");
 
-            scope = createScopeForTypes();
+            HelperContext scope = createScopeForTypes();
             
-            definePOTypes();
+            definePOTypes(scope);
             System.out.println("Defined Types using xsd");
             DataObject purchaseOrder = scope.getDataFactory().create(SdoSampleConstants.PO_NAMESPACE, "PurchaseOrderType");
             System.out.println("Created DataObject using DataFactory");

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/PurchaseOrderControl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/PurchaseOrderControl.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/PurchaseOrderControl.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/PurchaseOrderControl.java Tue Jun 19 12:44:11 2007
@@ -27,6 +27,7 @@
 
 import commonj.sdo.DataObject;
 import commonj.sdo.ChangeSummary;
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLDocument;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
@@ -67,6 +68,8 @@
 
     // root DataObject
     private DataObject purchaseOrder;
+    
+    HelperContext scope;
 
     /**
      * Uses resources files included in jar file to define types (using xsd), and
@@ -111,7 +114,7 @@
         if ((xsdFileName == null) || (xsdFileName.equals("")) || (xsdFileName.equalsIgnoreCase("null"))) {
 
             // use simple example to define type from resource
-            loadXMLSchemaFromFile(SdoSampleConstants.PO_XSD_RESOURCE);
+            loadXMLSchemaFromFile(scope, SdoSampleConstants.PO_XSD_RESOURCE);
 
         } else {
             System.out.println("Using file to access xsd in order to define types");
@@ -140,7 +143,7 @@
 
         if ((xmlFileName == null) || (xmlFileName.equals("")) || (xmlFileName.equalsIgnoreCase("null"))) {
 
-            purchaseOrder = loadXMLFromFile(SdoSampleConstants.PO_XML_RESOURCE);
+            purchaseOrder = loadXMLFromFile(scope, SdoSampleConstants.PO_XML_RESOURCE);
         } else {
             try {
 

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/ReadPurchaseOrder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/ReadPurchaseOrder.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/ReadPurchaseOrder.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/otherSources/ReadPurchaseOrder.java Tue Jun 19 12:44:11 2007
@@ -25,6 +25,7 @@
 import java.util.List;
 
 import commonj.sdo.DataObject;
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLDocument;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
@@ -74,13 +75,15 @@
  * 
  */
 public class ReadPurchaseOrder extends SampleBase {
+  
+
 
   
     public ReadPurchaseOrder(int userLevel) {
       super(userLevel);
     }
 
-    private void definePOTypes() throws Exception {
+    private void definePOTypes(HelperContext scope) throws Exception {
         InputStream is = ClassLoader.getSystemResourceAsStream(SdoSampleConstants.PO_XSD_RESOURCE);
         if (is == null) {
             System.out.println("InputStream is null");
@@ -115,9 +118,9 @@
 
         try {
           
-            scope = createScopeForTypes();
+            HelperContext scope = createScopeForTypes();
             
-            definePOTypes();
+            definePOTypes(scope);
 
             FileInputStream fis = null;
             try {

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/AccessDataObjectPropertiesByName.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/AccessDataObjectPropertiesByName.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/AccessDataObjectPropertiesByName.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/AccessDataObjectPropertiesByName.java Tue Jun 19 12:44:11 2007
@@ -26,6 +26,7 @@
 import org.apache.tuscany.samples.sdo.SdoSampleConstants;
 
 import commonj.sdo.DataObject;
+import commonj.sdo.helper.HelperContext;
 
 /**
  * Demonstrates accessing a created DataObject's properties by name.
@@ -71,6 +72,8 @@
  * </UL>
  */
 public class AccessDataObjectPropertiesByName extends SampleBase {
+
+    HelperContext scope;
 
     public AccessDataObjectPropertiesByName(int userLevel) {
       super(userLevel);

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/AccessDataObjectUsingValidXPath.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/AccessDataObjectUsingValidXPath.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/AccessDataObjectUsingValidXPath.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/AccessDataObjectUsingValidXPath.java Tue Jun 19 12:44:11 2007
@@ -24,6 +24,7 @@
 import org.apache.tuscany.samples.sdo.SdoSampleConstants;
 
 import commonj.sdo.DataObject;
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
 
@@ -68,6 +69,7 @@
  * org.apache.tuscany.samples.sdo.specCodeSnippets.AccessDataObjectUsingValidXPath</LI>
  */
 public class AccessDataObjectUsingValidXPath extends SampleBase {
+    HelperContext scope;
   
     public AccessDataObjectUsingValidXPath(int userLevel) {
       super(userLevel);

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/CreateDataObjectFromXmlString.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/CreateDataObjectFromXmlString.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/CreateDataObjectFromXmlString.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/CreateDataObjectFromXmlString.java Tue Jun 19 12:44:11 2007
@@ -25,6 +25,7 @@
 
 import commonj.sdo.DataObject;
 import commonj.sdo.Sequence;
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 
 /**
@@ -69,7 +70,9 @@
  * </UL>
  */
 public class CreateDataObjectFromXmlString extends SampleBase {
-  
+    HelperContext scope;
+
+
     public CreateDataObjectFromXmlString(int userLevel) {
       super(userLevel);
     }

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/CreateDataObjectFromXsdAndXmlFiles.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/CreateDataObjectFromXsdAndXmlFiles.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/CreateDataObjectFromXsdAndXmlFiles.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/CreateDataObjectFromXsdAndXmlFiles.java Tue Jun 19 12:44:11 2007
@@ -25,6 +25,7 @@
 import org.apache.tuscany.samples.sdo.SampleBase;
 import org.apache.tuscany.samples.sdo.SdoSampleConstants;
 import commonj.sdo.DataObject;
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLDocument;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
@@ -74,6 +75,8 @@
  * </UL>
  */
 public class CreateDataObjectFromXsdAndXmlFiles extends SampleBase  {
+    HelperContext scope;
+
   
     public CreateDataObjectFromXsdAndXmlFiles(int userLevel) {
       super(userLevel);

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/DynamicCustomerTypeSample.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/DynamicCustomerTypeSample.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/DynamicCustomerTypeSample.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/DynamicCustomerTypeSample.java Tue Jun 19 12:44:11 2007
@@ -23,6 +23,7 @@
 import commonj.sdo.DataObject;
 import commonj.sdo.Type;
 import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.TypeHelper;
 import java.util.List;
@@ -70,6 +71,7 @@
  * </UL>
  */
 public class DynamicCustomerTypeSample extends SampleBase {
+    HelperContext scope;
 
     public DynamicCustomerTypeSample(int userLevel) {
       super(userLevel);

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/ObtainingDataGraphFromXml.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/ObtainingDataGraphFromXml.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/ObtainingDataGraphFromXml.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/ObtainingDataGraphFromXml.java Tue Jun 19 12:44:11 2007
@@ -96,7 +96,9 @@
 
 public class ObtainingDataGraphFromXml extends SampleBase {
   
-  
+    HelperContext scope;
+
+
    
     public ObtainingDataGraphFromXml(int userLevel) {
       super(userLevel);
@@ -135,7 +137,7 @@
         );
         
         scope = useDefaultScopeForTypes();
-        loadXMLSchemaFromFile(SdoSampleConstants.COMPANY_XSD);
+        loadXMLSchemaFromFile(scope, SdoSampleConstants.COMPANY_XSD);
         
 
 

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/PrintPropertiesOfDataObject.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/PrintPropertiesOfDataObject.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/PrintPropertiesOfDataObject.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/PrintPropertiesOfDataObject.java Tue Jun 19 12:44:11 2007
@@ -28,6 +28,7 @@
 import commonj.sdo.DataObject;
 import commonj.sdo.Property;
 import commonj.sdo.Type;
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
 
@@ -76,6 +77,8 @@
  */
 
 public class PrintPropertiesOfDataObject extends SampleBase  {
+
+    HelperContext scope;
 
     public PrintPropertiesOfDataObject(int userLevel) {
       super(userLevel);

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/UsingXPath.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/UsingXPath.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/UsingXPath.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specCodeSnippets/UsingXPath.java Tue Jun 19 12:44:11 2007
@@ -24,6 +24,7 @@
 import org.apache.tuscany.samples.sdo.SdoSampleConstants;
 
 import commonj.sdo.DataObject;
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
 
@@ -65,6 +66,10 @@
  * </UL>
  */
 public class UsingXPath extends SampleBase  {
+  
+      HelperContext scope;
+
+
       public UsingXPath(int userLevel) {
         super(userLevel);
       }

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessDataObjectsUsingXPath.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessDataObjectsUsingXPath.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessDataObjectsUsingXPath.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessDataObjectsUsingXPath.java Tue Jun 19 12:44:11 2007
@@ -26,6 +26,7 @@
 import org.apache.tuscany.samples.sdo.SdoSampleConstants;
 import org.apache.tuscany.samples.sdo.specCodeSnippets.AccessDataObjectPropertiesByName;
 
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
 import commonj.sdo.DataObject;
@@ -105,6 +106,8 @@
  */
 
 public class AccessDataObjectsUsingXPath  extends SampleBase {
+
+    HelperContext scope;
 
     public AccessDataObjectsUsingXPath(int userLevel) {
       super(userLevel);

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessingDataObjectsViaPropertyIndex.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessingDataObjectsViaPropertyIndex.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessingDataObjectsViaPropertyIndex.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessingDataObjectsViaPropertyIndex.java Tue Jun 19 12:44:11 2007
@@ -27,6 +27,7 @@
 import org.apache.tuscany.samples.sdo.SdoSampleConstants;
 import org.apache.tuscany.samples.sdo.specCodeSnippets.AccessDataObjectPropertiesByName;
 
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
 import commonj.sdo.DataObject;
@@ -115,6 +116,8 @@
  */
 
 public class AccessingDataObjectsViaPropertyIndex  extends SampleBase {
+
+    HelperContext scope;
 
     public AccessingDataObjectsViaPropertyIndex(int userLevel) {
       super(userLevel);

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessingTheContentsOfASequence.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessingTheContentsOfASequence.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessingTheContentsOfASequence.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/AccessingTheContentsOfASequence.java Tue Jun 19 12:44:11 2007
@@ -24,6 +24,7 @@
 import org.apache.tuscany.samples.sdo.SampleBase;
 import org.apache.tuscany.samples.sdo.specCodeSnippets.AccessDataObjectPropertiesByName;
 
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
 import commonj.sdo.DataObject;
@@ -89,6 +90,9 @@
  */
 
 public class AccessingTheContentsOfASequence  extends SampleBase {
+
+
+    HelperContext scope;
 
     public AccessingTheContentsOfASequence(int userLevel) {
       super(userLevel);

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/CreatingDataObjectTreesFromXMLDocuments.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/CreatingDataObjectTreesFromXMLDocuments.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/CreatingDataObjectTreesFromXMLDocuments.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/CreatingDataObjectTreesFromXMLDocuments.java Tue Jun 19 12:44:11 2007
@@ -21,6 +21,7 @@
 package org.apache.tuscany.samples.sdo.specExampleSection;
 
 import commonj.sdo.DataObject;
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
 
@@ -87,6 +88,8 @@
  */
 
 public class CreatingDataObjectTreesFromXMLDocuments  extends SampleBase {
+
+    HelperContext scope;
 
     public CreatingDataObjectTreesFromXMLDocuments(int userLevel) {
       super(userLevel);

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/CreatingXmlFromDataObjects.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/CreatingXmlFromDataObjects.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/CreatingXmlFromDataObjects.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/CreatingXmlFromDataObjects.java Tue Jun 19 12:44:11 2007
@@ -25,6 +25,7 @@
 
 import commonj.sdo.DataObject;
 import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
 
@@ -89,17 +90,13 @@
 
 public class CreatingXmlFromDataObjects  extends SampleBase {
 
+    HelperContext scope;
+
     public CreatingXmlFromDataObjects(int userLevel) {
       super(userLevel);
     }
 
 
-    /**
-     * Drives sample
-     * 
-     * @param args.
-     *            none required.
-     */
   public static void main(String[] args) {
     // TODO make the default level NOVICE, once the rest of the sample has been
     // converted to using commentary()

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/SerializingDesearializingADataObject.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/SerializingDesearializingADataObject.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/SerializingDesearializingADataObject.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/SerializingDesearializingADataObject.java Tue Jun 19 12:44:11 2007
@@ -20,6 +20,7 @@
 
 package org.apache.tuscany.samples.sdo.specExampleSection;
 
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
 import commonj.sdo.helper.EqualityHelper;
@@ -92,6 +93,9 @@
  */
 
 public class SerializingDesearializingADataObject  extends SampleBase {
+
+
+    HelperContext scope;
 
     public SerializingDesearializingADataObject(int userLevel) {
       super(userLevel);

Modified: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/UsingTypeAndPropertyWithDataObjects.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/UsingTypeAndPropertyWithDataObjects.java?view=diff&rev=548833&r1=548832&r2=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/UsingTypeAndPropertyWithDataObjects.java (original)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/specExampleSection/UsingTypeAndPropertyWithDataObjects.java Tue Jun 19 12:44:11 2007
@@ -20,6 +20,7 @@
 
 package org.apache.tuscany.samples.sdo.specExampleSection;
 
+import commonj.sdo.helper.HelperContext;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
 import commonj.sdo.DataObject;
@@ -86,6 +87,10 @@
  */
 
 public class UsingTypeAndPropertyWithDataObjects  extends SampleBase {
+  
+
+    HelperContext scope;
+
 
     public UsingTypeAndPropertyWithDataObjects(int userLevel) {
       super(userLevel);

Added: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/tuscanyapi/CreateCompany.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/tuscanyapi/CreateCompany.java?view=auto&rev=548833
==============================================================================
--- incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/tuscanyapi/CreateCompany.java (added)
+++ incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/tuscanyapi/CreateCompany.java Tue Jun 19 12:44:11 2007
@@ -0,0 +1,144 @@
+/**
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.tuscany.samples.sdo.tuscanyapi;
+
+import java.io.FileOutputStream;
+
+import org.apache.tuscany.samples.sdo.SdoSampleConstants;
+import org.apache.tuscany.sdo.api.SDOUtil;
+
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.HelperContext;
+
+/**
+ * <p>
+ * <b>Usage:</b> <br>
+ * 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.
+ * <br><br>
+ * If executing as a standalone application please do the following: 
+ * <br>
+ * <UL>
+ * <LI>Include the following jar files on your classpath :
+ * <UL>
+ * <LI>SDO API and Tuscany Implementation
+ * <UL>
+ * <LI>sdo-api-{version}.jar - SDO API
+ * <LI>tuscany-sdo-impl-{version}.jar - Tuscany SDO implementation
+ * </UL>
+ * </LI>
+ * <LI>EMF dependencies. 
+ * <UL>
+ * <LI>emf-common-{version}.jar - some common framework utility and base classes
+ * <LI>emf-ecore-{version}.jar - the EMF core runtime implementation classes (the Ecore metamodel)
+ * <LI>emf-ecore-change-{version}.jar - the EMF change recorder and framework
+ * <LI>emf-ecore-xmi-{version}.jar - EMF's default XML (and XMI) serializer and loader
+ * <LI>xsd-{version}.jar - the XML Schema model
+ * </UL>
+ * </LI>
+ * </UL>
+ * 
+ * These jar files can be obtained by downloading a binary distribution of Tuscany SDO Java</LI>
+ * <LI>Execute: <br>
+ * java org.apache.tuscany.samples.sdo.tuscanyApi.CreateCompany</LI>
+ * </UL>
+ */
+public class CreateCompany extends org.apache.tuscany.samples.sdo.otherSources.CreateCompany {
+
+    public CreateCompany(int userLevel) {
+      super(userLevel);
+    }
+
+    /**
+     * XML file generated for the company DataGraph
+     */  
+    private String COMPANY_DATAGRAPH_GENERATED_XML = "companyDataGraphGenerated.xml";
+
+    
+    /**
+     * Main method.  Execute this method in order to run sample
+     * @param args
+     * @throws Exception
+     */
+    public static void main(String[] args) {
+      /*
+       * this sample is best suited so someone with an intermediate level
+       * of understanding of SDO.  Change the experience level argument to get more
+       * or less commentary.
+       */
+      CreateCompany sample = new CreateCompany(INTERMEDIATE);
+
+      try {
+        sample.run();
+      }
+      catch (Exception e) {
+        sample.somethingUnexpectedHasHappened(e);
+      }
+    }
+
+    public void run () throws Exception {
+      
+        banner('*',
+               "              SDO Sample Create Company in a DataGraph              \n\n"+
+               "This is a variant of the simple CreateCompany sample, but\n"+
+               "demonstrates how to create a DataGraph in the absence of a Data Access Service (DAS)\n"+
+               "This is not typical of how an SDO user would code, because a DAS is usually\n"+
+               "responsible for creating a DataGraph instance. This is why we must use a Tuscany API\n"+
+               "to create the dataGraph in the first place\n"+
+               "If you don't have a need to use a DataGraph instance then you may want to skip this\n"+
+               "sample,  or leave it until you have explored the DataObject interface fully\n");
+        
+        commentary(INTERMEDIATE,
+            "As we are dealing with a DataGraph,  the SDO API has some gray areas at the moment\n"+
+            "in that the DataGraph API hasn't yet been developed to deal with scopes\n"+
+            "other than the default scope. So here is an occasion where we must use"+
+            "the default singleton scope");
+        HelperContext scope = useDefaultScopeForTypes();
+        loadXMLSchemaFromFile(scope, SdoSampleConstants.COMPANY_XSD);
+       
+        commentary (INTERMEDIATE,
+            "Here is the use of the Tuscany API for creating a DataGraph instance\n\n"+
+            "DataGraph dataGraph = SDOUtil.createDataGraph();");
+
+        DataGraph dataGraph = SDOUtil.createDataGraph();
+        
+        commentary(INTERMEDIATE,
+            "Now we create a root object of a selected type for the DataGraph wrapper to contain.\n"+
+            "This is an example of a DataGraph interface that currently forces us to use the default scope.\n\n"+
+            "company = dataGraph.createRootObject(SdoSampleConstants.COMPANY_NAMESPACE, \"CompanyType\");");
+        
+        DataObject company = dataGraph.createRootObject(SdoSampleConstants.COMPANY_NAMESPACE, "CompanyType");
+        
+        populateGraph(scope, company);
+        
+        commentary(INTERMEDIATE,
+            "Since the SDO API doesn't currently have a method for serializing the DataGraph instance\n"+
+            "we again use a Tuscany specific API\n\n"+
+            "SDOUtil.saveDataGraph(dataGraph, fos, null);");
+        
+        FileOutputStream fos = new FileOutputStream(COMPANY_DATAGRAPH_GENERATED_XML);
+        SDOUtil.saveDataGraph(dataGraph, fos, null);
+                    
+        SDOUtil.saveDataGraph(dataGraph, System.out, null);
+    }
+
+}

Propchange: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/tuscanyapi/CreateCompany.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sdo/sample/src/main/java/org/apache/tuscany/samples/sdo/tuscanyapi/CreateCompany.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org