summaryrefslogtreecommitdiffstats
path: root/tags/cpp-1.0-incubating-M2-RC3/sdo/samples/misc/ChangeSummarySave.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tags/cpp-1.0-incubating-M2-RC3/sdo/samples/misc/ChangeSummarySave.cpp')
-rw-r--r--tags/cpp-1.0-incubating-M2-RC3/sdo/samples/misc/ChangeSummarySave.cpp188
1 files changed, 0 insertions, 188 deletions
diff --git a/tags/cpp-1.0-incubating-M2-RC3/sdo/samples/misc/ChangeSummarySave.cpp b/tags/cpp-1.0-incubating-M2-RC3/sdo/samples/misc/ChangeSummarySave.cpp
deleted file mode 100644
index 5a27683807..0000000000
--- a/tags/cpp-1.0-incubating-M2-RC3/sdo/samples/misc/ChangeSummarySave.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * 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.
- */
-
-/* $Rev$ $Date$ */
-
-#include "samples.h"
-using namespace std;
-
-void ChangeSummarySave::sample()
-{
- cout << " ********** ChangeSummarySave sample********" << endl;
-
- try {
-
- DataFactoryPtr mdg = DataFactory::getDataFactory();
-
- XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg);
- xsh->defineFile("ChangeSummarySave.xsd");
-
- /**
- * Load the schema from ChangeSummarySave.xsd
- */
-
- const Type& tstring = mdg->getType("commonj.sdo","String");
- const Type& tbool = mdg->getType("commonj.sdo","Boolean");
- const Type& tcs = mdg->getType("commonj.sdo","ChangeSummary");
- const Type& tcomp = mdg->getType("companyNS","CompanyType");
- const Type& tdept = mdg->getType("companyNS","DepartmentType");
- const Type& temp = mdg->getType("companyNS","EmployeeType");
-
-
- /**
- * create a graph, set the change summary logging, modify the
- * data, then save it to a file
- */
-
- DataObjectPtr comp = mdg->create((Type&)tcomp);
- comp->setCString("name","ACME");
-
- DataObjectPtr dept = mdg->create((Type&)tdept);
- DataObjectList& dol = comp->getList("departments");
- dol.append(dept);
-
- dept->setCString("name","Advanced Technologies");
- dept->setCString("location","NY");
- dept->setCString("number","123");
-
- DataObjectPtr emp1 = mdg->create(temp);
- DataObjectPtr emp2 = mdg->create(temp);
- DataObjectPtr emp3 = mdg->create(temp);
-
- emp1->setCString("name","John Jones");
- emp1->setCString("SN","E0001");
-
- emp2->setCString("name","Mary Smith");
- emp2->setCString("SN","E0002");
- emp2->setBoolean("manager",true);
-
- emp3->setCString("name","Jane Doe");
- emp3->setCString("SN","E0003");
-
- DataObjectList& dol2 = dept->getList("employees");
- dol2.append(emp1);
- dol2.append(emp2);
- dol2.append(emp3);
-
-
- /**
- * Set the employee of the month - which is a reference, not
- * a containment value
- */
-
- comp->setDataObject("employeeOfTheMonth",emp2);
-
- /**
- * The XSD defined the company type as having a change summary,
- * so we can get it...
- */
-
- ChangeSummaryPtr cs = comp->getChangeSummary();
-
- /**
- * And ask it to start logging...
- */
-
- cs->beginLogging();
-
- /**
- * With logging on, create a new employee
- */
-
- DataObjectPtr emp4 = mdg->create(temp);
- emp4->setCString("name","Al Smith");
- emp4->setCString("SN","E0004");
- emp4->setBoolean("manager",true);
-
- /**
- * The first recorded change happens now, as the employee is
- * added into the data graph. Emp4 (Al Smith) will appear in the
- * change summary as a creation. There will also be a change
- * record for the list "employees" of this department, holding the
- * values before Al was added.
- */
- dol2.append(emp4);
-
- /**
- * The second change is to remove element 1 from the
- * same list - Thats Mary Smith.
- * Mary will appear as a deletion, but there will be no extra
- * change record for "employees", as its already been changed.
- * Mary was employee of the month, so that reference gets
- * emptied, and a change record is set up for it, recording
- * Mary as the old value.
- */
-
- dol2.remove(1); // element 1 is Mary
-
- DataObjectPtr emp5 = mdg->create(temp);
- emp5->setCString("name","Bill Withers");
- emp5->setCString("SN","E0005");
-
-
- /**
- * The third change is to append Bill to the same list.
- * Bill appears as a creation, but there is no change recorded to
- * the employees list.
- */
-
- dol2.append(emp5);
-
-
- /**
- * The company name is changed. A change record is set up for
- * the property "name" of this company. It stores the old value
- * "ACME"
- */
-
- comp->setCString("name","MegaCorp");
-
- /**
- * The company employee of the month is changed. The old
- * value has already been changed from Mary to NULL, so no change
- * record is created here at all
- */
-
- comp->setDataObject("employeeOfTheMonth",emp4);
-
-
- /**
- * Stop logging changes
- */
-
- cs->endLogging();
-
-
- XMLHelperPtr xmh = HelperProvider::getXMLHelper(mdg);
- XMLDocumentPtr doc = xmh->createDocument(comp,"companyNS","company");
- xmh->save(doc,"ChangeSummarySave-output.xml");
-
- /**
- * Have a look in the file and see if you can recognise the changes
- * above
- */
-
- }
- catch (SDORuntimeException e)
- {
- cout << "Exception in ChangeSummarySave" << endl;
- cout << e;
- }
- cout << " ********** Sample ends ********************" << endl;
-}