From 195774c489a1a671aca514b0afa88332bf9c6ee3 Mon Sep 17 00:00:00 2001 From: lresende Date: Tue, 10 Nov 2009 19:20:12 +0000 Subject: Moving SDO tags git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@834617 13f79535-47bb-0310-9956-ffa450edef68 --- .../tuscany/samples/sdo/basic/CreateCompany.java | 151 +++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 sdo-java/tags/1.1.1/sample/src/main/java/org/apache/tuscany/samples/sdo/basic/CreateCompany.java (limited to 'sdo-java/tags/1.1.1/sample/src/main/java/org/apache/tuscany/samples/sdo/basic/CreateCompany.java') diff --git a/sdo-java/tags/1.1.1/sample/src/main/java/org/apache/tuscany/samples/sdo/basic/CreateCompany.java b/sdo-java/tags/1.1.1/sample/src/main/java/org/apache/tuscany/samples/sdo/basic/CreateCompany.java new file mode 100644 index 0000000000..38bafca539 --- /dev/null +++ b/sdo-java/tags/1.1.1/sample/src/main/java/org/apache/tuscany/samples/sdo/basic/CreateCompany.java @@ -0,0 +1,151 @@ +/** + * + * 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.basic; + +import java.io.FileOutputStream; + +import org.apache.tuscany.samples.sdo.SampleBase; +import org.apache.tuscany.samples.sdo.internal.SampleInfrastructure; + + +import commonj.sdo.DataObject; +import commonj.sdo.helper.HelperContext; + +/** + * This sample uses the scenario of building a description of a company to demonstrate + * primarily the setting of data using strings to name Properties. + *

+ *

Running this Sample

See the main overview for instructions on how to run this + * sample. + */ +public class CreateCompany extends SampleBase { + + public CreateCompany(Integer commentaryLevel) { + this(commentaryLevel, SAMPLE_LEVEL_BASIC); + } + + public CreateCompany(Integer commentaryLevel, Integer sampleLevel) { + super(commentaryLevel, sampleLevel); + } + + /* + * metadata for the sample documenting the areas of SDO that are explored + */ + public static int [] CORE_FUNCTION = { + SDOFacets.SET_PROPERTIES_OF_DATAOBJECT_BY_NAME + }; + + /** + * XML file generated for the company DataObject + */ + private static final String COMPANY_GENERATED_XML = "companyGenerated.xml"; + + /** + * Main method. Execute this method in order to run sample + * @param args + * @throws Exception + */ + public static void main(String[] args) { + /* + * this sample is suitable for a novice to SDO. + * Change the experience level constructor argument to one of + * COMMENTARY_FOR_NOVICE, COMMENTARY_FOR_INTERMEDIATE, COMMENTARY_FOR_ADVANCED, change + * the level of commentary output. + */ + CreateCompany sample = new CreateCompany(COMMENTARY_FOR_NOVICE); + + sample.run(); + + } + + public void runSample () throws Exception { + + banner('*', + "Demonstrates how to create a data graph using a model loaded\n"+ + "from an XML Schema contained in a file on the file system"); + + HelperContext scope = createScopeForTypes(); + loadTypesFromXMLSchemaFile(scope, SampleInfrastructure.COMPANY_XSD); + + commentary( + "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(SampleInfrastructure.COMPANY_NAMESPACE, \"CompanyType\");"); + + DataObject company = scope.getDataFactory().create(SampleInfrastructure.COMPANY_NAMESPACE, "CompanyType"); + + populateGraph(scope, company); + + FileOutputStream fos = new FileOutputStream(COMPANY_GENERATED_XML); + + commentary( + "The XMLHelper can be used to write an XML serialized version of the data graph\n\n"+ + "scope.getXMLHelper().save(company, SampleInfrastructure.COMPANY_NAMESPACE, \"company\", fos);"); + + scope.getXMLHelper().save(company, SampleInfrastructure.COMPANY_NAMESPACE, "company", fos); + + commentary( + "Similarly we can serialize the graph to an XML String using the XMLHelper\n\n"+ + "String xml = scope.getXMLHelper().save(company, SampleInfrastructure.COMPANY_NAMESPACE, \"company\");\n"); + + String xml = scope.getXMLHelper().save(company, SampleInfrastructure.COMPANY_NAMESPACE, "company"); + + System.out.println(xml); + + } + + 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(); + } + +} -- cgit v1.2.3