summaryrefslogtreecommitdiffstats
path: root/tags/cpp-stable-20060304/sdo/runtime/core/samples/Query.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tags/cpp-stable-20060304/sdo/runtime/core/samples/Query.cpp')
-rw-r--r--tags/cpp-stable-20060304/sdo/runtime/core/samples/Query.cpp176
1 files changed, 0 insertions, 176 deletions
diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/samples/Query.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/samples/Query.cpp
deleted file mode 100644
index e9ea89dab5..0000000000
--- a/tags/cpp-stable-20060304/sdo/runtime/core/samples/Query.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.
- */
-
-/* $Rev$ $Date: 2005/12/22 16:54:14 $ */
-
-#include "samples.h"
-
-
-void Query::sample()
-{
- cout << " ********** Query sample *******************" << endl;
-
- DataFactoryPtr mdg = DataFactory::getDataFactory();
-
- /**
- * Create some types
- */
-
- mdg->addType("myspace","Company");
- mdg->addType("myspace","Department");
- mdg->addType("myspace","Employee");
-
-
- /* Now add the properties to the types...*/
-
-
- const Type& tstring = mdg->getType("commonj.sdo","String");
- const Type& tbool= mdg->getType("commonj.sdo","Boolean");
- const Type& tint= mdg->getType("commonj.sdo","Integer");
-
- const Type& tc = mdg->getType("myspace","Company");
- const Type& td = mdg->getType("myspace","Department");
- const Type& te = mdg->getType("myspace","Employee");
-
- /**
- * The company
- */
-
- mdg->addPropertyToType(tc,"name",tstring); // single string name
- mdg->addPropertyToType(tc,"departments",
- td,true); // many departments
- mdg->addPropertyToType(tc,"employee of the month"
- , te, false, false, false); // reference to employee
-
- /**
- * The department
- */
-
- mdg->addPropertyToType(td,"name", tstring); // single string name
- mdg->addPropertyToType(td,"employees",te,
- true,false,true); // many employees
-
-
- /**
- * The employee
- */
-
- mdg->addPropertyToType(te,"isFullTime",tbool);
- mdg->addPropertyToType(te,"employeeNumber",tint);
- mdg->addPropertyToType(te,"name",tstring);
-
-
- const Type& tcc = mdg->getType("myspace","Company");
-
- DataObjectPtr dor = mdg->create((Type&)tcc);
-
- // The departments
-
- DataObjectPtr dept = dor->createDataObject("departments");
- dept->setCString("name","Shipping");
-
- DataObjectPtr dept2 = dor->createDataObject("departments");
- dept2->setCString("name","Buying");
-
- // The employees
-
- DataObjectPtr emp1 = dept->createDataObject("employees");
- DataObjectPtr emp2 = dept->createDataObject("employees");
- DataObjectPtr emp3 = dept->createDataObject("employees");
- DataObjectPtr emp4 = dept2->createDataObject("employees");
-
-
- emp1->setBoolean("isFullTime",true);
- emp1->setInteger("employeeNumber",65443);
- emp1->setCString("name","Norman");
-
-
- emp2->setBoolean("isFullTime",false);
- emp2->setInteger("employeeNumber",64778);
- emp2->setCString("name","Carl");
-
- emp3->setBoolean("isFullTime",true);
- emp3->setInteger("employeeNumber",61990);
- emp3->setCString("name","Amanda");
-
- emp4->setBoolean("isFullTime",true);
- emp4->setInteger("employeeNumber",56789);
- emp4->setCString("name","Donna");
-
- dor->setDataObject("employee of the month",emp4); // Donna is referenced.
-
-
- try {
-
- // access the first employee of the first department who is not full time
-
- DataObjectPtr dob1 = dor->getDataObject("departments[1]/employees[isFullTime=false]");
- cout << "Carl should be the first part timer: " << dob1->getCString("name") << " is." <<endl;
-
- // get the same employee by index
-
- DataObjectPtr dob2 = dor->getDataObject("departments[1]/employees[2]");
- cout << "Carl should be employees[2]:" << dob2->getCString("name") << " is." << endl;
-
- // use the dot notation to get the same employee
-
- DataObjectPtr dob3 = dor->getDataObject("departments.0/employees.1");
- cout << "Carl should be employees.1:" << dob3->getCString("name") << " is." << endl;
-
- // get the reference...
-
- DataObjectPtr dob4 = dor->getDataObject("employee of the month");
- cout << "Donna should be employee of the month:" << dob4->getCString("name") << " is." << endl;
-
- // And by employee number...
-
- DataObjectPtr dob5 = dor->getDataObject("departments[2]/employees[employeeNumber=56789]");
- cout << "Donna should be employee 56789:" << dob5->getCString("name") << " is." << endl;
-
- // If the query yields no value because the element doesnt exist...
-
- try
- {
- DataObjectPtr dob6 = dor->getDataObject("departments[1]/employees[employeeNumber=56789]");
- cout << "Did not get the expected exception" << endl;
- }
- catch (SDORuntimeException e)
- {
- cout << "Expected an IndexOutOfRangeException and got " << e.getEClassName() << endl;
- }
-
- // If the query yields no value because the path is invalid...
-
-
- try
- {
- DataObjectPtr dob7 = dor->getDataObject("departments[fish]/employees[0]");
- cout << "Did not get the expected exception" << endl;
- }
- catch (SDORuntimeException e)
- {
- cout << "Expected an PathNotFoundException and got " << e.getEClassName() << endl;
- }
- }
- catch (SDORuntimeException e)
- {
- cout << "Unexpected error in Query " << e << endl;
- }
-
-
- cout << " ********** End Query Sample **************" << endl;
-}