From ce91da1216fa068890a556305d8651092fb6c2a7 Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Mon, 16 Nov 2009 06:42:50 +0000 Subject: Cleaning up SVN structure, moving tag under sca-cpp/tags. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@880622 13f79535-47bb-0310-9956-ffa450edef68 --- sca-cpp/tags/cpp-stable-20060304/build.sh | 47 + sca-cpp/tags/cpp-stable-20060304/build.txt | 83 + sca-cpp/tags/cpp-stable-20060304/sca/AUTHORS | 0 sca-cpp/tags/cpp-stable-20060304/sca/COPYING | 203 + sca-cpp/tags/cpp-stable-20060304/sca/ChangeLog | 0 .../cpp-stable-20060304/sca/Developers Guide.txt | 346 ++ sca-cpp/tags/cpp-stable-20060304/sca/INSTALL | 13 + sca-cpp/tags/cpp-stable-20060304/sca/LICENSE | 203 + sca-cpp/tags/cpp-stable-20060304/sca/Makefile.am | 1 + sca-cpp/tags/cpp-stable-20060304/sca/NEWS | 0 sca-cpp/tags/cpp-stable-20060304/sca/README | 0 sca-cpp/tags/cpp-stable-20060304/sca/autogen.sh | 14 + sca-cpp/tags/cpp-stable-20060304/sca/build.sh | 46 + sca-cpp/tags/cpp-stable-20060304/sca/configure.ac | 51 + .../sca/projects/tuscany_sca/tuscany_sca.dsw | 113 + .../sca/projects/tuscany_sca/tuscany_sca.ncb | Bin 0 -> 410624 bytes .../sca/projects/tuscany_sca/tuscany_sca.opt | Bin 0 -> 83456 bytes .../tuscany_sca/tuscany_sca/Build Instructions.txt | 10 + .../tuscany_sca/tuscany_sca/tuscany_sca.dsp | 512 +++ .../tuscany_sca/tuscany_sca/tuscany_sca.plg | 226 ++ .../tuscany_sca_axis_handler.dsp | 121 + .../tuscany_sca_axis_handler.plg | 46 + .../tuscany_sca_axis_wrapper.dsp | 119 + .../tuscany_sca_axis_wrapper.plg | 47 + .../MyValueServiceModule/CustomerInfo.fragment | 36 + .../CustomerInfoImpl.componentType | 30 + .../MyValueServiceModule/MyValueImpl.componentType | 36 + .../MyValueServiceModule/StockQuoteService.wsdl | 157 + .../MyValueServiceModule/Tuscany-model.config | 24 + .../modules/MyValueServiceModule/sca.module | 51 + .../subsystems/SubSystem1/sca.subsystem | 27 + .../tuscany_sca_test/tuscany_sca_test.dsp | 104 + .../tuscany_sca_test/tuscany_sca_test.plg | 327 ++ .../tuscany_sca_test_CustomerInfo.dsp | 133 + .../tuscany_sca_test_CustomerInfo.plg | 41 + .../tuscany_sca_test_MyValue.dsp | 153 + .../tuscany_sca_test_MyValue.plg | 47 + sca-cpp/tags/cpp-stable-20060304/sca/readme.txt | 39 + .../cpp-stable-20060304/sca/runtime/Makefile.am | 1 + .../sca/runtime/axis_binding/Makefile.am | 1 + .../sca/runtime/axis_binding/handler/Makefile.am | 2 + .../sca/runtime/axis_binding/handler/src/.cdtbuild | 39 + .../runtime/axis_binding/handler/src/.cdtproject | 15 + .../sca/runtime/axis_binding/handler/src/.project | 19 + .../org.eclipse.cdt.managedbuilder.core.prefs | 9 + .../runtime/axis_binding/handler/src/Makefile.am | 9 + .../axis_binding/handler/src/SCAWSHandler.cpp | 154 + .../axis_binding/handler/src/SCAWSHandler.h | 79 + .../sca/runtime/axis_binding/wrapper/Makefile.am | 1 + .../sca/runtime/axis_binding/wrapper/src/.cdtbuild | 43 + .../runtime/axis_binding/wrapper/src/.cdtproject | 15 + .../sca/runtime/axis_binding/wrapper/src/.project | 19 + .../org.eclipse.cdt.managedbuilder.core.prefs | 9 + .../runtime/axis_binding/wrapper/src/Makefile.am | 10 + .../axis_binding/wrapper/src/SCAWSWrapper.cpp | 254 ++ .../axis_binding/wrapper/src/SCAWSWrapper.h | 110 + .../sca/runtime/core/Makefile.am | 1 + .../sca/runtime/core/src/.cdtbuild | 43 + .../sca/runtime/core/src/.cdtproject | 15 + .../sca/runtime/core/src/.project | 19 + .../org.eclipse.cdt.managedbuilder.core.prefs | 9 + .../sca/runtime/core/src/Makefile.am | 98 + .../runtime/core/src/osoa/sca/ComponentContext.cpp | 132 + .../runtime/core/src/osoa/sca/ComponentContext.h | 105 + .../core/src/osoa/sca/ComponentContextImpl.cpp | 270 ++ .../core/src/osoa/sca/ComponentContextImpl.h | 120 + .../runtime/core/src/osoa/sca/ModuleContext.cpp | 93 + .../sca/runtime/core/src/osoa/sca/ModuleContext.h | 80 + .../core/src/osoa/sca/ModuleContextImpl.cpp | 102 + .../runtime/core/src/osoa/sca/ModuleContextImpl.h | 71 + .../sca/runtime/core/src/osoa/sca/SCA.cpp | 21 + .../sca/runtime/core/src/osoa/sca/ServiceList.cpp | 105 + .../sca/runtime/core/src/osoa/sca/ServiceList.h | 84 + .../core/src/osoa/sca/ServiceRuntimeException.cpp | 208 + .../core/src/osoa/sca/ServiceRuntimeException.h | 236 ++ .../sca/runtime/core/src/osoa/sca/export.h | 39 + .../sca/runtime/core/src/osoa/sca/sca.h | 29 + .../tuscany/sca/core/ComponentServiceWrapper.cpp | 202 + .../src/tuscany/sca/core/ComponentServiceWrapper.h | 156 + .../tuscany/sca/core/ExternalServiceWrapper.cpp | 102 + .../src/tuscany/sca/core/ExternalServiceWrapper.h | 81 + .../core/src/tuscany/sca/core/Operation.cpp | 88 + .../runtime/core/src/tuscany/sca/core/Operation.h | 115 + .../core/src/tuscany/sca/core/SCAEntryPoint.cpp | 215 ++ .../core/src/tuscany/sca/core/SCAEntryPoint.h | 126 + .../core/src/tuscany/sca/core/SCARuntime.cpp | 288 ++ .../runtime/core/src/tuscany/sca/core/SCARuntime.h | 166 + .../core/src/tuscany/sca/core/ServiceProxy.cpp | 121 + .../core/src/tuscany/sca/core/ServiceProxy.h | 89 + .../core/src/tuscany/sca/core/ServiceWrapper.cpp | 55 + .../core/src/tuscany/sca/core/ServiceWrapper.h | 73 + .../runtime/core/src/tuscany/sca/model/Binding.cpp | 44 + .../runtime/core/src/tuscany/sca/model/Binding.h | 85 + .../src/tuscany/sca/model/CPPImplementation.cpp | 54 + .../core/src/tuscany/sca/model/CPPImplementation.h | 125 + .../core/src/tuscany/sca/model/CPPInterface.cpp | 67 + .../core/src/tuscany/sca/model/CPPInterface.h | 143 + .../core/src/tuscany/sca/model/Component.cpp | 303 ++ .../runtime/core/src/tuscany/sca/model/Component.h | 202 + .../core/src/tuscany/sca/model/EntryPoint.cpp | 96 + .../core/src/tuscany/sca/model/EntryPoint.h | 138 + .../core/src/tuscany/sca/model/ExternalService.cpp | 55 + .../core/src/tuscany/sca/model/ExternalService.h | 97 + .../core/src/tuscany/sca/model/Implementation.cpp | 44 + .../core/src/tuscany/sca/model/Implementation.h | 66 + .../core/src/tuscany/sca/model/Interface.cpp | 44 + .../runtime/core/src/tuscany/sca/model/Interface.h | 65 + .../core/src/tuscany/sca/model/ModelLoader.cpp | 1555 ++++++++ .../core/src/tuscany/sca/model/ModelLoader.h | 104 + .../runtime/core/src/tuscany/sca/model/Module.cpp | 235 ++ .../runtime/core/src/tuscany/sca/model/Module.h | 235 ++ .../runtime/core/src/tuscany/sca/model/Service.cpp | 47 + .../runtime/core/src/tuscany/sca/model/Service.h | 81 + .../src/tuscany/sca/model/ServiceReference.cpp | 89 + .../core/src/tuscany/sca/model/ServiceReference.h | 136 + .../core/src/tuscany/sca/model/Subsystem.cpp | 122 + .../runtime/core/src/tuscany/sca/model/Subsystem.h | 131 + .../runtime/core/src/tuscany/sca/model/System.cpp | 118 + .../runtime/core/src/tuscany/sca/model/System.h | 89 + .../core/src/tuscany/sca/model/WSBinding.cpp | 127 + .../runtime/core/src/tuscany/sca/model/WSBinding.h | 106 + .../runtime/core/src/tuscany/sca/model/Wire.cpp | 46 + .../sca/runtime/core/src/tuscany/sca/model/Wire.h | 91 + .../core/src/tuscany/sca/model/WireTarget.cpp | 49 + .../core/src/tuscany/sca/model/WireTarget.h | 106 + .../runtime/core/src/tuscany/sca/model/Wsdl.cpp | 345 ++ .../sca/runtime/core/src/tuscany/sca/model/Wsdl.h | 132 + .../core/src/tuscany/sca/model/WsdlOperation.cpp | 57 + .../core/src/tuscany/sca/model/WsdlOperation.h | 117 + .../core/src/tuscany/sca/util/DefaultLogWriter.cpp | 43 + .../core/src/tuscany/sca/util/DefaultLogWriter.h | 46 + .../runtime/core/src/tuscany/sca/util/Exceptions.h | 48 + .../sca/runtime/core/src/tuscany/sca/util/File.cpp | 216 ++ .../sca/runtime/core/src/tuscany/sca/util/File.h | 133 + .../runtime/core/src/tuscany/sca/util/Library.cpp | 119 + .../runtime/core/src/tuscany/sca/util/Library.h | 97 + .../core/src/tuscany/sca/util/LogWriter.cpp | 32 + .../runtime/core/src/tuscany/sca/util/LogWriter.h | 47 + .../runtime/core/src/tuscany/sca/util/Logger.cpp | 100 + .../sca/runtime/core/src/tuscany/sca/util/Logger.h | 89 + .../runtime/core/src/tuscany/sca/util/Logging.h | 72 + .../runtime/core/src/tuscany/sca/util/Utils.cpp | 212 ++ .../sca/runtime/core/src/tuscany/sca/util/Utils.h | 61 + .../runtime/core/src/tuscany/sca/ws/SDOStub.cpp | 476 +++ .../sca/runtime/core/src/tuscany/sca/ws/SDOStub.h | 143 + .../core/src/tuscany/sca/ws/WSServiceWrapper.cpp | 116 + .../core/src/tuscany/sca/ws/WSServiceWrapper.h | 48 + .../sca/runtime/core/test/CustomerInfo/.cdtbuild | 41 + .../sca/runtime/core/test/CustomerInfo/.cdtproject | 15 + .../sca/runtime/core/test/CustomerInfo/.project | 19 + .../org.eclipse.cdt.managedbuilder.core.prefs | 9 + .../runtime/core/test/CustomerInfo/CustomerInfo.h | 30 + .../core/test/CustomerInfo/CustomerInfoImpl.cpp | 79 + .../core/test/CustomerInfo/CustomerInfoImpl.h | 36 + .../sca/runtime/core/test/CustomerInfo/Makefile.am | 14 + .../sca/runtime/core/test/Makefile.am | 20 + .../sca/runtime/core/test/MyValue/.cdtbuild | 43 + .../sca/runtime/core/test/MyValue/.cdtproject | 15 + .../sca/runtime/core/test/MyValue/.project | 19 + .../org.eclipse.cdt.managedbuilder.core.prefs | 9 + .../sca/runtime/core/test/MyValue/Makefile.am | 17 + .../sca/runtime/core/test/MyValue/MyValue.h | 34 + .../sca/runtime/core/test/MyValue/MyValueImpl.cpp | 159 + .../sca/runtime/core/test/MyValue/MyValueImpl.h | 39 + .../runtime/core/test/MyValue/StockQuoteService.h | 32 + .../sca/runtime/core/test/src/.cdtbuild | 69 + .../sca/runtime/core/test/src/.cdtproject | 15 + .../sca/runtime/core/test/src/.project | 19 + .../org.eclipse.cdt.managedbuilder.core.prefs | 9 + .../sca/runtime/core/test/src/Makefile.am | 13 + .../sca/runtime/core/test/src/TestSCA.cpp | 77 + .../MyValueServiceModule/CustomerInfo.fragment | 36 + .../CustomerInfoImpl.componentType | 30 + .../MyValueServiceModule/MyValueImpl.componentType | 36 + .../MyValueServiceModule/StockQuoteService.wsdl | 157 + .../MyValueServiceModule/Tuscany-model.config | 24 + .../modules/MyValueServiceModule/sca.module | 51 + .../subsystems/SubSystem1/sca.subsystem | 27 + .../sca/samples/Calculator/Calculator.dsw | 53 + .../sca/samples/Calculator/Calculator.ncb | Bin 0 -> 50176 bytes .../sca/samples/Calculator/Calculator.opt | Bin 0 -> 62976 bytes .../samples/Calculator/CalculatorModule/.cdtbuild | 42 + .../Calculator/CalculatorModule/.cdtproject | 15 + .../samples/Calculator/CalculatorModule/.project | 19 + .../org.eclipse.cdt.managedbuilder.core.prefs | 6 + .../Calculator/CalculatorModule/Calculator.h | 33 + .../CalculatorModule/CalculatorImpl.componentType | 10 + .../Calculator/CalculatorModule/CalculatorImpl.cpp | 55 + .../Calculator/CalculatorModule/CalculatorImpl.h | 39 + .../CalculatorModule/CalculatorModule.dsp | 138 + .../CalculatorModule/CalculatorModule.plg | 39 + .../Calculator/CalculatorModule/Debug/makefile | 43 + .../Calculator/CalculatorModule/Debug/objects.mk | 7 + .../Calculator/CalculatorModule/Debug/sources.mk | 20 + .../Calculator/CalculatorModule/Debug/subdir.mk | 35 + .../samples/Calculator/CalculatorModule/sca.module | 11 + .../Calculator/CalculatorModule/sca.module.lin | 11 + .../CalculatorSubsystem/CalculatorSubsystem.dsp | 67 + .../Calculator/CalculatorSubsystem/sca.subsystem | 23 + .../sca/samples/Calculator/Client/.cdtbuild | 50 + .../sca/samples/Calculator/Client/.cdtproject | 15 + .../sca/samples/Calculator/Client/.project | 19 + .../org.eclipse.cdt.managedbuilder.core.prefs | 6 + .../sca/samples/Calculator/Client/Calc.cpp | 144 + .../sca/samples/Calculator/Client/Calculator.h | 33 + .../sca/samples/Calculator/Client/Client.dsp | 108 + .../sca/samples/Calculator/Client/Client.plg | 16 + .../sca/samples/Calculator/Client/Debug/makefile | 43 + .../sca/samples/Calculator/Client/Debug/objects.mk | 7 + .../sca/samples/Calculator/Client/Debug/sources.mk | 20 + .../sca/samples/Calculator/Client/Debug/subdir.mk | 29 + .../sca/samples/Calculator/Client/readme.txt | 53 + .../sca/samples/Calculator/Client/runclient.cmd | 14 + .../sca/samples/Calculator/build.sh | 75 + .../sca/samples/Calculator/pack_deploy.cmd | 27 + .../sca/samples/Calculator/runclient.sh | 53 + sca-cpp/tags/cpp-stable-20060304/sca/scatest.sh | 51 + .../cpp-stable-20060304/sca/tools/scagen/build.xml | 130 + .../tools/scagen/docs/api/allclasses-frame.html | 84 + .../tools/scagen/docs/api/allclasses-noframe.html | 84 + .../sca/tools/scagen/docs/api/constant-values.html | 305 ++ .../sca/tools/scagen/docs/api/deprecated-list.html | 138 + .../sca/tools/scagen/docs/api/help-doc.html | 197 + .../sca/tools/scagen/docs/api/index-all.html | 701 ++++ .../sca/tools/scagen/docs/api/index.html | 26 + .../tuscany/sca/cpp/tools/common/BodyPart.html | 396 ++ .../tuscany/sca/cpp/tools/common/CParsingTool.html | 389 ++ .../sca/cpp/tools/common/Configuration.html | 373 ++ .../sca/cpp/tools/common/DirectoryTree.html | 289 ++ .../tuscany/sca/cpp/tools/common/FileActor.html | 231 ++ .../tuscany/sca/cpp/tools/common/FilePart.html | 538 +++ .../tuscany/sca/cpp/tools/common/Headers.html | 403 ++ .../sca/cpp/tools/common/InputCppSourceCode.html | 297 ++ .../tuscany/sca/cpp/tools/common/MethodPart.html | 307 ++ .../tuscany/sca/cpp/tools/common/Options.html | 294 ++ .../tuscany/sca/cpp/tools/common/Parameter.html | 392 ++ .../sca/cpp/tools/common/ParsingException.html | 284 ++ .../sca/cpp/tools/common/PrototypePart.html | 309 ++ .../tuscany/sca/cpp/tools/common/Signature.html | 584 +++ .../apache/tuscany/sca/cpp/tools/common/Utils.html | 411 ++ .../sca/cpp/tools/common/class-use/BodyPart.html | 177 + .../cpp/tools/common/class-use/CParsingTool.html | 186 + .../cpp/tools/common/class-use/Configuration.html | 138 + .../cpp/tools/common/class-use/DirectoryTree.html | 138 + .../sca/cpp/tools/common/class-use/FileActor.html | 256 ++ .../sca/cpp/tools/common/class-use/FilePart.html | 184 + .../sca/cpp/tools/common/class-use/Headers.html | 192 + .../tools/common/class-use/InputCppSourceCode.html | 138 + .../sca/cpp/tools/common/class-use/MethodPart.html | 138 + .../sca/cpp/tools/common/class-use/Options.html | 138 + .../sca/cpp/tools/common/class-use/Parameter.html | 192 + .../tools/common/class-use/ParsingException.html | 196 + .../cpp/tools/common/class-use/PrototypePart.html | 138 + .../sca/cpp/tools/common/class-use/Signature.html | 208 + .../sca/cpp/tools/common/class-use/Utils.html | 138 + .../sca/cpp/tools/common/package-frame.html | 78 + .../sca/cpp/tools/common/package-summary.html | 273 ++ .../tuscany/sca/cpp/tools/common/package-tree.html | 162 + .../tuscany/sca/cpp/tools/common/package-use.html | 231 ++ .../tools/services/ComponentDomNodeHandler.html | 303 ++ .../tools/services/ComponentTypeFileHandler.html | 299 ++ .../sca/cpp/tools/services/DirectoryScanner.html | 271 ++ .../tuscany/sca/cpp/tools/services/DomHandler.html | 341 ++ .../sca/cpp/tools/services/DomNodeHandler.html | 262 ++ .../cpp/tools/services/GenericDomNodeHandler.html | 396 ++ .../sca/cpp/tools/services/LittleClass.html | 231 ++ .../services/ModuleOrFragmentFileHandler.html | 258 ++ .../tools/services/ReferenceDomNodeHandler.html | 311 ++ .../tuscany/sca/cpp/tools/services/Scagen.html | 344 ++ .../cpp/tools/services/ServiceDomNodeHandler.html | 305 ++ .../sca/cpp/tools/services/ServicesGenerator.html | 312 ++ .../sca/cpp/tools/services/XMLFileActor.html | 469 +++ .../class-use/ComponentDomNodeHandler.html | 138 + .../class-use/ComponentTypeFileHandler.html | 138 + .../tools/services/class-use/DirectoryScanner.html | 138 + .../cpp/tools/services/class-use/DomHandler.html | 138 + .../tools/services/class-use/DomNodeHandler.html | 212 ++ .../services/class-use/GenericDomNodeHandler.html | 204 + .../cpp/tools/services/class-use/LittleClass.html | 138 + .../class-use/ModuleOrFragmentFileHandler.html | 138 + .../class-use/ReferenceDomNodeHandler.html | 138 + .../sca/cpp/tools/services/class-use/Scagen.html | 138 + .../services/class-use/ServiceDomNodeHandler.html | 138 + .../services/class-use/ServicesGenerator.html | 138 + .../cpp/tools/services/class-use/XMLFileActor.html | 186 + .../sca/cpp/tools/services/package-frame.html | 65 + .../sca/cpp/tools/services/package-summary.html | 364 ++ .../sca/cpp/tools/services/package-tree.html | 162 + .../sca/cpp/tools/services/package-use.html | 179 + .../sca/tools/scagen/docs/api/overview-frame.html | 46 + .../tools/scagen/docs/api/overview-summary.html | 174 + .../sca/tools/scagen/docs/api/overview-tree.html | 167 + .../sca/tools/scagen/docs/api/package-list | 2 + .../sca/tools/scagen/docs/api/packages.html | 37 + .../tools/scagen/docs/api/resources/inherit.gif | Bin 0 -> 57 bytes .../sca/tools/scagen/docs/api/serialized-form.html | 159 + .../sca/tools/scagen/docs/api/stylesheet.css | 29 + .../sca/cpp/tools/junit/CalculatorTest.java | 29 + .../sca/cpp/tools/junit/EnvHandlerTest.java | 46 + .../tools/junit/ImplClassWithNameSpaceTest.java | 46 + ...ntfClassWithNameSpaceButNotInClassAttrTest.java | 46 + .../tools/junit/IntfClassWithNameSpaceTest.java | 46 + .../tools/junit/MissingModuleAndFragmentTest.java | 46 + .../junit/SimplePublicPrivateProtectedTest.java | 47 + .../sca/cpp/tools/junit/TestAllModulesTest.java | 82 + .../sca/cpp/tools/junit/TestDeployAssistTool.java | 94 + .../sca/cpp/tools/junit/TuscanyTestCase.java | 332 ++ .../junit/scripts_for_standalone_testing/go.cmd | 2 + .../go_no_dir_option.cmd | 1 + .../go_no_input_dir.cmd | 1 + .../go_no_output_dir.cmd | 1 + .../refresh-tools-jar.cmd | 1 + .../CalculatorModuleAndComponent/Calculator.h | 32 + .../CalculatorImpl.componentType | 25 + .../CalculatorModuleAndComponent/CalculatorImpl.h | 33 + .../CalculatorModuleAndComponent/sca.module | 28 + .../otherSubFolder/CalculatorBack.h | 31 + .../otherSubFolder/CalculatorForward.h | 30 + .../CalculatorSlashDirectionTest/sca.module | 31 + .../subFolder/CalculatorBackImpl.componentType | 25 + .../subFolder/CalculatorBackImpl.h | 33 + .../subFolder/CalculatorForwardImpl.componentType | 25 + .../subFolder/CalculatorForwardImpl.h | 32 + .../CustomerInfo.fragment | 39 + .../CustomerInfo.h | 94 + .../CustomerInfoImpl.componentType | 33 + .../CustomerInfoImpl.h | 34 + .../CustomerInfo.fragment | 39 + .../CustomerInfo.h | 89 + .../CustomerInfoImpl.componentType | 33 + .../CustomerInfoImpl.h | 43 + .../MyValueServiceModule/CustomerInfo.fragment | 38 + .../modules/MyValueServiceModule/CustomerInfo.h | 36 + .../CustomerInfoImpl.componentType | 32 + .../MyValueServiceModule/CustomerInfoImpl.h | 46 + .../modules/MyValueServiceModule/MyValue.h | 35 + .../MyValueServiceModule/MyValueImpl.componentType | 38 + .../modules/MyValueServiceModule/MyValueImpl.hpp | 38 + .../MyValueImpl_stockQuote_Proxy.h | 34 + .../MyValueServiceModule/StockQuoteService.h | 33 + .../modules/MyValueServiceModule/sca.module | 59 + .../CustomerInfo.fragment | 38 + .../CustomerInfo.h | 37 + .../CustomerInfoImpl.componentType | 32 + .../CustomerInfoImpl.h | 47 + .../MyValue.h | 36 + .../MyValueImpl.componentType | 38 + .../MyValueImpl.hpp | 38 + .../MyValueImpl_stockQuote_Proxy.h | 34 + .../StockQuoteService.h | 32 + .../sca.module | 59 + .../MyValue.h | 39 + .../MyValueImpl.componentType | 28 + .../MyValueImpl.hpp | 38 + .../sca.module | 48 + .../MyValue.h | 37 + .../MyValueImpl.componentType | 28 + .../MyValueImpl.hpp | 38 + .../sca.module | 48 + .../CustomerInfo.fragmentX | 38 + .../sca.moduleX | 60 + .../CustomerInfo.fragment | 38 + .../MyValueServiceModuleTwoClasses/CustomerInfo.h | 36 + .../CustomerInfoImpl.componentType | 32 + .../CustomerInfoImpl.h | 45 + .../MyValueServiceModuleTwoClasses/MyValue.h | 35 + .../MyValueImpl.componentType | 38 + .../MyValueServiceModuleTwoClasses/MyValueImpl.hpp | 38 + .../MyValueImpl_stockQuote_Proxy.h | 34 + .../StockQuoteService.h | 32 + .../MyValueServiceModuleTwoClasses/sca.module | 59 + .../CustomerInfo.fragment | 39 + .../CustomerInfo.h | 40 + .../CustomerInfoImpl.componentType | 32 + .../CustomerInfoImpl.h | 34 + .../CalculatorImpl_CalculatorService_Proxy.cpp | 67 + .../CalculatorImpl_CalculatorService_Proxy.h | 34 + .../CalculatorImpl_CalculatorService_Wrapper.cpp | 71 + .../CalculatorImpl_CalculatorService_Wrapper.h | 36 + .../CalculatorBackImpl_CalculatorService_Proxy.cpp | 81 + .../CalculatorBackImpl_CalculatorService_Proxy.h | 35 + ...alculatorBackImpl_CalculatorService_Wrapper.cpp | 78 + .../CalculatorBackImpl_CalculatorService_Wrapper.h | 36 + ...lculatorForwardImpl_CalculatorService_Proxy.cpp | 81 + ...CalculatorForwardImpl_CalculatorService_Proxy.h | 35 + ...ulatorForwardImpl_CalculatorService_Wrapper.cpp | 78 + ...lculatorForwardImpl_CalculatorService_Wrapper.h | 36 + .../CustomerInfoImpl_CustomerInfoService_Proxy.cpp | 699 ++++ .../CustomerInfoImpl_CustomerInfoService_Proxy.h | 83 + ...ustomerInfoImpl_CustomerInfoService_Wrapper.cpp | 449 +++ .../CustomerInfoImpl_CustomerInfoService_Wrapper.h | 36 + .../CustomerInfoImpl_CustomerInfoService_Proxy.cpp | 556 +++ .../CustomerInfoImpl_CustomerInfoService_Proxy.h | 79 + ...ustomerInfoImpl_CustomerInfoService_Wrapper.cpp | 376 ++ .../CustomerInfoImpl_CustomerInfoService_Wrapper.h | 36 + ...CustomerInfoImpl2_CustomerInfoService_Proxy.cpp | 64 + .../CustomerInfoImpl2_CustomerInfoService_Proxy.h | 34 + ...stomerInfoImpl2_CustomerInfoService_Wrapper.cpp | 71 + ...CustomerInfoImpl2_CustomerInfoService_Wrapper.h | 36 + .../MyValueImpl_MyValueService_Proxy.cpp | 100 + .../MyValueImpl_MyValueService_Proxy.h | 37 + .../MyValueImpl_MyValueService_Wrapper.cpp | 89 + .../MyValueImpl_MyValueService_Wrapper.h | 36 + .../MyValueImpl_customerInfo_Proxy.cpp | 64 + .../MyValueImpl_customerInfo_Proxy.h | 34 + .../MyValueImpl_stockQuote_Proxy.cpp | 66 + .../expected_output/MyValueImpl_stockQuote_Proxy.h | 34 + .../CustomerInfoImpl_CustomerInfoService_Proxy.cpp | 64 + .../CustomerInfoImpl_CustomerInfoService_Proxy.h | 34 + ...ustomerInfoImpl_CustomerInfoService_Wrapper.cpp | 71 + .../CustomerInfoImpl_CustomerInfoService_Wrapper.h | 36 + .../MyValueImpl_MyValueService_Proxy.cpp | 100 + .../MyValueImpl_MyValueService_Proxy.h | 37 + .../MyValueImpl_MyValueService_Wrapper.cpp | 89 + .../MyValueImpl_MyValueService_Wrapper.h | 36 + .../MyValueImpl_customerInfo_Proxy.cpp | 64 + .../MyValueImpl_customerInfo_Proxy.h | 34 + .../MyValueImpl_stockQuote_Proxy.cpp | 66 + .../expected_output/MyValueImpl_stockQuote_Proxy.h | 34 + .../MyValueImpl_MyValueService_Proxy.cpp | 100 + .../MyValueImpl_MyValueService_Proxy.h | 37 + .../MyValueImpl_MyValueService_Wrapper.cpp | 89 + .../MyValueImpl_MyValueService_Wrapper.h | 36 + .../MyValueImpl_MyValueService_Proxy.cpp | 100 + .../MyValueImpl_MyValueService_Proxy.h | 37 + .../MyValueImpl_MyValueService_Wrapper.cpp | 89 + .../MyValueImpl_MyValueService_Wrapper.h | 36 + ...CustomerInfoImpl2_CustomerInfoService_Proxy.cpp | 64 + .../CustomerInfoImpl2_CustomerInfoService_Proxy.h | 34 + ...stomerInfoImpl2_CustomerInfoService_Wrapper.cpp | 71 + ...CustomerInfoImpl2_CustomerInfoService_Wrapper.h | 36 + .../MyValueImpl_MyValueService_Proxy.cpp | 100 + .../MyValueImpl_MyValueService_Proxy.h | 37 + .../MyValueImpl_MyValueService_Wrapper.cpp | 89 + .../MyValueImpl_MyValueService_Wrapper.h | 36 + .../MyValueImpl_customerInfo_Proxy.cpp | 64 + .../MyValueImpl_customerInfo_Proxy.h | 34 + .../MyValueImpl_stockQuote_Proxy.cpp | 66 + .../expected_output/MyValueImpl_stockQuote_Proxy.h | 34 + .../CustomerInfoImpl_CustomerInfoService_Proxy.cpp | 92 + .../CustomerInfoImpl_CustomerInfoService_Proxy.h | 36 + ...ustomerInfoImpl_CustomerInfoService_Wrapper.cpp | 88 + .../CustomerInfoImpl_CustomerInfoService_Wrapper.h | 36 + .../sca/tools/scagen/lib/readme.txt | 4 + .../sca/tools/scagen/scagen.cmd | 1 + .../cpp-stable-20060304/sca/tools/scagen/scagen.sh | 17 + .../tuscany/sca/cpp/tools/common/BodyPart.java | 90 + .../tuscany/sca/cpp/tools/common/CParsingTool.java | 119 + .../sca/cpp/tools/common/Configuration.java | 126 + .../sca/cpp/tools/common/DirectoryTree.java | 100 + .../tuscany/sca/cpp/tools/common/FileActor.java | 32 + .../tuscany/sca/cpp/tools/common/FilePart.java | 75 + .../tuscany/sca/cpp/tools/common/Headers.java | 162 + .../sca/cpp/tools/common/InputCppSourceCode.java | 412 ++ .../tuscany/sca/cpp/tools/common/MacroPart.java | 82 + .../tuscany/sca/cpp/tools/common/MethodPart.java | 128 + .../tuscany/sca/cpp/tools/common/Options.java | 159 + .../tuscany/sca/cpp/tools/common/Parameter.java | 211 + .../sca/cpp/tools/common/ParsingException.java | 42 + .../sca/cpp/tools/common/PrototypePart.java | 51 + .../tuscany/sca/cpp/tools/common/Signature.java | 501 +++ .../apache/tuscany/sca/cpp/tools/common/Utils.java | 543 +++ .../tuscany/sca/cpp/tools/common/package.html | 39 + .../tools/services/ComponentDomNodeHandler.java | 352 ++ .../tools/services/ComponentTypeFileHandler.java | 124 + .../sca/cpp/tools/services/DirectoryScanner.java | 87 + .../tuscany/sca/cpp/tools/services/DomHandler.java | 77 + .../sca/cpp/tools/services/DomNodeHandler.java | 40 + .../cpp/tools/services/GenericDomNodeHandler.java | 214 ++ .../sca/cpp/tools/services/LittleClass.java | 27 + .../services/ModuleOrFragmentFileHandler.java | 85 + .../tools/services/ReferenceDomNodeHandler.java | 67 + .../tuscany/sca/cpp/tools/services/Scagen.java | 170 + .../cpp/tools/services/ServiceDomNodeHandler.java | 62 + .../sca/cpp/tools/services/ServicesGenerator.java | 802 ++++ .../sca/cpp/tools/services/XMLFileActor.java | 202 + .../tuscany/sca/cpp/tools/services/package.html | 140 + .../cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl | 398 ++ .../tools/services/xsl/SCA4CPPIntfProxyHeader.xsl | 215 ++ .../tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl | 278 ++ .../services/xsl/SCA4CPPIntfWrapperHeader.xsl | 178 + .../tags/cpp-stable-20060304/sca/xsd/readme.txt | 2 + .../sca/xsd/sca-binding-sca.xsd | 37 + .../sca/xsd/sca-binding-webservice.xsd | 38 + .../tags/cpp-stable-20060304/sca/xsd/sca-core.xsd | 240 ++ .../sca/xsd/sca-implementation-cpp.xsd | 40 + .../sca/xsd/sca-implementation-java.xsd | 38 + .../sca/xsd/sca-interface-cpp.xsd | 50 + .../sca/xsd/sca-interface-java.xsd | 39 + .../sca/xsd/sca-interface-wsdl.xsd | 39 + sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca.xsd | 34 + .../tags/cpp-stable-20060304/sca/xsd/tuscany.xsd | 48 + sca-cpp/tags/cpp-stable-20060304/sdo/AUTHORS | 0 sca-cpp/tags/cpp-stable-20060304/sdo/COPYING | 203 + sca-cpp/tags/cpp-stable-20060304/sdo/ChangeLog | 0 .../cpp-stable-20060304/sdo/Committers Guide.txt | 69 + sca-cpp/tags/cpp-stable-20060304/sdo/INSTALL | 17 + sca-cpp/tags/cpp-stable-20060304/sdo/LICENSE | 203 + sca-cpp/tags/cpp-stable-20060304/sdo/Makefile.am | 1 + sca-cpp/tags/cpp-stable-20060304/sdo/NEWS | 0 sca-cpp/tags/cpp-stable-20060304/sdo/README | 0 sca-cpp/tags/cpp-stable-20060304/sdo/autogen.sh | 14 + sca-cpp/tags/cpp-stable-20060304/sdo/build.sh | 31 + sca-cpp/tags/cpp-stable-20060304/sdo/configure.ac | 42 + .../projects/tuscany_sdo/build_instructions.txt | 29 + .../tuscany_sdo/sdo_runtime/sdo_runtime.dsp | 718 ++++ .../tuscany_sdo/sdo_runtime/sdo_runtime.plg | 333 ++ .../tuscany_sdo/sdo_runtime/tuscany_sdo.ilk | Bin 0 -> 2617388 bytes .../tuscany_sdo/sdo_samples/sdo_samples.dsp | 129 + .../tuscany_sdo/sdo_samples/sdo_samples.plg | 64 + .../sdo/projects/tuscany_sdo/sdo_test/sdo_test.dsp | 117 + .../sdo/projects/tuscany_sdo/sdo_test/sdo_test.plg | 366 ++ .../sdo/projects/tuscany_sdo/tuscany_sdo.dsw | 56 + .../sdo/projects/tuscany_sdo/tuscany_sdo.ncb | Bin 0 -> 2860032 bytes .../sdo/projects/tuscany_sdo/tuscany_sdo.opt | Bin 0 -> 60928 bytes sca-cpp/tags/cpp-stable-20060304/sdo/readme.txt | 72 + .../cpp-stable-20060304/sdo/runtime/Makefile.am | 1 + .../sdo/runtime/core/Makefile.am | 1 + .../sdo/runtime/core/samples/ChangeSummarySave.cpp | 185 + .../sdo/runtime/core/samples/ChangeSummarySave.xsd | 30 + .../sdo/runtime/core/samples/ObjectCreation.cpp | 249 ++ .../sdo/runtime/core/samples/Query.cpp | 176 + .../sdo/runtime/core/samples/Substitutes.cpp | 118 + .../sdo/runtime/core/samples/XSDLoading.cpp | 108 + .../sdo/runtime/core/samples/XSDLoading.xml | 11 + .../sdo/runtime/core/samples/XSDLoading.xsd | 29 + .../sdo/runtime/core/samples/companysubs.xsd | 44 + .../sdo/runtime/core/samples/samples.cpp | 34 + .../sdo/runtime/core/samples/samples.h | 50 + .../sdo/runtime/core/src/.cdtbuild | 43 + .../sdo/runtime/core/src/.cdtproject | 15 + .../sdo/runtime/core/src/.project | 19 + .../org.eclipse.cdt.managedbuilder.core.prefs | 9 + .../sdo/runtime/core/src/Makefile.am | 81 + .../sdo/runtime/core/src/commonj/Makefile.am | 1 + .../runtime/core/src/commonj/sdo/ChangeSummary.cpp | 28 + .../runtime/core/src/commonj/sdo/ChangeSummary.h | 208 + .../core/src/commonj/sdo/ChangeSummaryBuilder.cpp | 1144 ++++++ .../core/src/commonj/sdo/ChangeSummaryBuilder.h | 300 ++ .../core/src/commonj/sdo/ChangeSummaryImpl.cpp | 1587 ++++++++ .../core/src/commonj/sdo/ChangeSummaryImpl.h | 404 ++ .../core/src/commonj/sdo/ChangedDataObjectList.h | 91 + .../src/commonj/sdo/ChangedDataObjectListImpl.cpp | 248 ++ .../src/commonj/sdo/ChangedDataObjectListImpl.h | 97 + .../runtime/core/src/commonj/sdo/CopyHelper.cpp | 258 ++ .../sdo/runtime/core/src/commonj/sdo/CopyHelper.h | 69 + .../runtime/core/src/commonj/sdo/DASProperty.cpp | 32 + .../sdo/runtime/core/src/commonj/sdo/DASProperty.h | 46 + .../sdo/runtime/core/src/commonj/sdo/DASType.cpp | 32 + .../sdo/runtime/core/src/commonj/sdo/DASType.h | 53 + .../sdo/runtime/core/src/commonj/sdo/DASValue.cpp | 52 + .../sdo/runtime/core/src/commonj/sdo/DASValue.h | 52 + .../sdo/runtime/core/src/commonj/sdo/DASValues.cpp | 68 + .../sdo/runtime/core/src/commonj/sdo/DASValues.h | 57 + .../runtime/core/src/commonj/sdo/DataFactory.cpp | 52 + .../sdo/runtime/core/src/commonj/sdo/DataFactory.h | 501 +++ .../core/src/commonj/sdo/DataFactoryImpl.cpp | 1237 ++++++ .../runtime/core/src/commonj/sdo/DataFactoryImpl.h | 388 ++ .../sdo/runtime/core/src/commonj/sdo/DataGraph.cpp | 33 + .../sdo/runtime/core/src/commonj/sdo/DataGraph.h | 99 + .../runtime/core/src/commonj/sdo/DataGraphImpl.cpp | 117 + .../runtime/core/src/commonj/sdo/DataGraphImpl.h | 106 + .../runtime/core/src/commonj/sdo/DataObject.cpp | 31 + .../sdo/runtime/core/src/commonj/sdo/DataObject.h | 540 +++ .../core/src/commonj/sdo/DataObjectImpl.cpp | 3633 ++++++++++++++++++ .../runtime/core/src/commonj/sdo/DataObjectImpl.h | 668 ++++ .../core/src/commonj/sdo/DataObjectInstance.cpp | 69 + .../core/src/commonj/sdo/DataObjectInstance.h | 62 + .../core/src/commonj/sdo/DataObjectList.cpp | 41 + .../runtime/core/src/commonj/sdo/DataObjectList.h | 192 + .../core/src/commonj/sdo/DataObjectListImpl.cpp | 1027 +++++ .../core/src/commonj/sdo/DataObjectListImpl.h | 191 + .../core/src/commonj/sdo/DefaultLogWriter.cpp | 53 + .../core/src/commonj/sdo/DefaultLogWriter.h | 52 + .../core/src/commonj/sdo/EqualityHelper.cpp | 370 ++ .../runtime/core/src/commonj/sdo/EqualityHelper.h | 97 + .../core/src/commonj/sdo/HelperProvider.cpp | 47 + .../runtime/core/src/commonj/sdo/HelperProvider.h | 65 + .../sdo/runtime/core/src/commonj/sdo/LogWriter.cpp | 32 + .../sdo/runtime/core/src/commonj/sdo/LogWriter.h | 44 + .../sdo/runtime/core/src/commonj/sdo/Logger.cpp | 100 + .../sdo/runtime/core/src/commonj/sdo/Logger.h | 69 + .../sdo/runtime/core/src/commonj/sdo/Logging.h | 170 + .../sdo/runtime/core/src/commonj/sdo/Makefile.am | 81 + .../core/src/commonj/sdo/ParserErrorSetter.cpp | 38 + .../core/src/commonj/sdo/ParserErrorSetter.h | 48 + .../sdo/runtime/core/src/commonj/sdo/Property.cpp | 42 + .../sdo/runtime/core/src/commonj/sdo/Property.h | 193 + .../core/src/commonj/sdo/PropertyDefinition.cpp | 44 + .../core/src/commonj/sdo/PropertyDefinition.h | 88 + .../runtime/core/src/commonj/sdo/PropertyImpl.cpp | 536 +++ .../runtime/core/src/commonj/sdo/PropertyImpl.h | 277 ++ .../runtime/core/src/commonj/sdo/PropertyList.cpp | 93 + .../runtime/core/src/commonj/sdo/PropertyList.h | 87 + .../core/src/commonj/sdo/PropertySetting.cpp | 42 + .../runtime/core/src/commonj/sdo/PropertySetting.h | 60 + .../core/src/commonj/sdo/RefCountingObject.cpp | 74 + .../core/src/commonj/sdo/RefCountingObject.h | 59 + .../core/src/commonj/sdo/RefCountingPointer.cpp | 153 + .../core/src/commonj/sdo/RefCountingPointer.h | 179 + .../runtime/core/src/commonj/sdo/SAX2Attribute.cpp | 49 + .../runtime/core/src/commonj/sdo/SAX2Attribute.h | 64 + .../core/src/commonj/sdo/SAX2Attributes.cpp | 92 + .../runtime/core/src/commonj/sdo/SAX2Attributes.h | 72 + .../core/src/commonj/sdo/SAX2Namespaces.cpp | 93 + .../runtime/core/src/commonj/sdo/SAX2Namespaces.h | 67 + .../runtime/core/src/commonj/sdo/SAX2Parser.cpp | 415 ++ .../sdo/runtime/core/src/commonj/sdo/SAX2Parser.h | 103 + .../sdo/runtime/core/src/commonj/sdo/SDO.h | 56 + .../sdo/runtime/core/src/commonj/sdo/SDODate.cpp | 52 + .../sdo/runtime/core/src/commonj/sdo/SDODate.h | 77 + .../core/src/commonj/sdo/SDORuntimeException.cpp | 227 ++ .../core/src/commonj/sdo/SDORuntimeException.h | 500 +++ .../runtime/core/src/commonj/sdo/SDOSAX2Parser.cpp | 1303 +++++++ .../runtime/core/src/commonj/sdo/SDOSAX2Parser.h | 169 + .../sdo/runtime/core/src/commonj/sdo/SDOSPI.h | 25 + .../core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp | 1080 ++++++ .../core/src/commonj/sdo/SDOSchemaSAX2Parser.h | 181 + .../sdo/runtime/core/src/commonj/sdo/SDOUtils.cpp | 142 + .../sdo/runtime/core/src/commonj/sdo/SDOUtils.h | 51 + .../core/src/commonj/sdo/SDOXMLBufferWriter.cpp | 55 + .../core/src/commonj/sdo/SDOXMLBufferWriter.h | 51 + .../core/src/commonj/sdo/SDOXMLFileWriter.cpp | 44 + .../core/src/commonj/sdo/SDOXMLFileWriter.h | 52 + .../core/src/commonj/sdo/SDOXMLStreamWriter.cpp | 50 + .../core/src/commonj/sdo/SDOXMLStreamWriter.h | 54 + .../runtime/core/src/commonj/sdo/SDOXMLString.cpp | 223 ++ .../runtime/core/src/commonj/sdo/SDOXMLString.h | 91 + .../runtime/core/src/commonj/sdo/SDOXMLWriter.cpp | 1173 ++++++ .../runtime/core/src/commonj/sdo/SDOXMLWriter.h | 117 + .../core/src/commonj/sdo/SDOXSDBufferWriter.cpp | 53 + .../core/src/commonj/sdo/SDOXSDBufferWriter.h | 52 + .../core/src/commonj/sdo/SDOXSDFileWriter.cpp | 43 + .../core/src/commonj/sdo/SDOXSDFileWriter.h | 51 + .../core/src/commonj/sdo/SDOXSDStreamWriter.cpp | 51 + .../core/src/commonj/sdo/SDOXSDStreamWriter.h | 55 + .../runtime/core/src/commonj/sdo/SDOXSDWriter.cpp | 840 ++++ .../runtime/core/src/commonj/sdo/SDOXSDWriter.h | 75 + .../runtime/core/src/commonj/sdo/SchemaInfo.cpp | 35 + .../sdo/runtime/core/src/commonj/sdo/SchemaInfo.h | 59 + .../sdo/runtime/core/src/commonj/sdo/SdoCheck.cpp | 27 + .../sdo/runtime/core/src/commonj/sdo/SdoCheck.h | 33 + .../runtime/core/src/commonj/sdo/SdoRuntime.cpp | 64 + .../sdo/runtime/core/src/commonj/sdo/SdoRuntime.h | 74 + .../sdo/runtime/core/src/commonj/sdo/Sequence.cpp | 36 + .../sdo/runtime/core/src/commonj/sdo/Sequence.h | 309 ++ .../runtime/core/src/commonj/sdo/SequenceImpl.cpp | 969 +++++ .../runtime/core/src/commonj/sdo/SequenceImpl.h | 375 ++ .../sdo/runtime/core/src/commonj/sdo/Setting.cpp | 303 ++ .../sdo/runtime/core/src/commonj/sdo/Setting.h | 149 + .../runtime/core/src/commonj/sdo/SettingList.cpp | 113 + .../sdo/runtime/core/src/commonj/sdo/SettingList.h | 75 + .../sdo/runtime/core/src/commonj/sdo/Type.cpp | 36 + .../sdo/runtime/core/src/commonj/sdo/Type.h | 226 ++ .../core/src/commonj/sdo/TypeDefinition.cpp | 42 + .../runtime/core/src/commonj/sdo/TypeDefinition.h | 77 + .../core/src/commonj/sdo/TypeDefinitions.cpp | 39 + .../runtime/core/src/commonj/sdo/TypeDefinitions.h | 53 + .../sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp | 3125 +++++++++++++++ .../sdo/runtime/core/src/commonj/sdo/TypeImpl.h | 307 ++ .../sdo/runtime/core/src/commonj/sdo/TypeList.cpp | 84 + .../sdo/runtime/core/src/commonj/sdo/TypeList.h | 56 + .../runtime/core/src/commonj/sdo/XMLDocument.cpp | 31 + .../sdo/runtime/core/src/commonj/sdo/XMLDocument.h | 145 + .../core/src/commonj/sdo/XMLDocumentImpl.cpp | 69 + .../runtime/core/src/commonj/sdo/XMLDocumentImpl.h | 95 + .../sdo/runtime/core/src/commonj/sdo/XMLHelper.cpp | 34 + .../sdo/runtime/core/src/commonj/sdo/XMLHelper.h | 142 + .../runtime/core/src/commonj/sdo/XMLHelperImpl.cpp | 303 ++ .../runtime/core/src/commonj/sdo/XMLHelperImpl.h | 140 + .../sdo/runtime/core/src/commonj/sdo/XMLQName.cpp | 84 + .../sdo/runtime/core/src/commonj/sdo/XMLQName.h | 66 + .../sdo/runtime/core/src/commonj/sdo/XSDHelper.cpp | 33 + .../sdo/runtime/core/src/commonj/sdo/XSDHelper.h | 120 + .../runtime/core/src/commonj/sdo/XSDHelperImpl.cpp | 601 +++ .../runtime/core/src/commonj/sdo/XSDHelperImpl.h | 143 + .../core/src/commonj/sdo/XSDPropertyInfo.cpp | 53 + .../runtime/core/src/commonj/sdo/XSDPropertyInfo.h | 59 + .../runtime/core/src/commonj/sdo/XSDTypeInfo.cpp | 52 + .../sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.h | 52 + .../runtime/core/src/commonj/sdo/XpathHelper.cpp | 50 + .../sdo/runtime/core/src/commonj/sdo/XpathHelper.h | 53 + .../runtime/core/src/commonj/sdo/disable_warn.h | 27 + .../sdo/runtime/core/src/commonj/sdo/export.h | 47 + .../sdo/runtime/core/test/.cdtbuild | 59 + .../sdo/runtime/core/test/.cdtproject | 15 + .../sdo/runtime/core/test/.project | 19 + .../org.eclipse.cdt.managedbuilder.core.prefs | 9 + .../sdo/runtime/core/test/47293Catalog.xml | 2 + .../sdo/runtime/core/test/47293Catalog.xsd | 15 + .../sdo/runtime/core/test/47293Customer.xsd | 31 + .../sdo/runtime/core/test/47293Order.xsd | 47 + .../sdo/runtime/core/test/Catalog.xsd | 15 + .../sdo/runtime/core/test/Customer.xsd | 28 + .../sdo/runtime/core/test/Makefile.am | 11 + .../sdo/runtime/core/test/Order.xsd | 39 + .../sdo/runtime/core/test/StockQuoteService.wsdl | 157 + .../sdo/runtime/core/test/axis.xsd | 20 + .../sdo/runtime/core/test/b46617b.xml | 8 + .../sdo/runtime/core/test/b46617b.xsd | 54 + .../sdo/runtime/core/test/b46693.xsd | 157 + .../sdo/runtime/core/test/company.xsd | 30 + .../runtime/core/test/company_with_nillable_SN.xml | 11 + .../runtime/core/test/company_with_nillable_SN.xsd | 29 + .../sdo/runtime/core/test/companyabs.xsd | 44 + .../sdo/runtime/core/test/companyref.xsd | 47 + .../sdo/runtime/core/test/companysubs.xsd | 44 + .../sdo/runtime/core/test/doctest.xml | 8 + .../sdo/runtime/core/test/doctest.xsd | 28 + .../sdo/runtime/core/test/error1.xml | 11 + .../sdo/runtime/core/test/error1.xsd | 29 + .../sdo/runtime/core/test/g3.xsd | 21 + .../sdo/runtime/core/test/graham1.xsd | 21 + .../sdo/runtime/core/test/graham2.xsd | 20 + .../sdo/runtime/core/test/graham3.xsd | 22 + .../sdo/runtime/core/test/include.xsd | 14 + .../sdo/runtime/core/test/include1.xsd | 18 + .../sdo/runtime/core/test/include2.xsd | 17 + .../sdo/runtime/core/test/includeother3.xsd | 14 + .../sdo/runtime/core/test/many.xml | 14 + .../sdo/runtime/core/test/many.xsd | 1 + .../sdo/runtime/core/test/my-core.xsd | 21 + .../core/test/my-implementation-local-java.xsd | 24 + .../sdo/runtime/core/test/my.xsd | 11 + .../sdo/runtime/core/test/openloadNS.xml | 13 + .../sdo/runtime/core/test/openloadNS.xsd | 33 + .../sdo/runtime/core/test/openloadNS2.xml | 13 + .../sdo/runtime/core/test/openloadNS2.xsd | 8 + .../sdo/runtime/core/test/partial.xml | 14 + .../sdo/runtime/core/test/sca-binding-sca.xsd | 22 + .../runtime/core/test/sca-binding-webservice.xsd | 21 + .../sdo/runtime/core/test/sca-binding-ws.xsd | 22 + .../sdo/runtime/core/test/sca-core.xsd | 214 ++ .../runtime/core/test/sca-implementation-dll.xsd | 22 + .../runtime/core/test/sca-implementation-java.xsd | 22 + .../core/test/sca-implementation-local-java.xsd | 24 + .../sdo/runtime/core/test/sca-interface-cpp.xsd | 49 + .../sdo/runtime/core/test/sca-interface-java.xsd | 24 + .../sdo/runtime/core/test/sca-interface-wsdl.xsd | 23 + .../sdo/runtime/core/test/sca-property-java.xsd | 23 + .../sdo/runtime/core/test/sca-property-xsd.xsd | 22 + .../sdo/runtime/core/test/sca.xsd | 22 + .../sdo/runtime/core/test/sdotest.cpp | 4028 ++++++++++++++++++++ .../sdo/runtime/core/test/sdotest.h | 123 + .../sdo/runtime/core/test/sdotest2.cpp | 3937 +++++++++++++++++++ .../sdo/runtime/core/test/t2/include3.xsd | 14 + .../sdo/runtime/core/test/t2/includeother.xsd | 14 + .../sdo/runtime/core/test/t2/includeother1.xsd | 18 + .../sdo/runtime/core/test/t2/includeother2.xsd | 17 + .../sdo/runtime/core/test/testopen3.xml | 1 + sca-cpp/tags/cpp-stable-20060304/sdo/sdotest.sh | 27 + tags/cpp-stable-20060304/build.sh | 47 - tags/cpp-stable-20060304/build.txt | 83 - tags/cpp-stable-20060304/sca/AUTHORS | 0 tags/cpp-stable-20060304/sca/COPYING | 203 - tags/cpp-stable-20060304/sca/ChangeLog | 0 tags/cpp-stable-20060304/sca/Developers Guide.txt | 346 -- tags/cpp-stable-20060304/sca/INSTALL | 13 - tags/cpp-stable-20060304/sca/LICENSE | 203 - tags/cpp-stable-20060304/sca/Makefile.am | 1 - tags/cpp-stable-20060304/sca/NEWS | 0 tags/cpp-stable-20060304/sca/README | 0 tags/cpp-stable-20060304/sca/autogen.sh | 14 - tags/cpp-stable-20060304/sca/build.sh | 46 - tags/cpp-stable-20060304/sca/configure.ac | 51 - .../sca/projects/tuscany_sca/tuscany_sca.dsw | 113 - .../sca/projects/tuscany_sca/tuscany_sca.ncb | Bin 410624 -> 0 bytes .../sca/projects/tuscany_sca/tuscany_sca.opt | Bin 83456 -> 0 bytes .../tuscany_sca/tuscany_sca/Build Instructions.txt | 10 - .../tuscany_sca/tuscany_sca/tuscany_sca.dsp | 512 --- .../tuscany_sca/tuscany_sca/tuscany_sca.plg | 226 -- .../tuscany_sca_axis_handler.dsp | 121 - .../tuscany_sca_axis_handler.plg | 46 - .../tuscany_sca_axis_wrapper.dsp | 119 - .../tuscany_sca_axis_wrapper.plg | 47 - .../MyValueServiceModule/CustomerInfo.fragment | 36 - .../CustomerInfoImpl.componentType | 30 - .../MyValueServiceModule/MyValueImpl.componentType | 36 - .../MyValueServiceModule/StockQuoteService.wsdl | 157 - .../MyValueServiceModule/Tuscany-model.config | 24 - .../modules/MyValueServiceModule/sca.module | 51 - .../subsystems/SubSystem1/sca.subsystem | 27 - .../tuscany_sca_test/tuscany_sca_test.dsp | 104 - .../tuscany_sca_test/tuscany_sca_test.plg | 327 -- .../tuscany_sca_test_CustomerInfo.dsp | 133 - .../tuscany_sca_test_CustomerInfo.plg | 41 - .../tuscany_sca_test_MyValue.dsp | 153 - .../tuscany_sca_test_MyValue.plg | 47 - tags/cpp-stable-20060304/sca/readme.txt | 39 - tags/cpp-stable-20060304/sca/runtime/Makefile.am | 1 - .../sca/runtime/axis_binding/Makefile.am | 1 - .../sca/runtime/axis_binding/handler/Makefile.am | 2 - .../sca/runtime/axis_binding/handler/src/.cdtbuild | 39 - .../runtime/axis_binding/handler/src/.cdtproject | 15 - .../sca/runtime/axis_binding/handler/src/.project | 19 - .../org.eclipse.cdt.managedbuilder.core.prefs | 9 - .../runtime/axis_binding/handler/src/Makefile.am | 9 - .../axis_binding/handler/src/SCAWSHandler.cpp | 154 - .../axis_binding/handler/src/SCAWSHandler.h | 79 - .../sca/runtime/axis_binding/wrapper/Makefile.am | 1 - .../sca/runtime/axis_binding/wrapper/src/.cdtbuild | 43 - .../runtime/axis_binding/wrapper/src/.cdtproject | 15 - .../sca/runtime/axis_binding/wrapper/src/.project | 19 - .../org.eclipse.cdt.managedbuilder.core.prefs | 9 - .../runtime/axis_binding/wrapper/src/Makefile.am | 10 - .../axis_binding/wrapper/src/SCAWSWrapper.cpp | 254 -- .../axis_binding/wrapper/src/SCAWSWrapper.h | 110 - .../sca/runtime/core/Makefile.am | 1 - .../sca/runtime/core/src/.cdtbuild | 43 - .../sca/runtime/core/src/.cdtproject | 15 - .../sca/runtime/core/src/.project | 19 - .../org.eclipse.cdt.managedbuilder.core.prefs | 9 - .../sca/runtime/core/src/Makefile.am | 98 - .../runtime/core/src/osoa/sca/ComponentContext.cpp | 132 - .../runtime/core/src/osoa/sca/ComponentContext.h | 105 - .../core/src/osoa/sca/ComponentContextImpl.cpp | 270 -- .../core/src/osoa/sca/ComponentContextImpl.h | 120 - .../runtime/core/src/osoa/sca/ModuleContext.cpp | 93 - .../sca/runtime/core/src/osoa/sca/ModuleContext.h | 80 - .../core/src/osoa/sca/ModuleContextImpl.cpp | 102 - .../runtime/core/src/osoa/sca/ModuleContextImpl.h | 71 - .../sca/runtime/core/src/osoa/sca/SCA.cpp | 21 - .../sca/runtime/core/src/osoa/sca/ServiceList.cpp | 105 - .../sca/runtime/core/src/osoa/sca/ServiceList.h | 84 - .../core/src/osoa/sca/ServiceRuntimeException.cpp | 208 - .../core/src/osoa/sca/ServiceRuntimeException.h | 236 -- .../sca/runtime/core/src/osoa/sca/export.h | 39 - .../sca/runtime/core/src/osoa/sca/sca.h | 29 - .../tuscany/sca/core/ComponentServiceWrapper.cpp | 202 - .../src/tuscany/sca/core/ComponentServiceWrapper.h | 156 - .../tuscany/sca/core/ExternalServiceWrapper.cpp | 102 - .../src/tuscany/sca/core/ExternalServiceWrapper.h | 81 - .../core/src/tuscany/sca/core/Operation.cpp | 88 - .../runtime/core/src/tuscany/sca/core/Operation.h | 115 - .../core/src/tuscany/sca/core/SCAEntryPoint.cpp | 215 -- .../core/src/tuscany/sca/core/SCAEntryPoint.h | 126 - .../core/src/tuscany/sca/core/SCARuntime.cpp | 288 -- .../runtime/core/src/tuscany/sca/core/SCARuntime.h | 166 - .../core/src/tuscany/sca/core/ServiceProxy.cpp | 121 - .../core/src/tuscany/sca/core/ServiceProxy.h | 89 - .../core/src/tuscany/sca/core/ServiceWrapper.cpp | 55 - .../core/src/tuscany/sca/core/ServiceWrapper.h | 73 - .../runtime/core/src/tuscany/sca/model/Binding.cpp | 44 - .../runtime/core/src/tuscany/sca/model/Binding.h | 85 - .../src/tuscany/sca/model/CPPImplementation.cpp | 54 - .../core/src/tuscany/sca/model/CPPImplementation.h | 125 - .../core/src/tuscany/sca/model/CPPInterface.cpp | 67 - .../core/src/tuscany/sca/model/CPPInterface.h | 143 - .../core/src/tuscany/sca/model/Component.cpp | 303 -- .../runtime/core/src/tuscany/sca/model/Component.h | 202 - .../core/src/tuscany/sca/model/EntryPoint.cpp | 96 - .../core/src/tuscany/sca/model/EntryPoint.h | 138 - .../core/src/tuscany/sca/model/ExternalService.cpp | 55 - .../core/src/tuscany/sca/model/ExternalService.h | 97 - .../core/src/tuscany/sca/model/Implementation.cpp | 44 - .../core/src/tuscany/sca/model/Implementation.h | 66 - .../core/src/tuscany/sca/model/Interface.cpp | 44 - .../runtime/core/src/tuscany/sca/model/Interface.h | 65 - .../core/src/tuscany/sca/model/ModelLoader.cpp | 1555 -------- .../core/src/tuscany/sca/model/ModelLoader.h | 104 - .../runtime/core/src/tuscany/sca/model/Module.cpp | 235 -- .../runtime/core/src/tuscany/sca/model/Module.h | 235 -- .../runtime/core/src/tuscany/sca/model/Service.cpp | 47 - .../runtime/core/src/tuscany/sca/model/Service.h | 81 - .../src/tuscany/sca/model/ServiceReference.cpp | 89 - .../core/src/tuscany/sca/model/ServiceReference.h | 136 - .../core/src/tuscany/sca/model/Subsystem.cpp | 122 - .../runtime/core/src/tuscany/sca/model/Subsystem.h | 131 - .../runtime/core/src/tuscany/sca/model/System.cpp | 118 - .../runtime/core/src/tuscany/sca/model/System.h | 89 - .../core/src/tuscany/sca/model/WSBinding.cpp | 127 - .../runtime/core/src/tuscany/sca/model/WSBinding.h | 106 - .../runtime/core/src/tuscany/sca/model/Wire.cpp | 46 - .../sca/runtime/core/src/tuscany/sca/model/Wire.h | 91 - .../core/src/tuscany/sca/model/WireTarget.cpp | 49 - .../core/src/tuscany/sca/model/WireTarget.h | 106 - .../runtime/core/src/tuscany/sca/model/Wsdl.cpp | 345 -- .../sca/runtime/core/src/tuscany/sca/model/Wsdl.h | 132 - .../core/src/tuscany/sca/model/WsdlOperation.cpp | 57 - .../core/src/tuscany/sca/model/WsdlOperation.h | 117 - .../core/src/tuscany/sca/util/DefaultLogWriter.cpp | 43 - .../core/src/tuscany/sca/util/DefaultLogWriter.h | 46 - .../runtime/core/src/tuscany/sca/util/Exceptions.h | 48 - .../sca/runtime/core/src/tuscany/sca/util/File.cpp | 216 -- .../sca/runtime/core/src/tuscany/sca/util/File.h | 133 - .../runtime/core/src/tuscany/sca/util/Library.cpp | 119 - .../runtime/core/src/tuscany/sca/util/Library.h | 97 - .../core/src/tuscany/sca/util/LogWriter.cpp | 32 - .../runtime/core/src/tuscany/sca/util/LogWriter.h | 47 - .../runtime/core/src/tuscany/sca/util/Logger.cpp | 100 - .../sca/runtime/core/src/tuscany/sca/util/Logger.h | 89 - .../runtime/core/src/tuscany/sca/util/Logging.h | 72 - .../runtime/core/src/tuscany/sca/util/Utils.cpp | 212 -- .../sca/runtime/core/src/tuscany/sca/util/Utils.h | 61 - .../runtime/core/src/tuscany/sca/ws/SDOStub.cpp | 476 --- .../sca/runtime/core/src/tuscany/sca/ws/SDOStub.h | 143 - .../core/src/tuscany/sca/ws/WSServiceWrapper.cpp | 116 - .../core/src/tuscany/sca/ws/WSServiceWrapper.h | 48 - .../sca/runtime/core/test/CustomerInfo/.cdtbuild | 41 - .../sca/runtime/core/test/CustomerInfo/.cdtproject | 15 - .../sca/runtime/core/test/CustomerInfo/.project | 19 - .../org.eclipse.cdt.managedbuilder.core.prefs | 9 - .../runtime/core/test/CustomerInfo/CustomerInfo.h | 30 - .../core/test/CustomerInfo/CustomerInfoImpl.cpp | 79 - .../core/test/CustomerInfo/CustomerInfoImpl.h | 36 - .../sca/runtime/core/test/CustomerInfo/Makefile.am | 14 - .../sca/runtime/core/test/Makefile.am | 20 - .../sca/runtime/core/test/MyValue/.cdtbuild | 43 - .../sca/runtime/core/test/MyValue/.cdtproject | 15 - .../sca/runtime/core/test/MyValue/.project | 19 - .../org.eclipse.cdt.managedbuilder.core.prefs | 9 - .../sca/runtime/core/test/MyValue/Makefile.am | 17 - .../sca/runtime/core/test/MyValue/MyValue.h | 34 - .../sca/runtime/core/test/MyValue/MyValueImpl.cpp | 159 - .../sca/runtime/core/test/MyValue/MyValueImpl.h | 39 - .../runtime/core/test/MyValue/StockQuoteService.h | 32 - .../sca/runtime/core/test/src/.cdtbuild | 69 - .../sca/runtime/core/test/src/.cdtproject | 15 - .../sca/runtime/core/test/src/.project | 19 - .../org.eclipse.cdt.managedbuilder.core.prefs | 9 - .../sca/runtime/core/test/src/Makefile.am | 13 - .../sca/runtime/core/test/src/TestSCA.cpp | 77 - .../MyValueServiceModule/CustomerInfo.fragment | 36 - .../CustomerInfoImpl.componentType | 30 - .../MyValueServiceModule/MyValueImpl.componentType | 36 - .../MyValueServiceModule/StockQuoteService.wsdl | 157 - .../MyValueServiceModule/Tuscany-model.config | 24 - .../modules/MyValueServiceModule/sca.module | 51 - .../subsystems/SubSystem1/sca.subsystem | 27 - .../sca/samples/Calculator/Calculator.dsw | 53 - .../sca/samples/Calculator/Calculator.ncb | Bin 50176 -> 0 bytes .../sca/samples/Calculator/Calculator.opt | Bin 62976 -> 0 bytes .../samples/Calculator/CalculatorModule/.cdtbuild | 42 - .../Calculator/CalculatorModule/.cdtproject | 15 - .../samples/Calculator/CalculatorModule/.project | 19 - .../org.eclipse.cdt.managedbuilder.core.prefs | 6 - .../Calculator/CalculatorModule/Calculator.h | 33 - .../CalculatorModule/CalculatorImpl.componentType | 10 - .../Calculator/CalculatorModule/CalculatorImpl.cpp | 55 - .../Calculator/CalculatorModule/CalculatorImpl.h | 39 - .../CalculatorModule/CalculatorModule.dsp | 138 - .../CalculatorModule/CalculatorModule.plg | 39 - .../Calculator/CalculatorModule/Debug/makefile | 43 - .../Calculator/CalculatorModule/Debug/objects.mk | 7 - .../Calculator/CalculatorModule/Debug/sources.mk | 20 - .../Calculator/CalculatorModule/Debug/subdir.mk | 35 - .../samples/Calculator/CalculatorModule/sca.module | 11 - .../Calculator/CalculatorModule/sca.module.lin | 11 - .../CalculatorSubsystem/CalculatorSubsystem.dsp | 67 - .../Calculator/CalculatorSubsystem/sca.subsystem | 23 - .../sca/samples/Calculator/Client/.cdtbuild | 50 - .../sca/samples/Calculator/Client/.cdtproject | 15 - .../sca/samples/Calculator/Client/.project | 19 - .../org.eclipse.cdt.managedbuilder.core.prefs | 6 - .../sca/samples/Calculator/Client/Calc.cpp | 144 - .../sca/samples/Calculator/Client/Calculator.h | 33 - .../sca/samples/Calculator/Client/Client.dsp | 108 - .../sca/samples/Calculator/Client/Client.plg | 16 - .../sca/samples/Calculator/Client/Debug/makefile | 43 - .../sca/samples/Calculator/Client/Debug/objects.mk | 7 - .../sca/samples/Calculator/Client/Debug/sources.mk | 20 - .../sca/samples/Calculator/Client/Debug/subdir.mk | 29 - .../sca/samples/Calculator/Client/readme.txt | 53 - .../sca/samples/Calculator/Client/runclient.cmd | 14 - .../sca/samples/Calculator/build.sh | 75 - .../sca/samples/Calculator/pack_deploy.cmd | 27 - .../sca/samples/Calculator/runclient.sh | 53 - tags/cpp-stable-20060304/sca/scatest.sh | 51 - .../cpp-stable-20060304/sca/tools/scagen/build.xml | 130 - .../tools/scagen/docs/api/allclasses-frame.html | 84 - .../tools/scagen/docs/api/allclasses-noframe.html | 84 - .../sca/tools/scagen/docs/api/constant-values.html | 305 -- .../sca/tools/scagen/docs/api/deprecated-list.html | 138 - .../sca/tools/scagen/docs/api/help-doc.html | 197 - .../sca/tools/scagen/docs/api/index-all.html | 701 ---- .../sca/tools/scagen/docs/api/index.html | 26 - .../tuscany/sca/cpp/tools/common/BodyPart.html | 396 -- .../tuscany/sca/cpp/tools/common/CParsingTool.html | 389 -- .../sca/cpp/tools/common/Configuration.html | 373 -- .../sca/cpp/tools/common/DirectoryTree.html | 289 -- .../tuscany/sca/cpp/tools/common/FileActor.html | 231 -- .../tuscany/sca/cpp/tools/common/FilePart.html | 538 --- .../tuscany/sca/cpp/tools/common/Headers.html | 403 -- .../sca/cpp/tools/common/InputCppSourceCode.html | 297 -- .../tuscany/sca/cpp/tools/common/MethodPart.html | 307 -- .../tuscany/sca/cpp/tools/common/Options.html | 294 -- .../tuscany/sca/cpp/tools/common/Parameter.html | 392 -- .../sca/cpp/tools/common/ParsingException.html | 284 -- .../sca/cpp/tools/common/PrototypePart.html | 309 -- .../tuscany/sca/cpp/tools/common/Signature.html | 584 --- .../apache/tuscany/sca/cpp/tools/common/Utils.html | 411 -- .../sca/cpp/tools/common/class-use/BodyPart.html | 177 - .../cpp/tools/common/class-use/CParsingTool.html | 186 - .../cpp/tools/common/class-use/Configuration.html | 138 - .../cpp/tools/common/class-use/DirectoryTree.html | 138 - .../sca/cpp/tools/common/class-use/FileActor.html | 256 -- .../sca/cpp/tools/common/class-use/FilePart.html | 184 - .../sca/cpp/tools/common/class-use/Headers.html | 192 - .../tools/common/class-use/InputCppSourceCode.html | 138 - .../sca/cpp/tools/common/class-use/MethodPart.html | 138 - .../sca/cpp/tools/common/class-use/Options.html | 138 - .../sca/cpp/tools/common/class-use/Parameter.html | 192 - .../tools/common/class-use/ParsingException.html | 196 - .../cpp/tools/common/class-use/PrototypePart.html | 138 - .../sca/cpp/tools/common/class-use/Signature.html | 208 - .../sca/cpp/tools/common/class-use/Utils.html | 138 - .../sca/cpp/tools/common/package-frame.html | 78 - .../sca/cpp/tools/common/package-summary.html | 273 -- .../tuscany/sca/cpp/tools/common/package-tree.html | 162 - .../tuscany/sca/cpp/tools/common/package-use.html | 231 -- .../tools/services/ComponentDomNodeHandler.html | 303 -- .../tools/services/ComponentTypeFileHandler.html | 299 -- .../sca/cpp/tools/services/DirectoryScanner.html | 271 -- .../tuscany/sca/cpp/tools/services/DomHandler.html | 341 -- .../sca/cpp/tools/services/DomNodeHandler.html | 262 -- .../cpp/tools/services/GenericDomNodeHandler.html | 396 -- .../sca/cpp/tools/services/LittleClass.html | 231 -- .../services/ModuleOrFragmentFileHandler.html | 258 -- .../tools/services/ReferenceDomNodeHandler.html | 311 -- .../tuscany/sca/cpp/tools/services/Scagen.html | 344 -- .../cpp/tools/services/ServiceDomNodeHandler.html | 305 -- .../sca/cpp/tools/services/ServicesGenerator.html | 312 -- .../sca/cpp/tools/services/XMLFileActor.html | 469 --- .../class-use/ComponentDomNodeHandler.html | 138 - .../class-use/ComponentTypeFileHandler.html | 138 - .../tools/services/class-use/DirectoryScanner.html | 138 - .../cpp/tools/services/class-use/DomHandler.html | 138 - .../tools/services/class-use/DomNodeHandler.html | 212 -- .../services/class-use/GenericDomNodeHandler.html | 204 - .../cpp/tools/services/class-use/LittleClass.html | 138 - .../class-use/ModuleOrFragmentFileHandler.html | 138 - .../class-use/ReferenceDomNodeHandler.html | 138 - .../sca/cpp/tools/services/class-use/Scagen.html | 138 - .../services/class-use/ServiceDomNodeHandler.html | 138 - .../services/class-use/ServicesGenerator.html | 138 - .../cpp/tools/services/class-use/XMLFileActor.html | 186 - .../sca/cpp/tools/services/package-frame.html | 65 - .../sca/cpp/tools/services/package-summary.html | 364 -- .../sca/cpp/tools/services/package-tree.html | 162 - .../sca/cpp/tools/services/package-use.html | 179 - .../sca/tools/scagen/docs/api/overview-frame.html | 46 - .../tools/scagen/docs/api/overview-summary.html | 174 - .../sca/tools/scagen/docs/api/overview-tree.html | 167 - .../sca/tools/scagen/docs/api/package-list | 2 - .../sca/tools/scagen/docs/api/packages.html | 37 - .../tools/scagen/docs/api/resources/inherit.gif | Bin 57 -> 0 bytes .../sca/tools/scagen/docs/api/serialized-form.html | 159 - .../sca/tools/scagen/docs/api/stylesheet.css | 29 - .../sca/cpp/tools/junit/CalculatorTest.java | 29 - .../sca/cpp/tools/junit/EnvHandlerTest.java | 46 - .../tools/junit/ImplClassWithNameSpaceTest.java | 46 - ...ntfClassWithNameSpaceButNotInClassAttrTest.java | 46 - .../tools/junit/IntfClassWithNameSpaceTest.java | 46 - .../tools/junit/MissingModuleAndFragmentTest.java | 46 - .../junit/SimplePublicPrivateProtectedTest.java | 47 - .../sca/cpp/tools/junit/TestAllModulesTest.java | 82 - .../sca/cpp/tools/junit/TestDeployAssistTool.java | 94 - .../sca/cpp/tools/junit/TuscanyTestCase.java | 332 -- .../junit/scripts_for_standalone_testing/go.cmd | 2 - .../go_no_dir_option.cmd | 1 - .../go_no_input_dir.cmd | 1 - .../go_no_output_dir.cmd | 1 - .../refresh-tools-jar.cmd | 1 - .../CalculatorModuleAndComponent/Calculator.h | 32 - .../CalculatorImpl.componentType | 25 - .../CalculatorModuleAndComponent/CalculatorImpl.h | 33 - .../CalculatorModuleAndComponent/sca.module | 28 - .../otherSubFolder/CalculatorBack.h | 31 - .../otherSubFolder/CalculatorForward.h | 30 - .../CalculatorSlashDirectionTest/sca.module | 31 - .../subFolder/CalculatorBackImpl.componentType | 25 - .../subFolder/CalculatorBackImpl.h | 33 - .../subFolder/CalculatorForwardImpl.componentType | 25 - .../subFolder/CalculatorForwardImpl.h | 32 - .../CustomerInfo.fragment | 39 - .../CustomerInfo.h | 94 - .../CustomerInfoImpl.componentType | 33 - .../CustomerInfoImpl.h | 34 - .../CustomerInfo.fragment | 39 - .../CustomerInfo.h | 89 - .../CustomerInfoImpl.componentType | 33 - .../CustomerInfoImpl.h | 43 - .../MyValueServiceModule/CustomerInfo.fragment | 38 - .../modules/MyValueServiceModule/CustomerInfo.h | 36 - .../CustomerInfoImpl.componentType | 32 - .../MyValueServiceModule/CustomerInfoImpl.h | 46 - .../modules/MyValueServiceModule/MyValue.h | 35 - .../MyValueServiceModule/MyValueImpl.componentType | 38 - .../modules/MyValueServiceModule/MyValueImpl.hpp | 38 - .../MyValueImpl_stockQuote_Proxy.h | 34 - .../MyValueServiceModule/StockQuoteService.h | 33 - .../modules/MyValueServiceModule/sca.module | 59 - .../CustomerInfo.fragment | 38 - .../CustomerInfo.h | 37 - .../CustomerInfoImpl.componentType | 32 - .../CustomerInfoImpl.h | 47 - .../MyValue.h | 36 - .../MyValueImpl.componentType | 38 - .../MyValueImpl.hpp | 38 - .../MyValueImpl_stockQuote_Proxy.h | 34 - .../StockQuoteService.h | 32 - .../sca.module | 59 - .../MyValue.h | 39 - .../MyValueImpl.componentType | 28 - .../MyValueImpl.hpp | 38 - .../sca.module | 48 - .../MyValue.h | 37 - .../MyValueImpl.componentType | 28 - .../MyValueImpl.hpp | 38 - .../sca.module | 48 - .../CustomerInfo.fragmentX | 38 - .../sca.moduleX | 60 - .../CustomerInfo.fragment | 38 - .../MyValueServiceModuleTwoClasses/CustomerInfo.h | 36 - .../CustomerInfoImpl.componentType | 32 - .../CustomerInfoImpl.h | 45 - .../MyValueServiceModuleTwoClasses/MyValue.h | 35 - .../MyValueImpl.componentType | 38 - .../MyValueServiceModuleTwoClasses/MyValueImpl.hpp | 38 - .../MyValueImpl_stockQuote_Proxy.h | 34 - .../StockQuoteService.h | 32 - .../MyValueServiceModuleTwoClasses/sca.module | 59 - .../CustomerInfo.fragment | 39 - .../CustomerInfo.h | 40 - .../CustomerInfoImpl.componentType | 32 - .../CustomerInfoImpl.h | 34 - .../CalculatorImpl_CalculatorService_Proxy.cpp | 67 - .../CalculatorImpl_CalculatorService_Proxy.h | 34 - .../CalculatorImpl_CalculatorService_Wrapper.cpp | 71 - .../CalculatorImpl_CalculatorService_Wrapper.h | 36 - .../CalculatorBackImpl_CalculatorService_Proxy.cpp | 81 - .../CalculatorBackImpl_CalculatorService_Proxy.h | 35 - ...alculatorBackImpl_CalculatorService_Wrapper.cpp | 78 - .../CalculatorBackImpl_CalculatorService_Wrapper.h | 36 - ...lculatorForwardImpl_CalculatorService_Proxy.cpp | 81 - ...CalculatorForwardImpl_CalculatorService_Proxy.h | 35 - ...ulatorForwardImpl_CalculatorService_Wrapper.cpp | 78 - ...lculatorForwardImpl_CalculatorService_Wrapper.h | 36 - .../CustomerInfoImpl_CustomerInfoService_Proxy.cpp | 699 ---- .../CustomerInfoImpl_CustomerInfoService_Proxy.h | 83 - ...ustomerInfoImpl_CustomerInfoService_Wrapper.cpp | 449 --- .../CustomerInfoImpl_CustomerInfoService_Wrapper.h | 36 - .../CustomerInfoImpl_CustomerInfoService_Proxy.cpp | 556 --- .../CustomerInfoImpl_CustomerInfoService_Proxy.h | 79 - ...ustomerInfoImpl_CustomerInfoService_Wrapper.cpp | 376 -- .../CustomerInfoImpl_CustomerInfoService_Wrapper.h | 36 - ...CustomerInfoImpl2_CustomerInfoService_Proxy.cpp | 64 - .../CustomerInfoImpl2_CustomerInfoService_Proxy.h | 34 - ...stomerInfoImpl2_CustomerInfoService_Wrapper.cpp | 71 - ...CustomerInfoImpl2_CustomerInfoService_Wrapper.h | 36 - .../MyValueImpl_MyValueService_Proxy.cpp | 100 - .../MyValueImpl_MyValueService_Proxy.h | 37 - .../MyValueImpl_MyValueService_Wrapper.cpp | 89 - .../MyValueImpl_MyValueService_Wrapper.h | 36 - .../MyValueImpl_customerInfo_Proxy.cpp | 64 - .../MyValueImpl_customerInfo_Proxy.h | 34 - .../MyValueImpl_stockQuote_Proxy.cpp | 66 - .../expected_output/MyValueImpl_stockQuote_Proxy.h | 34 - .../CustomerInfoImpl_CustomerInfoService_Proxy.cpp | 64 - .../CustomerInfoImpl_CustomerInfoService_Proxy.h | 34 - ...ustomerInfoImpl_CustomerInfoService_Wrapper.cpp | 71 - .../CustomerInfoImpl_CustomerInfoService_Wrapper.h | 36 - .../MyValueImpl_MyValueService_Proxy.cpp | 100 - .../MyValueImpl_MyValueService_Proxy.h | 37 - .../MyValueImpl_MyValueService_Wrapper.cpp | 89 - .../MyValueImpl_MyValueService_Wrapper.h | 36 - .../MyValueImpl_customerInfo_Proxy.cpp | 64 - .../MyValueImpl_customerInfo_Proxy.h | 34 - .../MyValueImpl_stockQuote_Proxy.cpp | 66 - .../expected_output/MyValueImpl_stockQuote_Proxy.h | 34 - .../MyValueImpl_MyValueService_Proxy.cpp | 100 - .../MyValueImpl_MyValueService_Proxy.h | 37 - .../MyValueImpl_MyValueService_Wrapper.cpp | 89 - .../MyValueImpl_MyValueService_Wrapper.h | 36 - .../MyValueImpl_MyValueService_Proxy.cpp | 100 - .../MyValueImpl_MyValueService_Proxy.h | 37 - .../MyValueImpl_MyValueService_Wrapper.cpp | 89 - .../MyValueImpl_MyValueService_Wrapper.h | 36 - ...CustomerInfoImpl2_CustomerInfoService_Proxy.cpp | 64 - .../CustomerInfoImpl2_CustomerInfoService_Proxy.h | 34 - ...stomerInfoImpl2_CustomerInfoService_Wrapper.cpp | 71 - ...CustomerInfoImpl2_CustomerInfoService_Wrapper.h | 36 - .../MyValueImpl_MyValueService_Proxy.cpp | 100 - .../MyValueImpl_MyValueService_Proxy.h | 37 - .../MyValueImpl_MyValueService_Wrapper.cpp | 89 - .../MyValueImpl_MyValueService_Wrapper.h | 36 - .../MyValueImpl_customerInfo_Proxy.cpp | 64 - .../MyValueImpl_customerInfo_Proxy.h | 34 - .../MyValueImpl_stockQuote_Proxy.cpp | 66 - .../expected_output/MyValueImpl_stockQuote_Proxy.h | 34 - .../CustomerInfoImpl_CustomerInfoService_Proxy.cpp | 92 - .../CustomerInfoImpl_CustomerInfoService_Proxy.h | 36 - ...ustomerInfoImpl_CustomerInfoService_Wrapper.cpp | 88 - .../CustomerInfoImpl_CustomerInfoService_Wrapper.h | 36 - .../sca/tools/scagen/lib/readme.txt | 4 - .../sca/tools/scagen/scagen.cmd | 1 - .../cpp-stable-20060304/sca/tools/scagen/scagen.sh | 17 - .../tuscany/sca/cpp/tools/common/BodyPart.java | 90 - .../tuscany/sca/cpp/tools/common/CParsingTool.java | 119 - .../sca/cpp/tools/common/Configuration.java | 126 - .../sca/cpp/tools/common/DirectoryTree.java | 100 - .../tuscany/sca/cpp/tools/common/FileActor.java | 32 - .../tuscany/sca/cpp/tools/common/FilePart.java | 75 - .../tuscany/sca/cpp/tools/common/Headers.java | 162 - .../sca/cpp/tools/common/InputCppSourceCode.java | 412 -- .../tuscany/sca/cpp/tools/common/MacroPart.java | 82 - .../tuscany/sca/cpp/tools/common/MethodPart.java | 128 - .../tuscany/sca/cpp/tools/common/Options.java | 159 - .../tuscany/sca/cpp/tools/common/Parameter.java | 211 - .../sca/cpp/tools/common/ParsingException.java | 42 - .../sca/cpp/tools/common/PrototypePart.java | 51 - .../tuscany/sca/cpp/tools/common/Signature.java | 501 --- .../apache/tuscany/sca/cpp/tools/common/Utils.java | 543 --- .../tuscany/sca/cpp/tools/common/package.html | 39 - .../tools/services/ComponentDomNodeHandler.java | 352 -- .../tools/services/ComponentTypeFileHandler.java | 124 - .../sca/cpp/tools/services/DirectoryScanner.java | 87 - .../tuscany/sca/cpp/tools/services/DomHandler.java | 77 - .../sca/cpp/tools/services/DomNodeHandler.java | 40 - .../cpp/tools/services/GenericDomNodeHandler.java | 214 -- .../sca/cpp/tools/services/LittleClass.java | 27 - .../services/ModuleOrFragmentFileHandler.java | 85 - .../tools/services/ReferenceDomNodeHandler.java | 67 - .../tuscany/sca/cpp/tools/services/Scagen.java | 170 - .../cpp/tools/services/ServiceDomNodeHandler.java | 62 - .../sca/cpp/tools/services/ServicesGenerator.java | 802 ---- .../sca/cpp/tools/services/XMLFileActor.java | 202 - .../tuscany/sca/cpp/tools/services/package.html | 140 - .../cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl | 398 -- .../tools/services/xsl/SCA4CPPIntfProxyHeader.xsl | 215 -- .../tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl | 278 -- .../services/xsl/SCA4CPPIntfWrapperHeader.xsl | 178 - tags/cpp-stable-20060304/sca/xsd/readme.txt | 2 - .../sca/xsd/sca-binding-sca.xsd | 37 - .../sca/xsd/sca-binding-webservice.xsd | 38 - tags/cpp-stable-20060304/sca/xsd/sca-core.xsd | 240 -- .../sca/xsd/sca-implementation-cpp.xsd | 40 - .../sca/xsd/sca-implementation-java.xsd | 38 - .../sca/xsd/sca-interface-cpp.xsd | 50 - .../sca/xsd/sca-interface-java.xsd | 39 - .../sca/xsd/sca-interface-wsdl.xsd | 39 - tags/cpp-stable-20060304/sca/xsd/sca.xsd | 34 - tags/cpp-stable-20060304/sca/xsd/tuscany.xsd | 48 - tags/cpp-stable-20060304/sdo/AUTHORS | 0 tags/cpp-stable-20060304/sdo/COPYING | 203 - tags/cpp-stable-20060304/sdo/ChangeLog | 0 tags/cpp-stable-20060304/sdo/Committers Guide.txt | 69 - tags/cpp-stable-20060304/sdo/INSTALL | 17 - tags/cpp-stable-20060304/sdo/LICENSE | 203 - tags/cpp-stable-20060304/sdo/Makefile.am | 1 - tags/cpp-stable-20060304/sdo/NEWS | 0 tags/cpp-stable-20060304/sdo/README | 0 tags/cpp-stable-20060304/sdo/autogen.sh | 14 - tags/cpp-stable-20060304/sdo/build.sh | 31 - tags/cpp-stable-20060304/sdo/configure.ac | 42 - .../projects/tuscany_sdo/build_instructions.txt | 29 - .../tuscany_sdo/sdo_runtime/sdo_runtime.dsp | 718 ---- .../tuscany_sdo/sdo_runtime/sdo_runtime.plg | 333 -- .../tuscany_sdo/sdo_runtime/tuscany_sdo.ilk | Bin 2617388 -> 0 bytes .../tuscany_sdo/sdo_samples/sdo_samples.dsp | 129 - .../tuscany_sdo/sdo_samples/sdo_samples.plg | 64 - .../sdo/projects/tuscany_sdo/sdo_test/sdo_test.dsp | 117 - .../sdo/projects/tuscany_sdo/sdo_test/sdo_test.plg | 366 -- .../sdo/projects/tuscany_sdo/tuscany_sdo.dsw | 56 - .../sdo/projects/tuscany_sdo/tuscany_sdo.ncb | Bin 2860032 -> 0 bytes .../sdo/projects/tuscany_sdo/tuscany_sdo.opt | Bin 60928 -> 0 bytes tags/cpp-stable-20060304/sdo/readme.txt | 72 - tags/cpp-stable-20060304/sdo/runtime/Makefile.am | 1 - .../sdo/runtime/core/Makefile.am | 1 - .../sdo/runtime/core/samples/ChangeSummarySave.cpp | 185 - .../sdo/runtime/core/samples/ChangeSummarySave.xsd | 30 - .../sdo/runtime/core/samples/ObjectCreation.cpp | 249 -- .../sdo/runtime/core/samples/Query.cpp | 176 - .../sdo/runtime/core/samples/Substitutes.cpp | 118 - .../sdo/runtime/core/samples/XSDLoading.cpp | 108 - .../sdo/runtime/core/samples/XSDLoading.xml | 11 - .../sdo/runtime/core/samples/XSDLoading.xsd | 29 - .../sdo/runtime/core/samples/companysubs.xsd | 44 - .../sdo/runtime/core/samples/samples.cpp | 34 - .../sdo/runtime/core/samples/samples.h | 50 - .../sdo/runtime/core/src/.cdtbuild | 43 - .../sdo/runtime/core/src/.cdtproject | 15 - .../sdo/runtime/core/src/.project | 19 - .../org.eclipse.cdt.managedbuilder.core.prefs | 9 - .../sdo/runtime/core/src/Makefile.am | 81 - .../sdo/runtime/core/src/commonj/Makefile.am | 1 - .../runtime/core/src/commonj/sdo/ChangeSummary.cpp | 28 - .../runtime/core/src/commonj/sdo/ChangeSummary.h | 208 - .../core/src/commonj/sdo/ChangeSummaryBuilder.cpp | 1144 ------ .../core/src/commonj/sdo/ChangeSummaryBuilder.h | 300 -- .../core/src/commonj/sdo/ChangeSummaryImpl.cpp | 1587 -------- .../core/src/commonj/sdo/ChangeSummaryImpl.h | 404 -- .../core/src/commonj/sdo/ChangedDataObjectList.h | 91 - .../src/commonj/sdo/ChangedDataObjectListImpl.cpp | 248 -- .../src/commonj/sdo/ChangedDataObjectListImpl.h | 97 - .../runtime/core/src/commonj/sdo/CopyHelper.cpp | 258 -- .../sdo/runtime/core/src/commonj/sdo/CopyHelper.h | 69 - .../runtime/core/src/commonj/sdo/DASProperty.cpp | 32 - .../sdo/runtime/core/src/commonj/sdo/DASProperty.h | 46 - .../sdo/runtime/core/src/commonj/sdo/DASType.cpp | 32 - .../sdo/runtime/core/src/commonj/sdo/DASType.h | 53 - .../sdo/runtime/core/src/commonj/sdo/DASValue.cpp | 52 - .../sdo/runtime/core/src/commonj/sdo/DASValue.h | 52 - .../sdo/runtime/core/src/commonj/sdo/DASValues.cpp | 68 - .../sdo/runtime/core/src/commonj/sdo/DASValues.h | 57 - .../runtime/core/src/commonj/sdo/DataFactory.cpp | 52 - .../sdo/runtime/core/src/commonj/sdo/DataFactory.h | 501 --- .../core/src/commonj/sdo/DataFactoryImpl.cpp | 1237 ------ .../runtime/core/src/commonj/sdo/DataFactoryImpl.h | 388 -- .../sdo/runtime/core/src/commonj/sdo/DataGraph.cpp | 33 - .../sdo/runtime/core/src/commonj/sdo/DataGraph.h | 99 - .../runtime/core/src/commonj/sdo/DataGraphImpl.cpp | 117 - .../runtime/core/src/commonj/sdo/DataGraphImpl.h | 106 - .../runtime/core/src/commonj/sdo/DataObject.cpp | 31 - .../sdo/runtime/core/src/commonj/sdo/DataObject.h | 540 --- .../core/src/commonj/sdo/DataObjectImpl.cpp | 3633 ------------------ .../runtime/core/src/commonj/sdo/DataObjectImpl.h | 668 ---- .../core/src/commonj/sdo/DataObjectInstance.cpp | 69 - .../core/src/commonj/sdo/DataObjectInstance.h | 62 - .../core/src/commonj/sdo/DataObjectList.cpp | 41 - .../runtime/core/src/commonj/sdo/DataObjectList.h | 192 - .../core/src/commonj/sdo/DataObjectListImpl.cpp | 1027 ----- .../core/src/commonj/sdo/DataObjectListImpl.h | 191 - .../core/src/commonj/sdo/DefaultLogWriter.cpp | 53 - .../core/src/commonj/sdo/DefaultLogWriter.h | 52 - .../core/src/commonj/sdo/EqualityHelper.cpp | 370 -- .../runtime/core/src/commonj/sdo/EqualityHelper.h | 97 - .../core/src/commonj/sdo/HelperProvider.cpp | 47 - .../runtime/core/src/commonj/sdo/HelperProvider.h | 65 - .../sdo/runtime/core/src/commonj/sdo/LogWriter.cpp | 32 - .../sdo/runtime/core/src/commonj/sdo/LogWriter.h | 44 - .../sdo/runtime/core/src/commonj/sdo/Logger.cpp | 100 - .../sdo/runtime/core/src/commonj/sdo/Logger.h | 69 - .../sdo/runtime/core/src/commonj/sdo/Logging.h | 170 - .../sdo/runtime/core/src/commonj/sdo/Makefile.am | 81 - .../core/src/commonj/sdo/ParserErrorSetter.cpp | 38 - .../core/src/commonj/sdo/ParserErrorSetter.h | 48 - .../sdo/runtime/core/src/commonj/sdo/Property.cpp | 42 - .../sdo/runtime/core/src/commonj/sdo/Property.h | 193 - .../core/src/commonj/sdo/PropertyDefinition.cpp | 44 - .../core/src/commonj/sdo/PropertyDefinition.h | 88 - .../runtime/core/src/commonj/sdo/PropertyImpl.cpp | 536 --- .../runtime/core/src/commonj/sdo/PropertyImpl.h | 277 -- .../runtime/core/src/commonj/sdo/PropertyList.cpp | 93 - .../runtime/core/src/commonj/sdo/PropertyList.h | 87 - .../core/src/commonj/sdo/PropertySetting.cpp | 42 - .../runtime/core/src/commonj/sdo/PropertySetting.h | 60 - .../core/src/commonj/sdo/RefCountingObject.cpp | 74 - .../core/src/commonj/sdo/RefCountingObject.h | 59 - .../core/src/commonj/sdo/RefCountingPointer.cpp | 153 - .../core/src/commonj/sdo/RefCountingPointer.h | 179 - .../runtime/core/src/commonj/sdo/SAX2Attribute.cpp | 49 - .../runtime/core/src/commonj/sdo/SAX2Attribute.h | 64 - .../core/src/commonj/sdo/SAX2Attributes.cpp | 92 - .../runtime/core/src/commonj/sdo/SAX2Attributes.h | 72 - .../core/src/commonj/sdo/SAX2Namespaces.cpp | 93 - .../runtime/core/src/commonj/sdo/SAX2Namespaces.h | 67 - .../runtime/core/src/commonj/sdo/SAX2Parser.cpp | 415 -- .../sdo/runtime/core/src/commonj/sdo/SAX2Parser.h | 103 - .../sdo/runtime/core/src/commonj/sdo/SDO.h | 56 - .../sdo/runtime/core/src/commonj/sdo/SDODate.cpp | 52 - .../sdo/runtime/core/src/commonj/sdo/SDODate.h | 77 - .../core/src/commonj/sdo/SDORuntimeException.cpp | 227 -- .../core/src/commonj/sdo/SDORuntimeException.h | 500 --- .../runtime/core/src/commonj/sdo/SDOSAX2Parser.cpp | 1303 ------- .../runtime/core/src/commonj/sdo/SDOSAX2Parser.h | 169 - .../sdo/runtime/core/src/commonj/sdo/SDOSPI.h | 25 - .../core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp | 1080 ------ .../core/src/commonj/sdo/SDOSchemaSAX2Parser.h | 181 - .../sdo/runtime/core/src/commonj/sdo/SDOUtils.cpp | 142 - .../sdo/runtime/core/src/commonj/sdo/SDOUtils.h | 51 - .../core/src/commonj/sdo/SDOXMLBufferWriter.cpp | 55 - .../core/src/commonj/sdo/SDOXMLBufferWriter.h | 51 - .../core/src/commonj/sdo/SDOXMLFileWriter.cpp | 44 - .../core/src/commonj/sdo/SDOXMLFileWriter.h | 52 - .../core/src/commonj/sdo/SDOXMLStreamWriter.cpp | 50 - .../core/src/commonj/sdo/SDOXMLStreamWriter.h | 54 - .../runtime/core/src/commonj/sdo/SDOXMLString.cpp | 223 -- .../runtime/core/src/commonj/sdo/SDOXMLString.h | 91 - .../runtime/core/src/commonj/sdo/SDOXMLWriter.cpp | 1173 ------ .../runtime/core/src/commonj/sdo/SDOXMLWriter.h | 117 - .../core/src/commonj/sdo/SDOXSDBufferWriter.cpp | 53 - .../core/src/commonj/sdo/SDOXSDBufferWriter.h | 52 - .../core/src/commonj/sdo/SDOXSDFileWriter.cpp | 43 - .../core/src/commonj/sdo/SDOXSDFileWriter.h | 51 - .../core/src/commonj/sdo/SDOXSDStreamWriter.cpp | 51 - .../core/src/commonj/sdo/SDOXSDStreamWriter.h | 55 - .../runtime/core/src/commonj/sdo/SDOXSDWriter.cpp | 840 ---- .../runtime/core/src/commonj/sdo/SDOXSDWriter.h | 75 - .../runtime/core/src/commonj/sdo/SchemaInfo.cpp | 35 - .../sdo/runtime/core/src/commonj/sdo/SchemaInfo.h | 59 - .../sdo/runtime/core/src/commonj/sdo/SdoCheck.cpp | 27 - .../sdo/runtime/core/src/commonj/sdo/SdoCheck.h | 33 - .../runtime/core/src/commonj/sdo/SdoRuntime.cpp | 64 - .../sdo/runtime/core/src/commonj/sdo/SdoRuntime.h | 74 - .../sdo/runtime/core/src/commonj/sdo/Sequence.cpp | 36 - .../sdo/runtime/core/src/commonj/sdo/Sequence.h | 309 -- .../runtime/core/src/commonj/sdo/SequenceImpl.cpp | 969 ----- .../runtime/core/src/commonj/sdo/SequenceImpl.h | 375 -- .../sdo/runtime/core/src/commonj/sdo/Setting.cpp | 303 -- .../sdo/runtime/core/src/commonj/sdo/Setting.h | 149 - .../runtime/core/src/commonj/sdo/SettingList.cpp | 113 - .../sdo/runtime/core/src/commonj/sdo/SettingList.h | 75 - .../sdo/runtime/core/src/commonj/sdo/Type.cpp | 36 - .../sdo/runtime/core/src/commonj/sdo/Type.h | 226 -- .../core/src/commonj/sdo/TypeDefinition.cpp | 42 - .../runtime/core/src/commonj/sdo/TypeDefinition.h | 77 - .../core/src/commonj/sdo/TypeDefinitions.cpp | 39 - .../runtime/core/src/commonj/sdo/TypeDefinitions.h | 53 - .../sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp | 3125 --------------- .../sdo/runtime/core/src/commonj/sdo/TypeImpl.h | 307 -- .../sdo/runtime/core/src/commonj/sdo/TypeList.cpp | 84 - .../sdo/runtime/core/src/commonj/sdo/TypeList.h | 56 - .../runtime/core/src/commonj/sdo/XMLDocument.cpp | 31 - .../sdo/runtime/core/src/commonj/sdo/XMLDocument.h | 145 - .../core/src/commonj/sdo/XMLDocumentImpl.cpp | 69 - .../runtime/core/src/commonj/sdo/XMLDocumentImpl.h | 95 - .../sdo/runtime/core/src/commonj/sdo/XMLHelper.cpp | 34 - .../sdo/runtime/core/src/commonj/sdo/XMLHelper.h | 142 - .../runtime/core/src/commonj/sdo/XMLHelperImpl.cpp | 303 -- .../runtime/core/src/commonj/sdo/XMLHelperImpl.h | 140 - .../sdo/runtime/core/src/commonj/sdo/XMLQName.cpp | 84 - .../sdo/runtime/core/src/commonj/sdo/XMLQName.h | 66 - .../sdo/runtime/core/src/commonj/sdo/XSDHelper.cpp | 33 - .../sdo/runtime/core/src/commonj/sdo/XSDHelper.h | 120 - .../runtime/core/src/commonj/sdo/XSDHelperImpl.cpp | 601 --- .../runtime/core/src/commonj/sdo/XSDHelperImpl.h | 143 - .../core/src/commonj/sdo/XSDPropertyInfo.cpp | 53 - .../runtime/core/src/commonj/sdo/XSDPropertyInfo.h | 59 - .../runtime/core/src/commonj/sdo/XSDTypeInfo.cpp | 52 - .../sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.h | 52 - .../runtime/core/src/commonj/sdo/XpathHelper.cpp | 50 - .../sdo/runtime/core/src/commonj/sdo/XpathHelper.h | 53 - .../runtime/core/src/commonj/sdo/disable_warn.h | 27 - .../sdo/runtime/core/src/commonj/sdo/export.h | 47 - .../sdo/runtime/core/test/.cdtbuild | 59 - .../sdo/runtime/core/test/.cdtproject | 15 - .../sdo/runtime/core/test/.project | 19 - .../org.eclipse.cdt.managedbuilder.core.prefs | 9 - .../sdo/runtime/core/test/47293Catalog.xml | 2 - .../sdo/runtime/core/test/47293Catalog.xsd | 15 - .../sdo/runtime/core/test/47293Customer.xsd | 31 - .../sdo/runtime/core/test/47293Order.xsd | 47 - .../sdo/runtime/core/test/Catalog.xsd | 15 - .../sdo/runtime/core/test/Customer.xsd | 28 - .../sdo/runtime/core/test/Makefile.am | 11 - .../sdo/runtime/core/test/Order.xsd | 39 - .../sdo/runtime/core/test/StockQuoteService.wsdl | 157 - .../sdo/runtime/core/test/axis.xsd | 20 - .../sdo/runtime/core/test/b46617b.xml | 8 - .../sdo/runtime/core/test/b46617b.xsd | 54 - .../sdo/runtime/core/test/b46693.xsd | 157 - .../sdo/runtime/core/test/company.xsd | 30 - .../runtime/core/test/company_with_nillable_SN.xml | 11 - .../runtime/core/test/company_with_nillable_SN.xsd | 29 - .../sdo/runtime/core/test/companyabs.xsd | 44 - .../sdo/runtime/core/test/companyref.xsd | 47 - .../sdo/runtime/core/test/companysubs.xsd | 44 - .../sdo/runtime/core/test/doctest.xml | 8 - .../sdo/runtime/core/test/doctest.xsd | 28 - .../sdo/runtime/core/test/error1.xml | 11 - .../sdo/runtime/core/test/error1.xsd | 29 - .../sdo/runtime/core/test/g3.xsd | 21 - .../sdo/runtime/core/test/graham1.xsd | 21 - .../sdo/runtime/core/test/graham2.xsd | 20 - .../sdo/runtime/core/test/graham3.xsd | 22 - .../sdo/runtime/core/test/include.xsd | 14 - .../sdo/runtime/core/test/include1.xsd | 18 - .../sdo/runtime/core/test/include2.xsd | 17 - .../sdo/runtime/core/test/includeother3.xsd | 14 - .../sdo/runtime/core/test/many.xml | 14 - .../sdo/runtime/core/test/many.xsd | 1 - .../sdo/runtime/core/test/my-core.xsd | 21 - .../core/test/my-implementation-local-java.xsd | 24 - .../sdo/runtime/core/test/my.xsd | 11 - .../sdo/runtime/core/test/openloadNS.xml | 13 - .../sdo/runtime/core/test/openloadNS.xsd | 33 - .../sdo/runtime/core/test/openloadNS2.xml | 13 - .../sdo/runtime/core/test/openloadNS2.xsd | 8 - .../sdo/runtime/core/test/partial.xml | 14 - .../sdo/runtime/core/test/sca-binding-sca.xsd | 22 - .../runtime/core/test/sca-binding-webservice.xsd | 21 - .../sdo/runtime/core/test/sca-binding-ws.xsd | 22 - .../sdo/runtime/core/test/sca-core.xsd | 214 -- .../runtime/core/test/sca-implementation-dll.xsd | 22 - .../runtime/core/test/sca-implementation-java.xsd | 22 - .../core/test/sca-implementation-local-java.xsd | 24 - .../sdo/runtime/core/test/sca-interface-cpp.xsd | 49 - .../sdo/runtime/core/test/sca-interface-java.xsd | 24 - .../sdo/runtime/core/test/sca-interface-wsdl.xsd | 23 - .../sdo/runtime/core/test/sca-property-java.xsd | 23 - .../sdo/runtime/core/test/sca-property-xsd.xsd | 22 - .../sdo/runtime/core/test/sca.xsd | 22 - .../sdo/runtime/core/test/sdotest.cpp | 4028 -------------------- .../sdo/runtime/core/test/sdotest.h | 123 - .../sdo/runtime/core/test/sdotest2.cpp | 3937 ------------------- .../sdo/runtime/core/test/t2/include3.xsd | 14 - .../sdo/runtime/core/test/t2/includeother.xsd | 14 - .../sdo/runtime/core/test/t2/includeother1.xsd | 18 - .../sdo/runtime/core/test/t2/includeother2.xsd | 17 - .../sdo/runtime/core/test/testopen3.xml | 1 - tags/cpp-stable-20060304/sdo/sdotest.sh | 27 - 1502 files changed, 100024 insertions(+), 100024 deletions(-) create mode 100755 sca-cpp/tags/cpp-stable-20060304/build.sh create mode 100644 sca-cpp/tags/cpp-stable-20060304/build.txt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/AUTHORS create mode 100755 sca-cpp/tags/cpp-stable-20060304/sca/COPYING create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/ChangeLog create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/Developers Guide.txt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/INSTALL create mode 100755 sca-cpp/tags/cpp-stable-20060304/sca/LICENSE create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/NEWS create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/README create mode 100755 sca-cpp/tags/cpp-stable-20060304/sca/autogen.sh create mode 100755 sca-cpp/tags/cpp-stable-20060304/sca/build.sh create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/configure.ac create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.dsw create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.ncb create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.opt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/Build Instructions.txt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.plg create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.plg create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.plg create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/sca.module create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/subsystems/SubSystem1/sca.subsystem create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.plg create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.plg create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.plg create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/readme.txt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtbuild create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtproject create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.project create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtbuild create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtproject create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.project create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtbuild create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtproject create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.project create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/SCA.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceList.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceList.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceRuntimeException.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceRuntimeException.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/export.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/sca.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Exceptions.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/File.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/File.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logging.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Utils.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Utils.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtbuild create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtproject create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.project create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfo.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.cdtbuild create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.cdtproject create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.project create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValue.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValueImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValueImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/StockQuoteService.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtbuild create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtproject create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.project create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/TestSCA.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/sca.module create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/subsystems/SubSystem1/sca.subsystem create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.dsw create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.ncb create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.opt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtbuild create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtproject create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.project create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Calculator.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.plg create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/makefile create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/objects.mk create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/sources.mk create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/subdir.mk create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module.lin create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/CalculatorSubsystem.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/sca.subsystem create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtbuild create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtproject create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.project create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calc.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calculator.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.plg create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/makefile create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/objects.mk create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/sources.mk create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/subdir.mk create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/readme.txt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/runclient.cmd create mode 100755 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/build.sh create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/pack_deploy.cmd create mode 100755 sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/runclient.sh create mode 100755 sca-cpp/tags/cpp-stable-20060304/sca/scatest.sh create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/build.xml create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-frame.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-noframe.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/constant-values.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/deprecated-list.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/help-doc.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index-all.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/BodyPart.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Configuration.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FileActor.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FilePart.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Headers.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/MethodPart.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Options.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Parameter.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/ParsingException.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Signature.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Utils.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/BodyPart.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/CParsingTool.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Configuration.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/DirectoryTree.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FileActor.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FilePart.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Headers.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/InputCppSourceCode.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/MethodPart.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Options.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Parameter.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/ParsingException.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/PrototypePart.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Signature.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Utils.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-frame.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-summary.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-tree.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-use.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/LittleClass.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/Scagen.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentDomNodeHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentTypeFileHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DirectoryScanner.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomNodeHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/GenericDomNodeHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/LittleClass.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ModuleOrFragmentFileHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ReferenceDomNodeHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/Scagen.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServiceDomNodeHandler.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServicesGenerator.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/XMLFileActor.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-frame.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-summary.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-tree.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-use.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-frame.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-summary.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-tree.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/package-list create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/packages.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/resources/inherit.gif create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/serialized-form.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/stylesheet.css create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/CalculatorTest.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/EnvHandlerTest.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceTest.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceButNotInClassAttrTest.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceTest.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/MissingModuleAndFragmentTest.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/SimplePublicPrivateProtectedTest.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllModulesTest.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestDeployAssistTool.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TuscanyTestCase.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go.cmd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_dir_option.cmd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_input_dir.cmd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_output_dir.cmd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/refresh-tools-jar.cmd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/Calculator.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/sca.module create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorBack.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorForward.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/sca.module create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.fragment create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.fragment create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.fragment create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValue.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.hpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl_stockQuote_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/StockQuoteService.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/sca.module create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.fragment create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValue.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.hpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl_stockQuote_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/StockQuoteService.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/sca.module create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValue.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.hpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/sca.module create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValue.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/sca.module create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/CustomerInfo.fragmentX create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/sca.moduleX create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.fragment create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValue.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.hpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl_stockQuote_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/StockQuoteService.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/sca.module create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.fragment create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.componentType create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/lib/readme.txt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/scagen.cmd create mode 100755 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/scagen.sh create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/BodyPart.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Configuration.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FileActor.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FilePart.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Headers.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MacroPart.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MethodPart.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Options.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Parameter.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/ParsingException.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Signature.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Utils.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/package.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomHandler.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/LittleClass.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/Scagen.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.java create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/package.html create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/xsd/readme.txt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-binding-sca.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-binding-webservice.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-core.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-implementation-cpp.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-implementation-java.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-cpp.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-java.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-wsdl.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sca/xsd/tuscany.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/AUTHORS create mode 100755 sca-cpp/tags/cpp-stable-20060304/sdo/COPYING create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/ChangeLog create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/Committers Guide.txt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/INSTALL create mode 100755 sca-cpp/tags/cpp-stable-20060304/sdo/LICENSE create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/NEWS create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/README create mode 100755 sca-cpp/tags/cpp-stable-20060304/sdo/autogen.sh create mode 100755 sca-cpp/tags/cpp-stable-20060304/sdo/build.sh create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/configure.ac create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/build_instructions.txt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.plg create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/tuscany_sdo.ilk create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.plg create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.dsp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.plg create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.dsw create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.ncb create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.opt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/readme.txt create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ObjectCreation.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/Query.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/Substitutes.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xml create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/companysubs.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtbuild create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtproject create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.project create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectList.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logging.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDO.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDORuntimeException.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDORuntimeException.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSPI.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOUtils.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOUtils.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLBufferWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLBufferWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/disable_warn.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/export.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtbuild create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtproject create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.project create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xml create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Customer.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Order.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Catalog.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Customer.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Makefile.am create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Order.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/StockQuoteService.wsdl create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/axis.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xml create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46693.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xml create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companyabs.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companyref.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companysubs.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xml create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xml create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/g3.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham1.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham2.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham3.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include1.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include2.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/includeother3.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xml create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my-core.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my-implementation-local-java.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xml create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xml create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/partial.xml create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-sca.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-webservice.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-ws.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-core.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-dll.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-java.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-local-java.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-cpp.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-java.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-wsdl.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-java.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-xsd.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.h create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest2.cpp create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/include3.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother1.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother2.xsd create mode 100644 sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/testopen3.xml create mode 100755 sca-cpp/tags/cpp-stable-20060304/sdo/sdotest.sh delete mode 100755 tags/cpp-stable-20060304/build.sh delete mode 100644 tags/cpp-stable-20060304/build.txt delete mode 100644 tags/cpp-stable-20060304/sca/AUTHORS delete mode 100755 tags/cpp-stable-20060304/sca/COPYING delete mode 100644 tags/cpp-stable-20060304/sca/ChangeLog delete mode 100644 tags/cpp-stable-20060304/sca/Developers Guide.txt delete mode 100644 tags/cpp-stable-20060304/sca/INSTALL delete mode 100755 tags/cpp-stable-20060304/sca/LICENSE delete mode 100644 tags/cpp-stable-20060304/sca/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/NEWS delete mode 100644 tags/cpp-stable-20060304/sca/README delete mode 100755 tags/cpp-stable-20060304/sca/autogen.sh delete mode 100755 tags/cpp-stable-20060304/sca/build.sh delete mode 100644 tags/cpp-stable-20060304/sca/configure.ac delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.dsw delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.ncb delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.opt delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/Build Instructions.txt delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.dsp delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.plg delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.dsp delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.plg delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.dsp delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.plg delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/sca.module delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/subsystems/SubSystem1/sca.subsystem delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.dsp delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.plg delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.dsp delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.plg delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.dsp delete mode 100644 tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.plg delete mode 100644 tags/cpp-stable-20060304/sca/readme.txt delete mode 100644 tags/cpp-stable-20060304/sca/runtime/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtbuild delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtproject delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.project delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtbuild delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtproject delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.project delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/.cdtbuild delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/.cdtproject delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/.project delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/SCA.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceList.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceList.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceRuntimeException.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceRuntimeException.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/export.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/sca.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Exceptions.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/File.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/File.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logging.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Utils.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Utils.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtbuild delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtproject delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.project delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.settings/org.eclipse.cdt.managedbuilder.core.prefs delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfo.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.cdtbuild delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.cdtproject delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.project delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.settings/org.eclipse.cdt.managedbuilder.core.prefs delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValue.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValueImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValueImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/StockQuoteService.h delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtbuild delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtproject delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/src/.project delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/src/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/src/TestSCA.cpp delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/sca.module delete mode 100644 tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/subsystems/SubSystem1/sca.subsystem delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.dsw delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.ncb delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.opt delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtbuild delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtproject delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.project delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.settings/org.eclipse.cdt.managedbuilder.core.prefs delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Calculator.h delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.dsp delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.plg delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/makefile delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/objects.mk delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/sources.mk delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/subdir.mk delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module.lin delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/CalculatorSubsystem.dsp delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/sca.subsystem delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtbuild delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtproject delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/.project delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/.settings/org.eclipse.cdt.managedbuilder.core.prefs delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calc.cpp delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calculator.h delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.dsp delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.plg delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/makefile delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/objects.mk delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/sources.mk delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/subdir.mk delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/readme.txt delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/Client/runclient.cmd delete mode 100755 tags/cpp-stable-20060304/sca/samples/Calculator/build.sh delete mode 100644 tags/cpp-stable-20060304/sca/samples/Calculator/pack_deploy.cmd delete mode 100755 tags/cpp-stable-20060304/sca/samples/Calculator/runclient.sh delete mode 100755 tags/cpp-stable-20060304/sca/scatest.sh delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/build.xml delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-frame.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-noframe.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/constant-values.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/deprecated-list.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/help-doc.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index-all.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/BodyPart.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Configuration.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FileActor.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FilePart.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Headers.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/MethodPart.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Options.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Parameter.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/ParsingException.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Signature.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Utils.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/BodyPart.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/CParsingTool.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Configuration.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/DirectoryTree.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FileActor.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FilePart.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Headers.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/InputCppSourceCode.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/MethodPart.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Options.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Parameter.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/ParsingException.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/PrototypePart.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Signature.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Utils.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-frame.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-summary.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-tree.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-use.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/LittleClass.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/Scagen.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentDomNodeHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentTypeFileHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DirectoryScanner.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomNodeHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/GenericDomNodeHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/LittleClass.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ModuleOrFragmentFileHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ReferenceDomNodeHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/Scagen.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServiceDomNodeHandler.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServicesGenerator.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/XMLFileActor.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-frame.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-summary.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-tree.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-use.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-frame.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-summary.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-tree.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/package-list delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/packages.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/resources/inherit.gif delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/serialized-form.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/docs/api/stylesheet.css delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/CalculatorTest.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/EnvHandlerTest.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceTest.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceButNotInClassAttrTest.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceTest.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/MissingModuleAndFragmentTest.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/SimplePublicPrivateProtectedTest.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllModulesTest.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestDeployAssistTool.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TuscanyTestCase.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go.cmd delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_dir_option.cmd delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_input_dir.cmd delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_output_dir.cmd delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/refresh-tools-jar.cmd delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/Calculator.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/sca.module delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorBack.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorForward.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/sca.module delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.fragment delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.fragment delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.fragment delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValue.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.hpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl_stockQuote_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/StockQuoteService.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/sca.module delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.fragment delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValue.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.hpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl_stockQuote_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/StockQuoteService.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/sca.module delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValue.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.hpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/sca.module delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValue.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/sca.module delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/CustomerInfo.fragmentX delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/sca.moduleX delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.fragment delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValue.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.hpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl_stockQuote_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/StockQuoteService.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/sca.module delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.fragment delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.componentType delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/lib/readme.txt delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/scagen.cmd delete mode 100755 tags/cpp-stable-20060304/sca/tools/scagen/scagen.sh delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/BodyPart.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Configuration.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FileActor.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FilePart.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Headers.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MacroPart.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MethodPart.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Options.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Parameter.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/ParsingException.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Signature.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Utils.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/package.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomHandler.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/LittleClass.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/Scagen.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.java delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/package.html delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl delete mode 100644 tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl delete mode 100644 tags/cpp-stable-20060304/sca/xsd/readme.txt delete mode 100644 tags/cpp-stable-20060304/sca/xsd/sca-binding-sca.xsd delete mode 100644 tags/cpp-stable-20060304/sca/xsd/sca-binding-webservice.xsd delete mode 100644 tags/cpp-stable-20060304/sca/xsd/sca-core.xsd delete mode 100644 tags/cpp-stable-20060304/sca/xsd/sca-implementation-cpp.xsd delete mode 100644 tags/cpp-stable-20060304/sca/xsd/sca-implementation-java.xsd delete mode 100644 tags/cpp-stable-20060304/sca/xsd/sca-interface-cpp.xsd delete mode 100644 tags/cpp-stable-20060304/sca/xsd/sca-interface-java.xsd delete mode 100644 tags/cpp-stable-20060304/sca/xsd/sca-interface-wsdl.xsd delete mode 100644 tags/cpp-stable-20060304/sca/xsd/sca.xsd delete mode 100644 tags/cpp-stable-20060304/sca/xsd/tuscany.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/AUTHORS delete mode 100755 tags/cpp-stable-20060304/sdo/COPYING delete mode 100644 tags/cpp-stable-20060304/sdo/ChangeLog delete mode 100644 tags/cpp-stable-20060304/sdo/Committers Guide.txt delete mode 100644 tags/cpp-stable-20060304/sdo/INSTALL delete mode 100755 tags/cpp-stable-20060304/sdo/LICENSE delete mode 100644 tags/cpp-stable-20060304/sdo/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sdo/NEWS delete mode 100644 tags/cpp-stable-20060304/sdo/README delete mode 100755 tags/cpp-stable-20060304/sdo/autogen.sh delete mode 100755 tags/cpp-stable-20060304/sdo/build.sh delete mode 100644 tags/cpp-stable-20060304/sdo/configure.ac delete mode 100644 tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/build_instructions.txt delete mode 100644 tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.dsp delete mode 100644 tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.plg delete mode 100644 tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/tuscany_sdo.ilk delete mode 100644 tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.dsp delete mode 100644 tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.plg delete mode 100644 tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.dsp delete mode 100644 tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.plg delete mode 100644 tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.dsw delete mode 100644 tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.ncb delete mode 100644 tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.opt delete mode 100644 tags/cpp-stable-20060304/sdo/readme.txt delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/samples/ObjectCreation.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/samples/Query.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/samples/Substitutes.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xml delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/samples/companysubs.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtbuild delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtproject delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/.project delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectList.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logging.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDO.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDORuntimeException.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDORuntimeException.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSPI.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOUtils.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOUtils.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLBufferWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLBufferWriter.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/disable_warn.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/export.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtbuild delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtproject delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/.project delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/.settings/org.eclipse.cdt.managedbuilder.core.prefs delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xml delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/47293Customer.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/47293Order.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/Catalog.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/Customer.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/Makefile.am delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/Order.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/StockQuoteService.wsdl delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/axis.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xml delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/b46693.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/company.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xml delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/companyabs.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/companyref.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/companysubs.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xml delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xml delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/g3.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/graham1.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/graham2.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/graham3.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/include.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/include1.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/include2.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/includeother3.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/many.xml delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/many.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/my-core.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/my-implementation-local-java.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/my.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xml delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xml delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/partial.xml delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-sca.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-webservice.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-ws.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-core.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-dll.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-java.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-local-java.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-cpp.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-java.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-wsdl.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-java.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-xsd.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sca.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.h delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest2.cpp delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/t2/include3.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother1.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother2.xsd delete mode 100644 tags/cpp-stable-20060304/sdo/runtime/core/test/testopen3.xml delete mode 100755 tags/cpp-stable-20060304/sdo/sdotest.sh diff --git a/sca-cpp/tags/cpp-stable-20060304/build.sh b/sca-cpp/tags/cpp-stable-20060304/build.sh new file mode 100755 index 0000000000..f082266f1b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/build.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +# 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. + +TOPDIR=`pwd` + + +if [ x$AXISCPP_DEPLOY = x ]; then +echo "AXISCPP_DEPLOY not set" +exit; +fi +if [ x$XERCES_DEPLOY = x ]; then +echo "XERCES_DEPLOY not set" +exit; +fi + +if [ x$LIBXML2_INCLUDE = x ]; then +echo "LIBXML2_INCLUDE not set" +exit; +fi +if [ x$LIBXML2_LIB = x ]; then +echo "LIBXML2_LIB not set" +exit; +fi + +# Build SDO +cd sdo +./build.sh +cd $TOPDIR + +# Build SCA +export TUSCANY_SDOCPP=$TOPDIR/sdo +cd sca +./build.sh +cd $TOPDIR diff --git a/sca-cpp/tags/cpp-stable-20060304/build.txt b/sca-cpp/tags/cpp-stable-20060304/build.txt new file mode 100644 index 0000000000..e1669eb738 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/build.txt @@ -0,0 +1,83 @@ +Tuscany C++ Build Instructions +============================== + +Download the source from http://svn.apache.org/repos/asf/incubator/tuscany/cpp +The download location is + +Linux Build +=========== + +Prereqs: + for SDO +- libxml2 (tested with version 2.6.19) + for SCA +- Axis C++ (tested with version 1.5.0) installed at ($AXISCPP_DEPLOY) +- Xerces C++ (tested with version 2.2.0) installed at ($XERCES_DEPLOY) + +Environment: +- export LIBXML2_INCLUDE= +- export LIBXML2_LIB= +- export AXISCPP_DPELOY= +- export XERCES_DEPLOY= + + +Build: +- cd +- ./build.sh + +This first builds the SDO subproject then SCA. The results are installed in + /sdo/lib /sdo/include /sdo/bin + /sca/lib /sca/include /sca/bin + +SDO Test +-------- + +Run: +- cd /sdo +- ./sdotest.sh + + +SCA Test +-------- + +Run: +- cd /sca +- ./scatest.sh + +Windows Build +============= + +Microsoft Visual Studio projects are provided for building on Windows. + +SDO +--- + +The project is dependent on libxml +(available here: http://www.zlatkovic.com/libxml.en.html) + +The versions required are these: + libxml2-2.6.19.win32 + iconv-1.9.1.win32 + zlib-1.2.2.win32 + +These need to be unzipped such that they live under tuscany\cpp\sdo\lib. + +Open the build workspace tuscany\cpp\sdo\runtime\projects\tuscany_sdo\tuscany_sdo.dsw + +Build->Set Active Configuration->sdo_runtime - Win32 Release + +Build->Rebuild All + +The output of the build will be in runtime\core\Release. + +The executable ,required headers and lib are copied to tuscany\cpp\sdo\bin, include and lib. + + +Note: The copy at the end of the debug build also writes to the bin directory, so the output +tuscany_sdo.dll will overwrite the release version. + +SCA +--- + +Open the build workspace tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca.dsw +and follow the instructions. diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/AUTHORS b/sca-cpp/tags/cpp-stable-20060304/sca/AUTHORS new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/COPYING b/sca-cpp/tags/cpp-stable-20060304/sca/COPYING new file mode 100755 index 0000000000..6b0b1270ff --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/COPYING @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/ChangeLog b/sca-cpp/tags/cpp-stable-20060304/sca/ChangeLog new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/Developers Guide.txt b/sca-cpp/tags/cpp-stable-20060304/sca/Developers Guide.txt new file mode 100644 index 0000000000..96b0476174 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/Developers Guide.txt @@ -0,0 +1,346 @@ +Tuscany SCA For C++ Developers Guide +==================================== + +Contents: + Developing Services in C++ + Running C++ Services + + +See cpp/build.txt in the parent directory or the cpp/sca/INSTALL file +for build instructions. + +Building the tools +------------------ + +NOTE: this is built and installed by the build step above. + +Currently, there is only one tool: "scagen". It can be built using the +ant build script at \tuscany\cpp\sca\tools\scagen\build.xml. +The default target "all" will build the java jars, documentation, +scripts and a zip file of the whole thing. This is all the ant +build tasks apart from "test" which runs all the junit tests. + +The ant build script can be altered to add the junit tests to the +default target. Replace the line + + + +The "test" task was not included in "all" as it requires a +junit jar file to run. This jar is available here: +http://www.junit.org/index.htm testing has been done with +Junit version 3.8.1. + +Running the scagen tool +----------------------- + +The scagen tool user interface is quite basic in this initial release. +It can be run from the scagen.jar file using "java -jar scagen.jar" +or from small scripts - scagen.cmd for Windows and scagen.sh for Unix. +The parameters are: + -dir + -output + +e.g. + scagen -dir c:\mymodules\module1 -output c:\mymodules\bld\module1 + +What scagen does +---------------- + +The input directory passed to the scagen tools as +the -dir parameter method is taken to be the SCA +module root directory. All the sca.module and .fragment +files in that directory are inspected to resolve all +the elements within them. + +Each element found is inspected +to see if it has a element within it. + +Each element should have a +header attribute that represents a C++ header file +that contains function prototypes for the C++ +implementation of the service. An optional class +attribute can be used to select one class if more than +one that is present in the header file. The default +class is the one with the same name as the header file. +The tool will verify that the implementation header +contains an appropriate class prototype. + +The directory that contains the implementation header +should also contain a matching .componentType file for +the equivalent SCA component. So for example, a +MyServiceImpl.h file would have a corresponding +MyServiceImpl.componentType file in the same directory. + +Each componentType file is inspected for +and elements. For each element +that is found that contains a element +within it, + +the header attribute of the is taken +as the filename of the C++ interface header for the +SCA service. This C++ header file is opened and used +as a means for specifying the SCA service resulting +in an appropriate wrapper and proxy being generated +for this service interface. Both method bodies and h +eaders are generated in the given output directory. +The processing of a element is the same +except that only a proxy header and implementation +re generated. + + +Getting started with the code +----------------------------- + +The following is a list of tasks that are performed by the scagen tool +for each task we will describe technically how it is accomplished and +the location of the code that can be inspected/changed to alter the +behaviour. + +Here are the tasks listed, below is a paragraph for each one: + + o (Overall structure of the code) + o Walking the input directory + o Scanning the .module and .fragment files + o finding the C++ implementation headers + o finding/checking the classname in the C++ implementation headers + o find the matching .componentTemplate files + o going into the componentTemplate files to extract the interface header filenames + o going into the interface header files and parsing them to extract the method signatures + into a network of objects we can inspect. + o taking all the meta data stored as objects and building a DOM for XSLT processing + o using XSLT to produce a proxy header + o using XSLT to produce a proxy implementation + o using XSLT to produce a wrapper header + o using XSLT to produce a wrapper implementation + + +Overall structure of the code +----------------------------- + +There are two packages org.apache.tuscany.sca.cpp.tools.common and +org.apache.tuscany.sca.cpp.tools.services. The ...common package is +taken from some existing code that was also contributed to axis that +was used to parse C++ code and do various tasks like insert trace. +This code was repackaged and shipped as a tuscany package but there +has been a desire not to change it significantly from the equivalent +org.apache.axis.tools.common package to leave the door open for +future convergence. + +Where the ...common package has been amended (for example to cope with +namespaces better or the provision of an Options.reset method to reset a static +variable and enable the tuscany junit tests to run independently) these +have been flagged with a "Tuscany" comment. The ...common package basically +provides two functions - 1) the ability to go into a directory (see DirectoryTree.java) +and process files that fit a particular filter (e.g. "*.hpp") by passing them to +implementer of the FileActor Interface (see the classes "Headers" for the +actor that processes C++ headers and "XMLFileActor" for the file actor that +processes the .componentType and sca.module/fragment files.) + +The ...services package contains the majority of code written afresh for the +scagen tool including the subclasses of XMLFileActor (see ComponentTypeFileHandler.java +and ModuleOrFragmentFileHandler.java) that are the classes that tie this +package to the ...common package and which are called by the +DirectoryTree walker. + +Walking the module root input directory +--------------------------------------- + +The main method of the scagen class creates an instance of +"DirectoryScanner" and registers with it a file handler of +type "ModuleOrFragmentFileHandler" for all files that end +in ".module" or ".fragment". On calling the "walkTree" method +on the scanner it will in turn call the actOnFile method on the +ModuleOrFragmentFileHandler for appropriate files. + +Scanning the .module and .fragment files +---------------------------------------- + +The scanning of these files by the respective "ModuleOrFragmentFileHandler" +and "ComponentTypeFileHandler" is mostly handled by the superclass +"XMLFileActor". This class will recursively goes through the whole +XML file and considers the name of the XML element it finds. +"XMLFileActor" contains a map of element names to element handlers +that will "flatten out" the structure of the XML file "above" the +level of node we are interested in. + +So for example the ComponentTypeFile handler sets up the handlers +map as follows: + + GenericDomNodeHandler gdnh = new GenericDomNodeHandler(); + handlers.put("componentType", gdnh); + handlers.put("interface.cpp", gdnh); + ServiceDomNodeHandler sdnh = new ServiceDomNodeHandler(); + handlers.put("service", sdnh); + + ReferenceDomNodeHandler rdnh = new ReferenceDomNodeHandler(); + handlers.put("reference", rdnh); + +The majority of processing done by these DomNOdeHandlers is to +place the attributes and values discovered into another map that +maps an (static version of) the XPath of a value to the value itself. +So for example "/componentType/service/interface.cpp/@header" might contain +the current ("root to here") value of the header attribute of the current +interface. + +Particular handlers for the "leaves" of this tree +such as ServiceDomNodeHandler and ReferenceDomNodeHandler +can then consume these values from the map without having +to be concerned with the actual names of things, +like the service name, appearing in the key. It should be +understood though that there are multiple values placed in the map +for one "key" as the processing works its way through the +XML tree. For example the processing of a second component will +overlay its data over the same keys as the first component. +(After "wiping" the appropriate subtree.) + +Finding the C++ implementation headers +-------------------------------------- + +The "/module/component/implementation.cpp/@header" and +is used to key into the name of the implementation header +and this is opened directly and passed to the +actOnFileMethod of a Headers object from the ...common package +bypassing the DirectoryScanner code. The path is relative to +the given (-dir option) module root directory. + +Finding/checking the classname in the C++ implementation headers +----------------------------------------------------------------- + +This implementation header is not used to define the +methods of the SCA service but rather is opened to check + any given implementation.cpp/@class attribute +(or find out the name of the implementation class +in the header if this is not specified in the XML. This +is done using the same method that later parses the interface +C++ headers into java objects - we just them inspect the +class attribute of the "Signature" objects that represent the methods +we find in the header. + +Find the matching .componentType files +------------------------------------------ + +By SCA convention we go to the same directory as the implementation +files and look for the XXX.componentType files with the same name. +A instance of the ComponentDOMNodeHandler handles the data in the +Component Element and pre-creates a ComponentTypeFileHandler that +will eventually be called to process the .componentType file. This +object receives a number of "setParameter" calls to poke into it +matadata that is available prior/outside the the actual .componentType +file it will read. + +Go into the componentType files to extract the interface header filenames +----------------------------------------------------------------------------- + +We open up the .componentTemplateFiles with exactly the same +mechanism as we read the sca.module/fragment file (by creating +a DOM and descending through it this time using a ComponentTypeFileHandler that it +has had various data values ( e.g. the implementation class and namespace used later) +poked into it. The ComponentTypeFileHandler itself has individual +handlers for the service and reference XML/DOM element/nodes +that is comes across (ServiceDomNodeHandler and ReferenceDomNodeHandler +respectively). Each these handlers will pull out the name of +a C++ interface header and use it to resolve the interface of the +SCA Service. + +Parsing the interface header files for signatures +------------------------------------------------- + +The Service/Reference DOM Node hander both call the + ServicesGenerator.handleInterfaceHeader(parameters, true); +method, the second parameter is used to differentiate +the call source as we don't need wrapper files for +SCA references (just proxies). + +The ServicesGenerator uses the Headers file actor from +the ...common package to create a List of Signature +objects that describe the interface methods in the C++ +header. + +Take all the meta data stored as objects and build a DOM +-------------------------------------------------------- +We now have a List of Signature objects and a map that +represents the flattened information that we have pulled +from the XML files in the ServiceGenerator class. +We call a "createDOMofMethods" method +to consolidate all this information into one DOM +(this task should be split into more than one method as the +signature/parameter list of the method is too large). + +Use XSLT to produce the output files (Proxy/Wrapper headers and Implementations) +-------------------------------------------------------------------------------- + +The ServicesGenerator.handleInterfaceHeader(parameters, forReference); +method closes of with the code: + + createProxyCPPFromDom(outputDir, dom); + createProxyHeaderFromDom(outputDir, dom); + + if (!forReference) { + createWrapperCPPFromDom(outputDir, dom); + createWrapperHeaderFromDom(outputDir, dom); + } + + +Each of the create methods sets up the output +file name and a different XSLT transform and calls +"createOutputFromDom" to transform/filter the data in the +"model" that is held in our DOM of the data to a particular +"view" as expressed in the C++ output file. + +The four XSLT style sheets are in rough order of the output +file and this corresponds very roughly to a depth first descent +of the DOM tree so, for example, we could have in a stylesheet: + +... + void* + ::newImplementation() + { + return new (target); + } + +which would be output as: + + void* MyClassImpl_MyClass_Proxy::newImplementation() + { + return new MyClassImpl(target) + } + +given appropriate valies for $class and "../@implClass" and +$class might be defined to be: +xsl:variable name="clazz"> + + _ + + _Proxy + + +giving "MyClassImpl_MyClass_Proxy" + +The stylesheets can be found in the xsl subdirectory of the +org.apache.tuscany.sca.cpp.tools.services package. + +Unit Testing Scagen Code Changes +-------------------------------- + +The junit unit test + /tuscany/cpp/sca/tools/scagen/ + junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllModulesTest.java + +will dynamically look for all the subdirectores of the directory +path given by TuscanyTestCase.junit_modules and run the scagen +tool on them as if they were modules roots. + +By convention an "expected_output" directory is located +(see the CVS tree or the test program) and the actual +and expected results compared. This testcase is thus a +good first/basic regression test for any changes. + +New test cases can thus be added without having to write +any new junit java code by by creating new SCA modules and +the associated expected Scagen output - perhaps by using the tool +initially and checking the output is satisfactory before copying +it to the expected output directory at: + +/tuscany/cpp/sca/tools/scagen/junit/testoutput//expected_output +where input data is taken from +/tuscany/cpp/sca/tools/scagen/junit/testinput/modules/ diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/INSTALL b/sca-cpp/tags/cpp-stable-20060304/sca/INSTALL new file mode 100644 index 0000000000..196c78c22a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/INSTALL @@ -0,0 +1,13 @@ +Building Tuscany SCA on Linux. +============================== + +1. Extract the source to a folder. + +2. You need to set the following environment variable to point to tuscany sdo + TUSCANY_SDOCPP + +3. You need to set the following environment variable to point to Axis-c installation: + AXISCPP_DEPLOY + +4. Build the source + ./build.sh diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/LICENSE b/sca-cpp/tags/cpp-stable-20060304/sca/LICENSE new file mode 100755 index 0000000000..6b0b1270ff --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/LICENSE @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sca/Makefile.am new file mode 100644 index 0000000000..66f0a318e8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = runtime diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/NEWS b/sca-cpp/tags/cpp-stable-20060304/sca/NEWS new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/README b/sca-cpp/tags/cpp-stable-20060304/sca/README new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/autogen.sh b/sca-cpp/tags/cpp-stable-20060304/sca/autogen.sh new file mode 100755 index 0000000000..d40a2eb9d4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/autogen.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +for i in libtoolize aclocal autoconf autoheader +do + echo -n "Running $i..." + $i || exit 1 + echo 'done.' +done + +echo -n 'Running automake...' +automake --add-missing +echo 'done.' +exit 0 + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/build.sh b/sca-cpp/tags/cpp-stable-20060304/sca/build.sh new file mode 100755 index 0000000000..217569303a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/build.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +# 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. + +TUSCANY_SCACPP_HOME=`pwd` + +if [ x$AXISCPP_DEPLOY = x ]; then +echo "AXISCPP_DEPLOY not set" +exit; +fi +echo "Using Axis C++ installed at $AXISCPP_DEPLOY" + +if [ x$XERCES_DEPLOY = x ]; then +echo "XERCES_DEPLOY not set" +exit; +fi +echo "Using Xerces C++ installed at $XERCES_DEPLOY" + +if [ x$TUSCANY_SDOCPP = x ]; then +echo "TUSCANY_SDOCPP not set" +exit; +fi +echo "Using SDO installed at $TUSCANY_SDOCPP" + +# Build tools first as they will be used to generate cpp code +cd $TUSCANY_SCACPP_HOME/tools/scagen +ant +chmod a+x $TUSCANY_SCACPP_HOME/bin/scagen.sh + +cd $TUSCANY_SCACPP_HOME +./autogen.sh +./configure --prefix=${TUSCANY_SCACPP_HOME} +make +make install diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/configure.ac b/sca-cpp/tags/cpp-stable-20060304/sca/configure.ac new file mode 100644 index 0000000000..9d58b6c824 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/configure.ac @@ -0,0 +1,51 @@ +dnl run autogen.sh to generate the configure script. + +AC_PREREQ(2.59) +AC_INIT(tuscany_sca, 1.0.0) +AC_CANONICAL_SYSTEM +AM_CONFIG_HEADER(config.h) +AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) + +# Checks for programs. +AC_PROG_CXX +AC_PROG_CC +AC_PROG_CPP +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET +AC_PROG_LIBTOOL + +# Checks for libraries. + +# Checks for header files. +AC_HEADER_DIRENT +AC_HEADER_STDC +AC_CHECK_HEADERS([inttypes.h stdlib.h string.h sys/time.h unistd.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_HEADER_STDBOOL +AC_C_CONST +AC_C_INLINE + +# Checks for library functions. +AC_FUNC_CLOSEDIR_VOID +AC_FUNC_STAT +AC_FUNC_VPRINTF +AC_CHECK_FUNCS([getcwd putenv strdup]) + +AC_CONFIG_FILES([Makefile + runtime/Makefile + runtime/core/Makefile + runtime/core/src/Makefile + runtime/axis_binding/Makefile + runtime/axis_binding/handler/Makefile + runtime/axis_binding/handler/src/Makefile + runtime/axis_binding/wrapper/Makefile + runtime/axis_binding/wrapper/src/Makefile + runtime/core/test/Makefile + runtime/core/test/CustomerInfo/Makefile + runtime/core/test/MyValue/Makefile + runtime/core/test/src/Makefile + ]) +AC_OUTPUT + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.dsw b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.dsw new file mode 100644 index 0000000000..81e97ea3fb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.dsw @@ -0,0 +1,113 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "tuscany_sca"=.\tuscany_sca\tuscany_sca.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "tuscany_sca_axis_handler"=.\tuscany_sca_axis_handler\tuscany_sca_axis_handler.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name tuscany_sca + End Project Dependency +}}} + +############################################################################### + +Project: "tuscany_sca_axis_wrapper"=.\tuscany_sca_axis_wrapper\tuscany_sca_axis_wrapper.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name tuscany_sca + End Project Dependency + Begin Project Dependency + Project_Dep_Name tuscany_sca_axis_handler + End Project Dependency +}}} + +############################################################################### + +Project: "tuscany_sca_test"=.\tuscany_sca_test\tuscany_sca_test.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name tuscany_sca + End Project Dependency + Begin Project Dependency + Project_Dep_Name tuscany_sca_test_CustomerInfo + End Project Dependency + Begin Project Dependency + Project_Dep_Name tuscany_sca_test_MyValue + End Project Dependency +}}} + +############################################################################### + +Project: "tuscany_sca_test_CustomerInfo"=.\tuscany_sca_test_CustomerInfo\tuscany_sca_test_CustomerInfo.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name tuscany_sca + End Project Dependency +}}} + +############################################################################### + +Project: "tuscany_sca_test_MyValue"=.\tuscany_sca_test_MyValue\tuscany_sca_test_MyValue.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name tuscany_sca + End Project Dependency +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.ncb b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.ncb new file mode 100644 index 0000000000..c73e95cb5b Binary files /dev/null and b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.ncb differ diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.opt b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.opt new file mode 100644 index 0000000000..90384e4e95 Binary files /dev/null and b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.opt differ diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/Build Instructions.txt b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/Build Instructions.txt new file mode 100644 index 0000000000..cf64885bde --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/Build Instructions.txt @@ -0,0 +1,10 @@ +Tuscanny SCA Build Instructions +=============================== + +1) Set the environment variable SDO4CPP to the path of an SDO driver + +2) Set the environment variable AXISCPP to the path of Axis for C++ + +3) Build->Rebuild All + +The output for the build will be in tuscany/cpp/sca/include, lib and bin diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.dsp b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.dsp new file mode 100644 index 0000000000..e721fd28fc --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.dsp @@ -0,0 +1,512 @@ +# Microsoft Developer Studio Project File - Name="tuscany_sca" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=tuscany_sca - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca.mak" CFG="tuscany_sca - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "tuscany_sca - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "tuscany_sca - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "tuscany_sca - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SCA_EXPORTS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /machine:I386 /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=del ..\..\..\bin\tuscany_sca.* del ..\..\..\lib\*.lib copy ..\..\..\runtime\core\src\osoa\sca\*.h ..\..\..\include\osoa\sca copy ..\..\..\runtime\core\src\tuscany\sca\core\*.h ..\..\..\include\tuscany\sca\core copy ..\..\..\runtime\core\src\tuscany\sca\model\*.h ..\..\..\include\tuscany\sca\model copy ..\..\..\runtime\core\src\tuscany\sca\util\*.h ..\..\..\include\tuscany\sca\util copy Release\tuscany_sca.dll ..\..\..\bin copy Release\tuscany_sca.lib ..\..\..\lib copy ..\..\..\runtime\core\src\tuscany\sca\ws\*.h ..\..\..\include\tuscany\sca\ws +# End Special Build Tool + +!ELSEIF "$(CFG)" == "tuscany_sca - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SCA_EXPORTS" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=del ..\..\..\bin\tuscany_sca.* del ..\..\..\lib\*.lib copy ..\..\..\runtime\core\src\osoa\sca\*.h ..\..\..\include\osoa\sca copy ..\..\..\runtime\core\src\tuscany\sca\core\*.h ..\..\..\include\tuscany\sca\core copy ..\..\..\runtime\core\src\tuscany\sca\model\*.h ..\..\..\include\tuscany\sca\model copy ..\..\..\runtime\core\src\tuscany\sca\util\*.h ..\..\..\include\tuscany\sca\util copy ..\..\..\runtime\core\src\tuscany\sca\ws\*.h ..\..\..\include\tuscany\sca\ws copy Debug\tuscany_sca.dll ..\..\..\bin copy Debug\tuscany_sca.pdb ..\..\..\bin copy Debug\tuscany_sca.lib ..\..\..\lib +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "tuscany_sca - Win32 Release" +# Name "tuscany_sca - Win32 Debug" +# Begin Group "osoa/sca" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ComponentContext.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ComponentContext.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ComponentContextImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ComponentContextImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\export.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ModuleContext.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ModuleContext.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ModuleContextImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ModuleContextImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\SCA.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\sca.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ServiceList.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ServiceList.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ServiceRuntimeException.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\osoa\sca\ServiceRuntimeException.h +# End Source File +# End Group +# Begin Group "tuscany/sca" + +# PROP Default_Filter "" +# Begin Group "core" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\Operation.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\Operation.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\SCAEntryPoint.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\SCAEntryPoint.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\SCARuntime.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\SCARuntime.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ServiceProxy.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ServiceProxy.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ServiceWrapper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ServiceWrapper.h +# End Source File +# End Group +# Begin Group "model" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Binding.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Binding.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Component.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Component.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\CPPImplementation.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\CPPImplementation.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\CPPInterface.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\CPPInterface.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\EntryPoint.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\EntryPoint.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ExternalService.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ExternalService.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Implementation.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Implementation.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Interface.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Interface.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ModelLoader.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ModelLoader.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Module.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Module.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Service.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Service.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ServiceReference.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ServiceReference.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Subsystem.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Subsystem.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\System.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\System.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Wire.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Wire.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WireTarget.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WireTarget.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WSBinding.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WSBinding.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Wsdl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Wsdl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WsdlOperation.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WsdlOperation.h +# End Source File +# End Group +# Begin Group "util" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\DefaultLogWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\DefaultLogWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Exceptions.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\File.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\File.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Library.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Library.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Logger.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Logger.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Logging.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\LogWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\LogWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Utils.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Utils.h +# End Source File +# End Group +# Begin Group "ws" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\ws\SDOStub.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\ws\SDOStub.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.h +# End Source File +# End Group +# End Group +# Begin Group "xsd" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE="..\..\..\xsd\sca-binding-sca.xsd" +# End Source File +# Begin Source File + +SOURCE="..\..\..\xsd\sca-binding-webservice.xsd" +# End Source File +# Begin Source File + +SOURCE="..\..\..\xsd\sca-core.xsd" +# End Source File +# Begin Source File + +SOURCE="..\..\..\xsd\sca-implementation-cpp.xsd" +# End Source File +# Begin Source File + +SOURCE="..\..\..\xsd\sca-implementation-java.xsd" +# End Source File +# Begin Source File + +SOURCE="..\..\..\xsd\sca-interface-cpp.xsd" +# End Source File +# Begin Source File + +SOURCE="..\..\..\xsd\sca-interface-java.xsd" +# End Source File +# Begin Source File + +SOURCE="..\..\..\xsd\sca-interface-wsdl.xsd" +# End Source File +# Begin Source File + +SOURCE=..\..\..\xsd\sca.xsd +# End Source File +# Begin Source File + +SOURCE=..\..\..\xsd\tuscany.xsd +# End Source File +# End Group +# Begin Source File + +SOURCE=".\Build Instructions.txt" +# End Source File +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.plg b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.plg new file mode 100644 index 0000000000..fbdae5a163 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.plg @@ -0,0 +1,226 @@ + + +
+

Build Log

+

+--------------------Configuration: tuscany_sca - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP24.tmp" with contents +[ +/nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "C:\axis-c-1-5-win32/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SCA_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ComponentContext.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ComponentContextImpl.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ModuleContext.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ModuleContextImpl.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\SCA.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ServiceList.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ServiceRuntimeException.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\Operation.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\SCAEntryPoint.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\SCARuntime.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ServiceProxy.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ServiceWrapper.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Binding.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Component.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\CPPImplementation.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\CPPInterface.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\EntryPoint.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ExternalService.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Implementation.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Interface.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ModelLoader.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Module.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Service.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ServiceReference.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Subsystem.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\System.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Wire.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WireTarget.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WSBinding.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Wsdl.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WsdlOperation.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\DefaultLogWriter.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\File.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Library.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Logger.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\LogWriter.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Utils.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\ws\SDOStub.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP24.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP25.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /incremental:yes /pdb:"Debug/tuscany_sca.pdb" /debug /machine:I386 /out:"Debug/tuscany_sca.dll" /implib:"Debug/tuscany_sca.lib" /pdbtype:sept /libpath:"C:\incubator\tuscany\cpp\sdo\lib" /libpath:"C:\axis-c-1-5-win32\lib\axis" +.\Debug\ComponentContext.obj +.\Debug\ComponentContextImpl.obj +.\Debug\ModuleContext.obj +.\Debug\ModuleContextImpl.obj +.\Debug\SCA.obj +.\Debug\ServiceList.obj +.\Debug\ServiceRuntimeException.obj +.\Debug\ComponentServiceWrapper.obj +.\Debug\ExternalServiceWrapper.obj +.\Debug\Operation.obj +.\Debug\SCAEntryPoint.obj +.\Debug\SCARuntime.obj +.\Debug\ServiceProxy.obj +.\Debug\ServiceWrapper.obj +.\Debug\Binding.obj +.\Debug\Component.obj +.\Debug\CPPImplementation.obj +.\Debug\CPPInterface.obj +.\Debug\EntryPoint.obj +.\Debug\ExternalService.obj +.\Debug\Implementation.obj +.\Debug\Interface.obj +.\Debug\ModelLoader.obj +.\Debug\Module.obj +.\Debug\Service.obj +.\Debug\ServiceReference.obj +.\Debug\Subsystem.obj +.\Debug\System.obj +.\Debug\Wire.obj +.\Debug\WireTarget.obj +.\Debug\WSBinding.obj +.\Debug\Wsdl.obj +.\Debug\WsdlOperation.obj +.\Debug\DefaultLogWriter.obj +.\Debug\File.obj +.\Debug\Library.obj +.\Debug\Logger.obj +.\Debug\LogWriter.obj +.\Debug\Utils.obj +.\Debug\SDOStub.obj +.\Debug\WSServiceWrapper.obj +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP25.tmp" +

Output Window

+Compiling... +ComponentContext.cpp +ComponentContextImpl.cpp +ModuleContext.cpp +ModuleContextImpl.cpp +SCA.cpp +ServiceList.cpp +ServiceRuntimeException.cpp +ComponentServiceWrapper.cpp +ExternalServiceWrapper.cpp +Operation.cpp +SCAEntryPoint.cpp +SCARuntime.cpp +ServiceProxy.cpp +ServiceWrapper.cpp +Binding.cpp +Component.cpp +CPPImplementation.cpp +CPPInterface.cpp +EntryPoint.cpp +ExternalService.cpp +Generating Code... +Compiling... +Implementation.cpp +Interface.cpp +ModelLoader.cpp +Module.cpp +Service.cpp +ServiceReference.cpp +Subsystem.cpp +System.cpp +Wire.cpp +WireTarget.cpp +WSBinding.cpp +Wsdl.cpp +WsdlOperation.cpp +DefaultLogWriter.cpp +File.cpp +Library.cpp +Logger.cpp +LogWriter.cpp +Utils.cpp +SDOStub.cpp +Generating Code... +Compiling... +WSServiceWrapper.cpp +Generating Code... +Linking... + Creating library Debug/tuscany_sca.lib and object Debug/tuscany_sca.exp +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP29.bat" with contents +[ +@echo off +del ..\..\..\bin\tuscany_sca.* +del ..\..\..\lib\*.lib +copy ..\..\..\runtime\core\src\osoa\sca\*.h ..\..\..\include\osoa\sca +copy ..\..\..\runtime\core\src\tuscany\sca\core\*.h ..\..\..\include\tuscany\sca\core +copy ..\..\..\runtime\core\src\tuscany\sca\model\*.h ..\..\..\include\tuscany\sca\model +copy ..\..\..\runtime\core\src\tuscany\sca\util\*.h ..\..\..\include\tuscany\sca\util +copy ..\..\..\runtime\core\src\tuscany\sca\ws\*.h ..\..\..\include\tuscany\sca\ws +copy Debug\tuscany_sca.dll ..\..\..\bin +copy Debug\tuscany_sca.pdb ..\..\..\bin +copy Debug\tuscany_sca.lib ..\..\..\lib +] +Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP29.bat" + +..\..\..\runtime\core\src\osoa\sca\ComponentContext.h +..\..\..\runtime\core\src\osoa\sca\ComponentContextImpl.h +..\..\..\runtime\core\src\osoa\sca\export.h +..\..\..\runtime\core\src\osoa\sca\ModuleContext.h +..\..\..\runtime\core\src\osoa\sca\ModuleContextImpl.h +..\..\..\runtime\core\src\osoa\sca\sca.h +..\..\..\runtime\core\src\osoa\sca\ServiceList.h +..\..\..\runtime\core\src\osoa\sca\ServiceRuntimeException.h + 8 file(s) copied. +..\..\..\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.h +..\..\..\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.h +..\..\..\runtime\core\src\tuscany\sca\core\Operation.h +..\..\..\runtime\core\src\tuscany\sca\core\SCAEntryPoint.h +..\..\..\runtime\core\src\tuscany\sca\core\SCARuntime.h +..\..\..\runtime\core\src\tuscany\sca\core\ServiceProxy.h +..\..\..\runtime\core\src\tuscany\sca\core\ServiceWrapper.h + 7 file(s) copied. +..\..\..\runtime\core\src\tuscany\sca\model\Binding.h +..\..\..\runtime\core\src\tuscany\sca\model\Component.h +..\..\..\runtime\core\src\tuscany\sca\model\CPPImplementation.h +..\..\..\runtime\core\src\tuscany\sca\model\CPPInterface.h +..\..\..\runtime\core\src\tuscany\sca\model\EntryPoint.h +..\..\..\runtime\core\src\tuscany\sca\model\ExternalService.h +..\..\..\runtime\core\src\tuscany\sca\model\Implementation.h +..\..\..\runtime\core\src\tuscany\sca\model\Interface.h +..\..\..\runtime\core\src\tuscany\sca\model\ModelLoader.h +..\..\..\runtime\core\src\tuscany\sca\model\Module.h +..\..\..\runtime\core\src\tuscany\sca\model\Service.h +..\..\..\runtime\core\src\tuscany\sca\model\ServiceReference.h +..\..\..\runtime\core\src\tuscany\sca\model\Subsystem.h +..\..\..\runtime\core\src\tuscany\sca\model\System.h +..\..\..\runtime\core\src\tuscany\sca\model\Wire.h +..\..\..\runtime\core\src\tuscany\sca\model\WireTarget.h +..\..\..\runtime\core\src\tuscany\sca\model\WSBinding.h +..\..\..\runtime\core\src\tuscany\sca\model\Wsdl.h +..\..\..\runtime\core\src\tuscany\sca\model\WsdlOperation.h + 19 file(s) copied. +..\..\..\runtime\core\src\tuscany\sca\util\DefaultLogWriter.h +..\..\..\runtime\core\src\tuscany\sca\util\Exceptions.h +..\..\..\runtime\core\src\tuscany\sca\util\File.h +..\..\..\runtime\core\src\tuscany\sca\util\Library.h +..\..\..\runtime\core\src\tuscany\sca\util\Logger.h +..\..\..\runtime\core\src\tuscany\sca\util\Logging.h +..\..\..\runtime\core\src\tuscany\sca\util\LogWriter.h +..\..\..\runtime\core\src\tuscany\sca\util\Utils.h + 8 file(s) copied. +..\..\..\runtime\core\src\tuscany\sca\ws\SDOStub.h +..\..\..\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.h + 2 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + + + +

Results

+tuscany_sca.dll - 0 error(s), 0 warning(s) +
+ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.dsp b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.dsp new file mode 100644 index 0000000000..bf0172e35d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.dsp @@ -0,0 +1,121 @@ +# Microsoft Developer Studio Project File - Name="tuscany_sca_axis_handler" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=tuscany_sca_axis_handler - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca_axis_handler.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca_axis_handler.mak" CFG="tuscany_sca_axis_handler - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "tuscany_sca_axis_handler - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "tuscany_sca_axis_handler - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "tuscany_sca_axis_handler - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_HANDLER_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_HANDLER_EXPORTS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /machine:I386 /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=copy Release\tuscany_sca_axis_handler.dll ..\..\..\bin copy Release\tuscany_sca_axis_handler.lib ..\..\..\lib +# End Special Build Tool + +!ELSEIF "$(CFG)" == "tuscany_sca_axis_handler - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_HANDLER_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_HANDLER_EXPORTS" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=copy Debug\tuscany_sca_axis_handler.dll ..\..\..\bin copy Debug\tuscany_sca_axis_handler.pdb ..\..\..\bin copy Debug\tuscany_sca_axis_handler.lib ..\..\..\lib +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "tuscany_sca_axis_handler - Win32 Release" +# Name "tuscany_sca_axis_handler - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\runtime\axis_binding\handler\src\SCAWSHandler.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\runtime\axis_binding\handler\src\SCAWSHandler.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.plg b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.plg new file mode 100644 index 0000000000..de05c15353 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.plg @@ -0,0 +1,46 @@ + + +
+

Build Log

+

+--------------------Configuration: tuscany_sca_axis_handler - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1755.tmp" with contents +[ +/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "C:\axis-c-1-5-win32/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_HANDLER_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"C:\incubator\tuscany\cpp\sca\runtime\axis_binding\handler\src\SCAWSHandler.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1755.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1756.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /incremental:yes /pdb:"Debug/tuscany_sca_axis_handler.pdb" /debug /machine:I386 /out:"Debug/tuscany_sca_axis_handler.dll" /implib:"Debug/tuscany_sca_axis_handler.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" /libpath:"C:\axis-c-1-5-win32\lib\axis" +.\Debug\SCAWSHandler.obj +\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1756.tmp" +

Output Window

+Compiling... +SCAWSHandler.cpp +Linking... + Creating library Debug/tuscany_sca_axis_handler.lib and object Debug/tuscany_sca_axis_handler.exp +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175A.bat" with contents +[ +@echo off +copy Debug\tuscany_sca_axis_handler.dll ..\..\..\bin +copy Debug\tuscany_sca_axis_handler.pdb ..\..\..\bin +copy Debug\tuscany_sca_axis_handler.lib ..\..\..\lib +] +Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175A.bat" + + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + + + +

Results

+tuscany_sca_axis_handler.dll - 0 error(s), 0 warning(s) +
+ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.dsp b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.dsp new file mode 100644 index 0000000000..2e4d556151 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.dsp @@ -0,0 +1,119 @@ +# Microsoft Developer Studio Project File - Name="tuscany_sca_axis_wrapper" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=tuscany_sca_axis_wrapper - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca_axis_wrapper.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca_axis_wrapper.mak" CFG="tuscany_sca_axis_wrapper - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "tuscany_sca_axis_wrapper - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "tuscany_sca_axis_wrapper - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "tuscany_sca_axis_wrapper - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_WRAPPER_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_AXIS_SCA_EXPORTS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /machine:I386 /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=copy Release\tuscany_sca_axis_wrapper.dll ..\..\..\bin copy Release\tuscany_sca_axis_wrapper.lib ..\..\..\lib +# End Special Build Tool + +!ELSEIF "$(CFG)" == "tuscany_sca_axis_wrapper - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_WRAPPER_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_AXIS_SCA_EXPORTS" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=copy Debug\tuscany_sca_axis_wrapper.dll ..\..\..\bin copy Debug\tuscany_sca_axis_wrapper.pdb ..\..\..\bin copy Debug\tuscany_sca_axis_wrapper.lib ..\..\..\lib +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "tuscany_sca_axis_wrapper - Win32 Release" +# Name "tuscany_sca_axis_wrapper - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\runtime\axis_binding\wrapper\src\SCAWSWrapper.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\runtime\axis_binding\wrapper\src\SCAWSWrapper.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.plg b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.plg new file mode 100644 index 0000000000..3bab65d7ca --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.plg @@ -0,0 +1,47 @@ + + +
+

Build Log

+

+--------------------Configuration: tuscany_sca_axis_wrapper - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175B.tmp" with contents +[ +/nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "C:\axis-c-1-5-win32/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_AXIS_SCA_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"C:\incubator\tuscany\cpp\sca\runtime\axis_binding\wrapper\src\SCAWSWrapper.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175B.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175C.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /incremental:yes /pdb:"Debug/tuscany_sca_axis_wrapper.pdb" /debug /machine:I386 /out:"Debug/tuscany_sca_axis_wrapper.dll" /implib:"Debug/tuscany_sca_axis_wrapper.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" /libpath:"C:\axis-c-1-5-win32\lib\axis" +.\Debug\SCAWSWrapper.obj +\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib +\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca_axis_handler\Debug\tuscany_sca_axis_handler.lib +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175C.tmp" +

Output Window

+Compiling... +SCAWSWrapper.cpp +Linking... + Creating library Debug/tuscany_sca_axis_wrapper.lib and object Debug/tuscany_sca_axis_wrapper.exp +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1760.bat" with contents +[ +@echo off +copy Debug\tuscany_sca_axis_wrapper.dll ..\..\..\bin +copy Debug\tuscany_sca_axis_wrapper.pdb ..\..\..\bin +copy Debug\tuscany_sca_axis_wrapper.lib ..\..\..\lib +] +Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1760.bat" + + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + + + +

Results

+tuscany_sca_axis_wrapper.dll - 0 error(s), 0 warning(s) +
+ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment new file mode 100644 index 0000000000..c2c521ed96 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment @@ -0,0 +1,36 @@ + + + + + + + + + + x + 23 + 42 + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType new file mode 100644 index 0000000000..48651b63fe --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType new file mode 100644 index 0000000000..ace4154966 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl new file mode 100644 index 0000000000..4917cde583 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config new file mode 100644 index 0000000000..7fee074333 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config @@ -0,0 +1,24 @@ + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/sca.module b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/sca.module new file mode 100644 index 0000000000..e94a8ef795 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/sca.module @@ -0,0 +1,51 @@ + + + + + + + + + + MyValueServiceComponent + + + + + + + + CustomerInfoComponent + StockQuoteService + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/subsystems/SubSystem1/sca.subsystem b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/subsystems/SubSystem1/sca.subsystem new file mode 100644 index 0000000000..1b32bf8a93 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/subsystems/SubSystem1/sca.subsystem @@ -0,0 +1,27 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.dsp b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.dsp new file mode 100644 index 0000000000..be6f1164e1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.dsp @@ -0,0 +1,104 @@ +# Microsoft Developer Studio Project File - Name="tuscany_sca_test" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=tuscany_sca_test - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca_test.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca_test.mak" CFG="tuscany_sca_test - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "tuscany_sca_test - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "tuscany_sca_test - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "tuscany_sca_test - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "../../../runtime/core/test/MyValue" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=copy ..\tuscany_sca_test_MyValue\Release\MyValue.dll testSCASystem\modules\MyValueServiceModule copy ..\tuscany_sca_test_CustomerInfo\Release\CustomerInfo.dll testSCASystem\modules\MyValueServiceModule +# End Special Build Tool + +!ELSEIF "$(CFG)" == "tuscany_sca_test - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "../../../runtime/core/test/MyValue" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=copy ..\tuscany_sca_test_MyValue\Debug\MyValue.dll testSCASystem\modules\MyValueServiceModule copy ..\tuscany_sca_test_MyValue\Debug\MyValue.pdb testSCASystem\modules\MyValueServiceModule copy ..\tuscany_sca_test_CustomerInfo\Debug\CustomerInfo.dll testSCASystem\modules\MyValueServiceModule copy ..\tuscany_sca_test_CustomerInfo\Debug\CustomerInfo.pdb testSCASystem\modules\MyValueServiceModule +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "tuscany_sca_test - Win32 Release" +# Name "tuscany_sca_test - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\src\TestSCA.cpp +# End Source File +# End Group +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.plg b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.plg new file mode 100644 index 0000000000..e7e37b7a22 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.plg @@ -0,0 +1,327 @@ + + +
+

Build Log

+

+--------------------Configuration: tuscany_sca - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP107.tmp" with contents +[ +/nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "C:\axis-c-1-5-win32/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SCA_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ComponentContext.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ComponentContextImpl.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ModuleContext.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ModuleContextImpl.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\SCA.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ServiceList.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ServiceRuntimeException.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\Operation.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\SCAEntryPoint.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\SCARuntime.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ServiceProxy.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ServiceWrapper.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Binding.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Component.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\CPPImplementation.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\CPPInterface.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\EntryPoint.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ExternalService.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Implementation.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Interface.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ModelLoader.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Module.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Service.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ServiceReference.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Subsystem.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\System.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Wire.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WireTarget.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WSBinding.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Wsdl.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WsdlOperation.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\DefaultLogWriter.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\File.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Library.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Logger.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\LogWriter.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Utils.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\ws\SDOStub.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP107.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP108.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /incremental:yes /pdb:"Debug/tuscany_sca.pdb" /debug /machine:I386 /out:"Debug/tuscany_sca.dll" /implib:"Debug/tuscany_sca.lib" /pdbtype:sept /libpath:"C:\incubator\tuscany\cpp\sdo\lib" /libpath:"C:\axis-c-1-5-win32\lib\axis" +.\Debug\ComponentContext.obj +.\Debug\ComponentContextImpl.obj +.\Debug\ModuleContext.obj +.\Debug\ModuleContextImpl.obj +.\Debug\SCA.obj +.\Debug\ServiceList.obj +.\Debug\ServiceRuntimeException.obj +.\Debug\ComponentServiceWrapper.obj +.\Debug\ExternalServiceWrapper.obj +.\Debug\Operation.obj +.\Debug\SCAEntryPoint.obj +.\Debug\SCARuntime.obj +.\Debug\ServiceProxy.obj +.\Debug\ServiceWrapper.obj +.\Debug\Binding.obj +.\Debug\Component.obj +.\Debug\CPPImplementation.obj +.\Debug\CPPInterface.obj +.\Debug\EntryPoint.obj +.\Debug\ExternalService.obj +.\Debug\Implementation.obj +.\Debug\Interface.obj +.\Debug\ModelLoader.obj +.\Debug\Module.obj +.\Debug\Service.obj +.\Debug\ServiceReference.obj +.\Debug\Subsystem.obj +.\Debug\System.obj +.\Debug\Wire.obj +.\Debug\WireTarget.obj +.\Debug\WSBinding.obj +.\Debug\Wsdl.obj +.\Debug\WsdlOperation.obj +.\Debug\DefaultLogWriter.obj +.\Debug\File.obj +.\Debug\Library.obj +.\Debug\Logger.obj +.\Debug\LogWriter.obj +.\Debug\Utils.obj +.\Debug\SDOStub.obj +.\Debug\WSServiceWrapper.obj +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP108.tmp" +

Output Window

+Compiling... +ComponentContext.cpp +ComponentContextImpl.cpp +ModuleContext.cpp +ModuleContextImpl.cpp +SCA.cpp +ServiceList.cpp +ServiceRuntimeException.cpp +ComponentServiceWrapper.cpp +ExternalServiceWrapper.cpp +Operation.cpp +SCAEntryPoint.cpp +SCARuntime.cpp +ServiceProxy.cpp +ServiceWrapper.cpp +Binding.cpp +Component.cpp +CPPImplementation.cpp +CPPInterface.cpp +EntryPoint.cpp +ExternalService.cpp +Generating Code... +Compiling... +Implementation.cpp +Interface.cpp +ModelLoader.cpp +Module.cpp +Service.cpp +ServiceReference.cpp +Subsystem.cpp +System.cpp +Wire.cpp +WireTarget.cpp +WSBinding.cpp +Wsdl.cpp +WsdlOperation.cpp +DefaultLogWriter.cpp +File.cpp +Library.cpp +Logger.cpp +LogWriter.cpp +Utils.cpp +SDOStub.cpp +Generating Code... +Compiling... +WSServiceWrapper.cpp +Generating Code... +Linking... + Creating library Debug/tuscany_sca.lib and object Debug/tuscany_sca.exp +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10C.bat" with contents +[ +@echo off +del ..\..\..\bin\tuscany_sca.* +del ..\..\..\lib\*.lib +copy ..\..\..\runtime\core\src\osoa\sca\*.h ..\..\..\include\osoa\sca +copy ..\..\..\runtime\core\src\tuscany\sca\core\*.h ..\..\..\include\tuscany\sca\core +copy ..\..\..\runtime\core\src\tuscany\sca\model\*.h ..\..\..\include\tuscany\sca\model +copy ..\..\..\runtime\core\src\tuscany\sca\util\*.h ..\..\..\include\tuscany\sca\util +copy ..\..\..\runtime\core\src\tuscany\sca\ws\*.h ..\..\..\include\tuscany\sca\ws +copy Debug\tuscany_sca.dll ..\..\..\bin +copy Debug\tuscany_sca.pdb ..\..\..\bin +copy Debug\tuscany_sca.lib ..\..\..\lib +] +Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10C.bat" + +..\..\..\runtime\core\src\osoa\sca\ComponentContext.h +..\..\..\runtime\core\src\osoa\sca\ComponentContextImpl.h +..\..\..\runtime\core\src\osoa\sca\export.h +..\..\..\runtime\core\src\osoa\sca\ModuleContext.h +..\..\..\runtime\core\src\osoa\sca\ModuleContextImpl.h +..\..\..\runtime\core\src\osoa\sca\sca.h +..\..\..\runtime\core\src\osoa\sca\ServiceList.h +..\..\..\runtime\core\src\osoa\sca\ServiceRuntimeException.h + 8 file(s) copied. +..\..\..\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.h +..\..\..\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.h +..\..\..\runtime\core\src\tuscany\sca\core\Operation.h +..\..\..\runtime\core\src\tuscany\sca\core\SCAEntryPoint.h +..\..\..\runtime\core\src\tuscany\sca\core\SCARuntime.h +..\..\..\runtime\core\src\tuscany\sca\core\ServiceProxy.h +..\..\..\runtime\core\src\tuscany\sca\core\ServiceWrapper.h + 7 file(s) copied. +..\..\..\runtime\core\src\tuscany\sca\model\Binding.h +..\..\..\runtime\core\src\tuscany\sca\model\Component.h +..\..\..\runtime\core\src\tuscany\sca\model\CPPImplementation.h +..\..\..\runtime\core\src\tuscany\sca\model\CPPInterface.h +..\..\..\runtime\core\src\tuscany\sca\model\EntryPoint.h +..\..\..\runtime\core\src\tuscany\sca\model\ExternalService.h +..\..\..\runtime\core\src\tuscany\sca\model\Implementation.h +..\..\..\runtime\core\src\tuscany\sca\model\Interface.h +..\..\..\runtime\core\src\tuscany\sca\model\ModelLoader.h +..\..\..\runtime\core\src\tuscany\sca\model\Module.h +..\..\..\runtime\core\src\tuscany\sca\model\Service.h +..\..\..\runtime\core\src\tuscany\sca\model\ServiceReference.h +..\..\..\runtime\core\src\tuscany\sca\model\Subsystem.h +..\..\..\runtime\core\src\tuscany\sca\model\System.h +..\..\..\runtime\core\src\tuscany\sca\model\Wire.h +..\..\..\runtime\core\src\tuscany\sca\model\WireTarget.h +..\..\..\runtime\core\src\tuscany\sca\model\WSBinding.h +..\..\..\runtime\core\src\tuscany\sca\model\Wsdl.h +..\..\..\runtime\core\src\tuscany\sca\model\WsdlOperation.h + 19 file(s) copied. +..\..\..\runtime\core\src\tuscany\sca\util\DefaultLogWriter.h +..\..\..\runtime\core\src\tuscany\sca\util\Exceptions.h +..\..\..\runtime\core\src\tuscany\sca\util\File.h +..\..\..\runtime\core\src\tuscany\sca\util\Library.h +..\..\..\runtime\core\src\tuscany\sca\util\Logger.h +..\..\..\runtime\core\src\tuscany\sca\util\Logging.h +..\..\..\runtime\core\src\tuscany\sca\util\LogWriter.h +..\..\..\runtime\core\src\tuscany\sca\util\Utils.h + 8 file(s) copied. +..\..\..\runtime\core\src\tuscany\sca\ws\SDOStub.h +..\..\..\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.h + 2 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. +

+--------------------Configuration: tuscany_sca_test_CustomerInfo - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10D.tmp" with contents +[ +/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Proxy.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Wrapper.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10D.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10E.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /incremental:yes /pdb:"Debug/CustomerInfo.pdb" /debug /machine:I386 /out:"Debug/CustomerInfo.dll" /implib:"Debug/CustomerInfo.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" +.\Debug\CustomerInfoImpl.obj +.\Debug\CustomerInfoImpl_CustomerInfoService_Proxy.obj +.\Debug\CustomerInfoImpl_CustomerInfoService_Wrapper.obj +\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10E.tmp" +

Output Window

+Compiling... +CustomerInfoImpl.cpp +CustomerInfoImpl_CustomerInfoService_Proxy.cpp +CustomerInfoImpl_CustomerInfoService_Wrapper.cpp +Generating Code... +Linking... + Creating library Debug/CustomerInfo.lib and object Debug/CustomerInfo.exp +

+--------------------Configuration: tuscany_sca_test_MyValue - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP112.tmp" with contents +[ +/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "../../../runtime/core/test/CustomerInfo" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_customerInfo_Proxy.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_MyValueService_Proxy.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_MyValueService_Wrapper.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_stockQuote_Proxy.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP112.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP113.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /incremental:yes /pdb:"Debug/MyValue.pdb" /debug /machine:I386 /out:"Debug/MyValue.dll" /implib:"Debug/MyValue.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" +.\Debug\MyValueImpl.obj +.\Debug\MyValueImpl_customerInfo_Proxy.obj +.\Debug\MyValueImpl_MyValueService_Proxy.obj +.\Debug\MyValueImpl_MyValueService_Wrapper.obj +.\Debug\MyValueImpl_stockQuote_Proxy.obj +\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP113.tmp" +

Output Window

+Compiling... +MyValueImpl.cpp +MyValueImpl_customerInfo_Proxy.cpp +MyValueImpl_MyValueService_Proxy.cpp +MyValueImpl_MyValueService_Wrapper.cpp +MyValueImpl_stockQuote_Proxy.cpp +Generating Code... +Linking... + Creating library Debug/MyValue.lib and object Debug/MyValue.exp +

+--------------------Configuration: tuscany_sca_test - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP117.tmp" with contents +[ +/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "../../../runtime/core/test/MyValue" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"C:\incubator\tuscany\cpp\sca\runtime\core\test\src\TestSCA.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP117.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP118.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/tuscany_sca_test.pdb" /debug /machine:I386 /out:"Debug/tuscany_sca_test.exe" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" +.\Debug\TestSCA.obj +\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib +\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca_test_CustomerInfo\Debug\CustomerInfo.lib +\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca_test_MyValue\Debug\MyValue.lib +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP118.tmp" +

Output Window

+Compiling... +TestSCA.cpp +Linking... +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP11A.bat" with contents +[ +@echo off +copy ..\tuscany_sca_test_MyValue\Debug\MyValue.dll testSCASystem\modules\MyValueServiceModule +copy ..\tuscany_sca_test_MyValue\Debug\MyValue.pdb testSCASystem\modules\MyValueServiceModule +copy ..\tuscany_sca_test_CustomerInfo\Debug\CustomerInfo.dll testSCASystem\modules\MyValueServiceModule +copy ..\tuscany_sca_test_CustomerInfo\Debug\CustomerInfo.pdb testSCASystem\modules\MyValueServiceModule +] +Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP11A.bat" + + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + + + +

Results

+tuscany_sca_test.exe - 0 error(s), 0 warning(s) +
+ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.dsp b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.dsp new file mode 100644 index 0000000000..6230f830e9 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.dsp @@ -0,0 +1,133 @@ +# Microsoft Developer Studio Project File - Name="tuscany_sca_test_CustomerInfo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=tuscany_sca_test_CustomerInfo - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca_test_CustomerInfo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca_test_CustomerInfo.mak" CFG="tuscany_sca_test_CustomerInfo - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "tuscany_sca_test_CustomerInfo - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "tuscany_sca_test_CustomerInfo - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "tuscany_sca_test_CustomerInfo - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /machine:I386 /out:"Release/CustomerInfo.dll" /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" + +!ELSEIF "$(CFG)" == "tuscany_sca_test_CustomerInfo - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /debug /machine:I386 /out:"Debug/CustomerInfo.dll" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" + +!ENDIF + +# Begin Target + +# Name "tuscany_sca_test_CustomerInfo - Win32 Release" +# Name "tuscany_sca_test_CustomerInfo - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Proxy.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Wrapper.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Proxy.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Wrapper.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.plg b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.plg new file mode 100644 index 0000000000..204673f032 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.plg @@ -0,0 +1,41 @@ + + +
+

Build Log

+

+--------------------Configuration: tuscany_sca_test_CustomerInfo - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1761.tmp" with contents +[ +/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Proxy.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Wrapper.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1761.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1762.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /incremental:yes /pdb:"Debug/CustomerInfo.pdb" /debug /machine:I386 /out:"Debug/CustomerInfo.dll" /implib:"Debug/CustomerInfo.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" +.\Debug\CustomerInfoImpl.obj +.\Debug\CustomerInfoImpl_CustomerInfoService_Proxy.obj +.\Debug\CustomerInfoImpl_CustomerInfoService_Wrapper.obj +\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1762.tmp" +

Output Window

+Compiling... +CustomerInfoImpl.cpp +CustomerInfoImpl_CustomerInfoService_Proxy.cpp +CustomerInfoImpl_CustomerInfoService_Wrapper.cpp +Generating Code... +Linking... + Creating library Debug/CustomerInfo.lib and object Debug/CustomerInfo.exp + + + +

Results

+CustomerInfo.dll - 0 error(s), 0 warning(s) +
+ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.dsp b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.dsp new file mode 100644 index 0000000000..c504ee0610 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.dsp @@ -0,0 +1,153 @@ +# Microsoft Developer Studio Project File - Name="tuscany_sca_test_MyValue" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=tuscany_sca_test_MyValue - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca_test_MyValue.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "tuscany_sca_test_MyValue.mak" CFG="tuscany_sca_test_MyValue - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "tuscany_sca_test_MyValue - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "tuscany_sca_test_MyValue - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "tuscany_sca_test_MyValue - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "../../../runtime/core/test/CustomerInfo" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /machine:I386 /out:"Release/MyValue.dll" /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" + +!ELSEIF "$(CFG)" == "tuscany_sca_test_MyValue - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "../../../runtime/core/test/CustomerInfo" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /debug /machine:I386 /out:"Debug/MyValue.dll" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" + +!ENDIF + +# Begin Target + +# Name "tuscany_sca_test_MyValue - Win32 Release" +# Name "tuscany_sca_test_MyValue - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_customerInfo_Proxy.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_MyValueService_Proxy.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_MyValueService_Wrapper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_stockQuote_Proxy.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\MyValue.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_customerInfo_Proxy.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_MyValueService_Proxy.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_MyValueService_Wrapper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_stockQuote_Proxy.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\MyValue\StockQuoteService.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.plg b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.plg new file mode 100644 index 0000000000..d49385a653 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.plg @@ -0,0 +1,47 @@ + + +
+

Build Log

+

+--------------------Configuration: tuscany_sca_test_MyValue - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1766.tmp" with contents +[ +/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "../../../runtime/core/test/CustomerInfo" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_customerInfo_Proxy.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_MyValueService_Proxy.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_MyValueService_Wrapper.cpp" +"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_stockQuote_Proxy.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1766.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1767.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /incremental:yes /pdb:"Debug/MyValue.pdb" /debug /machine:I386 /out:"Debug/MyValue.dll" /implib:"Debug/MyValue.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" +.\Debug\MyValueImpl.obj +.\Debug\MyValueImpl_customerInfo_Proxy.obj +.\Debug\MyValueImpl_MyValueService_Proxy.obj +.\Debug\MyValueImpl_MyValueService_Wrapper.obj +.\Debug\MyValueImpl_stockQuote_Proxy.obj +\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1767.tmp" +

Output Window

+Compiling... +MyValueImpl.cpp +MyValueImpl_customerInfo_Proxy.cpp +MyValueImpl_MyValueService_Proxy.cpp +MyValueImpl_MyValueService_Wrapper.cpp +MyValueImpl_stockQuote_Proxy.cpp +Generating Code... +Linking... + Creating library Debug/MyValue.lib and object Debug/MyValue.exp + + + +

Results

+MyValue.dll - 0 error(s), 0 warning(s) +
+ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/readme.txt b/sca-cpp/tags/cpp-stable-20060304/sca/readme.txt new file mode 100644 index 0000000000..26f1ef33b7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/readme.txt @@ -0,0 +1,39 @@ +Tuscany SCA C++ +=============== + +Tuscany SCA C++ provides a runtime implementation for the Service Component +Architecture 0.9 specification, written in C++ and will currently support C++ +component implementation types. This is not yet a complete implementation and +known restrictions are described below. + +Supported SCA Assembly Model features + * All features are supported unless listed under the known restrictions + below. See SCA Assembly Model specification. + +Supported language bindings + * Component implementations written in C++. See SCA Client and + Implementation Model specification. + * Component interfaces described by C++ classes. See SCA Client and + Implementation Model specification. + +Supported external service and entry point bindings + * The web service binding is supported. This implementation will support + web services which using document literal SOAP bindings conforming to the + WS-I basic profile (rpc/encoded is not supported). + +Known restrictions + * Subsystem wiring, entry points and external services are not supported. + * Remotable services that will be bound to the web service binding must have + an interface with a single input parameter which is an SDO DataObjectPtr, + and a single return typer which is an SDO DataObjectPtr. + * Local service interfaces cannot use overloaded operations (the SCA + specification limits remote service interfaces to not using overloaded + operations). + * Only component properties with simple types are supported. + * No optimization for subsystem communication when subsystems are located in + the same system. + * Each WSDL definition for a web service binding must be in a single WSDL + document. + * No load time validation of the deployed SCA application (run time validation + only). + * No metadata API. diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/Makefile.am new file mode 100644 index 0000000000..caacfcdef5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = core axis_binding diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/Makefile.am new file mode 100644 index 0000000000..f7eaa50485 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = handler wrapper diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/Makefile.am new file mode 100644 index 0000000000..956b824d5c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = src + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtbuild b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtbuild new file mode 100644 index 0000000000..55590cf0c8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtbuild @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtproject b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtproject new file mode 100644 index 0000000000..48a12e6664 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtproject @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.project b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.project new file mode 100644 index 0000000000..a2718eca4f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.project @@ -0,0 +1,19 @@ + + + tuscany_sca_axis_handler + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000000..1023be0afa --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,9 @@ +#Thu Feb 16 14:40:27 GMT 2006 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.2106566379=\n\n\n\n\n +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.221779505=\n\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.2106566379=\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.221779505=\n\n\n\n +environment/project=\n\n +environment/project/cdt.managedbuild.config.gnu.so.debug.2106566379=\n\n +environment/project/cdt.managedbuild.config.gnu.so.release.221779505=\n\n diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/Makefile.am new file mode 100644 index 0000000000..6054ec7b31 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/Makefile.am @@ -0,0 +1,9 @@ +lib_LTLIBRARIES = libtuscany_sca_axis_handler.la + +libtuscany_sca_axis_handler_la_SOURCES = SCAWSHandler.cpp + +libtuscany_sca_axis_handler_la_LIBADD = -lstdc++ + +INCLUDES = -I$(top_builddir)/runtime/core/src \ + -I${AXISCPP_DEPLOY}/include + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.cpp new file mode 100644 index 0000000000..ed57c0677e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.cpp @@ -0,0 +1,154 @@ +/* + * + * 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$ */ + +#include "SCAWSHandler.h" +#include +#include + +AXIS_CPP_NAMESPACE_USE +using std::string; + +/** Construct an SCAWSHandler. + */ +SCAWSHandler::SCAWSHandler() +{ + return; +} + +/** Destruct an SCAWSHandler. + */ +SCAWSHandler::~SCAWSHandler() +{ +} + + +/** Perform any necessary initialization. + */ +int SCAWSHandler::init() +{ + return AXIS_SUCCESS; +} + +/** Perform any necessary finalization. + */ +int SCAWSHandler::fini() +{ + return AXIS_SUCCESS; +} + +/** Get the SCA specific properties that were set in the deployment + * descriptor (server.wsdd) and set them into the MessageData where + * they can be retrieved by the SCAWSWrapper to invoke the correct + * SCA Entry Point. + * @param pvIMsg - pointer to IMessageData + * + * @see SCAWSWrapper + */ +int SCAWSHandler::invoke(void *pvIMsg) +{ + IMessageData *pIMsg = (IMessageData*) pvIMsg; + + if(pIMsg->isPastPivot()) + { + // This is a response. + } + else + { + // This is a request + + // + // Get the SCA specific properties from the handler. + // + + // NOTE: WE CANNOT MAKE THE SIMPLE 'GETOPTION' CALLS BECAUSE THE + // STD::MAP CODE WILL CAUSE AN ACCESS VIOLATION IN AXISSERVER.DLL. + // THE GETOPTION METHOD IN HANDLER.HPP NEEDS TO BE MOVED INTO + // AXISSERVER.DLL AND BE EXPORTED. + //const string& strTargetNamespace = getOption("targetNamespace"); + //const string& strSCAEntryPoint = getOption("scaEntryPoint"); + + // HACK + // BECAUSE WE CANNOT MAKE ANY MAP CALLS THAT REQUIRE PARAMETERS AND + // CANNOT SEEM TO ITERATE OVER THE MAP IN A FOR LOOP EITHER WITHOUT + // TRAPPING, WE RESORT TO READING THE FIRST AND LAST PROPERTIES. + // THIS IS ACCEPTABLE AS A WORKAROUND FOR NOW BECAUSE WE ONLY + // HAVE TWO PROPERTIES. + string strName; + string strValue; + // Read the first property in the map and set its name and value + // into the IMessageData. + map::const_iterator it = m_pOption->begin(); + strName = (*it).first; + strValue = (*it).second; + pIMsg->setProperty(strName.c_str(), strValue.c_str()); + // Read the last property in the map and set its name and value + // into the IMessageData. + map::const_reverse_iterator itr = m_pOption->rbegin(); + strName = (*itr).first; + strValue = (*itr).second; + pIMsg->setProperty(strName.c_str(), strValue.c_str()); + // END HACK + } + + return AXIS_SUCCESS; +} + +/** Handle Faults. + */ +void SCAWSHandler::onFault(void *pvIMsg) +{ + +} + +// +// These functions are exported from the SCAWSHandler DLL and are called by the Axis Engine +// to create/destroy instances of the SCAWSHandler class. +// +extern "C" +{ +STORAGE_CLASS_INFO +int GetClassInstance(BasicHandler **inst) +{ + *inst = new BasicHandler(); + + SCAWSHandler* pSCAWSHandler = new SCAWSHandler(); + (*inst)->_functions = 0; + if (pSCAWSHandler) + { + (*inst)->_object = pSCAWSHandler; + return pSCAWSHandler->init(); + } + + return AXIS_FAIL; +} + +STORAGE_CLASS_INFO +int DestroyInstance(BasicHandler *inst) +{ + if (inst) + { + Handler* pH = static_cast(inst->_object); + pH->fini(); + delete pH; + delete inst; + return AXIS_SUCCESS; + } + return AXIS_FAIL; +} +} // extern "C" diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.h new file mode 100644 index 0000000000..3f0c576921 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.h @@ -0,0 +1,79 @@ +/* + * + * 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 11:33:21 $ */ + +#if !defined(SCAWSHANDLER_H_INCLUDED) +#define SCAWSHANDLER_H_INCLUDED + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include + +/** The SCAWSHandler class is an Axis Handler that retrieves properties set + * in the deployment descriptor (server.wsdd) and sets them into the + * MessageData for use by the SCAWSWrapper which invokes SCA Entry Points. + * + * @see SCAWSWrapper + */ +AXIS_CPP_NAMESPACE_USE + +class SCAWSHandler : public Handler +{ + public: + /** Construct an SCAWSHandler. + */ + SCAWSHandler(void); + + /** Destruct an SCAWSHandler. + */ + virtual ~SCAWSHandler(void); + + // Axis WrapperClassHandler interface. + + /** Perform an necessary initialization. + */ + int AXISCALL init(); + + /** Perform any necessary finalization. + */ + int AXISCALL fini(); + + /** Get the SCA specific properties that were set in the deployment + * descriptor (server.wsdd) and set them into the MessageData where + * they can be retrieved by the SCAWSWrapper to invoke the correct + * SCA Entry Point. + * @param pvIMsg - pointer to IMessageData + * + * @see SCAWSWrapper + */ + int AXISCALL invoke(void* pvIMsg); + + /** Handle Faults. + */ + void AXISCALL onFault(void* pvIMsg); + + private: + +}; + + +#endif // !defined(SCAWSHANDLER_H_INCLUDED) + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/Makefile.am new file mode 100644 index 0000000000..af437a64d6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = src diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtbuild b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtbuild new file mode 100644 index 0000000000..cad284f534 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtbuild @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtproject b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtproject new file mode 100644 index 0000000000..48a12e6664 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtproject @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.project b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.project new file mode 100644 index 0000000000..526e05b5c0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.project @@ -0,0 +1,19 @@ + + + tuscany_sca_axis_wrapper + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000000..263f7d68d6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,9 @@ +#Thu Feb 16 14:46:12 GMT 2006 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.928824798=\n\n\n\n\n +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.417732635=\n\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.928824798=\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.417732635=\n\n\n\n +environment/project=\n\n +environment/project/cdt.managedbuild.config.gnu.so.debug.928824798=\n\n\n\n +environment/project/cdt.managedbuild.config.gnu.so.release.417732635=\n\n\n\n diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/Makefile.am new file mode 100644 index 0000000000..f3dda31d1c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/Makefile.am @@ -0,0 +1,10 @@ +lib_LTLIBRARIES = libtuscany_sca_axis_wrapper.la + +libtuscany_sca_axis_wrapper_la_SOURCES = SCAWSWrapper.cpp + +libtuscany_sca_axis_wrapper_la_LIBADD = -lstdc++ -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo + +INCLUDES = -I$(top_builddir)/runtime/core/src \ + -I${TUSCANY_SDOCPP}/include \ + -I${AXISCPP_DEPLOY}/include + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.cpp new file mode 100644 index 0000000000..1ae9739117 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.cpp @@ -0,0 +1,254 @@ +/* + * + * 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 11:33:21 $ */ + +#include "SCAWSWrapper.h" + +#include "commonj/sdo/SDO.h" +#include "tuscany/sca/util/Exceptions.h" +#include "tuscany/sca/core/SCAEntryPoint.h" + + +using namespace std; +using namespace commonj::sdo; +using namespace tuscany::sca; +AXIS_CPP_NAMESPACE_USE; + +/** Construct an SCAWSWrapper. + */ +SCAWSWrapper::SCAWSWrapper() +{ +} + +/** Destruct an SCAWSWrapper. + */ +SCAWSWrapper::~SCAWSWrapper() +{ +} + + +// +// Implementation of WrapperClassHandler interface +// + +/** Perform any necessary initialization. + */ +int SCAWSWrapper::init() +{ + return AXIS_SUCCESS; +} + +/** Perform an necessary finalization. + */ +int SCAWSWrapper::fini() +{ + return AXIS_SUCCESS; +} + +/** Invoke a web service operation. The invoke method expects SCA specific + * properties to have been set into the MessageData by the SCAWSHandler. + * Using those properties, the wrapper will invoke the correct SCA Entry + * Point. + * @param pMsg - pointer to IMessageData. + * + * @see SCAWSHandler + */ +int SCAWSWrapper::invoke(void *pMsg) +{ + + IMessageData *pIMsg = (IMessageData*)pMsg; + const AxisChar *operationName = pIMsg->getOperationName(); + + int axisReturn = invokeService(pIMsg, operationName); + return axisReturn; +} + +/** Handle Faults. + */ +void SCAWSWrapper::onFault(void *pMsg) +{ +} + + +// Invoke an operation on an SCA Entry Point. +int SCAWSWrapper::invokeService(IMessageData *pIMsg, + const AxisChar *operationName) +{ + int axisReturn = AXIS_SUCCESS; + + // Get the SoapSerializer. + IWrapperSoapSerializer* pIWSSZ; + pIMsg->getSoapSerializer(&pIWSSZ); + if (!pIWSSZ) + { + return AXIS_FAIL; + } + + // Get the SoapDeSerializer. + IWrapperSoapDeSerializer* pIWSDZ; + pIMsg->getSoapDeSerializer(&pIWSDZ); + if (!pIWSDZ) + { + return AXIS_FAIL; + } + + // Target Namespace was set into the MessageData by the SCAWSHandler. + const AxisChar *targetNamespace = (const AxisChar *)pIMsg->getProperty("targetNamespace"); + + // Make sure we have the correct message. + if (AXIS_SUCCESS != pIWSDZ->checkMessageBody(operationName, targetNamespace)) + { + return AXIS_FAIL; + } + + try + { + // + // Create the SCA EntryPoint + // + const AxisChar *scaEntryPointName = (const AxisChar *)pIMsg->getProperty("scaEntryPoint"); + SCAEntryPoint entrypoint(scaEntryPointName); + + // Get the DataFactory which has Types loaded from WSDLs + DataFactoryPtr dataFactory = entrypoint.getDataFactory(); + + // + // Get the Soap body and create an SDO request object from it. + // + AnyType *soapAny = pIWSDZ->getAnyObject(); + + // The Doc Literal soap message does not include the root element (operation name) when + // we use getAnyObject. Axis calls this element the 'soap method' but there is no + // 'getSoapMethod' method on the deserializer - we need to wrap the soap body with an + // element named for the operation name. + + string soapBody("<"); + soapBody.append(operationName); + soapBody.append(" "); + soapBody.append("xmlns"); + soapBody.append("=\""); + soapBody.append(targetNamespace); + soapBody.append("\">"); + for (int i=0; i < soapAny->_size ; i++) + { + // The soap body is stored in the _array member of AnyType. + soapBody.append(soapAny->_array[i]); + } + soapBody.append(""); + + // + // Create the SDO request object from the soap body. + // + XMLHelperPtr xmlHelper = HelperProvider::getXMLHelper(dataFactory); + XMLDocumentPtr xmlDoc = xmlHelper->load(soapBody.c_str(), targetNamespace); + DataObjectPtr requestSDO = xmlDoc->getRootDataObject(); + + // + // Invoke the operation on the SCA EntryPoint. + // + DataObjectPtr responseSDO = entrypoint.invoke(operationName, requestSDO); + + // + // Serialize the responseSDO into a SOAP response. + // + // Get the name of the response SDO. The entry point was invoked using an + // SDOStub and the stub makes sure that the response includes the root + // element (operation response name). + + const Type &responseType = responseSDO->getType(); + const char *operationResponseName = responseType.getName(); + + // Get the first child of the root element - this is the soap body + // to return in the response. The body will be wrapped with the root + // element (operation response name) when we call the Axis method + // 'createSoapmMethod'. + DataObjectPtr soapBodySDO = responseSDO->getDataObject((unsigned int)0); + const Type& soapBodyType = soapBodySDO->getType(); + const char *soapBodyName = soapBodyType.getName(); + // Convert the soap body DataObject into XML. + XMLDocumentPtr responseDoc = xmlHelper->createDocument(soapBodySDO, + targetNamespace, + soapBodyName); + responseDoc->setXMLDeclaration(false); + char *responseXML = xmlHelper->save(responseDoc); + + // + // Serialize the response + // + // Wrap the soap body with the root element (operation response name). + pIWSSZ->createSoapMethod(operationResponseName, targetNamespace); + // Add the XML response document (soap body) as an AnyType. + AnyType *soapAnyResponse = new AnyType(); + soapAnyResponse->_size = 1; + soapAnyResponse->_array = new char*[1]; + soapAnyResponse->_array[0] = strdup(responseXML); + + pIWSSZ->addOutputAnyObject(soapAnyResponse); + + } + catch(ServiceRuntimeException e) + { + axisReturn = AXIS_FAIL; + } + catch(SDORuntimeException e) + { + axisReturn = AXIS_FAIL; + } + + + return axisReturn; +} + +// +// These functions are exported from the SCAWSWrapper DLL and are called by the Axis Engine +// to create/destroy instances of the service wrapper class. +// +extern "C" +{ +STORAGE_CLASS_INFO +int GetClassInstance(BasicHandler **inst) +{ + *inst = new BasicHandler(); + WrapperClassHandler* pWCH = new SCAWSWrapper(); + (*inst)->_functions = 0; + if (pWCH) + { + (*inst)->_object = pWCH; + return pWCH->init(); + } + return AXIS_FAIL; +} +STORAGE_CLASS_INFO +int DestroyInstance(BasicHandler *inst) +{ + if (inst) + { + WrapperClassHandler* pWCH = reinterpret_cast(inst); + pWCH->fini(); + delete pWCH; + delete inst; + return AXIS_SUCCESS; + } + return AXIS_FAIL; +} +} // extern "C" + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.h new file mode 100644 index 0000000000..474c39977f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.h @@ -0,0 +1,110 @@ +/* + * + * 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 11:33:21 $ */ + +#if !defined(SCAWSWRAPPER_H_INCLUDED) +#define SCAWSWRAPPER_H_INCLUDED + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "osoa/sca/export.h" +#include +#include +#include +#include +#include + + +AXIS_CPP_NAMESPACE_USE + +/** The SCAWSWrapper class is an Axis WrapperClassHandler that acts as a generic service wrapper for + * invoking services using the SCARuntime. Any services defined in the deployment descriptor (server.wsdd) + * with will be invoked by the SCAWSWrapper. + * The service must also be configured with a handler (SCAWSHandler) that sets SCA specific properties + * from the deployment descriptor into the MessageData that is passed to the wrapper's invoke method. + * The SCAWSWrapper uses the properties to configure an SCA Entry Point and invoke the requested operation + * on the service. + * + * Example: + * + * + * + * + * + * + * + * + * + * + * + * + * + * @see SCAWSHandler + */ +class SCAWSWrapper : public WrapperClassHandler +{ + public: + + /** Construct an SCAWSWrapper. + */ + SCAWSWrapper(); + + /** Destruct an SCAWSWrapper. + */ + virtual ~SCAWSWrapper(); + + // + // Axis WrapperClassHandler interface. + // + + /** Perform any necessary initialization. + */ + int AXISCALL init(); + + /** Perform any necessary finalization. + */ + int AXISCALL fini(); + + /** Invoke a web service operation. The invoke method expects SCA specific + * properties to have been set into the MessageData by the SCAWSHandler. + * Using those properties, the wrapper will invoke the correct SCA Entry + * Point. + * @param pMsg - pointer to IMessageData. + * + * @see SCAWSHandler + */ + int AXISCALL invoke(void* pMsg); + + /** Handle Faults. + */ + void AXISCALL onFault(void* pMsg); + + /** Binding Style: Document Literal. + */ + AXIS_BINDING_STYLE AXISCALL getBindingStyle() { return DOC_LITERAL; }; + + private: + + // Invoke an SCA Entry Point and return an SDO object as a result. + int invokeService(IMessageData *pIMsg, + const AxisChar *operationName); +}; + +#endif // !defined(SCAWSWRAPPER_H_INCLUDED) diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/Makefile.am new file mode 100644 index 0000000000..b4b5bc3097 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = src test diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtbuild b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtbuild new file mode 100644 index 0000000000..60990b3bc1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtbuild @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtproject b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtproject new file mode 100644 index 0000000000..48a12e6664 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtproject @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.project b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.project new file mode 100644 index 0000000000..86fb4b8663 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.project @@ -0,0 +1,19 @@ + + + tuscany_sca + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000000..0e5a987932 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,9 @@ +#Thu Feb 16 12:50:21 GMT 2006 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.1559343291=\n\n\n\n\n +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.1621584437=\n\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.1559343291=\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.1621584437=\n\n\n\n +environment/project=\n\n +environment/project/cdt.managedbuild.config.gnu.so.debug.1559343291=\n\n\n\n +environment/project/cdt.managedbuild.config.gnu.so.release.1621584437=\n\n\n\n diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/Makefile.am new file mode 100644 index 0000000000..8fc6c7ccc7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/Makefile.am @@ -0,0 +1,98 @@ +lib_LTLIBRARIES = libtuscany_sca.la + +nobase_include_HEADERS = \ +osoa/sca/ComponentContext.h \ +osoa/sca/ComponentContextImpl.h \ +osoa/sca/export.h \ +osoa/sca/ModuleContext.h \ +osoa/sca/ModuleContextImpl.h \ +osoa/sca/sca.h \ +osoa/sca/ServiceList.h \ +osoa/sca/ServiceRuntimeException.h \ +tuscany/sca/core/ComponentServiceWrapper.h \ +tuscany/sca/core/ExternalServiceWrapper.h \ +tuscany/sca/core/Operation.h \ +tuscany/sca/core/SCAEntryPoint.h \ +tuscany/sca/core/SCARuntime.h \ +tuscany/sca/core/ServiceProxy.h \ +tuscany/sca/core/ServiceWrapper.h \ +tuscany/sca/model/Binding.h \ +tuscany/sca/model/Component.h \ +tuscany/sca/model/CPPImplementation.h \ +tuscany/sca/model/CPPInterface.h \ +tuscany/sca/model/EntryPoint.h \ +tuscany/sca/model/ExternalService.h \ +tuscany/sca/model/Implementation.h \ +tuscany/sca/model/Interface.h \ +tuscany/sca/model/ModelLoader.h \ +tuscany/sca/model/Module.h \ +tuscany/sca/model/Service.h \ +tuscany/sca/model/ServiceReference.h \ +tuscany/sca/model/Subsystem.h \ +tuscany/sca/model/System.h \ +tuscany/sca/model/Wire.h \ +tuscany/sca/model/WireTarget.h \ +tuscany/sca/model/WSBinding.h \ +tuscany/sca/model/Wsdl.h \ +tuscany/sca/model/WsdlOperation.h \ +tuscany/sca/util/DefaultLogWriter.h \ +tuscany/sca/util/Exceptions.h \ +tuscany/sca/util/File.h \ +tuscany/sca/util/Library.h \ +tuscany/sca/util/Logger.h \ +tuscany/sca/util/Logging.h \ +tuscany/sca/util/LogWriter.h \ +tuscany/sca/util/Utils.h \ +tuscany/sca/ws/SDOStub.h \ +tuscany/sca/ws/WSServiceWrapper.h + + +libtuscany_sca_la_SOURCES = \ +osoa/sca/ComponentContext.cpp \ +osoa/sca/ComponentContextImpl.cpp \ +osoa/sca/ModuleContext.cpp \ +osoa/sca/ModuleContextImpl.cpp \ +osoa/sca/SCA.cpp \ +osoa/sca/ServiceList.cpp \ +osoa/sca/ServiceRuntimeException.cpp \ +tuscany/sca/util/DefaultLogWriter.cpp \ +tuscany/sca/util/File.cpp \ +tuscany/sca/util/Library.cpp \ +tuscany/sca/util/Logger.cpp \ +tuscany/sca/util/LogWriter.cpp \ +tuscany/sca/util/Utils.cpp \ +tuscany/sca/model/Binding.cpp \ +tuscany/sca/model/Component.cpp \ +tuscany/sca/model/CPPImplementation.cpp \ +tuscany/sca/model/CPPInterface.cpp \ +tuscany/sca/model/EntryPoint.cpp \ +tuscany/sca/model/ExternalService.cpp \ +tuscany/sca/model/Implementation.cpp \ +tuscany/sca/model/Interface.cpp \ +tuscany/sca/model/ModelLoader.cpp \ +tuscany/sca/model/Module.cpp \ +tuscany/sca/model/Service.cpp \ +tuscany/sca/model/ServiceReference.cpp \ +tuscany/sca/model/Subsystem.cpp \ +tuscany/sca/model/System.cpp \ +tuscany/sca/model/Wire.cpp \ +tuscany/sca/model/WireTarget.cpp \ +tuscany/sca/model/WSBinding.cpp \ +tuscany/sca/model/Wsdl.cpp \ +tuscany/sca/model/WsdlOperation.cpp \ +tuscany/sca/core/ComponentServiceWrapper.cpp \ +tuscany/sca/core/ExternalServiceWrapper.cpp \ +tuscany/sca/core/Operation.cpp \ +tuscany/sca/core/SCAEntryPoint.cpp \ +tuscany/sca/core/SCARuntime.cpp \ +tuscany/sca/core/ServiceProxy.cpp \ +tuscany/sca/core/ServiceWrapper.cpp \ +tuscany/sca/ws/SDOStub.cpp \ +tuscany/sca/ws/WSServiceWrapper.cpp + +libtuscany_sca_la_LIBADD = -lstdc++ -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo + +INCLUDES = -I$(top_builddir)/runtime/core/src \ + -I${TUSCANY_SDOCPP}/include \ + -I${AXISCPP_DEPLOY}/include + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.cpp new file mode 100644 index 0000000000..73c3ed2e36 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.cpp @@ -0,0 +1,132 @@ +/* + * + * 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 11:33:21 $ */ + +#include "osoa/sca/ComponentContext.h" +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Exceptions.h" +#include "osoa/sca/ComponentContextImpl.h" +#include "tuscany/sca/core/SCARuntime.h" + +using namespace tuscany::sca; + +namespace osoa +{ + namespace sca + { + + // ======================================================= + // getCurrent: create a context from the current component + // ======================================================= + ComponentContext ComponentContext::getCurrent() + { + LOGENTRY(1, "ComponentContext::getCurrent"); + Component* component = SCARuntime::getInstance()->getCurrentComponent(); + if (!component) + { + throw ComponentContextException("No current component"); + } + ComponentContextImpl* cci = new ComponentContextImpl(component); + LOGEXIT(1, "ComponentContext::constructor"); + return ComponentContext(cci); + } + + // =========== + // Constructor + // =========== + ComponentContext::ComponentContext(ComponentContextImpl* implementation) + : impl(implementation) + { + LOGENTRY(1, "ComponentContext::constructor"); + LOGEXIT(1, "ComponentContext::constructor"); + } + + // ========== + // Destructor + // ========== + ComponentContext::~ComponentContext() + { + LOGENTRY(1, "ComponentContext::destructor"); + delete impl; + LOGEXIT(1, "ComponentContext::destructor"); + } + + // =================================== + // Copy constructor: create a new impl + // =================================== + ComponentContext::ComponentContext(const ComponentContext& ctx) + { + impl = new ComponentContextImpl(impl->getComponent()); + } + + // ============================= + // operator= : create a new impl + // ============================= + ComponentContext& ComponentContext::operator=(const ComponentContext& ctx) + { + if (this != &ctx) + { + impl = new ComponentContextImpl(impl->getComponent()); + } + return *this; + } + + // ========== + // getService + // ========== + void* ComponentContext::getService(const char* referenceName) + { + LOGENTRY(1, "ComponentContext::getService"); + void* service = impl->getService(referenceName); + LOGEXIT(1, "ComponentContext::getService"); + return service; + } + + // =========== + // getServices + // =========== + ServiceList ComponentContext::getServices(const char* referenceName) + { + return impl->getServices(referenceName); + } + + // ============ + // getProperties + // ============= + DataObjectPtr ComponentContext::getProperties() + { + LOGENTRY(1, "ComponentContext::getProperties"); + DataObjectPtr properties = impl->getProperties(); + LOGEXIT(1, "ComponentContext::getProperties"); + return properties; + } + + // ============ + // getDataFactory + // ============= + DataFactoryPtr ComponentContext::getDataFactory() + { + LOGENTRY(1, "ComponentContext::getDataFactory"); + DataFactoryPtr dataFactory = impl->getDataFactory(); + LOGEXIT(1, "ComponentContext::getDataFactory"); + return dataFactory; + } + + + } // End namespace sca +} // End namespace osoa diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.h new file mode 100644 index 0000000000..10d334a936 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.h @@ -0,0 +1,105 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef osoa_sca_componentcontext_h +#define osoa_sca_componentcontext_h + +#include "osoa/sca/export.h" +#include "osoa/sca/ServiceList.h" +#include "commonj/sdo/SDO.h" +namespace osoa +{ + namespace sca + { + class ComponentContextImpl; + + /** + * An SCA component implementation uses the ComponentContext class to + * retrieve information about the configured SCA component. + */ + class SCA_API ComponentContext + { + + public: + /** + * Return a new ComponentContext for the current Component. + */ + static ComponentContext getCurrent(); + + /** + * Resolve a reference name into a single configured service. + * If the component's reference is wired to more than one service + * then theis method will return an exception. + * @param referenceName The reference to be resolved. This must match + * the name of a reference configured in the component type file for + * this component. + */ + void* getService(const char* referenceName); + + /** + * Resolve a reference name into a list of configured services. + * @param referenceName The reference to be resolved. This must match + * the name of a reference configured in the component type file for + * this component. + */ + ServiceList getServices(const char* referenceName); + + /** + * Get the configured properties for the component. + * @return A data object representing all the properties that + * are configured for this component. + */ + commonj::sdo::DataObjectPtr getProperties(); + + /** + * Get an SDO data factory which will allow the component to + * create data objects for all the types configured for this + * component. + * @return A data factory to be used by the component to create + * new data objects. + */ + commonj::sdo::DataFactoryPtr getDataFactory(); + + /** + * Destructor + */ + virtual ~ComponentContext(); + + + ComponentContext(const ComponentContext&); + ComponentContext& operator=(const ComponentContext&); + + private: + /** + * Constructor to create an interface class from the contained + * implementation. + * @param implementation the actual implementation class + */ + ComponentContext(ComponentContextImpl* implementation); + + /** + * Pointer to the class which provides the actual implementation. + */ + ComponentContextImpl* impl; + + }; + } // End namespace sca +} // End namespace osoa + +#endif // osoa_sca_componentcontext_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.cpp new file mode 100644 index 0000000000..436e44d5e1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.cpp @@ -0,0 +1,270 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Exceptions.h" +#include "osoa/sca/ComponentContextImpl.h" +#include "tuscany/sca/model/WireTarget.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" +#include "tuscany/sca/core/ExternalServiceWrapper.h" +#include "tuscany/sca/model/CPPImplementation.h" +#include "tuscany/sca/model/Module.h" + +using namespace tuscany::sca; +using namespace tuscany::sca::model; + +namespace osoa +{ + namespace sca + { + // =========== + // Constructor + // =========== + ComponentContextImpl::ComponentContextImpl(Component* comp) + : component(comp) + { + LOGENTRY(1, "ComponentContextImpl::constructor"); + LOGEXIT(1, "ComponentContextImpl::constructor"); + } + + // ========== + // Destructor + // ========== + ComponentContextImpl::~ComponentContextImpl() + { + // -------------------------------------------- + // Delete the proxies served up by this context + // -------------------------------------------- + for (PROXIES::iterator iter = proxies.begin(); iter != proxies.end(); iter++) + { + delete (ServiceProxy*)*iter; + } + } + + + // ========================================================================== + // getServices: return a list of Proxies for services wired to this reference + // ========================================================================== + ServiceList ComponentContextImpl::getServices(const char* referenceName) + { + LOGENTRY(1, "ComponentContextImpl::getServices"); + + string message; + + // -------------------------------------------------------------- + // locate reference in the current component and determine target + // -------------------------------------------------------------- + ServiceReference* serviceReference = component->findReference(referenceName); + if (!serviceReference) + { + message = "Reference not defined: "; + message = message + referenceName; + throw ServiceNotFoundException(message.c_str()); + } + + // Get the target services from the ServiceReference + const ServiceReference::TARGETS& targets = serviceReference->getTargets(); + + // -------------------- + // Validate the request + // -------------------- + switch (serviceReference->getMultiplicity()) + { + case ServiceReference::ONE_MANY: + case ServiceReference::ONE_ONE: + { + if (targets.size() == 0) + { + message = "Reference "; + message = message + referenceName + " not wired"; + throw ServiceNotFoundException(message.c_str()); + } + } + default: + { + } + } // end switch + + // ------------------------------ + // Create a proxy for each target + // ------------------------------ + ServiceList services(targets.size()); + for (ServiceReference::TARGETS::const_iterator iter = targets.begin(); + iter!=targets.end(); + iter++) + { + services.addService(getServiceProxy(serviceReference, *iter)); + } + + return services; + + } // End getServices() + + + // =================================================================== + // getService: return a Proxy for the services wired to this reference + // =================================================================== + void* ComponentContextImpl::getService(const char* referenceName) + { + LOGENTRY(1, "ComponentContextImpl::getService"); + + string message; + + // -------------------------------------------------------------- + // locate reference in the current component and determine target + // -------------------------------------------------------------- + ServiceReference* serviceReference = component->findReference(referenceName); + if (!serviceReference) + { + message = "Reference not defined: "; + message = message + referenceName; + throw ServiceNotFoundException(message.c_str()); + } + + // Get the target service from the ServiceReference + const ServiceReference::TARGETS& targets = serviceReference->getTargets(); + + // -------------------- + // Validate the request + // -------------------- + switch (serviceReference->getMultiplicity()) + { + case ServiceReference::ZERO_MANY: + case ServiceReference::ONE_MANY: + { + message = "getService() called for reference with multiplicity >1 :"; + message = message + referenceName; + throw ServiceNotFoundException(message.c_str()); + } + case ServiceReference::ONE_ONE: + { + if (targets.size() == 0) + { + message = "Reference "; + message = message + referenceName + " not wired"; + throw ServiceNotFoundException(message.c_str()); + } + } + default: + { + } + } // end switch + + // Return the proxy + return getServiceProxy(serviceReference, *targets.begin()); + + } // End getService() + + + // ================================================================== + // getServiceProxy: Create and return an instance of the ServiceProxy + // ================================================================== + void* ComponentContextImpl::getServiceProxy( + ServiceReference* serviceReference, + WireTarget* target) + { + // ----------------------------------- + // Get a ServiceWrapper for the target + // ----------------------------------- + ServiceWrapper* serviceWrapper = getServiceWrapper(target); + + // ------------------------------ + // Get a Proxy for this reference + // ------------------------------ + try + { + ServiceProxy* serviceProxy = new ServiceProxy(component, serviceReference->getName(), serviceWrapper); + void* service = serviceProxy->getProxy(); + // service MUST be set here or an exception will have been thrown + proxies.push_back(serviceProxy); + return service; + } + catch (ServiceRuntimeException&) + { + delete serviceWrapper; + throw ; + } + } + + + // ====================================================================== + // getServiceWrapper: Create and return an instance of the ServiceWrapper + // ====================================================================== + ServiceWrapper* ComponentContextImpl::getServiceWrapper(WireTarget* target) + { + // ------------------------- + // Determine type of Service + // ------------------------- + switch (target->getServiceType()) + { + case WireTarget::ExternalServiceType: + { + // ---------------- + // External Service + // ---------------- + return ExternalServiceWrapper::createServiceWrapper((ExternalService*)target); + } + + case WireTarget::ComponentServiceType: + { + // ----------------- + // Component Service + // ----------------- + return ComponentServiceWrapper::createServiceWrapper((Service*)target); + } + + default: + { + string message = "Undefined wire target type for : "; + message = message + target->getName(); + throw ServiceNotFoundException(message.c_str()); + } + } // end switch + } + + + + // ============================================== + // getProperties: return the component properties + // ============================================== + DataObjectPtr ComponentContextImpl::getProperties() + { + LOGENTRY(1, "ComponentContextImpl::getProperties"); + DataObjectPtr properties = component->getProperties(); + + LOGEXIT(1, "ComponentContextImpl::getProperties"); + return properties; + } + + // ============================================== + // getDataFactory: return the data factory for the module in which + // this component resides + // ============================================== + DataFactoryPtr ComponentContextImpl::getDataFactory() + { + LOGENTRY(1, "ComponentContextImpl::getProperties"); + DataFactoryPtr dataFactory = component->getModule()->getDataFactory(); + + LOGEXIT(1, "ComponentContextImpl::getDataFactory"); + return dataFactory; + } + + + } // End namespace sca +} // End namespace osoa diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.h new file mode 100644 index 0000000000..bd3a0d106a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.h @@ -0,0 +1,120 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef osoa_sca_componentcontextimpl_h +#define osoa_sca_componentcontextimpl_h + +#include "osoa/sca/ServiceList.h" + +#include "tuscany/sca/model/Component.h" +#include "tuscany/sca/core/ServiceWrapper.h" +#include "tuscany/sca/core/ServiceProxy.h" +#include "tuscany/sca/model/Service.h" + +using namespace tuscany::sca; +using namespace tuscany::sca::model; + +namespace osoa +{ + namespace sca + { + /** + * Contains the actual implementation of a ComponentContext interface. + */ + class ComponentContextImpl + { + + public: + /** + * Constructor that takes a Component which represents the runtime + * model for this context. + */ + ComponentContextImpl(Component* component); + + /** + * Default constructor. + */ + virtual ~ComponentContextImpl(); + + /** + * See ComponentContext. + */ + void* getService(const char* referenceName); + + /** + * See ComponentContext. + */ + ServiceList getServices(const char* referenceName); + + /** + * See ComponentContext. + */ + DataObjectPtr getProperties(); + + /** + * See ComponentContext. + */ + commonj::sdo::DataFactoryPtr getDataFactory(); + + /** + * Returns the contained Component. + * @return The Component to which this context refers. + */ + Component* getComponent() {return component;} + + private: + ComponentContextImpl(const ComponentContextImpl&); + ComponentContextImpl& operator=(const ComponentContextImpl&); + + /** + * Pointer to the runtime model Component to which this + * context refers. + */ + Component* component; + + /** + * Helper method to return a proxy to a service. + * @param serviceReference The source reference. + * @param target The target to which this source reference is wired. + * @return A pointer to an object which can be cast to the business + * class representing the target. + */ + void* getServiceProxy( + ServiceReference* serviceReference, + WireTarget* target); + + /** + * Helper method to return a wrapper for a target service. + * @param target The target for which this wrapper is to be created. + * @return The service wrapper. + */ + ServiceWrapper* getServiceWrapper(WireTarget* target); + + + typedef vector PROXIES; + /** + * A vector of the proxies created by this ComponentContext. The + * proxies will be destroyed when the ComponentContext is destroyed. + */ + PROXIES proxies; + }; + } // End namespace sca +} // End namespace osoa + +#endif // osoa_sca_componentcontextimpl_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.cpp new file mode 100644 index 0000000000..93e36b297f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.cpp @@ -0,0 +1,93 @@ +/* + * + * 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 11:33:21 $ */ + +#include "osoa/sca/ModuleContext.h" +#include "tuscany/sca/util/Logging.h" +#include "osoa/sca/ModuleContextImpl.h" +#include "tuscany/sca/core/SCARuntime.h" + +using namespace tuscany::sca; + +namespace osoa +{ + namespace sca + { + // =========== + // Constructor + // =========== + ModuleContext::ModuleContext(ModuleContextImpl* implementation) + : impl(implementation) + { + } + + // =================================== + // Copy constructor: create a new impl + // =================================== + ModuleContext::ModuleContext(const ModuleContext& ctx) + { + impl = new ModuleContextImpl(SCARuntime::getInstance()->getCurrentModule()); + } + + // ============================= + // operator= : create a new impl + // ============================= + ModuleContext& ModuleContext::operator=(const ModuleContext& ctx) + { + if (this != &ctx) + { + impl = new ModuleContextImpl(SCARuntime::getInstance()->getCurrentModule()); + } + return *this; + } + + // ========== + // Destructor + // ========== + ModuleContext::~ModuleContext() + { + LOGENTRY(1, "ModuleContext::destructor"); + delete impl; + LOGEXIT(1, "ModuleContext::destructor"); + } + + // ==================================================== + // getCurrent: create a context from the current module + // ==================================================== + ModuleContext ModuleContext::getCurrent() + { + LOGENTRY(1, "ModuleContext::getCurrent"); + ModuleContextImpl* mci = new ModuleContextImpl(SCARuntime::getInstance()->getCurrentModule()); + LOGEXIT(1, "ModuleContext::getCurrent"); + return ModuleContext(mci); + } + + // ============= + // locateService + // ============= + void* ModuleContext::locateService(const char* serviceName) + { + LOGENTRY(1, "ModuleContext::locateService"); + void* sp = impl->locateService(serviceName); + LOGEXIT(1, "ModuleContext::locateService"); + return sp; + } + + + } // End namespace sca +} // End namespace osoa diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.h new file mode 100644 index 0000000000..7aacb00123 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.h @@ -0,0 +1,80 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef osoa_sca_modulecontext_h +#define osoa_sca_modulecontext_h + +#include "osoa/sca/export.h" + +namespace osoa +{ + namespace sca + { + class ModuleContextImpl; + + /** + * An SCA component implementation, or a non-SCA client, uses the + * ModuleContext class to retrieve information about the configured + * SCA module. + */ + class SCA_API ModuleContext + { + + public: + /** + * Return a new ModuleContext for the current Component. + */ + static ModuleContext getCurrent(); + + /** + * Resolve a service name into a single component service. + * @param serviceName The name of the service in the form + * "component name"/"service name". The service name is + * optional in the component has one service. + * @return A pointer to an object which can be cast to the + * business interface of the target service. + */ + void* locateService(const char* serviceName); + + /** + * Destructor. + */ + virtual ~ModuleContext(); + + ModuleContext(const ModuleContext&); + ModuleContext& operator=(const ModuleContext&); + + private: + /** + * Constructor to create an interface class from the contained + * implementation. + * @param implementation The actual implementation class. + */ + ModuleContext(ModuleContextImpl* implementation); + + /** + * Pointer to the class which provides the actual implementation. + */ + ModuleContextImpl* impl; + + }; + } // End namespace sca +} // End namespace osoa + +#endif // osoa_sca_modulecontext_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.cpp new file mode 100644 index 0000000000..4d96ee336d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.cpp @@ -0,0 +1,102 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Exceptions.h" +#include "tuscany/sca/model/Component.h" +#include "tuscany/sca/model/CPPImplementation.h" +#include "osoa/sca/ModuleContextImpl.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +using namespace tuscany::sca; +using namespace tuscany::sca::model; + +namespace osoa +{ + namespace sca + { + // =========== + // Constructor + // =========== + ModuleContextImpl::ModuleContextImpl(Module* mod) + : module(mod) + { + } + + // ========== + // Destructor + // ========== + ModuleContextImpl::~ModuleContextImpl() + { + // -------------------------------------------- + // Delete the proxies served up by this context + // -------------------------------------------- + for (PROXIES::iterator iter = proxies.begin(); iter != proxies.end(); iter++) + { + delete (ServiceProxy*)*iter; + } + } + + // =========================================================================== + // locateService: return a proxy connected to a wrapper for the target service + // =========================================================================== + void* ModuleContextImpl::locateService(const char* serviceName) + { + LOGENTRY(1, "ModuleContextImpl::locateService"); + + + // ---------------------------- + // Locate the component service + // ---------------------------- + Service* service = module->findComponentService(serviceName); + string msg; + if (!service) + { + msg = "Service not found: "; + msg = msg + serviceName; + throw ServiceNotFoundException(msg.c_str()); + } + + // ------------------------- + // Create the ServiceWrapper + // ------------------------- + ComponentServiceWrapper* serviceWrapper = ComponentServiceWrapper::createServiceWrapper(service); + + // ---------------------------- + // Get a Proxy for this service + // ---------------------------- + try + { + ServiceProxy* serviceProxy = new ServiceProxy(service->getComponent(), service->getName(), serviceWrapper); + proxies.push_back(serviceProxy); + LOGEXIT(1, "ModuleContextImpl::locateService"); + return serviceProxy->getProxy(); + } + catch (ServiceRuntimeException&) + { + delete serviceWrapper; + throw ; + } + + } + + + + } // End namespace sca +} // End namespace osoa diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.h new file mode 100644 index 0000000000..5950313a06 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.h @@ -0,0 +1,71 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef osoa_sca_modulecontextimpl_h +#define osoa_sca_modulecontextimpl_h +#include "tuscany/sca/model/Module.h" +#include "tuscany/sca/core/ServiceProxy.h" + +namespace osoa +{ + namespace sca + { + /** + * Contains the actual implementation of a ModuleContext interface. + */ + class ModuleContextImpl + { + + public: + /** + * Constructor that takes a Module which represents the runtime + * model for this context. + */ + ModuleContextImpl(tuscany::sca::model::Module* module); + + /** + * See ModuleContext#locateService. + */ + void* locateService(const char* serviceName); + + /** + * Destructor. + */ + virtual ~ModuleContextImpl(); + private: + ModuleContextImpl(const ModuleContextImpl&); + ModuleContextImpl& operator=(const ModuleContextImpl&); + + /** + * Pointer to the runtime model Module object to which this + * context refers. + */ + tuscany::sca::model::Module* module; + + typedef vector PROXIES; + /** + * Vector of proxies created from calls to the locateService + * method. + */ + PROXIES proxies; + }; + } // End namespace sca +} // End namespace osoa + +#endif // osoa_sca_modulecontextimpl_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/SCA.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/SCA.cpp new file mode 100644 index 0000000000..bcca254028 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/SCA.cpp @@ -0,0 +1,21 @@ +/* + * + * 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: $ */ + +#include "osoa/sca/sca.h" + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceList.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceList.cpp new file mode 100644 index 0000000000..ba2b418a7c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceList.cpp @@ -0,0 +1,105 @@ +/* + * + * 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 11:33:21 $ */ + +#include "osoa/sca/ServiceList.h" + +#include "osoa/sca/ServiceRuntimeException.h" + +namespace osoa +{ + namespace sca + { + // =========== + // Constructor + // =========== + ServiceList::ServiceList(unsigned int numTargets) + : maxServices(numTargets), numServices(0) + { + services = new void*[numTargets]; + } + + // ========================================== + // Copy comstructor: create new service array + // ========================================== + ServiceList::ServiceList(const ServiceList& sl) + : maxServices(sl.maxServices), numServices(sl.numServices) + { + services = new void*[maxServices]; + for (unsigned int i=0; i + +namespace osoa +{ + namespace sca + { + + /** + * Top level exception to represent all the exceptions that may be + * thrown by an SCA runtime implementation. + */ + class SCA_API ServiceRuntimeException + { + public: + /** + * Represents the possible severity levels for an exception. + */ + enum severity_level + { + Normal, + Warning, + Error, + Severe + }; + + /** + * Constructor. + * @param name Class name of the exception. + * @param sev Severity level. + * @param msg_text Detailed description of the exception. + */ + ServiceRuntimeException( + const char *name="ServiceRuntimeException", + severity_level sev=Severe, + const char* msg_text=""); + + ServiceRuntimeException(const ServiceRuntimeException& c); + + // Destructor + virtual ~ServiceRuntimeException(); + + /** + * Return class name of this exception. + */ + const char* getEClassName() const; + + /** + * Return severity. + */ + severity_level getSeverity() const; + + /** + * Return message text associated with exception. + */ + const char* getMessageText() const; + + /* + * Return file name where the exception was raised. + */ + const char* getFileName() const; + + /** + * Return line number where the exception was raised. + */ + unsigned long getLineNumber() const; + + /** + * Return function name where the exception was raised. + */ + const char* getFunctionName() const; + + /** + * Set the exception severity. + */ + void setSeverity(severity_level sev); + + /** + * Set the message text associated with exception. + */ + void setMessageText(const char* msg_text); + + /** + * Set the location where the exception was raised. + * @param file Name of the file. + * @param line Line number in the file. + * @param function Name of the function. + */ + void setLocation(const char* file, + unsigned long line, + const char* function=""); + + /** + * Append exception details to ostream. + */ + virtual std::ostream& PrintSelf(std::ostream &os) const; + + /** + * Operator to send exceptions details to a stream. + */ + SCA_API friend std::ostream& operator<< (std::ostream &os, const ServiceRuntimeException &except); + protected: + + private: + /** + * Class name of the exception. + */ + char* class_name; + + /** + * Severity level of the exception. + */ + severity_level severity; + + /** + * Description of the exception. + */ + char* message_text; // Description of exception + + /** + * Location where the exception was thrown or handled and thrown. + */ + class location + { + public: + char* file; // File name (from __FILE__) + unsigned long line; // Line number (from __LINE__) + char* function; // Function name + }; + + + enum {num_locations=5}; + /** + * Array of locations where the exception has been handled and thrown. + */ + location locations[num_locations]; + + /** + * The current location (index into ServiceRuntimeException#location). + */ + int location_set; + + + }; // End ServiceRuntimeException class definition + + + /** + * A remotable service is currently unavailable. It is possible that a retry + * may resolve this exception. + */ + class SCA_API ServiceUnavailableException: public ServiceRuntimeException + { + public: + ServiceUnavailableException(const char* serviceName) + : ServiceRuntimeException("ServiceUnavailableException", Warning, + serviceName) + { + } + private: + }; // End ServiceUnavailableException class definition + + + /** + * The target of a wire cannot be found, or the reference has not been + * configured. + */ + class ServiceNotFoundException: public ServiceRuntimeException + { + public: + ServiceNotFoundException(const char* msg) + : ServiceRuntimeException("ServiceNotFoundException", Error, + msg) + { + } + private: + }; // End ServiceNotFoundException class definition + + + /** + * There is no current component (for example, if a non-SCA component + * tries to get the current ComponentContext). + */ + class ComponentContextException: public ServiceRuntimeException + { + public: + ComponentContextException(const char* msg) + : ServiceRuntimeException("ComponentContextException", Error, + msg) + { + } + private: + }; // End ComponentContextException class definition + + /** + * Unable to find the specified entry point in the module. + */ + class EntryPointNotFoundException: public ServiceRuntimeException + { + public: + EntryPointNotFoundException(const char* msg) + : ServiceRuntimeException("EntryPointNotFoundException", Error, + msg) + { + } + private: + }; // End EntryPointNotFoundException class definition + + + + } // End namespace sca +} // End namespace osoa + +#endif // osoa_sca_serviceruntimeexception_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/export.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/export.h new file mode 100644 index 0000000000..6ef7960284 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/export.h @@ -0,0 +1,39 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef osoa_sca_export_h +#define osoa_sca_export_h + +#if defined(WIN32) || defined (_WINDOWS) +#pragma warning(disable: 4786) + +#ifdef SCA_EXPORTS +#define SCA_API __declspec(dllexport) +#else +#define SCA_API __declspec(dllimport) +#endif + +#else +#include +#include +#include +#define SCA_API +#endif + +#endif // osoa_sca_export_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/sca.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/sca.h new file mode 100644 index 0000000000..528bd91c4a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/sca.h @@ -0,0 +1,29 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef osoa_sca_sca_h +#define osoa_sca_sca_h + +#include "osoa/sca/export.h" +#include "osoa/sca/ModuleContext.h" +#include "osoa/sca/ComponentContext.h" +#include "osoa/sca/ServiceList.h" +#include "osoa/sca/ServiceRuntimeException.h" + +#endif // osoa_sca_sca_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.cpp new file mode 100644 index 0000000000..9db068a2ff --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.cpp @@ -0,0 +1,202 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +#include "tuscany/sca/util/Exceptions.h" +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/core/SCARuntime.h" +#include "tuscany/sca/model/CPPImplementation.h" +using namespace osoa::sca; + +namespace tuscany +{ + namespace sca + { + // =================== + // Static data members + // =================== + void* ComponentServiceWrapper::staticImpl = 0; + + // =========== + // Constructor + // =========== + ComponentServiceWrapper::ComponentServiceWrapper(Service* target) + : ServiceWrapper(target), service(target) + { + LOGENTRY(1,"ComponentServiceWrapper::constructor"); + if (target->getServiceType() != WireTarget::ComponentServiceType) + { + throw ServiceRuntimeException("ComponentServiceWrapper: target is not a component service"); + } + + component = target->getComponent(); + interf = (CPPInterface*)target->getInterface(); + + remotable = interf->getRemotable(); + + + LOGEXIT(1,"ComponentServiceWrapper::constructor"); + + } + + // ========== + // Destructor + // ========== + ComponentServiceWrapper::~ComponentServiceWrapper() + { + LOGENTRY(1,"ComponentServiceWrapper::destructor"); + LOGEXIT(1,"ComponentServiceWrapper::destructor"); + } + + + // ====================================================================== + // getImplementation: get an implementation for this scope + // ====================================================================== + void* ComponentServiceWrapper::getImplementation() + { + CPPInterface::SCOPE scope = interf->getScope(); + if (scope == CPPInterface::MODULE) + { + if (!staticImpl) + { + staticImpl = newImplementation(); + } + return staticImpl; + } + else // (scope == CPPInterface::STATELESS) + { + return newImplementation(); + } + } + + // ====================================================================== + // releaseImplementation: release the implementation for this scope + // ====================================================================== + void ComponentServiceWrapper::releaseImplementation() + { + CPPInterface::SCOPE scope = interf->getScope(); + if (scope == CPPInterface::STATELESS) + { + deleteImplementation(); + } + } + + // ====================================================================== + // invoke: wrapper call to service with setting the component context + // ====================================================================== + void ComponentServiceWrapper::invoke(Operation& operation) + { + + SCARuntime* runtime = SCARuntime::getInstance(); + runtime->setCurrentComponent(component); + + try + { + invokeService(operation); + } + catch (...) + { + runtime->unsetCurrentComponent(); + throw; + } + runtime->unsetCurrentComponent(); + + } + + void ComponentServiceWrapper::setLibrary(Library* lib) + { + wrapperLibrary = lib; + } + + // ====================================================================== + // createServiceWrapper: create a wrapper for the target ComponentService + // ====================================================================== + ComponentServiceWrapper* ComponentServiceWrapper::createServiceWrapper(Service* service) + { + string msg; + ComponentServiceWrapper* serviceWrapper = 0; + + // ----------------------------------------------- + // Get the implementation for the target component + // ----------------------------------------------- + Component* targetComponent = service->getComponent(); + Implementation* impl = targetComponent->getImplementation(); + if (!impl) + { + msg = "Component " + targetComponent->getName() + " has no implementation defined"; + throw ServiceNotFoundException(msg.c_str()); + } + + // TODO: This only handle CPP implementation for now + if (impl->getImplementationType() == Implementation::CPP) + { + // ---------------------------------------------------- + // Get implementation dll name and wrapper factory name + // ---------------------------------------------------- + string dllName = ((CPPImplementation*)impl)->getDll(); + string wrapperFactoryName = ((CPPImplementation*)impl)->getHeaderStub() + + "_" + service->getName() + "_Wrapper_Factory"; + + // ------------ + // Load the dll + // ------------ + string fullDllName = targetComponent->getModule()->getRoot() + "/" + dllName; + typedef ComponentServiceWrapper* (* WRAPPERFACTORY) (Service*); + Library* wrapperLib = new Library(fullDllName); + + // ------------------------- + // Locate the factory method + // ------------------------- + WRAPPERFACTORY wrapperFactory = (WRAPPERFACTORY)wrapperLib->getSymbol(wrapperFactoryName); + if (!wrapperFactory) + { + LOGERROR_2(1, "ComponentServiceWrapper::createServiceWrapper: Unable to locate %s in library %s", + wrapperFactoryName.c_str(), fullDllName.c_str()); + msg = "Unable to locate " + wrapperFactoryName + " in library " + fullDllName; + throw ServiceNotFoundException(msg.c_str()); + } + + // ------------------------------------- + // Now create an instance of the wrapper + // ------------------------------------- + serviceWrapper = wrapperFactory(service); + if (!serviceWrapper) + { + LOGERROR_2(1, "ComponentServiceWrapper::createServiceWrapper: Factory method %s in library %s returned null", + wrapperFactoryName.c_str(), fullDllName.c_str()); + msg = "Factory method " + wrapperFactoryName + " in library " + fullDllName + " returned null"; + throw ServiceNotFoundException(msg.c_str()); + } + serviceWrapper->setLibrary(wrapperLib); + } + else + { + // ---------------------- + // Non CPP Implementation + // ---------------------- + msg = "Unsupported implementation type for service: " + service->getName(); + throw ServiceNotFoundException(msg.c_str()); + } + + return serviceWrapper; + } + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.h new file mode 100644 index 0000000000..3a5e990bf0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.h @@ -0,0 +1,156 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_core_componentservicewrapper_h +#define tuscany_sca_core_componentservicewrapper_h + +#include "osoa/sca/export.h" +#include "tuscany/sca/core/ServiceWrapper.h" +#include "tuscany/sca/model/Component.h" +#include "tuscany/sca/core/Operation.h" +#include "tuscany/sca/model/CPPInterface.h" +#include "tuscany/sca/util/Library.h" + +using namespace tuscany::sca::model; + +namespace tuscany +{ + namespace sca + { + /** + * Wraps the service on a component implementation. + * This abstract class is extended by generated code which provides + * the implementation of some of the methods. + * An instance of this class wraps the actual component implementation which + * has been written by a developer of an SCA application. + */ + class ComponentServiceWrapper : public ServiceWrapper + { + public: + /** + * Factory method to create a new ComponentServiceWrapper for a given target + * service. This method will provide all the loading of dlls required to + * create the target component. + * @param target The service on the component for which this wrapper is to be + * created. + * @return A wrapper that references the given target. + */ + static SCA_API ComponentServiceWrapper* createServiceWrapper(Service* target); + + /** + * Constructor. + * @param target The component service to which this wrapper refers. + */ + SCA_API ComponentServiceWrapper(Service* target); + + /** + * Destructor. + */ + SCA_API virtual ~ComponentServiceWrapper(); + + /** + * All business method calls to the target component go through the invoke method. + * @param operation The details of the method, paramaters and return value for the + * business method to be called on the target component. + */ + SCA_API virtual void invoke(Operation& operation); + + /** + * Return the loaded shared library for the target component. + */ + Library* getLibrary() {return wrapperLibrary;} + protected: + /** + * Delegated method to invoke the correct method on the target component. + * Implemented by the subtype. + */ + SCA_API virtual void invokeService(Operation& operation) = 0; + + /** + * Delegated method to create a new component implementation. + * Implemented by the subtype. + * @return A pointer to an instance of the component implementation class. + */ + SCA_API virtual void* newImplementation() = 0; + + /** + * Delegated method to delete the current instance of the component + * implementation. + * Implemented by the subtype. + */ + SCA_API virtual void deleteImplementation() = 0; + + /** + * Return the current instance of the component implementation. + * @return A pointer to an instance of the component implementation class. + */ + SCA_API virtual void* getImplementation(); + + /** + * Indicates that the current instance of the component implementation + * has been finished with. + * Will call ComponentServiceWrapper#deleteImplementation if the + * implementation is stateless (so that a new instance is returned + * for each call). + */ + SCA_API virtual void releaseImplementation(); + + private: + /** + * Holds an implementation instance if the scope is set to module. + */ + static void* staticImpl; + + /** + * The component to which this wrapper refers. + */ + Component* component; + + /** + * The service on the component to which this wrapper refers. + */ + Service* service; + + /** + * A pointer to the interface which the service exposes. + */ + CPPInterface* interf; + + /** + * Set to true if the service is remotable. + */ + bool remotable; + + /** + * Pointer to the loaded library which contains the component + * implementation. + */ + Library* wrapperLibrary; + + /** + * Set the loaded library which contains the component + * implementation. + * @param lib The library. + */ + void setLibrary(Library* lib); + }; + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_core_componentservicewrapper_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.cpp new file mode 100644 index 0000000000..2838bbe4d4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.cpp @@ -0,0 +1,102 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/core/ExternalServiceWrapper.h" +#include + +#include "tuscany/sca/util/Exceptions.h" +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/core/SCARuntime.h" + +#include "tuscany/sca/ws/WSServiceWrapper.h" +using tuscany::sca::ws::WSServiceWrapper; + +using namespace osoa::sca; + + +namespace tuscany +{ + namespace sca + { + + ////////////////////////////////////////////////////////////////////// + // Construction/Destruction + ////////////////////////////////////////////////////////////////////// + + ExternalServiceWrapper::ExternalServiceWrapper(tuscany::sca::model::WireTarget* target) + : ServiceWrapper(target) + { + LOGENTRY(1,"ExternalServiceWrapper::constructor"); + if (target->getServiceType() != WireTarget::ExternalServiceType) + { + throw ServiceRuntimeException("ExternalServiceWrapper: target is not an ExternalService"); + } + + LOGEXIT(1,"ExternalServiceWrapper::constructor"); + + } + + ExternalServiceWrapper::~ExternalServiceWrapper() + { + LOGENTRY(1,"ExternalServiceWrapper::destructor"); + LOGEXIT(1,"ExternalServiceWrapper::destructor"); + } + + // ====================================================================== + // createServiceWrapper: create a wrapper for the target ExternalService + // ====================================================================== + ExternalServiceWrapper* ExternalServiceWrapper::createServiceWrapper(ExternalService* service) + { + string msg; + ExternalServiceWrapper* serviceWrapper = 0; + + // ----------------------------------------------- + // Get the binding for the target component + // ----------------------------------------------- + Binding* targetBinding = service->getBinding(); + if (!targetBinding) + { + msg = "External service " + service->getName() + " has no binding defined"; + throw ServiceNotFoundException(msg.c_str()); + } + + // TODO: This only handles ws implementation for now + if (targetBinding->getBindingType() == Binding::WS) + { + // ------------------------------------- + // Create an instance of the wrapper + // ------------------------------------- + serviceWrapper = new WSServiceWrapper(service); + + } + else + { + // ---------------------- + // Non WS Binding + // ---------------------- + msg = "Unsupported binding type for externalService: " + service->getName(); + throw ServiceNotFoundException(msg.c_str()); + } + + return serviceWrapper; + } + + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.h new file mode 100644 index 0000000000..b2dcfb3a6b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.h @@ -0,0 +1,81 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_core_externalservicewrapper_h +#define tuscany_sca_core_externalservicewrapper_h + +#include "osoa/sca/export.h" +#include "tuscany/sca/core/ServiceWrapper.h" +#include "tuscany/sca/core/Operation.h" +#include "tuscany/sca/model/ExternalService.h" +using tuscany::sca::model::ExternalService; + +namespace tuscany +{ + namespace sca + { + + /** + * Wraps an SCA external service so that it can be called by a + * proxy. + * This abstract class will be extended by a class which supports + * a specific external service binding (for example, the web services binding). + */ + class SCA_API ExternalServiceWrapper : public ServiceWrapper + { + public: + /** + * Factory method to create a new ExternaServiceWrapper for a given + * external service described in the SCA module. + */ + static ExternalServiceWrapper* createServiceWrapper(ExternalService* service); + + /** + * Constructor. + * @param target The target external service for which this wrapper is to be + * created. + * @return A wrapper that references the given target. + */ + ExternalServiceWrapper(tuscany::sca::model::WireTarget* target); + + /** + * Destructor. + */ + virtual ~ExternalServiceWrapper(); + + /** + * Return the external service (in the runtime model) that is wrapped by + * the instance of this class. + */ + virtual ExternalService* getExternalService() {return (ExternalService*)getTarget();}; + + /** + * All business method calls to the external service go through the invoke method. + * This is a delegated method which will be implemented by the subclass. + * @param operation The details of the method, paramaters and return value for the + * business method to be called on the external service. + */ + virtual void invoke(Operation& operation) = 0; + private: + + }; + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_core_externalservicewrapper_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.cpp new file mode 100644 index 0000000000..ea9dfdb15a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.cpp @@ -0,0 +1,88 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/core/Operation.h" +#include + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/core/SCARuntime.h" + + + +namespace tuscany +{ + namespace sca + { + // =========== + // Constructor + // =========== + Operation::Operation(const char* operationName, unsigned int numParameters) + : name(operationName), nparms(numParameters) + { + LOGENTRY(1,"Operation::constructor"); + + parameters = new void*[nparms]; + + LOGEXIT(1,"Operation::constructor"); + } + + // ========== + // Destructor + // ========== + Operation::~Operation() + { + LOGENTRY(1,"Operation::destructor"); + LOGEXIT(1,"Operation::destructor"); + } + + + // ============================================== + // getParameter: return parameter at position pos + // ============================================== + void* Operation::getParameter(unsigned int pos) + { + if (pos < nparms) + { + return parameters[pos]; + } + + return 0; + } + + // =========================================== + // setParameter: set parameter at position pos + // =========================================== + void Operation::setParameter(unsigned int pos, void* parm) + { + if (pos < nparms) + { + parameters[pos] = parm; + } + } + + // ==================================== + // setReturnValue: set the return value + // ==================================== + void Operation::setReturnValue(void* val) + { + returnType = val; + } + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.h new file mode 100644 index 0000000000..9e080363aa --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.h @@ -0,0 +1,115 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_core_operation_h +#define tuscany_sca_core_operation_h +#include "osoa/sca/export.h" + +#include +using std::string; + +namespace tuscany +{ + namespace sca + { + /** + * Holds the details of a single invocation of a business method. + * This class is used to pass the parameters and operation name from the + * client to a service. It will also hold the return value on the + * return from the business method. + */ + class Operation + { + public: + /** + * Create a new operation. + * @param operationName The method name of the business method to be invoked. + * @param numParameters The number of parameters to be passed. + */ + SCA_API Operation(const char* operationName, unsigned int numParameters); + + /** + * Destructor. + */ + SCA_API virtual ~Operation(); + + /** + * Return the operation name. + * @return The name of the operation. + */ + SCA_API const char* getName() {return name;} + + /** + * Set a parameter on the operation. + * @param pos The position of the parameter in the parameter list. + * @param parm Pointer to the parameter to be passed. + */ + SCA_API void setParameter(unsigned int pos, void* parm); + + /** + * Get a parameter from the operation. + * @param pos The position of the parameter in the parameter list. + * @return Pointer to the paramter at the given postion. Should be + * cast to the appropriate type. + */ + SCA_API void* getParameter(unsigned int pos); + + /** + * Get the return value on the operation. + * Normally the client + * would set the return value and the service will get this + * return value pointer and set the return value. + * @return Pointer to the return type. + */ + SCA_API void* getReturnValue() {return returnType;} + + /** + * Set the return value on the operation. + * Normally the client + * would set the return value pointer so that the service can + * return a value + * @param valPtr Pointer to the return type. + */ + SCA_API void setReturnValue(void* valPtr); + + private: + /** + * Operation name (method name). + */ + const char* name; + + /** + * Number of paramaters passed for this operation. + */ + unsigned int nparms; + + /** + * Pointer to the array of parameters. + */ + void** parameters; + + /** + * The return value. + */ + void* returnType; + }; + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_core_operation_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp new file mode 100644 index 0000000000..a505ba9636 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp @@ -0,0 +1,215 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/core/SCAEntryPoint.h" + +#include "tuscany/sca/util/Exceptions.h" +#include "tuscany/sca/util/Utils.h" +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/core/SCARuntime.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" +#include "tuscany/sca/core/ExternalServiceWrapper.h" +using namespace osoa::sca; + +namespace tuscany +{ + namespace sca + { + // =========== + // Constructor + // =========== + SCAEntryPoint::SCAEntryPoint(const char* epName) + : subsystem(0), entrypoint(0), module(0) + { + LOGENTRY(1,"SCAEntryPoint::constructor"); + string message; + + // initialize the system if necessary + System* system = SCARuntime::getInstance()->getSystem(); + + string subsystemName; + string entrypointName; + + Utils::tokeniseUri(epName, subsystemName, entrypointName); + + // -------------------- + // locate the Subsystem + // -------------------- + subsystem = system->findSubsystem(subsystemName); + if (!subsystem) + { + throw EntryPointNotFoundException(epName); + } + + // --------------------- + // locate the EntryPoint + // --------------------- + entrypoint = subsystem->findEntryPoint(entrypointName); + if (entrypoint) + { + // found Subsystem EntryPoint + throw EntryPointNotFoundException("Subsystem EntryPoint not yet supported"); + } + else + { + // ----------------------------------- + // locate the EntryPoint in the Module + // ----------------------------------- + string moduleComponentName; + Utils::tokeniseUri(entrypointName, moduleComponentName, entrypointName); + module = subsystem->findModuleByComponentName(moduleComponentName); + if (module) + { + dataFactory = module->getDataFactory(); + entrypoint = module->findEntryPoint(entrypointName); + } + } + + if (!entrypoint) + { + throw EntryPointNotFoundException(epName); + } + + // --------------------------------- + // Get Wrappers for each wire target + // --------------------------------- + + // Get the target services from the EntryPoint + const EntryPoint::TARGETS& targets = entrypoint->getTargets(); + + // -------------------- + // Validate the request + // -------------------- + switch (entrypoint->getMultiplicity()) + { + case EntryPoint::ONE_MANY: + case EntryPoint::ONE_ONE: + { + if (targets.size() == 0) + { + message = "EntryPoint " + entrypoint->getName() + " not wired"; + throw ServiceNotFoundException(message.c_str()); + } + } + default: + { + } + } // end switch + + for (EntryPoint::TARGETS::const_iterator iter = targets.begin(); + iter!=targets.end(); + iter++) + { + ServiceWrapper* service = getServiceWrapper(*iter); + if (service) + { + services.push_back(service); + } + } + + LOGEXIT(1,"SCAEntryPoint::constructor"); + } + + // ========== + // Destructor + // ========== + SCAEntryPoint::~SCAEntryPoint() + { + LOGENTRY(1,"SCAEntryPoint::destructor"); + + // Delete any ServiceWrappers + for (SERVICES::iterator iter = services.begin(); iter < services.end(); iter++) + { + delete (*iter); + } + LOGEXIT(1,"SCAEntryPoint::destructor"); + } + + + // ====================================================================== + // invoke: + // ====================================================================== + SCA_API DataObjectPtr SCAEntryPoint::invoke(const char* operationName, DataObjectPtr inDataObject) + { + string message; + + // -------------------- + // Validate the request + // -------------------- + if (services.size() == 0) + { + message = "EntryPoint " + entrypoint->getName() + " not wired"; + throw ServiceNotFoundException(message.c_str()); + } + + // ------------------- + // Invoke each target + // ------------------- + Operation operation(operationName, 1); + operation.setParameter(0, &inDataObject); + DataObjectPtr ret; + operation.setReturnValue((void *)&ret); + + for (SERVICES::iterator iter = services.begin(); iter < services.end(); iter++) + { + (*iter)->invoke(operation); + } + + return ret; + } + + + // ====================================================================== + // getServiceWrapper: Create and return an instance of the ServiceWrapper + // ====================================================================== + ServiceWrapper* SCAEntryPoint::getServiceWrapper(WireTarget* target) + { + // ------------------------- + // Determine type of Service + // ------------------------- + switch (target->getServiceType()) + { + case WireTarget::ExternalServiceType: + { + // ---------------- + // External Service + // ---------------- + return ExternalServiceWrapper::createServiceWrapper((ExternalService*)target); + } + + case WireTarget::ComponentServiceType: + { + // ----------------- + // Component Service + // ----------------- + return ComponentServiceWrapper::createServiceWrapper((Service*)target); + } + + default: + { + string message = "Undefined wire target type for : "; + message = message + target->getName(); + throw ServiceNotFoundException(message.c_str()); + } + } // end switch + } + + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.h new file mode 100644 index 0000000000..34c9f3e0d8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.h @@ -0,0 +1,126 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_core_scaentrypoint_h +#define tuscany_sca_core_scaentrypoint_h + +#include "osoa/sca/export.h" + +#include +using std::vector; +#include "tuscany/sca/core/ServiceWrapper.h" +#include "tuscany/sca/model/WireTarget.h" +#include "tuscany/sca/model/Subsystem.h" +#include "tuscany/sca/model/EntryPoint.h" +#include "tuscany/sca/model/Module.h" +using namespace tuscany::sca::model; +#include "commonj/sdo/SDO.h" +using commonj::sdo::DataObjectPtr; +using commonj::sdo::DataFactoryPtr; + +namespace tuscany +{ + namespace sca + { + /** + * A runtime class which is used by external bindings to provide the entry + * point into the SCA runtime. An entry point will be defined in an SCA + * module, and a binding class will be provided to service the + * communication between the external binding (e.g. for web services the + * SOAP/HTTP communication) and the SCA runtime. The binding class will + * use SCAEntryPoint to call into the SCA runtime. + */ + class SCAEntryPoint + { + public: + /** + * Constructor to create a new instance which will be associated with + * a given entry point in an SCA module. + * @param entryPointName The qualified name of the entry point in an + * SCA module. It is of the form + * "subsystem name"/"module component name"/"entry point name". + */ + SCA_API SCAEntryPoint(const char* entryPointName); + + /** + * Destructor. + */ + SCA_API virtual ~SCAEntryPoint(); + + /** + * Invokes an operation on the component to which the SCA entry point + * is wired in the SCA module. + * Note that the operation must take a single data object as a parameter, and + * the return is a single data object. + * @param operationName Name of the operation. + * @param inDataObject The parameter for the operation. + * @return The data object which holds the result of the operation. + */ + SCA_API virtual DataObjectPtr invoke(const char* operationName, DataObjectPtr inDataObject); + + /** + * Returns a SDO data factory from which all the types associated with the entry point + * and module can be created. + */ + SCA_API DataFactoryPtr getDataFactory() {return dataFactory;} + + protected: + + private: + /** + * The subsystem in which this entry point is found. + */ + Subsystem* subsystem; + + /** + * The entry point in the module. + */ + EntryPoint* entrypoint; + + /** + * The module component in the subsystem. + */ + Module* module; + + /** + * Cached data factory which has all the types defined for the module in which + * this entry point is found. + */ + DataFactoryPtr dataFactory; + + typedef vector SERVICES; + /** + * Vector of all the service wrappers created for this entry point. + * Used to destroy the wrappers when this class is destroyed. + */ + SERVICES services; + + /** + * Creates and returns the service wrapper for a given target. + * @param target The target of the wire for which a service wrapper is + * to be created. + * @return A service wrapper to be used for invoking the target implementation. + */ + ServiceWrapper* getServiceWrapper(WireTarget* target); + + }; + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_core_scaentrypoint_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp new file mode 100644 index 0000000000..deca72c378 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp @@ -0,0 +1,288 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/core/SCARuntime.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Utils.h" +#include "tuscany/sca/util/Exceptions.h" + +#include "tuscany/sca/model/System.h" +#include "tuscany/sca/model/Subsystem.h" +#include "tuscany/sca/model/ModelLoader.h" + +#if defined(WIN32) || defined (_WINDOWS) +#include +#endif + +namespace tuscany +{ + namespace sca + { + /** + * Environment variable names + */ + static const char* TUSCANY_SCACPP = "TUSCANY_SCACPP"; + static const char* TUSCANY_SCACPP_SYSTEM_ROOT = "TUSCANY_SCACPP_SYSTEM_ROOT"; + static const char* TUSCANY_SCACPP_DEFAULT_MODULE = "TUSCANY_SCACPP_DEFAULT_MODULE"; + + + // ========================================================== + // Initialize static class member to not pointing at anything + // ========================================================== + SCARuntime* SCARuntime::instance = 0; + + + // =================================================================== + // Constructor for the SCARuntime class. This will be a singleton that + // holds all the information about the current runtime. + // =================================================================== + SCARuntime::SCARuntime() : system(new System()), defaultModule(0) + { + LOGENTRY(1, "SCARuntime::constructor"); + + // Locate the SCA install root + char* root = 0; + root = getenv(TUSCANY_SCACPP); + if (root == 0) + { + string msg = TUSCANY_SCACPP; + msg += " environment variable not set"; + throw SystemConfigurationException(msg.c_str()); + } + else + { + SCARoot = root; + } + + LOGEXIT(1, "SCARuntime::constructor"); + } + + // ============================================================= + // Get the instance of the runtime, creates it if does not exist + // static method + // ============================================================= + SCARuntime* SCARuntime::getInstance() + { + LOGENTRY(1, "SCARuntime::getInstance"); + + if (instance == NULL) + { + instance = new SCARuntime(); + + // Load the runtime + // Get root from environment variable TUSCANY_SCACPP_SYSTEM_ROOT + char* systemRoot = getenv(TUSCANY_SCACPP_SYSTEM_ROOT); + if (systemRoot == 0) + { + string msg = TUSCANY_SCACPP_SYSTEM_ROOT; + msg += " environment variable not set"; + throw SystemConfigurationException(msg.c_str()); + } + instance->load(systemRoot); + } + + LOGEXIT(1, "SCARuntime::getInstance"); + + return instance; + + } + + // ====================================== + // Load up all the details of the runtime + // ====================================== + void SCARuntime::load(const char *configurationRoot) + { + LOGENTRY(1, "SCARuntime::load"); + std::string root = configurationRoot; + + LOGINFO_1(2,"configuration root: %s", configurationRoot); + + ModelLoader loader(system); + // Load details of the module + loader.load(configurationRoot); + + LOGEXIT(1, "SCARuntime::load"); + } + + + // =================================== + // Return the top of the runtime model + // =================================== + System* SCARuntime::getSystem() + { + return system; + } + + + // =================================================== + // setCurrentComponent: push component for this thread + // =================================================== + void SCARuntime::setCurrentComponent(Component* component) + { + +#if defined(WIN32) || defined (_WINDOWS) + DWORD currentThreadId = GetCurrentThreadId(); +#else + pthread_t currentThreadId = pthread_self(); +#endif + COMPONENTS_MAP::iterator iter = components.find(currentThreadId); + if (iter == components.end()) + { + components[currentThreadId] = COMPONENT_STACK(); + iter = components.find(currentThreadId); + } + + COMPONENT_STACK& compStack = iter->second; + compStack.push(component); + } + + + // ==================================================== + // unsetCurrentComponent: pop component for this thread + // ==================================================== + Component* SCARuntime::unsetCurrentComponent() + { +#if defined(WIN32) || defined (_WINDOWS) + DWORD currentThreadId = GetCurrentThreadId(); +#else + pthread_t currentThreadId = pthread_self(); +#endif + + COMPONENTS_MAP::iterator iter = components.find(currentThreadId); + if (iter != components.end()) + { + COMPONENT_STACK& compStack = iter->second; + if (compStack.size() > 0) + { + Component* component = compStack.top(); + compStack.pop(); + return component; + } + } + + return 0; + } + + // ============================================================= + // getCurrentComponent: return current component for this thread + // ============================================================= + Component* SCARuntime::getCurrentComponent() + { +#if defined(WIN32) || defined (_WINDOWS) + DWORD currentThreadId = GetCurrentThreadId(); +#else + pthread_t currentThreadId = pthread_self(); +#endif + + COMPONENTS_MAP::iterator iter = components.find(currentThreadId); + if (iter == components.end()) + { + components[currentThreadId] = COMPONENT_STACK(); + iter = components.find(currentThreadId); + } + + COMPONENT_STACK& compStack = iter->second; + if (compStack.size() > 0) + { + return compStack.top(); + } + else + { + return 0; + } + + } + + + // =========================================== + // getCurrentModule: return the current module + // =========================================== + Module* SCARuntime::getCurrentModule() + { + // --------------------------------------------- + // Get module from current component if possible + // --------------------------------------------- + Component* comp = getCurrentComponent(); + if (comp != 0) + { + return comp->getModule(); + } + + // ---------------------- + // Get the default Module + // ---------------------- + string message; + if (!defaultModule) + { + // ------------------------------------------- + // Get the default module from the environment + // ------------------------------------------- + const char* defMod = getenv(TUSCANY_SCACPP_DEFAULT_MODULE); + if (!defMod) + { + message = TUSCANY_SCACPP_DEFAULT_MODULE; + message += " environment variable not set"; + throw SystemConfigurationException(message.c_str()); + } + + string subsystemName, moduleName; + Utils::tokeniseUri(defMod, subsystemName, moduleName); + + // --------------------------- + // Subsystem must be specified + // --------------------------- + Subsystem* subsystem = system->findSubsystem(subsystemName); + if (!subsystem) + { + message = "Default subsystem \'" + subsystemName + "\' not found"; + throw SystemConfigurationException(message.c_str()); + } + + // -------------------------------------------------------------------------- + // If module is not specified then get the default module for this subsystem. + // This will be the ONLY module for this subsystem + // -------------------------------------------------------------------------- + if (moduleName == "") + { + defaultModule = subsystem->getDefaultModule(); + if (!defaultModule) + { + message = "Default module not found for subsystem \'" + subsystemName + "\'"; + throw SystemConfigurationException(message.c_str()); + } + } + else + { + // ----------------------------- + // get the named ModuleComponent + // ----------------------------- + defaultModule = subsystem->findModuleByComponentName(moduleName); + if (!defaultModule) + { + message = "Default module \'" + moduleName + "\' not found in subsystem \'" + subsystemName +"\'"; + throw SystemConfigurationException(message.c_str()); + } + } + } + return defaultModule; + } + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.h new file mode 100644 index 0000000000..42deb85751 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.h @@ -0,0 +1,166 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_core_scaruntime_h +#define tuscany_sca_core_scaruntime_h + +#include "osoa/sca/export.h" + +#include "osoa/sca/ComponentContext.h" +using osoa::sca::ComponentContext; + +#include "tuscany/sca/core/ServiceWrapper.h" +#include "tuscany/sca/model/System.h" +using namespace tuscany::sca::model; + +#if defined(WIN32) || defined (_WINDOWS) +#include +#else +#include +#endif + +#include +#include +#include +using namespace std; + +namespace tuscany +{ + namespace sca + { + + /** + * A singleton which represents the executing SCA runtime. + */ + class SCARuntime { + public: + /** + * Get the single instance. + * @return The single instance of the runtime. + */ + SCA_API static SCARuntime* getInstance(); + + /** + * Set the current component for the current thread. + * @param component The current component. + */ + SCA_API void setCurrentComponent(Component* component); + + /** + * Remove the current component from this thread, and return + * to the previous component (if there was one). + * @return The previous component. + */ + SCA_API Component* unsetCurrentComponent(); + + /** + * Get a pointer to the configured SCA system which this + * SCA runtime represents. + * The rest of the SCA configuration can be navigated from + * the System. + * @return The configured SCA system. + */ + System* getSystem(); + + /** + * The directory in which the Tuscany runtime has been installed. + */ + const string& getInstallRoot() {return SCARoot;} + + /** + * Return the current component for this thread. + * @return The current component for this thread. + */ + Component* getCurrentComponent(); + + /** + * Get the current module. The current module will either + * be the module in which the current component for this thread + * is defined, or it will be the default module if there is no current + * component. There will not be a current component if a client of + * the SCA runtime is making a call into the SCA runtime. + */ + Module* getCurrentModule(); + + private: + /** + * Default constructor is private to prevent more than one instance. + */ + SCARuntime(); + + /** + * Load the SCA configuration from the scdl files (sca.module, + * *.fragment, etc). + * This will create the runtime model from which the SCA runtime + * will operate. + * @param configurationRoot The path to the configuration of the + * SCA runtime. Under this root will be the subsystems and modules + * directories. + */ + void load(const char* configurationRoot); + + /** + * The single instance of this class. + */ + static SCARuntime* instance; + + /** + * Pointer to the top of the runtime model. + */ + System* system; + + /** + * The installed path of the Tuscany runtime. + */ + string SCARoot; + + /** + * Get the default module set for this runtime. + * @return The default module. + */ + Module* getDefaultModule() {return defaultModule;} + + /** + * The default module set for this runtime. + */ + Module* defaultModule; + + + typedef stack COMPONENT_STACK; +#if defined(WIN32) || defined (_WINDOWS) + typedef map COMPONENTS_MAP; +#else + typedef map COMPONENTS_MAP; +#endif + + /** + * A map of threads to components. + */ + COMPONENTS_MAP components; + }; + + + } // End namespace sca +} // End namespace tuscany + + + + +#endif // tuscany_sca_core_scaruntime_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.cpp new file mode 100644 index 0000000000..ef2f2744eb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.cpp @@ -0,0 +1,121 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/core/ServiceProxy.h" + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Exceptions.h" +#include "tuscany/sca/core/SCARuntime.h" +#include "tuscany/sca/model/CPPImplementation.h" + +using namespace osoa::sca; + +namespace tuscany +{ + namespace sca + { + // ============================ + // Constructor: Create a proxy + // ============================ + ServiceProxy::ServiceProxy(Component* component, const string& name, ServiceWrapper* target) + { + LOGENTRY(1,"ServiceProxy::constructor"); + string msg; + + // ---------------------- + // Get the implementation + // ---------------------- + Implementation* impl = component->getImplementation(); + if (!impl) + { + msg = "Component " + component->getName() + " has no implementation defined"; + throw ServiceNotFoundException(msg.c_str()); + } + + // TODO: This only handle CPP implementation for now + if (impl->getImplementationType() == Implementation::CPP) + { + // ---------------------------------------------------- + // Get implementation dll name and service factory name + // ---------------------------------------------------- + string dllName = ((CPPImplementation*)impl)->getDll(); + string headerStub = ((CPPImplementation*)impl)->getHeaderStub(); + + string fullDllName = component->getModule()->getRoot() + "/" + dllName; + string proxyFactoryName = headerStub + "_" + name + "_Proxy_Factory"; + string proxyDestructorName = headerStub + "_" + name + "_Proxy_Destructor"; + typedef void* (* PROXYFACTORY) (ServiceWrapper*); + + // ------------ + // Load the dll + // ------------ + proxyLibrary = Library(fullDllName); + + // ------------------------- + // Locate the factory method + // ------------------------- + PROXYFACTORY proxyFactory = (PROXYFACTORY)proxyLibrary.getSymbol(proxyFactoryName); + if (!proxyFactory) + { + LOGERROR_2(1, "ComponentContextImpl::getServiceProxy: Unable to locate %s in library %s", + proxyFactoryName.c_str(), fullDllName.c_str()); + msg = "Unable to locate " + proxyFactoryName + " in library " + fullDllName; + throw ServiceNotFoundException(msg.c_str()); + } + + // ----------------------------------- + // Now create an instance of the proxy + // ----------------------------------- + proxy = proxyFactory(target); + if (!proxy) + { + LOGERROR_2(1, "ComponentContextImpl::getServiceProxy: Factory method %s in library %s returned null", + proxyFactoryName.c_str(), fullDllName.c_str()); + msg = "Factory method " + proxyFactoryName + " in library " + fullDllName + " returned null"; + throw ServiceNotFoundException(msg.c_str()); + } + + // ------------------------- + // Get the destructor method + // ------------------------- + destructor = (PROXYDESTRUCTOR)proxyLibrary.getSymbol(proxyDestructorName); + } + + LOGEXIT(1,"ServiceProxy::constructor"); + + } + + // ========== + // Destructor + // ========== + ServiceProxy::~ServiceProxy() + { + LOGENTRY(1,"ServiceProxy::destructor"); + + // Delete the proxy + if (destructor) + { + destructor(proxy); + } + LOGEXIT(1,"ServiceProxy::destructor"); + } + + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.h new file mode 100644 index 0000000000..073b379cd7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.h @@ -0,0 +1,89 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_core_serviceproxy_h +#define tuscany_sca_core_serviceproxy_h + +#include "osoa/sca/export.h" + +#include "tuscany/sca/core/ServiceWrapper.h" +#include "tuscany/sca/model/Component.h" +#include "tuscany/sca/util/Library.h" + +using namespace tuscany::sca::model; + +namespace tuscany +{ + namespace sca + { + /** + * Holds a proxy for a given component and reference. + * The proxy which is held inside a ServiceProxy will be specific to the component + * and reference and will have been code generated and be contained in a dll + * created by a developer of an SCA application. + */ + class ServiceProxy + { + public: + /** + * Create a new service proxy for a given component and reference name. The + * create proxy will contain a pointer to the target ServiceWrapper. + * @param component The component for which this proxy will be created (the + * source component). + * @param name The name of the reference on the component. + * @param target The wrapper of the component which is wired to this component and + * reference. + */ + ServiceProxy(Component* component, const string& name, ServiceWrapper* target); + + /** + * Destructor. + */ + virtual ~ServiceProxy(); + + /** + * Return an instance of the proxy created for this particular component and reference. + * @return The proxy. + */ + void* getProxy() {return proxy;} + + + private: + /** + * Holds the instance of the code generated proxy. + */ + void* proxy; + + typedef void (* PROXYDESTRUCTOR) (void*); + + /** + * A function pointer to the destructor of the proxy. + */ + PROXYDESTRUCTOR destructor; + + /** + * The library which contains the code for the proxy. + */ + Library proxyLibrary; + + }; + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_core_serviceproxy_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.cpp new file mode 100644 index 0000000000..5936f526f1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.cpp @@ -0,0 +1,55 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/core/ServiceWrapper.h" +#include + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/core/SCARuntime.h" + + + +namespace tuscany +{ + namespace sca + { + + // =========== + // Constructor + // =========== + ServiceWrapper::ServiceWrapper(WireTarget* targ) + : target(targ) + { + LOGENTRY(1,"ServiceWrapper::constructor"); + + LOGEXIT(1,"ServiceWrapper::constructor"); + + } + + // ========== + // Destructor + // ========== + ServiceWrapper::~ServiceWrapper() + { + LOGENTRY(1,"ServiceWrapper::destructor"); + LOGEXIT(1,"ServiceWrapper::destructor"); + } + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.h new file mode 100644 index 0000000000..21c162d77f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.h @@ -0,0 +1,73 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_core_servicewrapper_h +#define tuscany_sca_core_servicewrapper_h + +#include "osoa/sca/export.h" + +#include "tuscany/sca/core/Operation.h" +#include "tuscany/sca/model/WireTarget.h" +using tuscany::sca::model::WireTarget; + +namespace tuscany +{ + namespace sca + { + /** + * An abstract class that wraps a component implementation or an external + * service. + */ + class SCA_API ServiceWrapper + { + public: + /** + * Constructor. + * @param target The service wrapper wraps the target of a wire. + */ + ServiceWrapper(WireTarget* target); + + /** + * Destructor. + */ + virtual ~ServiceWrapper(); + + /** + * Get the target represented by this wrapper. + * @return The target represented by this wrapper. + */ + virtual WireTarget* getTarget() {return target;} + + /** + * All business method calls on the target service are performed through + * this invoke method. + * @param operation The details of the method, paramaters and return value for the + * business method to be called on the target service. + */ + virtual void invoke(Operation& operation) = 0; + private: + /** + * The target represented by this wrapper. + */ + WireTarget* target; + }; + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_core_servicewrapper_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.cpp new file mode 100644 index 0000000000..c312d7a077 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.cpp @@ -0,0 +1,44 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/Binding.h" + + +namespace tuscany +{ + namespace sca + { + + namespace model + { + + // Constructor + Binding::Binding(const string& uri) : uri(uri) + { + } + + Binding::~Binding() + { + } + + } // End namespace model + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.h new file mode 100644 index 0000000000..ff97990dc6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.h @@ -0,0 +1,85 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_binding_h +#define tuscany_sca_model_binding_h +#include +using std::string; + + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Information about the binding for EntryPoint and ExternalService. An + * abstract class which will be extended by classes that hold specific + * information for each type of binding. + */ + class Binding + { + + public: + /** + * Supported binding types. + */ + enum Type + { + WS, + SCA + }; + + /** + * Constructor to create a new binding. + * @param uri The uri specified in the scdl file. + */ + Binding(const string& uri); + + /** + * Destructor. + */ + virtual ~Binding(); + + /** + * Return the enumerated type of binding. + * @return The type of the binding (see Binding#Type). + */ + virtual Type getBindingType() = 0; + + /** + * Return the uri of the binding. + * @return The uri of the binding. + */ + string getUri() {return uri;}; + + private: + /** + * The uri of the binding. + */ + string uri; + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_binding_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.cpp new file mode 100644 index 0000000000..7212e777b1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.cpp @@ -0,0 +1,54 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/CPPImplementation.h" +#include "tuscany/sca/util/Utils.h" + +namespace tuscany +{ + namespace sca + { + + namespace model + { + + // Constructor + CPPImplementation::CPPImplementation(const string& dllName, const string& head, const string& classN) + : dll(dllName), header(head), className(classN) + { + // Separate any path element + Utils::rTokeniseString("/", head, headerPath, headerStub); + if (headerPath != "") + { + headerPath += "/"; + } + + // Determine the header stub name + string tmp; + Utils::rTokeniseString(".h", headerStub, headerStub, tmp); + } + + CPPImplementation::~CPPImplementation() + { + } + } // End namespace model + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.h new file mode 100644 index 0000000000..0294649af7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.h @@ -0,0 +1,125 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_cppimplementation_h +#define tuscany_sca_model_cppimplementation_h +#include "tuscany/sca/model/Implementation.h" + +#include +using std::map; +#include +using std::string; + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Holds informatio about an SCA implementation written in C++ + */ + class CPPImplementation : public Implementation + { + + public: + /** + * Constructor. + * @param dllName Name of the shared library. + * @param header Name of the header file that contains the class declaring the + * implementation class. + * @param className Name of the class in the header file (could be a blank string + * if this is not specified). + */ + CPPImplementation(const string& dllName, const string& header, const string& className); + + /** + * Destructor + */ + virtual ~CPPImplementation(); + + /** + * Return the implementation type. + * @return Always returns CPP. + */ + virtual Type getImplementationType() {return CPP;} + + /** + * Returns the name of the shared library. + * @return The name of the shared library. + */ + const string& getDll() {return dll;} + + /** + * Get the name of the header file. + * @return Name of the header file. + */ + const string& getHeader() {return header;} + + /** + * Get the header file name without the extension. + * @return The name of the header file without any extension. + */ + const string& getHeaderStub() {return headerStub;} + + /** + * Get the header path. + * @return The pathe element of the header. + */ + const string& getHeaderPath() {return headerPath;} + + /** + * Get the name of the class. + * @return The class name if specified. + */ + const string& getClass() {return className;} + private: + /** + * Name of the shared library. + */ + string dll; + + /** + * Name of the header file describing the interface. + */ + string header; + + /** + * Name of the header file without the extension. + */ + string headerStub; + + /** + * Path element of the header. + */ + string headerPath; + + /** + * Name of the class in the header file declaring the implementation. + * May be an empty string if not set in the SCDL file. + */ + string className; + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_cppimplementation_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.cpp new file mode 100644 index 0000000000..015b54c259 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.cpp @@ -0,0 +1,67 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/CPPInterface.h" + + +namespace tuscany +{ + namespace sca + { + + namespace model + { + + // Constructor + CPPInterface::CPPInterface( + const string& head, + const string& classN, + const string& scop, + bool remote) + : header(head), className(classN), remotable(remote) + { + string::size_type dot = header.rfind(".h"); // this will also find .hpp + if (dot != string::npos) + { + headerStub = header.substr(0, dot); + } + else + { + headerStub = header; + } + + if (scop == "module") + { + scope = MODULE; + } + else + { + scope = STATELESS; + } + } + + CPPInterface::~CPPInterface() + { + } + + } // End namespace model + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.h new file mode 100644 index 0000000000..7b37b1892e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.h @@ -0,0 +1,143 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_cppinterface_h +#define tuscany_sca_model_cppinterface_h + +#include "tuscany/sca/model/Interface.h" + + +#include +using std::map; +#include +using std::string; + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Holds information about an interface described using a C++ + * header file. + */ + class CPPInterface : public Interface + { + + public: + /** + * Constuctor. + * @param header Name of the header file containing the class that + * describes the interface. + * @param className Name of the class in the header file that + * describes the interface. + * @param scope The scope of the interface (stateless or module). + * @param remotable True if the interface is remotable. + */ + CPPInterface( + const string& header, + const string& className, + const string& scope, + bool remotable); + + /** + * Destructor. + */ + virtual ~CPPInterface(); + + /** + * Return the type of the interface. + * @return Always returns CPP. + */ + virtual Type getInterfaceType() {return CPP;} + + /** + * Get the name of the header file. + * @return The name of the header file containing the definition of the + * interface. + */ + const string& getHeader() {return header;} + + /** + * Return the name of the header file without the extension. + * @return Header file name without any extension. + */ + const string& getHeaderStub() {return headerStub;} + + /** + * Get the name of the class. + * @return The name of the class defining the interface. + */ + const string& getClass() {return className;} + + /** + * Scope of interface. + */ + enum SCOPE + { + MODULE, + STATELESS + }; + + /** + * Get the scope of the interface. + * @return The scope of the interface. + */ + SCOPE getScope() {return scope;} + + /** + * Return whether the interface is remotable or local. + * @return True if the interface is remotable, otherwise false. + */ + bool getRemotable() {return remotable;} + + private: + /** + * Name of the header file containing the definition of the interface. + */ + string header; + + /** + * Name of the header file without the extension. + */ + string headerStub; + + /** + * Name of the class in the header file. + */ + string className; + + /** + * Scope of the interface. + */ + SCOPE scope; + + /** + * Remotable interface or not. + */ + bool remotable; + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_cppinterface_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.cpp new file mode 100644 index 0000000000..3e52591b3d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.cpp @@ -0,0 +1,303 @@ +/* + * + * 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 11:33:21 $ */ + +// Component.cpp : Represent a loaded Component +// +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Exceptions.h" +#include "tuscany/sca/util/Utils.h" +#include "tuscany/sca/model/Component.h" + +using namespace commonj::sdo; + +namespace tuscany +{ + namespace sca + { + namespace model + { + // Constructor + Component::Component(const std::string& componentName, Module* module) + : name(componentName), containingModule(module), implementation(0) + { + LOGENTRY(1, "Component::constructor"); + LOGINFO_1(3, "Component::constructor: Component name: %s", name.c_str()); + LOGEXIT(1, "Component::constructor"); + } + + Component::~Component() + { + } + + Service* Component::addService(const std::string& serviceName) + { + Service* service = new Service(serviceName, this); + services[serviceName] = service; + return service; + } + + Service* Component::findService(const std::string& serviceName) + { + // If serviceName is null then return the ONLY service + if (serviceName == "" + && services.size() == 1) + { + return services.begin()->second; + } + else + { + return services[serviceName]; + } + } + + ServiceReference* Component::findReference(const std::string& referenceName) + { + return references[referenceName]; + } + + ServiceReference* Component::addReference(const std::string& referenceName) + { + ServiceReference* serviceReference = references[referenceName]; + if (!serviceReference) + { + references[referenceName] = new ServiceReference(referenceName); + } + return references[referenceName]; + } + + void Component::setImplementation(Implementation* impl) + { + implementation = impl; + } + + void Component::addProperty(const string& name, + const string& type, + bool many, + bool required, + const char* defaultValue) + { + // Create a Type in the Properties dataFactory + DataFactoryPtr factory = getPropertyDataFactory(); + + string typeUri, typeName; + Utils::tokeniseQName(type, typeUri, typeName); + + if (typeUri == "http://www.w3.org/2001/XMLSchema") + { + typeUri = Type::SDOTypeNamespaceURI; + if (typeName == "string") + { + typeName = "String"; + } + else if (typeName == "anyType") + { + typeName = "DataObject"; + } + else if (typeName == "int") + { + typeName = "Integer"; + } + else if (typeName == "integer") + { + typeName = "Integer"; + } + else if (typeName == "negativeInteger") + { + typeName = "Integer"; + } + else if (typeName == "nonNegativeInteger") + { + typeName = "Integer"; + } + else if (typeName == "positiveInteger") + { + typeName = "Integer"; + } + else if (typeName == "nonPositiveInteger") + { + typeName = "Integer"; + } + else if (typeName == "unsignedLong") + { + typeName = "Integer"; + } + else if (typeName == "unsignedShort") + { + typeName = "Integer"; + } + else if (typeName == "unsignedInt") + { + typeName = "Long"; + } + else if (typeName == "long") + { + typeName = "Long"; + } + else if (typeName == "double") + { + typeName = "Double"; + } + else if (typeName == "short") + { + typeName = "Short"; + } + else if (typeName == "unsignedByte") + { + typeName = "Short"; + } + else if (typeName == "float") + { + typeName = "Float"; + } + else if (typeName == "boolean") + { + typeName = "Boolean"; + } + else if (typeName == "byte") + { + typeName = "Byte"; + } + else if (typeName == "base64Binary") + { + typeName = "Bytes"; + } + else if (typeName == "hexBinary") + { + typeName = "Bytes"; + } + else if (typeName == "anyURI") + { + typeName = "URI"; + } + else if (typeName == "QName") + { + typeName = "URI"; + } + else + { + // Default unknown xs: types to string?? + typeName = "String"; + } + } + else + { + // It's not an XML type + } + + + factory->addPropertyToType( + "org/osoa/sca", + "Properties", + name.c_str(), + typeUri.c_str(), + typeName.c_str(), + many, + false, + true); + + // Set the default + + + // Add to list of required properties + if (required) + { + } + } + + DataFactoryPtr Component::getPropertyDataFactory() + { + if (!propertyFactory) + { + propertyFactory = DataFactory::getDataFactory(); + // Add the root type + propertyFactory->addType("org/osoa/sca", "Properties", false, false, false, false); + } + return propertyFactory; + } + + DataObjectPtr Component::getProperties() + { + if (!properties) + { + properties = getPropertyDataFactory()->create("org/osoa/sca", "Properties"); + } + return properties; + } + + void Component::addProperties(DataObjectPtr values) + { + if (!values) + { + return; + } + + DataObjectPtr props = getProperties(); + + PropertyList pl = values->getInstanceProperties(); + for (int i=0; i < pl.size(); i++) + { + if (!values->isSet(i)) + { + continue; + } + + // Add the property value to the component to be resolved later + string propName = pl[i].getName(); + + // Get the property's type + try + { + const Property& propProperty = props->getProperty(pl[i].getName()); + const Type& propType = propProperty.getType(); + + DataObjectList& proplist = values->getList(pl[i]); + for (int proplistI=0; proplistIgetList(pl[i]); + dol.append(proplist.getCString(proplistI)); + } + else + { + props->setCString(pl[i], proplist.getCString(proplistI)); + } + } + else + { + // Create a new instance of the DO + // iterate over properties setting each one + } + } + } + catch (SDOPropertyNotFoundException&) + { + // Configuration error: property is not defined + string message = "Undefined property: " + propName; + throw SystemConfigurationException(message.c_str()); + } + + } + } + + } // End namespace model + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.h new file mode 100644 index 0000000000..f40690c859 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.h @@ -0,0 +1,202 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_component_h +#define tuscany_sca_model_component_h + +#include +using std::string; + +#include + +#include "tuscany/sca/model/Service.h" +#include "tuscany/sca/model/Implementation.h" +#include "tuscany/sca/model/ServiceReference.h" + +#include "commonj/sdo/SDO.h" +using commonj::sdo::DataObjectPtr; +using commonj::sdo::DataFactoryPtr; + +namespace tuscany +{ + namespace sca + { + namespace model + { + + class Module; + + /** + * Information about an SCA component. + */ + class Component + { + public: + /** + * Constructor + * @param name The name of the component. + * @param module The module containing this component. + */ + Component(const std::string& name, Module* module); + + /** + * Destructor. + */ + virtual ~Component(); + + /** + * Returns the name of the component. + * @return The name of the component. + */ + const string& getName() {return name;} + + /** + * Get the module containing this component. + * @return The containing module. + */ + Module* getModule() {return containingModule;} + + /** + * Add a new service to this component. + * @param serviceName The name of the service to add. + * @return The newly added service. + */ + Service* addService(const std::string& serviceName); + + /** + * Find an existing service on this component. + * @param serviceName The name of the service to find. + * If the serviceName is the zero length string then if there is + * only one service it will be returned. + * @return The found service, or 0 if not found. + */ + Service* findService(const std::string& serviceName); + + /** + * Add a new reference to this component. + * @param referenceName The name of the reference to add. + * @return The newly added reference. + */ + ServiceReference* addReference(const std::string& referenceName); + + /** + * Find an existing reference on this component. + * @param referenceName The name of the reference to find. + * @return The found reference, or 0 if not found. + */ + ServiceReference* findReference(const std::string& referenceName); + + /** + * Set the details of the implementation of this component. + * @param impl The details of the implementation. + */ + void setImplementation(Implementation* impl); + + /** + * Returns the details of the implementation of this component. + * @return The details of the implementation. + */ + Implementation* getImplementation() {return implementation;} + + /** + * Add a new property to this component. Properties are + * added one at a time. The property definitions come from the component + * type file. + * @param name The name of the property. + * @param type The full name of the type (including uri and local name). + * @param many True if this is a many valued property. + * @param required True if this property must have a value set. + * @param defaultValue The default value if the property does not have a + * value set. + */ + void addProperty(const string& name, + const string& type, + bool many, + bool required, + const char* defaultValue = 0); + + /** + * Add the property values to the properties defined on this + * component. The values will come from the sca.module file. + * @param properties A data object representing all the values set + * for this component. + */ + void addProperties(DataObjectPtr properties); + + /** + * Returns a data object from which all the properties and their + * values can be accessed. + * @return A data object holding the property values. + */ + DataObjectPtr getProperties(); + private: + /** + * Name of the component. + */ + string name; + + /** + * Module containing this component for navigating up the tree. + */ + Module* containingModule; + + /** + * Information about the implementation of this component. + */ + Implementation* implementation; + + typedef std::map SERVICE_MAP; + /** + * Map of all the services defined on this component. + */ + SERVICE_MAP services; + + typedef std::map REFERENCE_MAP; + /** + * Map of all the references defined on this component. + */ + REFERENCE_MAP references; + + /** + * SDO data factory which has all the property types defined from + * the component type file + */ + DataFactoryPtr propertyFactory; + + /** + * Return the SDO data factory which has the property types defined + * in it. + * @return The data factory. + */ + DataFactoryPtr getPropertyDataFactory(); + + /** + * The properties and their values for this component. + */ + DataObjectPtr properties; + + }; + + } // End namespace model + + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_component_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.cpp new file mode 100644 index 0000000000..3ca0f8cc5e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.cpp @@ -0,0 +1,96 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/EntryPoint.h" +#include "tuscany/sca/util/Exceptions.h" + + +namespace tuscany +{ + namespace sca + { + + namespace model + { + + // Constructor + EntryPoint::EntryPoint(const std::string& epName) + : name(epName) + { + LOGENTRY(1, "EntryPoint::constructor"); + LOGERROR_1(0, "EntryPoint::constructor: EntryPoint name: %s", name.c_str()); + LOGEXIT(1, "EntryPoint::constructor"); + } + + EntryPoint::~EntryPoint() + { + } + + void EntryPoint::addTarget(WireTarget* targ) + { + if (multiplicity == ONE_ONE || multiplicity == ZERO_ONE) + { + if (targets.size() > 0) + { + // throw exception + string message = "Duplicate wire for reference: " + name; + throw SystemConfigurationException(message.c_str()); + } + } + + // TODO - must be remotable + + targets.push_back(targ); + } + + void EntryPoint::setMultiplicity(const std::string& multip) + { + if (multip == "0..1") + { + multiplicity = ZERO_ONE; + } + else if (multip == "1..1") + { + multiplicity = ONE_ONE; + } + else if (multip == "0..n") + { + multiplicity = ZERO_MANY; + } + else if (multip == "1..n") + { + multiplicity = ONE_MANY; + } + else + { + string msg = "Invalid multiplicity specified, " + multip + ", for reference: " +name; + throw SystemConfigurationException(msg.c_str()); + } + } + + void EntryPoint::setInterface(Interface* interf) + { + iface = interf; + } + + } // End namespace model + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.h new file mode 100644 index 0000000000..f6e4b485f9 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.h @@ -0,0 +1,138 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_entrypoint_h +#define tuscany_sca_model_entrypoint_h + +#include +using std::string; +#include +using std::vector; + +#include "tuscany/sca/model/Interface.h" +#include "tuscany/sca/model/WireTarget.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Represents the information about an entry point. + */ + class EntryPoint + { + + public: + /** + * Constructor. + * @param name The name of the entry point. + */ + EntryPoint(const std::string& name); + + /** + * Destructor. + */ + virtual ~EntryPoint(); + + /** + * Return the name of the entry point. + * @return The name of the entry point. + */ + const string& getName() {return name;} + + /** + * How many wires can be wired from this entry point. + */ + enum Multiplicity + { + ZERO_ONE, + ONE_ONE, + ZERO_MANY, + ONE_MANY + }; + + /** + * Set the multiplicity of this entry point. + * @param multiplicity One of 0..1, 1..1, 0..n, 1..n + */ + void setMultiplicity(const std::string& multiplicity); + + /** + * Return the multiplicity of this entry point (how + * many wires can be wired from this entry point). + * @return The multiplicity. + */ + Multiplicity getMultiplicity() {return multiplicity;} + + /** + * Set the interface describing this entry point. + * @param iface The interface. + */ + void setInterface(Interface* iface); + + /** + * Get the interface describing this entry point. Use + * Interface#getType to find out the type of interface + * describing this entry point. + * @return iface The interface. + */ + Interface* getInterface() {return iface;} + + /** + * Add a target to the entry point. + * @param target Add a target (derived from a wire) to + * the entry point. + */ + void addTarget(WireTarget* target); + typedef vector TARGETS; + + /** + * Get a vector of targets added to this entry point. + */ + const TARGETS& getTargets() {return targets;} + private: + /** + * Name of the entry point. + */ + string name; + + /** + * The interface describing this entry point. + */ + Interface* iface; + + /** + * The multiplicity of this entry point.. + */ + Multiplicity multiplicity; + + /** + * The vector of targets added to this entry point. + */ + TARGETS targets; + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_entrypoint_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.cpp new file mode 100644 index 0000000000..c0e3afc682 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.cpp @@ -0,0 +1,55 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/ExternalService.h" + + +namespace tuscany +{ + namespace sca + { + + namespace model + { + + // Constructor + ExternalService::ExternalService(const std::string& serviceName, Module *module) + : WireTarget(serviceName), containingModule(module) + { + LOGENTRY(1, "ExternalService::constructor"); + LOGERROR_1(0, "ExternalService::constructor: ExternalService name: %s", getName().c_str()); + LOGEXIT(1, "ExternalService::constructor"); + } + + ExternalService::~ExternalService() + { + delete binding; + } + + void ExternalService::setBinding(Binding* bind) + { + binding = bind; + } + + + } // End namespace model + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.h new file mode 100644 index 0000000000..fe9640d1b8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.h @@ -0,0 +1,97 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_externalservice_h +#define tuscany_sca_model_externalservice_h + +#include + +#include "tuscany/sca/model/WireTarget.h" +#include "tuscany/sca/model/Binding.h" + +namespace tuscany +{ + namespace sca + { + + namespace model + { + class Module; + + /** + * Information about an external service. + */ + class ExternalService : public WireTarget + { + public: + /** + * Constructor. + * @param name The name of the external service. + * @param module The module containing this external service. + */ + ExternalService(const std::string& name, Module *module); + + /** + * Destructor. + */ + virtual ~ExternalService(); + + /** + * Return the type of service. + * @return Always returns ExternalServiceType + */ + virtual Type getServiceType() {return ExternalServiceType;} + + /** + * Set the binding for this external service. + * @param binding The binding to set. + */ + virtual void setBinding(Binding* binding); + + /** + * Get the binding set for this external service. + * @return The binding. + */ + virtual Binding* getBinding() {return binding;}; + + /** + * Get the module containing this external service. + * @return The containing module. + */ + Module* getContainingModule() {return containingModule;}; + + private: + /** + * The binding for this external service. + */ + Binding* binding; + + /** + * The module containing this external service. + */ + Module* containingModule; + + + }; + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_externalservice_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.cpp new file mode 100644 index 0000000000..9703d1bab3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.cpp @@ -0,0 +1,44 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/Implementation.h" + + +namespace tuscany +{ + namespace sca + { + + namespace model + { + + // Constructor + Implementation::Implementation() + { + } + + Implementation::~Implementation() + { + } + + } // End namespace model + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.h new file mode 100644 index 0000000000..17414c359b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.h @@ -0,0 +1,66 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_implementation_h +#define tuscany_sca_model_implementation_h + +#include + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Abstract class representing information about an implementation + * of a component. The subtypes will hold information specific to + * the type of implementation. + */ + class Implementation + { + + public: + /** + * Supported types of implementation. + */ + enum Type + { + CPP, + JAVA + }; + + Implementation(); + virtual ~Implementation(); + + /** + * Return the type of the implementation. + * @return Will depend on the subtype. + */ + virtual Type getImplementationType() = 0; + + private: + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_implementation_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.cpp new file mode 100644 index 0000000000..9e0aa45889 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.cpp @@ -0,0 +1,44 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/Interface.h" + + +namespace tuscany +{ + namespace sca + { + + namespace model + { + + // Constructor + Interface::Interface() + { + } + + Interface::~Interface() + { + } + + } // End namespace model + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.h new file mode 100644 index 0000000000..24bb43224b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.h @@ -0,0 +1,65 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_interface_h +#define tuscany_sca_model_interface_h + +#include + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Information about an interface. Subtypes will hold information + * specific to a type of interface. + */ + class Interface + { + + public: + /** + * The supported types of interface. + */ + enum Type + { + CPP, + JAVA + }; + + Interface(); + virtual ~Interface(); + + /** + * Returns the type of the interface. + * @return Will depend on the subtype. + */ + virtual Type getInterfaceType() = 0; + + private: + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_interface_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.cpp new file mode 100644 index 0000000000..751bbe0c9c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.cpp @@ -0,0 +1,1555 @@ +/* + * + * 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 11:33:21 $ */ + +#include "osoa/sca/export.h" +#include "tuscany/sca/util/Utils.h" +#include "tuscany/sca/util/Exceptions.h" +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/ModelLoader.h" +#include "tuscany/sca/model/CPPImplementation.h" +#include "tuscany/sca/model/CPPInterface.h" +#include "tuscany/sca/core/SCARuntime.h" +#include "tuscany/sca/model/WSBinding.h" + + +using namespace commonj::sdo; + + +namespace tuscany +{ + namespace sca + { + + namespace model + { + // =========== + // Constructor + // =========== + ModelLoader::ModelLoader(System* system) : system(system) + { + LOGENTRY(1, "ModelLoader::constructor"); + + + LOGEXIT(1, "ModelLoader::constructor"); + } + + // ========== + // Destructor + // ========== + ModelLoader::~ModelLoader() + { + } + + // ========================================================= + // load: Load the runtime model from the deployed xml files + // This class has the responsibility for translating from + // the SCA scdl files to the SCA runtime's in memory model. + // ========================================================= + void ModelLoader::load(const char* configurationRoot) + { + LOGENTRY(1, "ModelLoader::load"); + LOGINFO_1(2,"configuration root: %s", configurationRoot); + + // The configuration root path will point to a directory structure: + // root/ + // The sca.subsystem files can be located anywhere under this directory + // structure. + loadSubsystems(configurationRoot); + + // sca.module files represent the root of a module, and can occur anywhere + // under the directory structure + loadModules(configurationRoot); + + system->resolveWires(); + LOGEXIT(1, "ModelLoader::load"); + } + + // ======================================================================== + // loadSubsystems: + // Load all the subsystems from any directory below the configuration root. + // Translate the subsystem information to the runtime information + // ======================================================================== + void ModelLoader::loadSubsystems(const char* configurationRoot) + { + // Get all the sca.subsystem files in the module + LOGENTRY(1, "ModelLoader::loadSubsystems"); + Files files(configurationRoot, "sca.subsystem", true); + for (unsigned int i=0; i < files.size(); i++) + { + loadSubsystemFile(files[i]); + } + LOGEXIT(1, "ModelLoader::loadSubsystems"); + } + + + // ===================================================================== + // loadSubsystemFile: + // This method is called for each sca.subsystem file found in the module + // folder structure + // ===================================================================== + void ModelLoader::loadSubsystemFile(const File& file) + { + LOGENTRY(1, "ModelLoader::loadSubsystemFile"); + LOGINFO_1(2, "subsystem filename: %s", file.getFileName().c_str()); + + try + { + string filename = file.getDirectory() + "/" + file.getFileName(); + XMLDocumentPtr subsystemFile = getXMLHelper()->loadFile(filename.c_str()); + if (subsystemFile->getRootDataObject() == 0) + { + LOGERROR_1(0, "ModelLoader::loadSubsystemFile: Unable to load file: %s", filename.c_str()); + } + else + { + //Utils::printDO(subsystemFile->getRootDataObject()); + mapSubsystem(subsystemFile->getRootDataObject()); + } + } catch (SDORuntimeException ex) + { + LOGERROR_1(0, "ModelLoader::loadSubsytemFile: Exception caught: %s", ex.getMessageText()); + } + + LOGEXIT(1, "ModelLoader::loadSubsystemFile"); + } + + // =============== + // mapSubsystem: + // =============== + void ModelLoader::mapSubsystem(DataObjectPtr root) + { + LOGENTRY(1, "ModelLoader::mapSubsystem"); + + LOGINFO_1(2, "ModelLoader::mapSubsystem: Loaded subsystem: %s", root->getCString("name")); + + Subsystem* subsystem; + subsystem = system->addSubsystem(root->getCString("name")); + + DataObjectList& Modules = root->getList("moduleComponent"); + LOGINFO_1(2, "ModelLoader::mapSubsystem: number of module components: %d", Modules.size()); + + // Iterate over module components + for (int i=0; iaddModuleComponent(Modules[i]->getCString("name"), Modules[i]->getCString("module")); + } + + + /// @todo Add external services and entry points + + + LOGEXIT(1, "ModelLoader::mapSubsystem"); + } + + + // ===================================================================== + // loadModules: + // Load all the modules from any directory below the configuration root. + // Translate the module information to the runtime information + // ===================================================================== + void ModelLoader::loadModules(const char* configurationRoot) + { + // Get all the sca.module files in the module + LOGENTRY(1, "ModelLoader::loadModules"); + Files files(configurationRoot, "sca.module", true); + for (unsigned int i=0; i < files.size(); i++) + { + loadModuleFile(files[i]); + } + LOGEXIT(1, "ModelLoader::loadModules"); + } + + + // ==================================================================== + // loadModuleFile: + // This method is called for each sca.module file found in the module + // folder structure + // The location of this module file will indicate the root of a module + // ==================================================================== + void ModelLoader::loadModuleFile(const File& file) + { + LOGENTRY(1, "ModelLoader::loadModuleFile"); + LOGINFO_1(2, "module filename: %s", file.getFileName().c_str()); + + try + { + string filename = file.getDirectory() + "/" + file.getFileName(); + + XMLDocumentPtr moduleFile = getXMLHelper()->loadFile(filename.c_str()); + if (moduleFile->getRootDataObject() == 0) + { + LOGERROR_1(0, "ModelLoader::loadModuleFile: Unable to load file: %s", filename.c_str()); + } + else + { + string moduleName = moduleFile->getRootDataObject()->getCString("name"); + mapModule(moduleName, moduleFile->getRootDataObject(), file.getDirectory()); + + // -------------------------------------------------------------- + // Load any module Fragments in the same folder as the sca.module + // -------------------------------------------------------------- + Files files(file.getDirectory(), "*.fragment", false); + for (unsigned int i=0; i < files.size(); i++) + { + filename = file.getDirectory() + "/" + files[i].getFileName(); + moduleFile = getXMLHelper()->loadFile(filename.c_str()); + if (moduleFile->getRootDataObject() == 0) + { + LOGERROR_1(0, "ModelLoader::loadModuleFile: Unable to load file: %s", filename.c_str()); + } + else + { + mapModule(moduleName, moduleFile->getRootDataObject(), file.getDirectory()); + } + } + + // Load the xsd types and wsdl files in the module + loadModuleConfig(file.getDirectory(), moduleName); + } + + } catch (SDORuntimeException ex) + { + LOGERROR_1(0, "ModelLoader::loadModuleFile: Exception caught: %s", ex.getMessageText()); + } + + LOGEXIT(1, "ModelLoader::loadModuleFile"); + } + + // =========== + // mapModule + // =========== + void ModelLoader::mapModule(const string& moduleName, DataObjectPtr root, string moduleRootDir) + { + LOGENTRY(1, "ModelLoader::mapModule"); + + LOGINFO_2(2, "ModelLoader::mapModule: Loading module: %s, root Dir: %s", moduleName.c_str(), moduleRootDir.c_str()); + + // Find the ModuleComponent(s) that refer to this module. If a ModuleComponent does not refer to this + // module then ignore it + MODULE_LIST moduleList = system->findModules(moduleName); + MODULE_LIST::iterator moduleIter; + + for (moduleIter = moduleList.begin(); + moduleIter != moduleList.end(); + moduleIter++ ) + { + LOGINFO_1(2, "ModelLoader::mapModule: Loading module details for module component: %s", (*moduleIter)->getName().c_str()); + + string message; // for exceptions + // Set module root + (*moduleIter)->setRoot(moduleRootDir); + + // ---------------------------- + // Add components to the module + // ---------------------------- + DataObjectList& componentList = root->getList("component"); + int i; + for (i=0; i < componentList.size(); i++) + { + addComponent(*moduleIter, componentList[i]); + } + + // ------------ + // Entry points + // ------------ + DataObjectList& entryPointList = root->getList("entryPoint"); + for (i=0; i < entryPointList.size(); i++) + { + addEntryPoint(*moduleIter, entryPointList[i]); + } + + + // ----------------- + // External services + // ----------------- + DataObjectList& externalServiceList = root->getList("externalService"); + for (i=0; i < externalServiceList.size(); i++) + { + addExternalService(*moduleIter, externalServiceList[i]); + } + + // ----- + // Wires + // ----- + DataObjectList& wireList = root->getList("wire"); + for (int l=0; l < wireList.size(); l++) + { + string source = wireList[l]->getCString("sourceUri"); + string target = wireList[l]->getCString("targetUri"); + (*moduleIter)->addWire(source, target); + } + + } + + LOGEXIT(1, "ModelLoader::mapModule"); + } + + // ================================= + // addComponent: + // ================================= + void ModelLoader::addComponent(Module* module, DataObjectPtr componentDO) + { + Component* component = module->addComponent(componentDO->getCString("name")); + + string message; + + // ------------------- + // Implementation type + // ------------------- + DataObjectPtr impl = componentDO->getDataObject("implementation"); + if (!impl) + { + message = "No implementation for component: "; + message = message + componentDO->getCString("name"); + throw SystemConfigurationException(message.c_str()); + } + // Determine the type + string componentTypeName; + string componentTypePath; + string implType = impl->getType().getName(); + if (implType == "CPPImplementation") + { + string dll = impl->getCString("dll"); + string header = impl->getCString("header"); + string className = impl->getCString("class"); + CPPImplementation* cppImpl = new CPPImplementation(dll, header, className); + componentTypePath = cppImpl->getHeaderPath(); + componentTypeName = cppImpl->getHeaderStub(); + component->setImplementation(cppImpl); + + } + else if (implType == "JavaImplementation") + { + } + + // ----------------------- + // Load the .componentType + // ----------------------- + string typeFileName = module->getRoot() + "/" + componentTypePath + componentTypeName + ".componentType"; + try + { + XMLDocumentPtr componentTypeFile = getXMLHelper()->loadFile(typeFileName.c_str()); + if (componentTypeFile->getRootDataObject() == 0) + { + LOGERROR_1(0, "ModelLoader::mapModule: Unable to load file: %s", typeFileName.c_str()); + } + else + { + //Utils::printDO(componentTypeFile->getRootDataObject()); + //commonj::sdo::SDOUtils::printDataObject(componentTypeFile->getRootDataObject()); + addServices(component, componentTypeFile->getRootDataObject()); + addReferences(component, componentTypeFile->getRootDataObject()); + addProperties(component, componentTypeFile->getRootDataObject()); + } + } catch (SDORuntimeException& ex) + { + LOGERROR_1(0, "ModelLoader::mapModule: Exception caught: %s", ex.getMessageText()); + throw SystemConfigurationException(ex.getMessageText()); + } + + // ---------- + // Properties + // ---------- + DataObjectPtr props = componentDO->getDataObject("properties"); + component->addProperties(props); + + // ---------- + // References + // ---------- + DataObjectPtr refs = componentDO->getDataObject("references"); + if (refs) + { + PropertyList pl = refs->getInstanceProperties(); + for (int refI=0; refI < pl.size(); refI++) + { + // ---------------------------------------------------------- + // Add the reference to the module wires to be resolved later + // ---------------------------------------------------------- + string refName = pl[refI].getName(); + if (!component->findReference(pl[refI].getName())) + { + // Configuration error: reference is not defined + message = "Undefined reference: " + refName; + throw SystemConfigurationException(message.c_str()); + } + + string src = component->getName() + "/" + refName; + DataObjectList& reflist = refs->getList(pl[refI]); + for (int refslistI=0; refslistIaddWire(src, targ); + } + } + } + } + + + // ===================================================================== + // addServices: add the services from the componentType to the component + // ===================================================================== + void ModelLoader::addServices(Component* component, DataObjectPtr componentType) + { + DataObjectList& services = componentType->getList("service"); + for (int i=0; iaddService(services[i]->getCString("name")); + service->setInterface(getInterface(services[i])); + } + } + + // =================================================== + // addReferences: add the references to the component + // =================================================== + void ModelLoader::addReferences(Component* component, DataObjectPtr componentType) + { + DataObjectList& refs = componentType->getList("reference"); + for (int i=0; iaddReference(refs[i]->getCString("name")); + string multiplicity = "1..1"; + if (refs[i]->isSet("multiplicity")) + { + multiplicity = refs[i]->getCString("multiplicity"); + } + serviceRef->setMultiplicity(multiplicity); + serviceRef->setInterface(getInterface(refs[i])); + } + } + + + // ============== + // getInterface + // ============== + Interface* ModelLoader::getInterface(DataObjectPtr obj) + { + // ----------------- + // get the interface + // ----------------- + DataObjectPtr iface = obj->getDataObject("interface"); + if (!iface) + { + string message = "No interface for: "; + message = message + obj->getCString("name"); + throw SystemConfigurationException(message.c_str()); + } + + // Determine the type + string componentTypeName; + string ifType = iface->getType().getName(); + if (ifType == "CPPInterface") + { + string header = iface->getCString("header"); + string className = iface->getCString("class"); + string scope = iface->getCString("scope"); + bool remotable = iface->getBoolean("remotable"); + + return new CPPInterface(header, className, scope, remotable); + } + else + { + // Error? + return 0; + } + } + + // ============================================== + // addProperties: add Properties to the component + // ============================================== + void ModelLoader::addProperties(Component* component, DataObjectPtr componentType) + { + DataObjectList& props = componentType->getList("property"); + for (int i=0; igetCString("name"); + string type = props[i]->getCString("type"); + bool many=false; + if (props[i]->isSet("many")) + { + many = props[i]->getBoolean("many"); + } + + bool required=false; + if (props[i]->isSet("required")) + { + many = props[i]->getBoolean("required"); + } + + const char* defaultValue = 0; + if (props[i]->isSet("default")) + { + defaultValue = props[i]->getCString("default"); + } + + component->addProperty(name, type, many, required, defaultValue); + } + } + + // =============================================== + // addEntryPoint: add an EntryPoint to the module + // =============================================== + void ModelLoader::addEntryPoint(Module* module, DataObjectPtr entryPointDO) + { + //Utils::printDO(entryPointDO); + EntryPoint* entryPoint = module->addEntryPoint(entryPointDO->getCString("name")); + + string multiplicity = "1..1"; + if (entryPointDO->isSet("multiplicity")) + { + multiplicity = entryPointDO->getCString("multiplicity"); + } + + entryPoint->setMultiplicity(multiplicity); + entryPoint->setInterface(getInterface(entryPointDO)); + + DataObjectList& refs = entryPointDO->getList("reference"); + for (int i=0; iaddWire(entryPoint->getName(), targ); + } + } + + + // ========================================================= + // addExternalService: add an ExternalService to the module + // ========================================================= + void ModelLoader::addExternalService(Module* module, DataObjectPtr externalServiceDO) + { + string message; + + ExternalService* externalService = module->addExternalService(externalServiceDO->getCString("name")); + // Add the interface + externalService->setInterface(getInterface(externalServiceDO)); + + // Get binding, it will be the first and only binding + DataObjectPtr binding = externalServiceDO->getList("binding")[0]; + if (!binding) + { + message = "No binding for externalService: "; + message = message + externalServiceDO->getCString("name"); + throw SystemConfigurationException(message.c_str()); + } + + //Utils::printDO(binding); + + string uri = binding->getCString("uri"); + + // Determine the binding type + string bindingType = binding->getType().getName(); + if (bindingType == "WebServiceBinding") + { + string port = binding->getCString("port"); + + WSBinding* wsBinding = new WSBinding(uri,port); + + externalService->setBinding(wsBinding); + + } + else if (bindingType == "SCABinding") + { + } + } + + + + /// + /// Use the Tuscany-model.config file in the module root directory to + /// determine which xsds and wsdls to load into a dataFactory. + /// + void ModelLoader::loadModuleConfig(const string &moduleRootDir, const string &moduleName) + { + LOGENTRY(1, "ModelLoader::loadModuleConfig"); + + // Load the "Tuscany-model.config" file, if it exists + Files files(moduleRootDir, "Tuscany-model.config", false); + for (unsigned int i=0; i < files.size(); i++) + { + string filename = moduleRootDir + "/" + files[i].getFileName(); + XMLDocumentPtr moduleConfigFile = getXMLHelper()->loadFile(filename.c_str()); + if (moduleConfigFile->getRootDataObject() == 0) + { + LOGERROR_1(0, "ModelLoader::loadModuleConfig: Unable to load file: %s", filename.c_str()); + } + else + { + LOGINFO_2(2, "ModelLoader::loadModuleConfig: Loading module config for: %s, root Dir: %s", moduleName.c_str(), moduleRootDir.c_str()); + + DataObjectList& xsds = moduleConfigFile->getRootDataObject()->getList("xsd/file"); + for (int i=0; i set the types in the moduleComponents data factory file + string xsdName = moduleRootDir + "/" +xsds[i]->getCString("name"); + loadTypes(xsdName.c_str(), moduleName); + + + } + + DataObjectList& wsdls = moduleConfigFile->getRootDataObject()->getList("wsdl/file"); + for (int j=0; jgetCString("name"); + // Load a wsdl file -> get the types, then the contents of the wsdl + loadTypes(wsdlName.c_str(), moduleName); + + // Load the contents of the wsdl files + loadWsdl(wsdlName.c_str(), moduleName); + + } + + } + } + + + LOGEXIT(1, "ModelLoader::loadModuleConfig"); + } + + + /// + /// Use the types from an xsd or wsdl file + /// + void ModelLoader::loadTypes(const char *fileName, const string &moduleName) + { + + + // Load a xsd file -> set the types in the moduleComponents data factory file + + MODULE_LIST moduleList = system->findModules(moduleName); + MODULE_LIST::iterator moduleIter; + + for (moduleIter = moduleList.begin(); + moduleIter != moduleList.end(); + moduleIter++ ) + { + try { + (*moduleIter)->getXSDHelper()->defineFile(fileName); + //Utils::printTypes((*moduleIter)->getXSDHelper()->getDataFactory()); + + } catch (SDOTypeNotFoundException ex) + { + LOGERROR_1(0, "ModuleLoader: Exception caught: %s", ex.getMessageText()); + throw ex; + } + } + + } + + /// + /// Load the web services definition from a wsdl + /// + void ModelLoader::loadWsdl(const char *fileName, const string &moduleName) + { + + try { + // Load the wsdl file + XMLDocumentPtr doc = getXMLHelper()->loadFile(fileName); + + + if (doc->getRootDataObject()!=0) + { + MODULE_LIST moduleList = system->findModules(moduleName); + MODULE_LIST::iterator moduleIter; + + for (moduleIter = moduleList.begin(); + moduleIter != moduleList.end(); + moduleIter++ ) + { + // Add the root object to the module + (*moduleIter)->addWsdl(doc->getRootDataObject()); + + } + + } + else + { + LOGERROR_1(0, "ModuleLoader: Unable to load %s", fileName); + } + + } catch (SDOTypeNotFoundException ex) + { + LOGERROR_1(0, "ModuleLoader: Exception caught: %s", ex.getMessageText()); + throw ex; + } + + + + } + + ////////////////////////////////////////////////////////////////////////////// + // Methods used to load the model into memory + ////////////////////////////////////////////////////////////////////////////// + + /// + /// Get an XSDHelper that has the appropriate XSDs already loaded + /// + const XSDHelperPtr ModelLoader::getXSDHelper() + { + if (myXSDHelper == 0) + { + + // Create an xsd helper + myXSDHelper = HelperProvider::getXSDHelper(); + + // Now add to it some xsd files + try { + string root = SCARuntime::getInstance()->getInstallRoot(); + string filename = root + "/xsd/sca.xsd"; + + myXSDHelper->defineFile(filename.c_str()); + + // Tuscany specific xsd for config files + filename = root + "/xsd/tuscany.xsd"; + myXSDHelper->defineFile(filename.c_str()); + + // Load types derived from WSDL schema + loadWSDLTypes(myXSDHelper->getDataFactory()); + + //Utils::printTypes(myXSDHelper->getDataFactory()); + + } catch (SDOTypeNotFoundException ex) + { + LOGERROR_1(0, "ModuleLoader: Exception caught: %s", ex.getMessageText()); + throw ex; + } + } + + + return myXSDHelper; + } + + + /// + /// Get an XMLHelper to load files + /// + const XMLHelperPtr ModelLoader::getXMLHelper() + { + if (myXMLHelper == 0) { + + // Create an xml helper + myXMLHelper = HelperProvider::getXMLHelper(getXSDHelper()->getDataFactory()); + + } + + return myXMLHelper; + } + + void ModelLoader::loadWSDLTypes(DataFactoryPtr dataFactory) + { + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tBinding", + false, true, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tDocumentation", + true, true, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tDocumented", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement", + false, false, true); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented", + false, true, true); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented", + false, true, true); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tFault", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tImport", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tMessage", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tOperation", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tParam", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tPart", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tPort", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tPortType", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tService", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/", "tTypes", + false, false, false); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "definitions", + "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "import", + "http://schemas.xmlsoap.org/wsdl/", "tImport", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "types", + "http://schemas.xmlsoap.org/wsdl/", "tTypes", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "message", + "http://schemas.xmlsoap.org/wsdl/", "tMessage", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "portType", + "http://schemas.xmlsoap.org/wsdl/", "tPortType", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "binding", + "http://schemas.xmlsoap.org/wsdl/", "tBinding", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "service", + "http://schemas.xmlsoap.org/wsdl/", "tService", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "input", + "http://schemas.xmlsoap.org/wsdl/", "tParam", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "output", + "http://schemas.xmlsoap.org/wsdl/", "tParam", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "fault", + "http://schemas.xmlsoap.org/wsdl/", "tFault", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "output", + "http://schemas.xmlsoap.org/wsdl/", "tParam", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "input", + "http://schemas.xmlsoap.org/wsdl/", "tParam", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "fault", + "http://schemas.xmlsoap.org/wsdl/", "tFault", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "arrayType", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "RootType", + "required", + "commonj.sdo", "Boolean", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tBinding", + "operation", + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tBinding", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tBinding", + "type", + "commonj.sdo", "URI", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", + "input", + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", + "output", + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", + "fault", + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", + "import", + "http://schemas.xmlsoap.org/wsdl/", "tImport", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", + "types", + "http://schemas.xmlsoap.org/wsdl/", "tTypes", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", + "message", + "http://schemas.xmlsoap.org/wsdl/", "tMessage", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", + "portType", + "http://schemas.xmlsoap.org/wsdl/", "tPortType", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", + "binding", + "http://schemas.xmlsoap.org/wsdl/", "tBinding", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", + "service", + "http://schemas.xmlsoap.org/wsdl/", "tService", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", + "targetNamespace", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tDocumented", + "documentation", + "http://schemas.xmlsoap.org/wsdl/", "tDocumentation", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement", + "required", + "commonj.sdo", "Boolean", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented", + "http://schemas.xmlsoap.org/wsdl/", "tDocumented"); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented", + "http://schemas.xmlsoap.org/wsdl/", "tDocumented"); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tFault", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tFault", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tFault", + "message", + "commonj.sdo", "URI", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tImport", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tImport", + "namespace", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tImport", + "location", + "commonj.sdo", "URI", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tMessage", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tMessage", + "part", + "http://schemas.xmlsoap.org/wsdl/", "tPart", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tMessage", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tOperation", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tOperation", + "input", + "http://schemas.xmlsoap.org/wsdl/", "tParam", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tOperation", + "output", + "http://schemas.xmlsoap.org/wsdl/", "tParam", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tOperation", + "fault", + "http://schemas.xmlsoap.org/wsdl/", "tFault", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tOperation", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tOperation", + "parameterOrder", + "commonj.sdo", "String", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tParam", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tParam", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tParam", + "message", + "commonj.sdo", "URI", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tPart", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tPart", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tPart", + "element", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tPart", + "type", + "commonj.sdo", "URI", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tPort", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tPort", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tPort", + "binding", + "commonj.sdo", "URI", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tPortType", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tPortType", + "operation", + "http://schemas.xmlsoap.org/wsdl/", "tOperation", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tPortType", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tService", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tService", + "port", + "http://schemas.xmlsoap.org/wsdl/", "tPort", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/", "tService", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/", "tTypes", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", + false, false, true); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", + false, false, false); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "binding", + "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "operation", + "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "body", + "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "encodingStyle", + "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "use", + "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "namespace", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "fault", + "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "header", + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "message", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "part", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "use", + "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "encodingStyle", + "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "namespace", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "headerfault", + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", + "address", + "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", + "location", + "commonj.sdo", "URI", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", + "transport", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", + "style", + "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", + "parts", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", + "encodingStyle", + "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", + "use", + "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", + "namespace", + "commonj.sdo", "URI", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", + "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", + "name", + "commonj.sdo", "String", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", + "http://schemas.xmlsoap.org/wsdl/soap/", "tBody"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", + "required", + "commonj.sdo", "Boolean", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", + "parts", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", + "encodingStyle", + "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", + "use", + "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", + "namespace", + "commonj.sdo", "URI", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", + "headerfault", + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", + true, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", + "message", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", + "part", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", + "use", + "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", + "encodingStyle", + "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", + "namespace", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", + "message", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", + "part", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", + "use", + "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", + "encodingStyle", + "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", + "namespace", + "commonj.sdo", "URI", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", + "soapAction", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", + "style", + "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", + "commonj.sdo", "String"); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", + "commonj.sdo", "String"); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/http/", "RootType", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/http/", "addressType", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/http/", "operationType", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/http/", "urlEncoded", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/http/", "urlReplacement", + false, false, false); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/http/", "RootType", + "address", + "http://schemas.xmlsoap.org/wsdl/http/", "addressType", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/http/", "RootType", + "binding", + "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/http/", "RootType", + "operation", + "http://schemas.xmlsoap.org/wsdl/http/", "operationType", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/http/", "RootType", + "urlEncoded", + "http://schemas.xmlsoap.org/wsdl/http/", "urlEncoded", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/http/", "RootType", + "urlReplacement", + "http://schemas.xmlsoap.org/wsdl/http/", "urlReplacement", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/http/", "addressType", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/http/", "addressType", + "location", + "commonj.sdo", "URI", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", + "verb", + "commonj.sdo", "String", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/http/", "operationType", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/http/", "operationType", + "location", + "commonj.sdo", "URI", + false, false, true); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", + false, false, false); + dataFactory->addType( + "http://schemas.xmlsoap.org/wsdl/mime/", "tPart", + false, true, false); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", + "content", + "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", + "multipartRelated", + "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", + "mimeXml", + "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", + "type", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", + "part", + "commonj.sdo", "String", + false, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", + "part", + "http://schemas.xmlsoap.org/wsdl/mime/", "tPart", + true, false, true); + dataFactory->setBaseType( + "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", + "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", + "part", + "commonj.sdo", "String", + false, false, true); + dataFactory->addPropertyToType( + "http://schemas.xmlsoap.org/wsdl/mime/", "tPart", + "name", + "commonj.sdo", "String", + false, false, true); + } + + + } // End namespace model + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.h new file mode 100644 index 0000000000..6d6e19a510 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.h @@ -0,0 +1,104 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_modelloader_h +#define tuscany_sca_model_modelloader_h + +#include "osoa/sca/export.h" +#include "commonj/sdo/SDO.h" +using commonj::sdo::DataObjectPtr; +using commonj::sdo::DataFactoryPtr; + +#include "tuscany/sca/model/System.h" +#include "tuscany/sca/model/Subsystem.h" + +#include "tuscany/sca/util/File.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Provides methods to load the runtime model from the SCDL file. + */ + class ModelLoader { + public: + /** + * Constructor. + * @param system The SCA system to load. + */ + ModelLoader(System* system); + + /** + * Destructor. + */ + virtual ~ModelLoader(); + + /** + * Load the model from the configuration information. + * @param configurationRoot The location of the deployed SCA + * modules and subsystems. + */ + void load(const char *configurationRoot); + + private: + System* system; + void loadModule(const char *moduleRoot); + + + commonj::sdo::XMLHelperPtr myXMLHelper; // Used to load scdl files + commonj::sdo::XSDHelperPtr myXSDHelper; // Used to load xsds + const commonj::sdo::XSDHelperPtr getXSDHelper(void); + const commonj::sdo::XMLHelperPtr getXMLHelper(void); + + void loadSubsystems(const char *configurationRoot); + void loadSubsystemFile(const File& file); + void mapSubsystem(commonj::sdo::DataObjectPtr rootDO); + + void loadModules(const char *configurationRoot); + void loadModuleFile(const File& file); + void mapModule(const string& moduleName, commonj::sdo::DataObjectPtr rootDO, std::string moduleRootDir); + + void addComponent(Module* module, DataObjectPtr componentDO); + void addEntryPoint(Module* module, DataObjectPtr entryPointDO); + void addExternalService(Module* module, DataObjectPtr externalServiceDO); + + void addServices(Component* component, DataObjectPtr componentType); + void addReferences(Component* component, DataObjectPtr componentType); + void addProperties(Component* component, DataObjectPtr componentType); + + + void loadModuleConfig(const string &moduleRootDir, const string &moduleName); + void loadTypes(const char *fileName, const string &moduleName); + void loadWsdl(const char *fileName, const string &moduleName); + + void loadWSDLTypes(DataFactoryPtr dataFactory); + + Interface* getInterface(DataObjectPtr obj); + + + }; + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_modelloader_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.cpp new file mode 100644 index 0000000000..43702144a2 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.cpp @@ -0,0 +1,235 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Utils.h" +#include "tuscany/sca/model/Module.h" + + +namespace tuscany +{ + namespace sca + { + + namespace model + { + + // Constructor + Module::Module(const std::string& moduleName) + : name(moduleName) + { + LOGENTRY(1, "Module::constructor"); + LOGEXIT(1, "Module::constructor"); + } + + Module::~Module() + { + } + + void Module::setRoot(const std::string& rootDirectory) + { + moduleRoot = rootDirectory; + } + + + /// + /// Add a new component to the module component + /// + Component* Module::addComponent(const std::string& name) + { + LOGENTRY(1, "Module::addComponent"); + Component* newComponent = new Component(name, this); + components[name] = newComponent; + LOGEXIT(1, "Module::addComponent"); + return newComponent; + } + + Component* Module::findComponent(const std::string& name) + { + LOGENTRY(1, "Module::findComponent"); + Component* foundComponent = components[name]; + LOGEXIT(1, "Module::findComponent"); + return foundComponent; + } + + Service* Module::findComponentService(const std::string& name) + { + LOGENTRY(1, "Module::findComponentService"); + + Service* service = 0; + + string componentName; + string serviceName; + Utils::tokeniseUri(name, componentName, serviceName); + + // Locate the component + Component* foundComponent = components[name]; + if (foundComponent) + { + // Locate the service + service = foundComponent->findService(serviceName); + } + LOGEXIT(1, "Module::findComponentService"); + return service; + } + + ExternalService* Module::findExternalService(const std::string& name) + { + LOGENTRY(1, "Module::findExternalService"); + ExternalService* foundService = externalServices[name]; + LOGEXIT(1, "Module::findExternalService"); + return foundService; + } + + + EntryPoint* Module::addEntryPoint(const std::string& name) + { + LOGENTRY(1, "Module::addEntryPoint"); + EntryPoint* ep = new EntryPoint(name); + entryPoints[name] = ep; + LOGEXIT(1, "Module::addEntryPoint"); + return findEntryPoint(name); + } + + EntryPoint* Module::findEntryPoint(const std::string& name) + { + return entryPoints[name]; + } + + + ExternalService* Module::addExternalService(const std::string& name) + { + LOGENTRY(1, "Module::addExternalService"); + ExternalService* es = new ExternalService(name, this); + externalServices[name] = es; + LOGEXIT(1, "Module::addExternalService"); + return es; + } + + void Module::addWire(const std::string& source, const std::string& target) + { + LOGENTRY(1, "Module::addWire"); + wires.push_back(Wire(source, target)); + LOGEXIT(1, "Module::addWire"); + } + + + void Module::resolveWires() + { + LOGENTRY(1, "Module::resolveWires"); + for (WIRES::iterator iter = wires.begin(); + iter != wires.end(); + iter++) + { + // ----------------- + // Locate the target + // ----------------- + WireTarget* target = findComponentService(iter->getTarget()); + if (!target) + { + target = findExternalService(iter->getTarget()); + } + if (!target) + { + LOGERROR_1(0, "Module::resolveWires: Wire target %s not found", iter->getTarget().c_str()); + } + else + { + EntryPoint* entrypoint = findEntryPoint(iter->getSourceComponent()); + if (entrypoint) + { + entrypoint->addTarget(target); + } + else + { + Component* component = findComponent(iter->getSourceComponent()); + if (component) + { + ServiceReference* serviceReference = component->findReference(iter->getSourceReference()); + if (serviceReference) + { + serviceReference->addTarget(target); + } + else + { + LOGERROR_1(0, "Module::resolveWires: Wire source reference %s not found", iter->getSourceReference().c_str()); + } + } + else + { + LOGERROR_1(0, "Module::resolveWires: Wire source %s not found", iter->getSourceComponent().c_str()); + } + } + } + } + + LOGEXIT(1, "Module::resolveWires"); + } + + + + void Module::addWsdl(commonj::sdo::DataObjectPtr wsdlModel) + { + LOGENTRY(1, "Module::addWsdl"); + Wsdl* wsdl = new Wsdl(wsdlModel); + wsdls[wsdl->getNamespace()] = wsdl; + LOGEXIT(1, "Module::addWsdl"); + + } + + Wsdl* Module::findWsdl(const std::string& wsdlNamespace ) + { + return wsdls[wsdlNamespace]; + + } + + + // Get an XSDHelper - one will be created for each module + commonj::sdo::XSDHelperPtr Module::getXSDHelper() + { + if (xsdHelper == 0) + { + xsdHelper = commonj::sdo::HelperProvider::getXSDHelper(); + } + + return xsdHelper; + } + + // Get an XMLHelper - one will be created for each module + commonj::sdo::XMLHelperPtr Module::getXMLHelper() + { + if (xmlHelper == 0) + { + xmlHelper = commonj::sdo::HelperProvider::getXMLHelper(getXSDHelper()->getDataFactory()); + } + + return xmlHelper; + } + + + // Get a data factory - the one in the xsd/xml helper + commonj::sdo::DataFactoryPtr Module::getDataFactory() + { + return getXSDHelper()->getDataFactory(); + } + + } // End namespace model + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.h new file mode 100644 index 0000000000..f73f1d36bc --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.h @@ -0,0 +1,235 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_module_h +#define tuscany_sca_model_module_h + +#include +using std::string; + +#include +using std::map; +#include +using std::vector; + +#include "commonj/sdo/SDO.h" + + +#include "tuscany/sca/model/Component.h" +#include "tuscany/sca/model/ExternalService.h" +#include "tuscany/sca/model/EntryPoint.h" +#include "tuscany/sca/model/Wire.h" +#include "tuscany/sca/model/Wsdl.h" + + +namespace tuscany +{ + namespace sca + { + + namespace model + { + /** + * Information about a module. + */ + class Module + { + public: + /** + * Constructor. + * @param name the name of the module. + */ + Module(const std::string& name); + + /** + * Destructor. + */ + virtual ~Module(); + + /** + * Set the root directory of the module information. + * @param rootDirectory The root of the module in the file system. + */ + void setRoot(const std::string& rootDirectory); + + /** + * Get the root directory of the module. + * @return The root of the module in the file system. + */ + const std::string& getRoot() {return moduleRoot;} + + /** + * Return the name of the module. + * @return Name of the module. + */ + const std::string& getName() {return name;} + + /** + * Add a new component to the module. + * @param componentName The name of the new component. + * @return The Component added to the module. + */ + Component* addComponent(const std::string& componentName); + + /** + * Add a new entry point to the module. + * @param name The name of the new entry point. + * @return The entry point added to the module. + */ + EntryPoint* addEntryPoint(const std::string& name); + + /** + * Find an entry point by name. + * @param name The name of the entry point to be found. + * @return The entry point that was found, or 0 if not found. + */ + EntryPoint* findEntryPoint(const std::string& name); + + /** + * Add a new external service to the module. + * @param name The name of the new external service. + * @return The external service added to the module. + */ + ExternalService* addExternalService(const std::string& name); + + /** + * Add a wire to the model. + * @param source The source location. Either the source component and + * reference (optional), or an entry point. + * @param target The target location. Either the target component and + * service (optional), or an external service. + */ + void addWire(const std::string& source, const std::string& target); + + /** + * Find a component by name. + * @param componentName The name of the component to be found. + * @return The component that was found, or 0 if not found. + */ + Component* findComponent(const std::string& componentName); + + /** + * Find a component and service by name. + * @param componentServiceName A string of the form + * "componentName"/"serviceName" where the service name is optional + * if there is only one service on the component. + * @return The Service that was found, or 0 if not found. + */ + Service* findComponentService(const std::string& componentServiceName); + + /** + * Find an external service by name. + * @param serviceName The name of the external service to be found. + * @return The external service that was found, or 0 if not found. + */ + ExternalService* findExternalService(const std::string& serviceName); + + /** + * Add a WSDL definition to the module. + * @param wsdlModel A data object holding all the information about + * the WSDL definition from a WSDL file. + */ + void addWsdl(commonj::sdo::DataObjectPtr wsdlModel); + + /** + * Find a WSDL definition by target namespace. + * @param wsdlNamespace The namespace of the WSDL definitions to find. + */ + Wsdl* findWsdl(const std::string& wsdlNamespace); + + /** + * Return a cached SDO XSDHelper. + */ + commonj::sdo::XSDHelperPtr getXSDHelper(void); + + /** + * Return a cached SDO XMLHelper. + */ + commonj::sdo::XMLHelperPtr getXMLHelper(void); + + /** + * Return a data factory which has all the types defined in XSDs and + * WSDL files configured for this module. + * @return The data factory for this module. + */ + commonj::sdo::DataFactoryPtr getDataFactory(void); + + /** + * Work through the list of wires and connect the source and target uris. + */ + void resolveWires(); + + private: + /** + * Name of the module. + */ + string name; + + /** + * Directory of the root of the module. + */ + string moduleRoot; + + /** + * Cached XSDHelper. + */ + commonj::sdo::XSDHelperPtr xsdHelper; + + /** + * Cached XMLHelper. + */ + commonj::sdo::XMLHelperPtr xmlHelper; + + typedef map COMPONENT_MAP; + /** + * Map (by name) of all the components in this module. + */ + COMPONENT_MAP components; + + typedef map EXTERNALSERVICE_MAP; + /** + * Map (by name) of all the external services in this module. + */ + EXTERNALSERVICE_MAP externalServices; + + typedef map ENTRYPOINT_MAP; + /** + * Map (by name) of all the entry points in this module. + */ + ENTRYPOINT_MAP entryPoints; + + typedef vector WIRES; + /** + * Vector of all the wires in this module. + */ + WIRES wires; + + typedef map WSDL_MAP; + /** + * Map by namespace of all the wsdl definitions in this module. + */ + WSDL_MAP wsdls; + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // SCA_ModuleComponent_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.cpp new file mode 100644 index 0000000000..42ccecbc99 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.cpp @@ -0,0 +1,47 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/Service.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + + + // Constructor + Service::Service(const std::string& serviceName, Component* comp) + : WireTarget(serviceName), + component(comp) + { + LOGENTRY(1, "Service::constructor (Component)"); + LOGINFO_1(3, "Service::constructor: Service name: %s", serviceName.c_str()); + LOGEXIT(1, "Service::constructor"); + } + + Service::~Service() + { + } + + } // End namespace model + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.h new file mode 100644 index 0000000000..6c37dabb3e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.h @@ -0,0 +1,81 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_service_h +#define tuscany_sca_model_service_h + +#include +using std::string; + +#include "tuscany/sca/model/WireTarget.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + class Component; + + /** + * Information about a service defined on a component. + */ + class Service : public WireTarget + { + public: + /** + * Destructor. + */ + virtual ~Service(); + + /** + * Return the type of the wire target. + * @return Always returns ComponentServiceType. + */ + virtual Type getServiceType() {return ComponentServiceType;} + + /** + * Get the component on which this service is defined. + * @return The component on which this service is defined. + */ + Component* getComponent() {return component;} + + + private: + friend class Component; + /** + * Constructor. + * @param name The name of the service. + * @param component The component on which this service is defined. + */ + Service(const std::string& name, Component* component); + + /** + * The component on which this service is defined. + */ + Component* component; + + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_service_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.cpp new file mode 100644 index 0000000000..cada38dec2 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.cpp @@ -0,0 +1,89 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Exceptions.h" +#include "tuscany/sca/model/ServiceReference.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + + + // Constructor + ServiceReference::ServiceReference(const std::string& referenceName) + : name(referenceName), multiplicity(ONE_ONE) + { + } + + ServiceReference::~ServiceReference() + { + } + + void ServiceReference::addTarget(WireTarget* targ) + { + if (multiplicity == ONE_ONE || multiplicity == ZERO_ONE) + { + if (targets.size() > 0) + { + // throw exception + string message = "Duplicate wire for reference: " + name; + throw SystemConfigurationException(message.c_str()); + } + } + + targets.push_back(targ); + } + + void ServiceReference::setMultiplicity(const std::string& multip) + { + if (multip == "0..1") + { + multiplicity = ZERO_ONE; + } + else if (multip == "1..1") + { + multiplicity = ONE_ONE; + } + else if (multip == "0..n") + { + multiplicity = ZERO_MANY; + } + else if (multip == "1..n") + { + multiplicity = ONE_MANY; + } + else + { + string msg = "Invalid multiplicity specified, " + multip + ", for reference: " +name; + throw SystemConfigurationException(msg.c_str()); + } + } + + void ServiceReference::setInterface(Interface* interf) + { + iface = interf; + } + + } // End namespace model + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.h new file mode 100644 index 0000000000..062d7a4c19 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.h @@ -0,0 +1,136 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_servicereference_h +#define tuscany_sca_model_servicereference_h + +#include +using std::string; +#include +using std::vector; + +#include "tuscany/sca/model/Interface.h" +#include "tuscany/sca/model/WireTarget.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Information about a reference on a serivce. + */ + class ServiceReference + { + public: + /** + * Constructor. + * @param name The name of the reference. + */ + ServiceReference(const std::string& name) + + /** + * Destructor. + */; + virtual ~ServiceReference(); + + /** + * Get the name of the service. + * @return The name of the service. + */ + const std::string& getName() {return name;} + + /** + * Multiplicity (how many wires can be attached to this + * reference as their source) + */ + enum Multiplicity + { + ZERO_ONE, + ONE_ONE, + ZERO_MANY, + ONE_MANY + }; + + /** + * Set the multiplicity of this reference. + * @param multiplicity One of "0..1", "1..1", "0..n", "1..n" + */ + void setMultiplicity(const std::string& multiplicity); + + /** + * Get the multiplicity of this reference. + * @return The multiplicity. + */ + Multiplicity getMultiplicity() {return multiplicity;} + + /** + * Set the interface required by this reference. + * @param iface The interface. + */ + void setInterface(Interface* iface); + + /** + * Get the interface. + * @return The interface. + */ + Interface* getInterface() {return iface;} + + /** + * Add a target for a reference. There may be more than + * one if the multiplicity is 0..n or 1..n. + * @param target The target for a wire. + */ + void addTarget(WireTarget* target); + typedef vector TARGETS; + + /** + * Get a vector of all the targets from this reference. + * @return The targets of this reference. + */ + const TARGETS& getTargets() {return targets;} + private: + /** + * Name of this reference. + */ + string name; + + /** + * The interface defining this reference. + */ + Interface* iface; + + /** + * The multiplicity of this reference. + */ + Multiplicity multiplicity; + + /** + * Vector of all the targets wired from this reference. + */ + TARGETS targets; + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_servicereference_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.cpp new file mode 100644 index 0000000000..08ef0dde49 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.cpp @@ -0,0 +1,122 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/Subsystem.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + + // Constructor + Subsystem::Subsystem(const std::string& subsystemName) : name(subsystemName) + { + LOGENTRY(1, "Subsystem::constructor"); + + + LOGEXIT(1, "Subsystem::constructor"); + } + + Subsystem::~Subsystem() + { + } + + /// + /// Add a new module component + /// + Module* Subsystem::addModuleComponent(const std::string& name, const std::string& moduleName) + { + LOGENTRY(1, "Subsystem::addModuleComponent"); + + Module* newModule = new Module(moduleName); + + // TODO: Should check for duplicates and throw exception + moduleComponents[name] = newModule; + + LOGEXIT(1, "Subsystem::addModuleComponent"); + + return newModule; + } + + Module* Subsystem::findModule(const std::string& moduleName) + { + for (MODULECOMPONENT_MAP::iterator moduleComponentIter = moduleComponents.begin(); + moduleComponentIter != moduleComponents.end(); + moduleComponentIter++) + { + if (moduleName == moduleComponentIter->second->getName()) + { + return (Module*)moduleComponentIter->second; + } + } + return 0; + } + + Module* Subsystem::findModuleByComponentName(const std::string& moduleComponentName) + { + return moduleComponents[moduleComponentName]; + } + + Module* Subsystem::getDefaultModule() + { + if (moduleComponents.size() == 1) + { + MODULECOMPONENT_MAP::iterator moduleComponentIter = moduleComponents.begin(); + return moduleComponentIter->second; + } + return 0; + } + + /// + /// Add a new entrypoint + /// + EntryPoint* Subsystem::addEntryPoint(const std::string& name) + { + LOGENTRY(1, "Subsystem::addEntryPoint"); + + EntryPoint* newEntryPoint = new EntryPoint(name); + entryPoints[name] = newEntryPoint; + LOGEXIT(1, "Subsystem::addEntryPoint"); + return findEntryPoint(name); + } + + EntryPoint* Subsystem::findEntryPoint(const std::string& name) + { + return entryPoints[name]; + } + + void Subsystem::resolveWires() + { + for (MODULECOMPONENT_MAP::iterator moduleComponentIter = moduleComponents.begin(); + moduleComponentIter != moduleComponents.end(); + moduleComponentIter++) + { + moduleComponentIter->second->resolveWires(); + } + + // Resolve EntryPoint wires + } + + } // End namespace model + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.h new file mode 100644 index 0000000000..b3c59898eb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.h @@ -0,0 +1,131 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_h +#define tuscany_sca_model_h + +#include +using std::string; +#include +using std::map; + +#include "tuscany/sca/model/Module.h" +#include "tuscany/sca/model/EntryPoint.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Information about a subsystem. + */ + class Subsystem { + public: + /** + * Constructor. + * @param name The name of the subsystem. + */ + Subsystem(const std::string& name); + + /** + * Destructor. + */ + virtual ~Subsystem(); + + /** + * Add a new module component to the subsystem. + * @param name The name of the module component. + * @param moduleName The name of the module. + * @return The new Module added to the subsystem. + */ + Module* addModuleComponent(const std::string& name, const std::string& moduleName); + + /** + * Find a module by module name. + * @param moduleName The name of the module to be found. + * @return The Module that was found, or 0 if not found. + */ + Module* findModule(const std::string& moduleName); + + /** + * Find a module by the module component name. + * @param moduleComponentName The module component name to be used to find + * the module. + * @return The Module that was found, or 0 if not found. + */ + Module* findModuleByComponentName(const std::string& moduleComponentName); + + /** + * Get the default module set for this subsystem. + * @return The default module. + */ + Module* getDefaultModule(); + + /** + * Add an new entry point to the subsystem. + * @param name The name of the entry point. + * @return The new EntryPoint added to the subsystem. + */ + EntryPoint* addEntryPoint(const std::string& name); + + /** + * Find an entry point by name. + * @param name The name of the entry point to be found. + * @return The EntryPoint that was found, or 0 if not found. + */ + EntryPoint* findEntryPoint(const std::string& name); + + /** + * Return the name of the subsystem. + * @return The name. + */ + const std::string& getName() {return name;} + + /** + * Resolve all the wires configured in all the modules in this + * subsystem. + */ + void resolveWires(); + + private: + /** + * The name of the subsystem. + */ + std::string name; + + typedef std::map MODULECOMPONENT_MAP; + /** + * A map by module component name of modules. + */ + MODULECOMPONENT_MAP moduleComponents; + + typedef map ENTRYPOINT_MAP; + /** + * A map of entry points defined in this subsystem. + */ + ENTRYPOINT_MAP entryPoints; + }; + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.cpp new file mode 100644 index 0000000000..dfc4a21b1c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.cpp @@ -0,0 +1,118 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/System.h" + + +namespace tuscany +{ + namespace sca + { + namespace model + { + + // ============ + // Constructor + // ============ + System::System() + { + LOGENTRY(1, "System::constructor"); + + + LOGEXIT(1, "System::constructor"); + } + + System::~System() + { + SUBSYSTEM_MAP::iterator subsystemsIter; + for (subsystemsIter = subsystemMap.begin(); + subsystemsIter != subsystemMap.end(); + subsystemsIter++ ) + { + delete subsystemsIter->second; + } + } + + // ================================= + // Add a new subsystem to the system + // ================================= + Subsystem* System::addSubsystem(const std::string& name) + { + LOGENTRY(1, "System::addSubsystem"); + + Subsystem* newSubsystem = new Subsystem(name); + + subsystemMap[name] = newSubsystem; + + LOGEXIT(1, "System::addSubsystem"); + + return newSubsystem; + } + + // ==================================================================== + // Get a map of all the moduleComponents that use a particular module + // ==================================================================== + MODULE_LIST System::findModules(const std::string& name) + { + LOGENTRY(1, "System::findModules"); + MODULE_LIST foundModules; + + SUBSYSTEM_MAP::iterator subsystemsIter; + for (subsystemsIter = subsystemMap.begin(); + subsystemsIter != subsystemMap.end(); subsystemsIter++ ) { + LOGINFO_1(2, "System::findModules: Found subsystem: %s", subsystemsIter->second->getName().c_str()); + // In each subsystem, find module components with this module defined + + Module* module = subsystemsIter->second->findModule(name); + if (module) + { + LOGINFO_1(2, "System::findModules: Found module: %s", module->getName().c_str()); + foundModules.push_back(module); + } + } + LOGEXIT(1, "System::findModules"); + + return foundModules; + } + + + // ==================================================================== + // Get a map of all the moduleComponents that use a particular module + // ==================================================================== + Subsystem* System::findSubsystem(const std::string& subsystem) + { + return subsystemMap[subsystem]; + } + + void System::resolveWires() + { + SUBSYSTEM_MAP::iterator subsystemsIter; + for (subsystemsIter = subsystemMap.begin(); + subsystemsIter != subsystemMap.end(); + subsystemsIter++ ) + { + subsystemsIter->second->resolveWires(); + } + } + + } // End namespace model + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.h new file mode 100644 index 0000000000..a0f62ce67a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.h @@ -0,0 +1,89 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_system_h +#define tuscany_sca_model_system_h + +#include +#include +#include + +#include "tuscany/sca/model/Subsystem.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + typedef std::vector MODULE_LIST; + + /** + * The root of the runtime model supported by a Tuscany runtime. + */ + class System { + public: + System(); + virtual ~System(); + + /** + * Add a new subsystem to the system. + * @param subsystemName The name of the new subsystem to add. + * @return The new Subsystem added to the system. + */ + Subsystem* addSubsystem(const std::string& subsystemName); + + /** + * Find subsystem by name. + * @param subsystemName The name of the subsystem to be found. + * @return The Subsystem found, or 0 if not found. + */ + Subsystem* findSubsystem(const std::string& subsystemName); + + typedef std::vector MODULE_LIST; + + /** + * Return a vector of all the modules with a given module name. + * @param moduleName The name of the module to find + * @return A vector of all the times the module appears in the + * system. It can be more than once because the same module name + * is used by more than one module component. + */ + MODULE_LIST findModules(const std::string& moduleName); + + /** + * Resolve all the wires defined in the system. + */ + void resolveWires(); + + private: + + typedef std::map SUBSYSTEM_MAP; + + /** + * Map by name of subsystems. + */ + SUBSYSTEM_MAP subsystemMap; + }; + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_system_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.cpp new file mode 100644 index 0000000000..85cb7482bd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.cpp @@ -0,0 +1,127 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/WSBinding.h" + + +namespace tuscany +{ + namespace sca + { + + namespace model + { + + // Constructor + WSBinding::WSBinding(const string& uri, const string& port) + : Binding(uri), port(port) + { + + // Port is of the form: #wsdl.endpoint(/) + string::size_type hash = port.find("#"); + if (hash != string::npos) + { + // Found a hash + + // Namepace is the part before the # + wsdlNamespaceURL = port.substr(0, hash); + + + if ( (hash+1) < port.length()) + { + // Check the next part is wsdl.endpoint( + int ending = hash+15; + string check = port.substr(hash+1, 14); + if (check.compare("wsdl.endpoint(") == 0) + { + // Find the matching ) + int endBracket = port.find(")",ending); + if (endBracket-1 > ending+1) + { + string serviceAndPort = port.substr(ending, endBracket-ending); + // Look for a '/' + string::size_type slash = serviceAndPort.find("/"); + if (slash != string::npos) + { + serviceName = serviceAndPort.substr(0, slash); + + if ( (slash+1) < serviceAndPort.length()) + { + portName = serviceAndPort.substr(slash+1); + } + else + { + portName = ""; + } + + } + else + { + // No '/' so all of it is the service name + serviceName = serviceAndPort; + portName = ""; + + } + } + else + { + // Nothing between the () + serviceName = ""; + portName = ""; + } + } + else + { + // not the correct characters after the #, ignore the rest + serviceName = ""; + portName = ""; + } + + } + else + { + // Nothing after the hash + serviceName = ""; + portName = ""; + } + } + else + { + // No hash at all + wsdlNamespaceURL = port; + serviceName = ""; + portName = ""; + } + + + + + + + } + + WSBinding::~WSBinding() + { + } + + } // End namespace model + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.h new file mode 100644 index 0000000000..e7963d205b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.h @@ -0,0 +1,106 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_wsbinding_h +#define tuscany_sca_model_wsbinding_h + +#include "tuscany/sca/model/Binding.h" + +#include + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Information about a web service binding for an entry point or an + * external service. + */ + class WSBinding : public Binding + { + public: + /** + * Constructor. + * @param uri The uri of the binding. + * @param port The definition of the port to which the entrypoint + * or external service is to be bound. This is of the form + * "namespace"#endpoint("service"/"port") + */ + WSBinding(const string&uri, const string& port); + + /** + * Destructor. + */ + virtual ~WSBinding(); + + /** + * Return the type of the binding. + * @return Always returns WS. + */ + virtual Type getBindingType() {return WS;}; + + /** + * Return the part of the port definition describing the wsdl + * namespace. + * @return The wsdl namespace. + */ + string getWSDLNamespaceURL() {return wsdlNamespaceURL;}; + + /** + * Return the service part of the port definition. + * @return The service to use. + */ + string getServiceName() {return serviceName;}; + + /** + * Return the port name part of the port definition. + * @return The port name to use. + */ + string getPortName() {return portName;}; + + private: + /** + * The full port string. + */ + string port; + + /** + * Namespace from the port. + */ + string wsdlNamespaceURL; + + /** + * Service name from the port. + */ + string serviceName; + + /** + * Port name from the port. + */ + string portName; + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_wsbinding_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.cpp new file mode 100644 index 0000000000..6c1b14940f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.cpp @@ -0,0 +1,46 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Utils.h" +#include "tuscany/sca/model/Wire.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + + // Constructor + Wire::Wire(const std::string& source, const std::string& targ) + { + Utils::tokeniseUri(source, sourceComponent, sourceReference); + target = targ; + } + + Wire::~Wire() + { + } + + } // End namespace model + + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.h new file mode 100644 index 0000000000..b126137118 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.h @@ -0,0 +1,91 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_wire_h +#define tuscany_sca_model_wire_h + +#include +using std::string; + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Information about a wire in the model. + */ + class Wire + { + public: + /** + * Constructor. + * @param source The source of the wire. Either the component and + * reference name (optional) or an entry point. + * @param target The target of the wire. Either a component and service + * service name (optional) or an external sevice. + */ + Wire(const std::string& source, const std::string& target); + + /** + * Destructor. + */ + virtual ~Wire(); + + /** + * Get the component name defined by the source of the wire. + * @return The component name which is the source of the wire. + */ + const std::string& getSourceComponent() {return sourceComponent;} + + /** + * Get the reference name defined by the source of the wire. + * @return The reference name which is the source of the wire. + */ + const std::string& getSourceReference() {return sourceReference;} + + /** + * Get the target uri defined by the target of the wire. + * @return The target uri which is the source of the wire. + */ + const std::string& getTarget() {return target;} + private: + /** + * The source component of the wire. + */ + string sourceComponent; + + /** + * The source reference of the wire. + */ + string sourceReference; + + /** + * The target uri of the wire. + */ + string target; + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_wire_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.cpp new file mode 100644 index 0000000000..a35b07f5fe --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.cpp @@ -0,0 +1,49 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/WireTarget.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + + // Constructor + WireTarget::WireTarget(const std::string& targetName) + : name(targetName) + { + } + + WireTarget::~WireTarget() + { + } + + void WireTarget::setInterface(Interface* interf) + { + iface = interf; + } + + } // End namespace model + + + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.h new file mode 100644 index 0000000000..312d20a704 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.h @@ -0,0 +1,106 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_wiretarget_h +#define tuscany_sca_model_wiretarget_h + +#include +using std::string; + +#include "tuscany/sca/model/Interface.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + /** + * Represents the target of a wire. This could be a service on a + * component or an external service. + */ + class WireTarget + { + public: + /** + * Supported types of wire target. + */ + enum Type + { + ComponentServiceType, + ExternalServiceType + }; + + /** + * Constructor. + * @param name The name of the wire target. + */ + WireTarget(const std::string& name); + + /** + * Destructor. + */ + virtual ~WireTarget(); + + /** + * Return the name of the wire target. + */ + string getName() {return name;} + + /** + * Get the type of the wire target. + * @return Depends on the type of the wire target. + */ + virtual Type getServiceType() = 0; + + /** + * Set the interface describing the wire target. + * @param iface The interface. + */ + void setInterface(Interface* iface); + + /** + * Get the interface describing the wire target. + * @return The interface. + */ + Interface* getInterface() {return iface;} + + private: + /** + * Name of the wire target (service name or external service name) + */ + string name; + + /** + * Type of the service. + */ + Type serviceType; + + /** + * Interface describing the wire target. + */ + Interface* iface; + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_wiretarget_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.cpp new file mode 100644 index 0000000000..fcc86c78e5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.cpp @@ -0,0 +1,345 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Utils.h" +#include "tuscany/sca/model/Wsdl.h" +#include "tuscany/sca/util/Exceptions.h" + +using namespace tuscany::sca; + +using namespace commonj::sdo; + +namespace tuscany +{ + namespace sca + { + namespace model + { + + + // Constructor + Wsdl::Wsdl(DataObjectPtr wsdlModel) + : wsdlModel(wsdlModel) + { + LOGENTRY(1, "Wsdl::constructor"); + + // Trace + Utils::printDO(wsdlModel); + + + + LOGEXIT(1, "Wsdl::constructor"); + } + + Wsdl::~Wsdl() + { + } + + + /// + /// The namespace of the service and other definitions defined in this wsdl definition + string Wsdl::getNamespace() + { + + return wsdlModel->getCString("targetNamespace"); + + } + + /// + /// Find the operation defined in this wsdl + /// + WsdlOperation Wsdl::findOperation(const string& serviceName, + const string& portName, + const string& operationName) + { + string message; + + // Find the service + DataObjectPtr service = findService(serviceName); + if (!service) + { + // Service not found + message = "Unable to find service "; + message = message + serviceName; + message = message + " in the WSDL definition"; + throw SystemConfigurationException(message.c_str()); + } + else + { + + + // Found the service + DataObjectList& portList = service->getList("port"); + for (int j=0; jgetCString("name")); + if (portListName.compare(portName) == 0) + { + + // found port + // Add address at this point + string targetAddress(portList[j]->getCString("address/location")); + + // find operation by traversing the binding, portType then operation + string wsBindingName(portList[j]->getCString("binding")); + + DataObjectPtr wsBinding = findBinding(wsBindingName); + if (!wsBinding) + { + message = "Unable to find binding "; + message = message + wsBindingName; + message = message + " in the WSDL definition"; + throw SystemConfigurationException(message.c_str()); + } + + // Get the soapAction + string soapAction = getSoapAction(wsBinding, operationName); + + + // Found the binding, get the portType + string wsPortTypeName(wsBinding->getCString("type")); + DataObjectPtr wsPortType = findPortType(wsPortTypeName); + if (!wsPortType) + { + message = "Unable to find PortType "; + message = message + wsPortTypeName; + message = message + " in the WSDL definition"; + throw SystemConfigurationException(message.c_str()); + } + + Utils::printDO(wsPortType); + + // Found the portType, find the operation + DataObjectList& operationList = wsPortType->getList("operation"); + for (int k=0; k< operationList.size(); k++) + { + string opName(operationList[k]->getCString("name")); + if( opName.compare(operationName) == 0) + { + // Found the operation + + // Find the type of the request message + string inputMessageType = string(operationList[k]->getCString("input/message")); + + DataObjectPtr wsMessageIn = findMessage(inputMessageType); + if (!wsMessageIn) + { + message = "Unable to find message "; + message = message + inputMessageType; + message = message + " in the WSDL definition"; + throw SystemConfigurationException(message.c_str()); + } + + string requestType(wsMessageIn->getList("part")[0]->getCString("element")); + string requestTypeName; + string requestTypeUri; + // Utils::tokeniseQName(requestType, requestTypeUri, requestTypeName); + Utils::rTokeniseString(":", requestType, requestTypeUri, requestTypeName); + + // Find the type of the response message + string outputMessageType = string(operationList[k]->getCString("output/message")); + + DataObjectPtr wsMessageOut = findMessage(outputMessageType); + if (!wsMessageOut) + { + message = "Unable to find message "; + message = message + outputMessageType; + message = message + " in the WSDL definition"; + throw SystemConfigurationException(message.c_str()); + } + + string responseType(wsMessageOut->getList("part")[0]->getCString("element")); + string responseTypeName; + string responseTypeUri; + // Utils::tokeniseQName(responseType, responseTypeUri, responseTypeName); + Utils::rTokeniseString(":", responseType, responseTypeUri, responseTypeName); + + return WsdlOperation(requestTypeName, + soapAction, + targetAddress, + responseTypeName); + } + + } + + message = "Unable to find Operation "; + message = message + operationName; + message = message + " in the WSDL definition"; + throw SystemConfigurationException(message.c_str()); + + + + + } + + + + + } + // cannot find the port + message = "Unable to find port "; + message = message + portName; + message = message + " in the WSDL definition"; + throw SystemConfigurationException(message.c_str()); + } + + } + + + + /// + /// Find a service + /// + DataObjectPtr Wsdl::findService(const string& serviceName) + { + DataObjectPtr service = 0; + + + // Find the binding + DataObjectList& serviceList = wsdlModel->getList("service"); + for (int i=0; igetCString("name")); + + if (name.compare(serviceName) == 0) + { + return serviceList[i]; + } + } + + return service; + } + + + /// + /// Find a named binding + /// + DataObjectPtr Wsdl::findBinding(const string& bindingName) + { + DataObjectPtr binding = 0; + string uri; + string name; + + + //Utils::tokeniseQName(bindingName, uri, name); + Utils::rTokeniseString(":", bindingName, uri, name); + + + // Find the binding + DataObjectList& bindingList = wsdlModel->getList("binding"); + for (int i=0; igetCString("name")); + + if (nameBinding.compare(name) == 0) + { + return bindingList[i]; + } + } + + return binding; + } + + /// + /// Find a named portType + /// + DataObjectPtr Wsdl::findPortType(const string& portTypeName) + { + DataObjectPtr portType = 0; + string uri; + string name; + + + // Utils::tokeniseQName(portTypeName, uri, name); + Utils::rTokeniseString(":", portTypeName, uri, name); + + + // Find the binding + DataObjectList& portTypeList = wsdlModel->getList("portType"); + for (int i=0; igetCString("name")); + + if (namePortType.compare(name) == 0) + { + return portTypeList[i]; + } + } + + return portType; + } + + /// + /// Find a named message + /// + DataObjectPtr Wsdl::findMessage(const string& messageName) + { + DataObjectPtr message = 0; + string uri; + string name; + + + // Utils::tokeniseQName(messageName, uri, name); + Utils::rTokeniseString(":", messageName, uri, name); + + + // Find the binding + DataObjectList& messageList = wsdlModel->getList("message"); + for (int i=0; igetCString("name")); + + if (nameMessage.compare(name) == 0) + { + return messageList[i]; + } + } + + return message; + } + + /// + /// Get the soap action + /// + string Wsdl::getSoapAction(DataObjectPtr binding, const string& operationName) + { + + + // Find the binding operation + DataObjectList& bindingOperationList = binding->getList("operation"); + for (int i=0; igetCString("name")); + + if (name.compare(operationName) == 0) + { + // Found the binding operation, return the soap action + string soapAction(bindingOperationList[i]->getCString("operation/soapAction")); + return soapAction; + } + } + + return string(""); + } + + + } // End namespace model + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.h new file mode 100644 index 0000000000..440ecc4c2d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.h @@ -0,0 +1,132 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_wsdl_h +#define tuscany_sca_model_wsdl_h + +#include +using std::string; + +#include "tuscany/sca/model/WsdlOperation.h" + +#include "commonj/sdo/SDO.h" +using commonj::sdo::DataObjectPtr; + + +namespace tuscany +{ + namespace sca + { + namespace model + { + + /** + * Holds information about a WSDL definition loaded into the runtime. + */ + class Wsdl + { + public: + /** + * Constructor. + * @param wsdlModel The data object representing the WSDL document + * defining a web service. + */ + Wsdl(DataObjectPtr wsdlModel); + + /** + * Destructor. + */ + ~Wsdl(); + + + /** + * Returns the target namespace of the WSDL definitions. + * @return The target namespace. + */ + string getNamespace(void); + + /** + * Find an operation in the WSDL definitions. + * @param serviceName The name of the service on which this + * operation is defined. + * @param portName The name of the port in the service to + * use. + * @param operationName The name of the operation to find. + * @return The operation if found. Exception thrown if not found. + */ + WsdlOperation findOperation(const string& serviceName, + const string& portName, + const string& operationName); + + private: + + /** + * Find a service in the wsdl definition. + * @param serviceName The name of the service. + * @return A data object describing the service if found, otherwise + * a 0 if not found. + */ + DataObjectPtr findService(const string& serviceName); + + /** + * Find a binding in the wsdl definition. + * @param bindingName The name of the binding to find. + * @return A data object describing the binding if found, otherwise + * a 0 if not found. + */ + DataObjectPtr findBinding(const string& bindingName); + + /** + * Find a portType in the wsdl definition. + * @param portTypeName The name of the portType. + * @return A data object describing the portType if found, otherwise + * a 0 if not found. + */ + DataObjectPtr findPortType(const string& portTypeName); + + /** + * Find a message in the wsdl definition. + * @param messageName The name of the message. + * @return A data object describing the message if found, otherwise + * a 0 if not found. + */ + DataObjectPtr findMessage(const string& messageName); + + /** + * The the details of the soap action setting for an operation + * on a soap binding. + * @param binding The data object describing the binding. + * @param operationName The name of the operation. + * @return The soap action setting from the WSDL. + */ + string getSoapAction(DataObjectPtr binding, const string& operationName); + + + /** + * The data object representation of the WSDL document. + */ + DataObjectPtr wsdlModel; + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_wsdl_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.cpp new file mode 100644 index 0000000000..e248f64caf --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.cpp @@ -0,0 +1,57 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Utils.h" +#include "tuscany/sca/model/Wsdl.h" + +namespace tuscany +{ + namespace sca + { + namespace model + { + + + // Constructor + WsdlOperation::WsdlOperation(const string& operation, + const string& soapAct, + const string& endpointAddress, + const string& response) + : operationName(operation), + responseName(response), + soapAction(soapAct), + endpoint(endpointAddress) + { + LOGENTRY(1, "WsdlOperation::constructor"); + + + + + LOGEXIT(1, "WsdlOperation::constructor"); + } + + WsdlOperation::~WsdlOperation() + { + } + + + } // End namespace model + } // End namespace sca +} // End namespace tuscany diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.h new file mode 100644 index 0000000000..a77d576a4f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.h @@ -0,0 +1,117 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_model_wsdlOperation_h +#define tuscany_sca_model_wsdlOperation_h + +#include +using std::string; + + +namespace tuscany +{ + namespace sca + { + namespace model + { + + /** + * Represents a single.,bound WSDL defined operation. + * This class includes information from the soapBinding + * in addition to the WSDL definition of the operation. + */ + class WsdlOperation + { + public: + /** + * Constructor. + * @param operation The name of the operation. + * @param soapAction The soapAction associated with this operation + * in the SOAP binding of the operation. + * @param endpoint The endpoint address of the operation. + * @param responseName The name of the response message. + */ + WsdlOperation(const string& operation, + const string& soapAction, + const string& endpoint, + const string& responseName); + + /** + * Destructor. + */ + ~WsdlOperation(); + + /** + * Return the name of the operation for use when serializing an + * outgoing message. + * @return The name of the element in the request message. + */ + const string& getOperationName() {return operationName;}; + + /** + * Return the name of the response for use when deserializing an + * incoming message. + * @return The name of the element in the response message. + */ + const string& getResponseName() {return responseName;}; + + /** + * The soap action string for this operation. + * @return The soap action. + */ + const string& getSoapAction() {return soapAction;}; + + /** + * Return the endpoint address for the target web service. + * @return The endpoint address. + */ + const string& getEndpoint() {return endpoint;}; + + + + private: + /** + * The name of the operation for use when serializing an + * outgoing message. + */ + string operationName; + + /** + * The name of the response for use when deserializing an + * incoming message. + */ + string responseName; + + /** + * The soap action string for this operation. + */ + string soapAction; + + /** + * The endpoint address of the target web service. + */ + string endpoint; + }; + + } // End namespace model + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_model_wsdlOperation_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp new file mode 100644 index 0000000000..3ea2212f7c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp @@ -0,0 +1,43 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/DefaultLogWriter.h" +#include +using namespace std; + +namespace tuscany +{ + namespace sca + { + DefaultLogWriter::~DefaultLogWriter() + { + } + + void DefaultLogWriter::log(int level, const char* msg) + { + for (int i=0; i < level; i++) + { + cout << " "; + } + cout << msg < + +#include + +#if defined(WIN32) || defined (_WINDOWS) +#include +#else +#include +#include +#include +#endif + +namespace tuscany +{ + namespace sca + { + File::File(const string& dir, const string& file) + : directory(dir), fileName(file) + { + } + File::~File() + { + } + + + Files::Files(const string& rootDir, const string& pattern, bool subdirectories) + : rootDirectory(rootDir) + { + findFiles(rootDirectory, pattern, subdirectories); + } + + Files::~Files() + { + } + + unsigned int Files::size() + { + return files.size(); + } + + const File& Files::operator[] (unsigned int index) + { + if (size() <= index) + { + throw ServiceRuntimeException("Files::operator[] index out of bounds"); + } + + FILES::iterator iter = files.begin(); + for (unsigned int i=0; id_name; + struct stat statbuf; + if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) + continue; + if (stat(entryName.c_str(), &statbuf) != 0) + { + perror("stat"); + } + else + { + if (S_ISDIR(statbuf.st_mode)) + { + if (subdirectories) + { + findFiles(entryName, pattern, subdirectories); + } + } + else if (S_ISREG(statbuf.st_mode)) + { + string filename = entry->d_name; + + if ((exactMatch && filename == pattern) || + (!exactMatch && + ((filename.find(token1) == 0) + && (filename.length() >= token2.length()) + && (filename.rfind(token2) == (filename.length() - token2.length())) ))) + { + // Add the file to our list + files.push_back(File(rootDir, filename)); + } + } + } + } + closedir(root); +#endif + } + + + } // End namespace sca +} // End namespace tuscany + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/File.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/File.h new file mode 100644 index 0000000000..f177401442 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/File.h @@ -0,0 +1,133 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_util_file_h +#define tuscany_sca_util_file_h + +#include +using std::string; +#include +using std::vector; + +namespace tuscany +{ + namespace sca + { + /** + * File access methods. Provides platform independent + * access to files. + */ + class File + { + public: + /** + * Constructor. + * @param directory Name of the directory in which this file is located. + * Either / or \ can be used interchangeably for separating directory elements. + * @param fileName Name of the file in the dirctory. + */ + File(const string& directory, const string& fileName); + + /** + * Destructor. + */ + virtual ~File(); + + /** + * Return the directory in which this file is located. + * @return Name of the directory. + */ + const string& getDirectory() const {return directory;} + + /** + * Name of the file. + * @return Name of the file. + */ + const string& getFileName() const {return fileName;} + private: + /** + * Name of the directory. + */ + string directory; + + /** + * Name of the file. + */ + string fileName; + }; + + /** + * Collection of File to provide platform independent access + * to files and directories. + */ + class Files + { + public: + /** + * Constructor which will search a given directory with a pattern and return a + * new instance of this collection class. + * @param rootDirectory The directory in which to search. + * @param pattern A pattern for matching file names. Can include * and ?. + * @param subdirectories Whether subdirectories should be searched too. + */ + Files(const string& rootDirectory, const string& pattern, bool subdirectories = false); + + /** + * Destructor. + */ + virtual ~Files(); + + /** + * Return the number of files found. + * @return The number of files found. + */ + unsigned int size(); + + /** + * Return a File at this position in the collection. + * @param index The index into the collection. + * @return The File at this index in the collection. + */ + const File& operator[] (unsigned int index); + + private: + /** + * Search the given directory and pattern for matching files. + * @param rootDirectory The directory in which to search. + * @param pattern A pattern for matching file names. Can include * and ?. + * @param subdirectories Whether subdirectories should be searched too. + */ + void findFiles(const string& rootDirectory, const string& pattern, bool subdirectories); + + /** + * The top level directory to search. + */ + string rootDirectory; + + typedef vector FILES; + + /** + * Vector of File. + */ + FILES files; + }; + + } // End namespace sca +} // End namespace tuscany +#endif // tuscany_sca_util_file_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.cpp new file mode 100644 index 0000000000..452d185dcd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.cpp @@ -0,0 +1,119 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Library.h" +#include "tuscany/sca/util/Utils.h" +#include "tuscany/sca/util/Exceptions.h" +#include "tuscany/sca/util/Logging.h" +using namespace osoa::sca; + +namespace tuscany +{ + namespace sca + { + Library::Library() + : hDLL(NULL) + { + } + + Library::Library(const string& libraryName) + : name(libraryName), hDLL(NULL) + { + LOGINFO_1(3, "Library::construcor : %s", name.c_str()); + load(); + } + + Library::Library(const Library& lib) + : name(lib.name), hDLL(NULL) + { + LOGINFO_1(3, "Library::copy constructor : %s", name.c_str()); + if (lib.hDLL) + { + load(); + } + } + + Library& Library::operator=(const Library& lib) + { + LOGINFO_1(3, "Library::operator= : %s", name.c_str()); + if (&lib != this) + { + unload(); + name = lib.name; + load(); + } + return *this; + } + + Library::~Library() + { + LOGINFO_1(3, "Library::destructor: %s", name.c_str()); + unload(); + } + + + void Library::load() + { + LOGINFO_1(3, "Library::load : %s", name.c_str()); + string msg; +#if defined(WIN32) || defined (_WINDOWS) + hDLL = LoadLibrary(name.c_str()); +#else + hDLL = dlopen(name.c_str(), RTLD_NOW); +#endif + if (hDLL == NULL) + { + LOGERROR_1(1, "Library::load: Unable to load library %s", name.c_str()); + msg = "Unable to load dll: " + name; + throw ServiceRuntimeException(msg.c_str()); + } + } + + void Library::unload() + { + if (hDLL != NULL) + { + LOGINFO_1(3, "Library::unload : %s", name.c_str()); +#if defined(WIN32) || defined (_WINDOWS) + FreeLibrary(hDLL); +#else + dlclose(hDLL); +#endif + hDLL = NULL; + } + } + + void* Library::getSymbol(const string& symbol) + { + LOGINFO_1(3, "Library::getSymbol : %s", symbol.c_str()); + if (!hDLL) + { + return 0; + } +#if defined(WIN32) || defined (_WINDOWS) + return GetProcAddress(hDLL, symbol.c_str()); +#else + return dlsym(hDLL, symbol.c_str()); +#endif + } + + } // End namespace sca +} // End namespace tuscany + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.h new file mode 100644 index 0000000000..69b2f5352a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.h @@ -0,0 +1,97 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_util_library_h +#define tuscany_sca_util_library_h + + +#if defined(WIN32) || defined (_WINDOWS) +#include +#else +#include +#include +#endif + +#include +using std::string; + +namespace tuscany +{ + namespace sca + { + /** + * Information about shared libraries and methods to + * access these shared libraries. + */ + class Library + { + public: + Library(); + + /** + * Constructor. Will load the library. + * @param libraryName Fully qualified name of the library. + */ + Library(const string& libraryName); + + /** + * Destructor. Will unload the library. + */ + virtual ~Library(); + + Library(const Library& lib); + Library& operator=(const Library& lib); + + /** + * Find an externalized symbol in the library. + * @param symbol The name of the symbol to be found. + * @return The pointer to the symbol if found, otherwise 0. + */ + void* getSymbol(const string& symbol); + private: + /** + * Name of the library. + */ + string name; + + /** + * Handle to the loaded library. + */ +#if defined(WIN32) || defined (_WINDOWS) + HINSTANCE hDLL; +#else + void* hDLL; +#endif + + /** + * Load the library. + */ + void load(); + + /** + * Unload the library, if successfully loaded. + */ + void unload(); + + }; + + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_util_library_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.cpp new file mode 100644 index 0000000000..d77d1e4bfd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.cpp @@ -0,0 +1,32 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/LogWriter.h" + +namespace tuscany +{ + namespace sca + { + LogWriter::~LogWriter() + { + } + + } // End namespace sca +} // End namespace tuscany + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.h new file mode 100644 index 0000000000..edb07c3684 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.h @@ -0,0 +1,47 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_util_logwriter_h +#define tuscany_sca_util_logwriter_h + +#include "osoa/sca/export.h" + +namespace tuscany +{ + namespace sca + { + /** + * Abstract class for extending logging to other destinations. + */ + class SCA_API LogWriter + { + public: + virtual ~LogWriter(); + + /** + * Log a message. + * @param level The level of logging for this message. + * @param msg The message to log. + */ + virtual void log(int level, const char* msg) = 0; + }; + + } // End namespace sca +} // End namespace tuscany +#endif // tuscany_sca_util_logwriter_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.cpp new file mode 100644 index 0000000000..ccb7cccd03 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.cpp @@ -0,0 +1,100 @@ +/* + * + * 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 11:33:21 $ */ + +#include +#include + +#include "tuscany/sca/util/Logger.h" +#include "tuscany/sca/util/DefaultLogWriter.h" + +using namespace std; + +namespace tuscany +{ + namespace sca + { + LogWriter* Logger::logWriter = getLogWriter(); + + LogWriter* Logger::getLogWriter() + { + if (logWriter == 0) + { + setLogWriter(0); + } + return logWriter; + } + + void Logger::setLogWriter(LogWriter* writer) + { + if (logWriter != writer) + { + delete logWriter; + } + + if (writer == 0) + { + logWriter = new DefaultLogWriter; + } + else + { + logWriter = writer; + } + } + + int Logger::loggingLevel = setLogging(); + + int Logger::setLogging() + { + char* loggingVar = 0; + loggingVar = getenv("SCA4CPP_LOGGING"); + if (loggingVar == 0) + return 0; + else + return atoi(loggingVar); + } + + void Logger::setLogging(int level) + { + loggingLevel = level; + } + + void Logger::log(int level, const char* msg) + { + if (level <= loggingLevel) + { + logWriter->log(level, msg); + } + } + + void Logger::logArgs(int level, const char* msg, ...) + { + if (level <= loggingLevel) + { + va_list variableArguments; + va_start(variableArguments, msg); + char messageBuffer[1024]; + vsprintf(messageBuffer, msg, variableArguments); + logWriter->log(level, messageBuffer); + va_end(variableArguments); + } + } + + } // End namespace sca +} // End namespace tuscany + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.h new file mode 100644 index 0000000000..8ba934afa5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.h @@ -0,0 +1,89 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_util_logger_h +#define tuscany_sca_util_logger_h + +#include "osoa/sca/export.h" +#include "tuscany/sca/util/LogWriter.h" +namespace tuscany +{ + namespace sca + { + /** + * Provide a logging interface. + */ + class Logger { + + public: + /** + * Set the log writer to use. + * @param writer The writer to use for all subsequent logging. + */ + SCA_API static void setLogWriter(LogWriter* writer); + + /** + * Set or reset the logging level. Any message with a higher logging + * level than this value will be filtered (i.e. not shown). + * @param level The level of logging to use for all subsequent logging. + */ + SCA_API static void setLogging(int level); + + /** + * Log a message. + * @param level The log level of this message. + * @param msg The message to be logged. + */ + static void log(int level, const char* msg); + + /** + * Log a message with variable arguments. + * @param level The log level of this message. + * @param msg The message to be logged. Must include template + * characters as described in printf. + * @param ... Variable arguments. + */ + static void logArgs(int level, const char* msg, ...); + + /** + * The currently set logging level + */ + static int loggingLevel; + + private: + /** + * The current log writer. + */ + static LogWriter* logWriter; + + /** + * Get the current log writer. + * @return The current log writer. + */ + static LogWriter* getLogWriter(); + + /** + * Retrieves the logging level set as an environment variable. + */ + static int setLogging(); + }; + + } // End namespace sca +} // End namespace tuscany +#endif // tuscany_sca_util_logger_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logging.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logging.h new file mode 100644 index 0000000000..066f6a5733 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logging.h @@ -0,0 +1,72 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_util_logging_h +#define tuscany_sca_util_logging_h + +#include "tuscany/sca/util/Logger.h" + +#ifdef _DEBUG +#define LOGENTRY(level, methodName) \ +if (Logger::loggingLevel >= level) \ +Logger::log(level, "Entering: " methodName); + +#define LOGEXIT(level, methodName) \ +if (Logger::loggingLevel >= level) \ +Logger::log(level, "Exiting: " methodName); + +#define LOGINFO(level, message) \ +if (Logger::loggingLevel >= level) \ +Logger::log(level, message); + +#define LOGINFO_1(level, message, arg1) \ +if (Logger::loggingLevel >= level) \ +Logger::logArgs(level, message, arg1); + +#define LOGINFO_2(level, message, arg1, arg2) \ +if (Logger::loggingLevel >= level) \ +Logger::logArgs(level, message, arg1, arg2); + +#define LOGERROR(level, message) \ +if (Logger::loggingLevel >= level) \ +Logger::log(level, message); + +#define LOGERROR_1(level, message, arg1) \ +if (Logger::loggingLevel >= level) \ +Logger::logArgs(level, message, arg1); + +#define LOGERROR_2(level, message, arg1, arg2) \ +if (Logger::loggingLevel >= level) \ +Logger::logArgs(level, message, arg1, arg2); +#else // Not DEBUG +#define LOGENTRY(level, methodName) + +#define LOGEXIT(level, methodName) + +#define LOGINFO(level, message) + +#define LOGINFO_1(level, message, arg1) + +#define LOGINFO_2(level, message, arg1, arg2) +#define LOGERROR(level, message) +#define LOGERROR_1(level, message, arg1) +#define LOGERROR_2(level, message, arg1, arg2) + +#endif +#endif // tuscany_sca_util_logging_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Utils.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Utils.cpp new file mode 100644 index 0000000000..7f457e68ed --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Utils.cpp @@ -0,0 +1,212 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Utils.h" + +using namespace std; +using namespace commonj::sdo; +namespace tuscany +{ + namespace sca + { + void Utils::tokeniseUri(const string& uri, string& token1, string& token2) + { + tokeniseString("/", uri, token1, token2); + } + + void Utils::tokeniseQName(const string& qname, string& uri, string& name) + { + tokeniseString("#", qname, uri, name); + if (name == "") + { + name = uri; + uri = ""; + } + } + + void Utils::tokeniseString( + const string& separator, + const string& str, + string& token1, + string& token2) + { + string::size_type sep = str.find(separator); + if (sep != string::npos) + { + token1 = str.substr(0, sep); + if ( (sep+1) < str.length()) + { + token2 = str.substr(sep+1); + } + else + { + token2 = ""; + } + } + else + { + token1 = str; + token2 = ""; + } + } + + void Utils::rTokeniseString( + const string& separator, + const string& str, + string& token1, + string& token2) + { + string::size_type sep = str.rfind(separator); + if (sep != string::npos) + { + token1 = str.substr(0, sep); + if ( (sep+1) < str.length()) + { + token2 = str.substr(sep+1); + } + else + { + token2 = ""; + } + } + else + { + token1 = ""; + token2 = str; + } + } + + ////////////////////////////////////////////////////////////////////////// + // Print a DatObject tree + ////////////////////////////////////////////////////////////////////////// + void Utils::tabs(int inc) + { + for (int ind=0; ind getType(); + tabs(inc); + cout << "DataObject type: " << dataObjectType.getURI()<< "#" << dataObjectType.getName() << endl; + inc++; + + ////////////////////////////////////////////////////////////////////////// + // Iterate over all the properties + ////////////////////////////////////////////////////////////////////////// + PropertyList pl = dataObject->getInstanceProperties(); + for (int i = 0; i < pl.size(); i++) + { + tabs(inc); + cout << "Property: " << pl[i].getName() << endl; + + const Type& propertyType = pl[i].getType(); + + tabs(inc); + cout << "Property Type: " << propertyType.getURI()<< "#" << propertyType.getName() << endl; + + if (dataObject->isSet(pl[i])) + { + + ////////////////////////////////////////////////////////////////////// + // For a many-valued property get the list of values + ////////////////////////////////////////////////////////////////////// + if (pl[i].isMany()) + { + inc++; + DataObjectList& dol = dataObject->getList(pl[i]); + for (int j = 0; j getCString(pl[i]) <getDataObject(pl[i]), inc); + inc--; + } + } + else + { + tabs(inc); + cout<< "Property Value: not set" <getTypes(); + for (int i = 0; i < tl.size(); i++) + { + cout << "Type: " << tl[i].getURI()<< "#" << tl[i].getName() << endl; + PropertyList pl = tl[i].getProperties(); + for (int j = 0; j < pl.size(); j++) + { + cout << "\tProperty: " << pl[j].getName() + << " type: " < +using std::string; +#include "commonj/sdo/SDO.h" + +#include "osoa/sca/export.h" + +namespace tuscany +{ + namespace sca + { + /** + * Utility methods to parse strings and provide debugging information. + */ + class Utils { + + public: + static void tokeniseUri(const string& uri, string& token1, string& token2); + static void tokeniseQName(const string& sdoname, string& uri, string& name); + static void tokeniseString( + const string& separator, + const string& str, + string& token1, + string& token2); + + static void rTokeniseString( + const string& separator, + const string& str, + string& token1, + string& token2); + + SCA_API static void printDO(commonj::sdo::DataObjectPtr dataObject, int increment=0); + SCA_API static void printTypes(commonj::sdo::DataFactoryPtr df); + + private: + static void tabs(int increment=0); + }; + + } // End namespace sca +} // End namespace tuscany +#endif // tuscany_sca_util_utils_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.cpp new file mode 100644 index 0000000000..0b9a4fbd28 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.cpp @@ -0,0 +1,476 @@ +/* + * + * 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 11:33:21 $ */ + +#include "SDOStub.h" +#include "commonj/sdo/HelperProvider.h" +#include "osoa/sca/export.h" +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/util/Exceptions.h" +#include "tuscany/sca/util/Utils.h" + + +// For Axis stub code +#include +#include +#include +#include + +using namespace std; + +AXIS_CPP_NAMESPACE_USE + +using namespace commonj::sdo; +using namespace tuscany::sca; + + +namespace tuscany +{ +namespace sca +{ + namespace ws + { + /** Construct an SDOStub using the default HTTP 1.1 transport. + */ + SDOStub::SDOStub() + : Stub(" ", APTHTTP1_1), + m_strEndpoint(""), + m_strTargetNamespace(""), + m_strOperationName(""), + m_strOperationResponseName(""), + m_strSoapAction("") + { + } + + + /** Construct an SDOStub using the default HTTP 1.1 transport + * and set the web service endpoint URI. + * @param endpoint - web service endpoint URI + */ + SDOStub::SDOStub(const char* endpoint) + : Stub(endpoint, APTHTTP1_1), + m_strEndpoint(endpoint), + m_strTargetNamespace(""), + m_strOperationName(""), + m_strOperationResponseName(""), + m_strSoapAction("") + { + } + + + /** Destruct the SDOStub + */ + SDOStub::~SDOStub() + { + } + + /** Set the web service endpoint URI. + * The endpoint is the value of the soap:address element in the WSDL. + * @param endpoint - web service endpoint URI. + */ + void SDOStub::setEndpoint(const char* endpoint) + { + m_strEndpoint = endpoint; + // Stub::setEndPoint + setEndPoint(endpoint); + } + + /** Get the web service endpoint URI. + * @return web service endpoint URI. + */ + const char* SDOStub::getEndpoint() + { + return m_strEndpoint.c_str(); + } + + /** Set the target namespace for elements and operations. + * @param targetNamespace - the target namespace. + */ + void SDOStub::setTargetNamespace(const char* targetNamespace) + { + m_strTargetNamespace = targetNamespace; + } + + /** Get the target namespace. + * @return - target namespace. + */ + const char* SDOStub::getTargetNamesapce() + { + return m_strTargetNamespace.c_str(); + } + + /** Set the name of the operation to invoke. + * @param operationName - operation name + */ + void SDOStub::setOperationName(const char* operationName) + { + m_strOperationName = operationName; + } + + /** Get the operation name. + * @return operation name. + */ + const char* SDOStub::getOperationName() + { + return m_strOperationName.c_str(); + } + + /** Set the name of the element that is returned as the result of a soap method. + * @param operationResponseName - name of the response element. + */ + void SDOStub::setOperationResponseName(const char* operationResponseName) + { + m_strOperationResponseName = operationResponseName; + } + + /** Get the name of the element that is returned as the result of a soap method. + * @return operation response name. + */ + const char* SDOStub::getOperationResponseName() + { + return m_strOperationResponseName.c_str(); + } + + /** Set the SOAPAction header. + * @param soapAction - the soap action. + */ + void SDOStub::setSoapAction(const char* soapAction) + { + m_strSoapAction = soapAction; + } + + /** Get the SoapAction header. + * @return soap action. + */ + const char* SDOStub::getSoapAction() + { + return m_strSoapAction.c_str(); + } + + /** Invoke the operation on the web service. + * @param requestDO - SDO containing the input parameters for the operation. + * @param dataFactory - DataFactory for de/serialzing the SDOs. + * @return DataObjectPtr - SDO containg the response from the web service. + */ + DataObjectPtr SDOStub::invoke(DataObjectPtr requestDO, DataFactoryPtr dataFactory) + { + // SDO return object + DataObjectPtr pReturn; + + // For faults + //const char* pcCmplxFaultName = NULL; + + // Get an XMLHelper + XMLHelperPtr xmlHelper = HelperProvider::getXMLHelper(dataFactory); + + + try + { + // Initialize the call structure for Doc Literal request/response. + if (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER)) + { + return pReturn; // Return if there is a failure + } + + // Set the SoapAction if it is not already set. + if (NULL == m_pCall->getTransportProperty("SOAPAction",false)) + { + m_pCall->setTransportProperty(SOAPACTION_HEADER , m_strSoapAction.c_str()); + } + + // Set the Soap Version. + m_pCall->setSOAPVersion(SOAP_VER_1_1); + + // Set the Operation (operationName and targetNamespace) + m_pCall->setOperation(m_strOperationName.c_str(), m_strTargetNamespace.c_str()); + + //includeSecure(); + //applyUserPreferences(); + + // + // Serialize the DataObject. + // + + // DEBUG + XMLDocumentPtr requestDoc = + xmlHelper->createDocument(requestDO, + m_strTargetNamespace.c_str(), + m_strOperationName.c_str()); + requestDoc->setXMLDeclaration(false); + char *requestXML = xmlHelper->save(requestDoc); + cout << "SDOStub::invoke: Request XML= " << endl; + cout << requestXML << endl; + cout << endl; + // DEBUG + + // Loop through the top level data object, serializing individual properties. + // We cannot simply serialize the request DataObject to an XML string and add + // the XML as an AnyType parameter because Axis will wrap the request with an + // element named for the operationName (Doc Literal/Wrapped), duplicating the + // top-level element. + PropertyList properties = requestDO->getInstanceProperties(); + for (int i=0; i < properties.size() ; i++) + { + Property& property = properties[i]; + const char *propertyName = property.getName(); + + // If the property is not set, don't bother adding it as a parameter. + if (!requestDO->isValid(property)) continue; + + switch (property.getTypeEnum()) + { + // Simple string property - add it as an XSD_STRING parameter. + case Type::StringType: + { + if (!property.isMany()) + { + string strPrefixAndParamName; + const char *namespacePrefix = + m_pCall->getNamespacePrefix(m_strTargetNamespace.c_str()); + strPrefixAndParamName.append(namespacePrefix); + strPrefixAndParamName.append(":"); + strPrefixAndParamName.append(propertyName); + const char *paramValue = requestDO->getCString(i); + m_pCall->addParameter((void *)paramValue, + strPrefixAndParamName.c_str(), + XSD_STRING); + } + } + break; + + // DataObject property. + case Type::DataObjectType: + { + const char *dobXML = NULL; + if (property.isMany()) + { + // Many valued property - get the list. + DataObjectList& dobList = requestDO->getList(property); + for (int j=0; j< dobList.size(); j++) + { + DataObjectPtr dob = dobList[j]; + if (dob != 0) + { + // Create an XML string from the DataObject. + XMLDocumentPtr doc = + xmlHelper->createDocument(dob, + m_strTargetNamespace.c_str(), + propertyName); + doc->setXMLDeclaration(false); + dobXML = xmlHelper->save(doc); + + // DEBUG + cout << "SDOStub::invoke: DataObject \"" << propertyName << "\" as XML:" << endl; + cout << dobXML << endl; + cout << endl; + // DEBUG + + // Add the XML to the call as an AnyType. + AnyType* pAny = new AnyType(); + pAny->_size = 1; + pAny->_array = new char*[1]; + pAny->_array[0] = strdup(dobXML); + m_pCall->addAnyObject(pAny); + } + } + } // if isMany + else + { + // Single valued property. + DataObjectPtr dob = requestDO->getDataObject(property); + if (dob != 0) + { + // Create an XML string from the DataObject. + XMLDocumentPtr doc = + xmlHelper->createDocument(dob, + m_strTargetNamespace.c_str(), + propertyName); + doc->setXMLDeclaration(false); + dobXML = xmlHelper->save(doc); + + // DEBUG + cout << "SDOStub::invoke: DataObject \"" << propertyName << "\" as XML:" << endl; + cout << dobXML << endl; + cout << endl; + // DEBUG + + // Add the XML to the call as an AnyType. + AnyType* pAny = new AnyType(); + pAny->_size = 1; + pAny->_array = new char*[1]; + pAny->_array[0] = strdup(dobXML); + m_pCall->addAnyObject(pAny); + } + } + } + break; + + default: + break; + } + } + + // Invoke the operation. + if (AXIS_SUCCESS == m_pCall->invoke()) + { + // Make sure the response element is what we expect; ie that the element matches + // the operation response name set on the stub and its targetNamespace matches + // the targetNamespace set on the stub. + if (AXIS_SUCCESS == m_pCall->checkMessage(m_strOperationResponseName.c_str(), + m_strTargetNamespace.c_str())) + { + cout << "SDOStub::invoke: Successful call..." << endl; + + // Deserialize the soap response. + string strResponse = getSoapResponse(); + + // DEBUG + cout << "SDOStub::invoke: Response XML= " << endl; + cout << strResponse.c_str() << endl; + cout << endl; + // DEBUG + + // Create an XMLDocument from the soap reponse + XMLDocumentPtr returnDoc = + xmlHelper->load(strResponse.c_str(), m_strTargetNamespace.c_str()); + // Get the root DataObject to return as the result. + pReturn = returnDoc->getRootDataObject(); + // DEBUG + cout << "SDOStub::invoke: Response DataObject= " << endl; + Utils::printDO(pReturn); + cout << endl; + // DEBUG + } + } + else + { + cout << "SDOStub::invoke: checkMessage failed:" << endl; + cout << "SDOStub::invoke: Expected \'" + << m_strOperationResponseName.c_str() + << "\' element with namespace \'" + << m_strTargetNamespace.c_str() + << "\'." + << endl; + } + + + // Invoked the operation successfully - uninitialize the Call object. + m_pCall->unInitialize(); + + } + catch (AxisException& e) + { + // Get the exception code. + int iExceptionCode = e.getExceptionCode(); + + if (AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode) + { + m_pCall->unInitialize(); + throw ServiceRuntimeException("AxisException", ServiceRuntimeException::Error, e.what()); + } + + // Get the details of the SoapFault. + ISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault("Fault", m_strEndpoint.c_str()); + + if (pSoapFault) + { + const char *detail = pSoapFault->getSimpleFaultDetail(); + bool deleteDetail=false; + + if (NULL==detail || 0==strlen(detail)) + { + detail=m_pCall->getFaultAsXMLString(); + + + if (NULL==detail) + { + detail=""; + } + else + { + deleteDetail=true; + } + } + + OtherFaultException ofe(pSoapFault->getFaultcode(), + pSoapFault->getFaultstring(), + pSoapFault->getFaultactor(), + detail, iExceptionCode); + + if (deleteDetail && NULL!=detail) + { + delete [] const_cast(detail); + } + + m_pCall->unInitialize(); + throw ofe; + } + else + { + m_pCall->unInitialize(); + throw ServiceRuntimeException("AxisException", ServiceRuntimeException::Error, e.what()); + } + } + catch(SDORuntimeException sdoE) + { + cout << "SDOStub::invoke: SDORuntimeException: " << endl; + sdoE.PrintSelf(cout); + } + + + return pReturn; + + } + + // Deserialize the soap response from the web service. + string SDOStub::getSoapResponse() + { + // Get the response as an XML string. + AnyType* soapAny = m_pCall->getAnyObject(); + + // The Doc Literal response does not include the top level + // response element if we use getAnyObject - we need to wrap + // the response with the response element. + string strResponse("<"); + strResponse.append(m_strOperationResponseName); + strResponse.append(" xmlns=\""); + strResponse.append(m_strTargetNamespace); + strResponse.append("\">"); + + for (int j=0; j < soapAny->_size ; j++) + { + // DEBUG + cout << "SDOStub::getSoapResponse: soapAny->_array[" << j << "]=" << endl; + cout << soapAny->_array[j] << endl; + cout << endl; + // DEBUG + + strResponse.append(soapAny->_array[j]); + } + + strResponse.append(""); + + return strResponse; + } + + } // end namespace ws +} // end namespace sca +} // end namespace tuscany + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.h new file mode 100644 index 0000000000..d5743c9c78 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.h @@ -0,0 +1,143 @@ +/* + * + * 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 11:33:21 $ */ + +#if !defined(SDOSTUB_H_INCLUDED) +#define SDOSTUB_H_INCLUDED + +#include "osoa/sca/export.h" +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "commonj/sdo/SDO.h" + +// For stub code +#include +#include +#include + +#include + +AXIS_CPP_NAMESPACE_USE +using namespace commonj::sdo; + +namespace tuscany +{ + namespace sca + { + namespace ws + { + + /** + * The SDOStub class is an Axis Stub that is used to invoke operations on a Web Service + * using SDO objects as input parameters and return values. + */ + class SDOStub : public Stub + { + public: + + /** Construct an SDOStub using the default HTTP 1.1 transport. + */ + SCA_API SDOStub(); + + /** Construct an SDOStub using the default HTTP 1.1 transport + * and set the web service endpoint URI. + * @param endpointURI - web service endpoint URI + */ + SCA_API SDOStub(const char* endpointURI); + + /** Destruct the SDOStub + */ + SCA_API virtual ~SDOStub(); + + /** Set the web service endpoint URI. + * The endpoint is the value of the soap:address element in the WSDL. + * @param endpoint - web service endpoint URI. + */ + SCA_API void setEndpoint(const char* endpoint); + + /** Get the web service endpoint URI. + * @return web service endpoint URI. + */ + SCA_API const char* getEndpoint(); + + /** Set the target namespace for elements and operations. + * @param targetNamespace - the target namespace. + */ + SCA_API void setTargetNamespace(const char* targetNamespace); + + /** Get the target namespace. + * @return - target namespace. + */ + SCA_API const char* getTargetNamesapce(); + + /** Set the name of the operation to invoke. + * @param operationName - operation name + */ + SCA_API void setOperationName(const char* operationName); + + /** Get the operation name. + * @return operation name. + */ + SCA_API const char* getOperationName(); + + /** Set the name of the element that is returned as the result of a soap method. + * @param operationResponseName - name of the response element. + */ + SCA_API void setOperationResponseName(const char* operationResponseName); + + /** Get the name of the element that is returned as the result of a soap method. + * @return operation response name. + */ + SCA_API const char* getOperationResponseName(); + + /** Set the SOAPAction header. + * @param soapAction - the soap action. + */ + SCA_API void setSoapAction(const char* soapAction); + + /** Get the SoapAction header. + * @return soap action. + */ + SCA_API const char* getSoapAction(); + + /** Invoke the operation on the web service. + * @param requestDO - SDO containing the input parameters for the operation. + * @param dataFactory - DataFactory for de/serialzing the SDOs. + * @return DataObjectPtr - SDO containg the response from the web service. + */ + SCA_API DataObjectPtr invoke(DataObjectPtr requestDO, DataFactoryPtr dataFactory); + + private: + // Deserialize the soap response from the web service. + string getSoapResponse(); + + string m_strEndpoint; + string m_strTargetNamespace; + string m_strOperationName; + string m_strOperationResponseName; + string m_strSoapAction; + }; + + } // end namespace ws + } // end namespace sca +} // end namespace tuscany + + +#endif // !defined(SDOSTUB_H_INCLUDED) diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.cpp new file mode 100644 index 0000000000..672a48b697 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.cpp @@ -0,0 +1,116 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/ws/WSServiceWrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +#include "tuscany/sca/core/SCARuntime.h" +#include "tuscany/sca/util/Logging.h" +#include "tuscany/sca/model/WSBinding.h" +#include "tuscany/sca/model/Wsdl.h" +#include "tuscany/sca/ws/SDOStub.h" +#include "tuscany/sca/util/Utils.h" +using namespace tuscany::sca; +using namespace tuscany::sca::ws; + + + +extern "C" +{ + /// + /// Factory function for creating service wrappers for web services. + /// + SCA_API WSServiceWrapper* WSServiceWrapper_Factory(tuscany::sca::model::WireTarget* target) + { + return new WSServiceWrapper(target); + } +} + + +WSServiceWrapper::WSServiceWrapper(tuscany::sca::model::WireTarget* target) : ExternalServiceWrapper(target) +{ + +} + +WSServiceWrapper::~WSServiceWrapper() +{ + +} + +/// +/// This method will be called when a web service call needs to be made. +/// +void WSServiceWrapper::invoke(Operation& operation) +{ + LOGENTRY(1, "WSServiceWrapper::invoke"); + + const string& operationName = operation.getName(); + + LOGINFO_2(2,"External service: %s, Operation: %s", getTarget()->getName().c_str() , operationName.c_str()); + + + // Check one parameter in/ one parameter out and that they are data objects. + + // Get the data factory for the module (it will already have the types loaded for the xsds) + + // From the external service ws-binding, get the namespace of the wsdl endpoint + ExternalService* externalService = getExternalService(); + WSBinding* binding = (WSBinding *)externalService->getBinding(); + + string portNamespace = binding->getWSDLNamespaceURL(); + + // Lookup the wsdl model from the module, keyed on the namespace + // (the wsdl will have been loaded at startup, based on the information in the config file) + Wsdl* wsdlDefinition = externalService->getContainingModule()->findWsdl(portNamespace); + + // Match the operation in Operation to the operation in the wsdl port type. + WsdlOperation wsdlOperation = wsdlDefinition->findOperation( + binding->getServiceName() + , binding->getPortName() + , operationName); + + // Get the name of the response by navigating from the wsdl operation to the return type + + // Get the name of the SoapAction by navigating from the wsdl. + + // Create an SDOStub + try + { + SDOStub wsStub(wsdlOperation.getEndpoint().c_str()); + wsStub.setTargetNamespace(portNamespace.c_str()); + wsStub.setOperationName(wsdlOperation.getOperationName().c_str()); + wsStub.setOperationResponseName(wsdlOperation.getResponseName().c_str()); + wsStub.setSoapAction(wsdlOperation.getSoapAction().c_str()); + + + // Call the service via the SDOStub + *(DataObjectPtr *)operation.getReturnValue() = wsStub.invoke(*((DataObjectPtr*)operation.getParameter(0)), + externalService->getContainingModule()->getDataFactory()); + + } + catch (AxisException& e) + { + throw ServiceRuntimeException("AxisException", ServiceRuntimeException::Error, e.what()); + } + + + LOGEXIT(1, "WSServiceWrapper::invoke"); + +} diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h new file mode 100644 index 0000000000..7ae765950c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h @@ -0,0 +1,48 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef tuscany_sca_ws_wsservicewrapper_h +#define tuscany_sca_ws_wsservicewrapper_h + +#include "osoa/sca/export.h" + +#include "tuscany/sca/core/ExternalServiceWrapper.h" +#include "tuscany/sca/model/ExternalService.h" +#include "tuscany/sca/core/Operation.h" + +namespace tuscany +{ + namespace sca + { + namespace ws + { + + class SCA_API WSServiceWrapper : public tuscany::sca::ExternalServiceWrapper + { + public: + WSServiceWrapper(tuscany::sca::model::WireTarget* target); + virtual ~WSServiceWrapper(); + + virtual void invoke(Operation& operation); + }; + } // End namespace ws + } // End namespace sca +} // End namespace tuscany + +#endif // tuscany_sca_ws_wsservicewrapper_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtbuild b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtbuild new file mode 100644 index 0000000000..ed308ead8d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtbuild @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtproject b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtproject new file mode 100644 index 0000000000..48a12e6664 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtproject @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.project b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.project new file mode 100644 index 0000000000..60a0a75176 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.project @@ -0,0 +1,19 @@ + + + tuscany_sca_test_CustomerInfo + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000000..691a33706a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,9 @@ +#Tue Nov 29 15:05:50 GMT 2005 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.180210457=\n\n\n\n\n +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.954607388=\n\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.180210457=\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.954607388=\n\n\n\n +environment/project=\n\n +environment/project/cdt.managedbuild.config.gnu.so.debug.180210457=\n\n +environment/project/cdt.managedbuild.config.gnu.so.release.954607388=\n\n diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfo.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfo.h new file mode 100644 index 0000000000..6372a5a45a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfo.h @@ -0,0 +1,30 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef CustomerInfo_h +#define CustomerInfo_h + +class CustomerInfo +{ +public: + virtual const char* getCustomerInformation(const char* customerID) = 0; + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp new file mode 100644 index 0000000000..91996bace7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp @@ -0,0 +1,79 @@ +/* + * + * 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 11:33:21 $ */ + +#include "CustomerInfoImpl.h" +#include +#include +#include "osoa/sca/sca.h" +#include "commonj/sdo/DataObjectInstance.h" +using namespace osoa::sca; +using namespace commonj::sdo; + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +CustomerInfoImpl::CustomerInfoImpl() +{ + cout << "Construct CustomerInfoImpl" << endl; + +} + +CustomerInfoImpl::~CustomerInfoImpl() +{ + cout << "Destroy CustomerInfoImpl" << endl; +} + +////////////////////////////////////////////////////////////////////// +// Other methods +////////////////////////////////////////////////////////////////////// +const char* CustomerInfoImpl::getCustomerInformation(const char* customerID) +{ + cout << "In getCustomerInformation with customerid: " << customerID << endl; + + + + ComponentContext myContext = ComponentContext::getCurrent(); + + DataObjectInstance properties = myContext.getProperties(); + DataObjectInstance props2 = properties; + if (properties) + { + const char* fredVal = properties->getCString("Fred"); + cout << "Property Fred value: " << fredVal <getList("Joe"); + for (int i=0; i + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.cdtproject b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.cdtproject new file mode 100644 index 0000000000..48a12e6664 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.cdtproject @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.project b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.project new file mode 100644 index 0000000000..113442bfd8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.project @@ -0,0 +1,19 @@ + + + tuscany_sca_test_MyValue + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000000..4c585d5bb1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,9 @@ +#Tue Nov 29 15:11:39 GMT 2005 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.903609302=\n\n\n\n\n +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.1558347965=\n\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.903609302=\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.1558347965=\n\n\n\n +environment/project=\n\n +environment/project/cdt.managedbuild.config.gnu.so.debug.903609302=\n\n +environment/project/cdt.managedbuild.config.gnu.so.release.1558347965=\n\n diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/Makefile.am new file mode 100644 index 0000000000..c6ea61654b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/Makefile.am @@ -0,0 +1,17 @@ +lib_LTLIBRARIES = libMyValue.la + +libMyValue_la_SOURCES = \ +MyValueImpl.cpp \ +MyValueImpl_customerInfo_Proxy.cpp \ +MyValueImpl_MyValueService_Proxy.cpp \ +MyValueImpl_MyValueService_Wrapper.cpp \ +MyValueImpl_stockQuote_Proxy.cpp + +libMyValue_la_LIBADD = + +INCLUDES = -I$(top_builddir)/runtime/core/src \ + -I${TUSCANY_SDOCPP}/include \ + -I${AXISCPP_DEPLOY}/include \ + -I../CustomerInfo + +install: \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValue.h b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValue.h new file mode 100644 index 0000000000..710910f08c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValue.h @@ -0,0 +1,34 @@ +/* + * + * 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 11:33:21 $ */ + +#ifndef MyValue_h +#define MyValue_h +#include +using std::string; +class MyValue +{ +public: + virtual float getMyValue(const char* customerID) = 0; + virtual float getMyValueS(const string& customerID) = 0; + virtual string getCustname(string& customerID) = 0; + virtual const string& getCustnamecs(string customerID) = 0; + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValueImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValueImpl.cpp new file mode 100644 index 0000000000..8d45eac6e9 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValueImpl.cpp @@ -0,0 +1,159 @@ +/* + * + * 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 11:33:21 $ */ + +#include "MyValueImpl.h" +#include "CustomerInfo.h" +#include "StockQuoteService.h" +#include +using namespace std; + +#include "osoa/sca/sca.h" +#include "commonj/sdo/SDO.h" +using namespace osoa::sca; +using namespace commonj::sdo; + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +MyValueImpl::MyValueImpl() +{ + cout << "Construct MyValueImpl" << endl; + +} + +MyValueImpl::~MyValueImpl() +{ + cout << "Destroy MyValueImpl" << endl; +} + +////////////////////////////////////////////////////////////////////// +// Other methods +////////////////////////////////////////////////////////////////////// +float MyValueImpl::getMyValue(const char *customerID) +{ + cout << "In getMyValue with customerid: " << customerID << endl; + + + ComponentContext myContext = ComponentContext::getCurrent(); + CustomerInfo* customerInfoService = (CustomerInfo*)myContext.getService("customerInfo"); + + if (customerInfoService == 0) + { + cout << "unable to find customer info service" << endl; + + return 0.0f; + } + + const char * stock; + try + { + stock = customerInfoService->getCustomerInformation(customerID); + } + catch(const char* x) + { + cout << "Exception caught: " << x <getCustomerInformation(customerID); + cout << "Stock from getServices " << i << " : " << stock <create("http://swanandmokashi.com", "GetQuotes"); + requestDO->setCString("QuoteTicker", stock); + } catch (SDORuntimeException e) + { + cout << e; + } + + // Invoke the service + DataObjectPtr result = stockQuoteService->GetStockQuotes(requestDO); + + float stockPrice = 0.2f; + + try { + float stockPrice = result->getDataObject("GetQuotesResult")->getList("Quote")[0]->getFloat("StockQuote"); + //dataobjectlist& dlist = result->getdataobject("getquotesresult")->getlist("quote"); + //DataObjectList& dlist = result->getDataObject("GetQuotesResult")->getList((unsigned int)0); + //float stockPrice = result->getDataObject("GetQuotesResult")->getList(0u)[0]->getFloat("StockQuote"); + cout << "My stock price is " << stockPrice << endl; + //float stockPrice=((DataObject)result.getDataObject("GetQuotesResult").getList(0).get(0)).getFloat("StockQuote"); + // System.out.println(" [getMyValue] stock quote = "+stockPrice); + } catch (SDORuntimeException e) + { + cout << e; + } + + return stockPrice; + + /* + // Dummy method + + if (!strcmp(stock, "IBM")) + return 99.999f; + else + return 31.05f; + */ + +} + +float MyValueImpl::getMyValueS(const string& customerID) +{ + cout << "In getMyValueS with customerid: " << customerID.c_str() << endl; + return 87.35f; +} + +string MyValueImpl::getCustname(string& customerID) +{ + cout << "In getCustname with customerid: " << customerID.c_str() << endl; + customerID = "FRED"; + cout << "setting customer name to " << customerID.c_str() < +#include "commonj/sdo/SDO.h" +using std::string; +class StockQuoteService +{ +public: + virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0; + +}; + +#endif // StockQuoteService_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtbuild b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtbuild new file mode 100644 index 0000000000..73f28e14fd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtbuild @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtproject b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtproject new file mode 100644 index 0000000000..48a12e6664 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtproject @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.project b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.project new file mode 100644 index 0000000000..5e5b12e9d8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.project @@ -0,0 +1,19 @@ + + + tuscany_sca_test + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000000..fe629d7d5b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,9 @@ +#Tue Nov 29 17:30:33 GMT 2005 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.debug.961609061=\n\n\n\n\n +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.release.278641057=\n\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.debug.961609061=\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.release.278641057=\n\n\n\n +environment/project=\n\n +environment/project/cdt.managedbuild.config.gnu.exe.debug.961609061=\n\n +environment/project/cdt.managedbuild.config.gnu.exe.release.278641057=\n\n diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/Makefile.am new file mode 100644 index 0000000000..1dfd79aa21 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/Makefile.am @@ -0,0 +1,13 @@ +prgbindir=$(prefix)/bin/test +prgbin_PROGRAMS = tuscany_sca_test +SUBDIRS = +AM_CPPFLAGS = $(CPPFLAGS) +tuscany_sca_test_SOURCES = TestSCA.cpp + +tuscany_sca_test_LDADD = -L$(top_builddir)/runtime/core/src -ltuscany_sca \ + -L${TUSCANY_SDOCPP}/lib -ltuscany_sca -lxml2 -lstdc++ \ + -L${AXISCPP_DEPLOY}/lib -laxis_client -laxis_clientC + +INCLUDES = -I$(top_builddir)/runtime/core/test/MyValue \ + -I$(top_builddir)/runtime/core/src \ + -I${TUSCANY_SDOCPP}/include diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/TestSCA.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/TestSCA.cpp new file mode 100644 index 0000000000..0143e32510 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/src/TestSCA.cpp @@ -0,0 +1,77 @@ +/* + * + * 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 11:33:21 $ */ + +#include "tuscany/sca/util/Logger.h" +#include "commonj/sdo/Logger.h" +#include "osoa/sca/sca.h" +#include +using namespace osoa::sca; +using namespace tuscany::sca; +#include "MyValue.h" + +int main(int argc, char* argv[]) +{ + tuscany::sca::Logger::setLogging(3); + commonj::sdo::Logger::setLogging(20); + cout << "Start of SCA test" << endl; + + try + { + // Locate a service + ModuleContext myContext = ModuleContext::getCurrent(); + ModuleContext myContext2 = myContext; + + + MyValue* myService = (MyValue*) myContext.locateService("MyValueServiceComponent"); + if (myService == 0) + { + cout << "Unable to find service" << endl; + } + else + { + + try + { + float value = myService->getMyValue("12345"); + cout << "My value is: " << value << endl; + value = myService->getMyValueS("12345"); + cout << "My valueSS is: " << value << endl; + string custid = "fred"; + string name = myService->getCustname(custid); + cout << "Returned string: " << name.c_str() << " custid now: " << custid.c_str() <getCustnamecs(custid); + cout << "Returned string: " << csname.c_str() << " custid now: " << custid.c_str() <getMyValue("999"); + cout << "My value is: " << value << endl; + } + catch (char* x) + { + cout << "Exception caught: " << x << endl; + } + } + cout << "End of SCA test" << endl; + + } + catch (ServiceRuntimeException& ex) + { + cout << ex << endl; + } + return 0; +} diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment new file mode 100644 index 0000000000..f473f59748 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment @@ -0,0 +1,36 @@ + + + + + + + + + + x + 23 + 42 + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType new file mode 100644 index 0000000000..48651b63fe --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType new file mode 100644 index 0000000000..ace4154966 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl new file mode 100644 index 0000000000..4917cde583 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config new file mode 100644 index 0000000000..7fee074333 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config @@ -0,0 +1,24 @@ + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/sca.module b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/sca.module new file mode 100644 index 0000000000..aedaf354e6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/sca.module @@ -0,0 +1,51 @@ + + + + + + + + + + MyValueServiceComponent + + + + + + + + CustomerInfoComponent + StockQuoteService + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/subsystems/SubSystem1/sca.subsystem b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/subsystems/SubSystem1/sca.subsystem new file mode 100644 index 0000000000..1b32bf8a93 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/subsystems/SubSystem1/sca.subsystem @@ -0,0 +1,27 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.dsw b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.dsw new file mode 100644 index 0000000000..7df3d3cbe8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.dsw @@ -0,0 +1,53 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "CalculatorModule"=.\CalculatorModule\CalculatorModule.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "CalculatorSubsystem"=.\CalculatorSubsystem\CalculatorSubsystem.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Client"=.\Client\Client.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.ncb b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.ncb new file mode 100644 index 0000000000..fd603e4f04 Binary files /dev/null and b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.ncb differ diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.opt b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.opt new file mode 100644 index 0000000000..c399feabb4 Binary files /dev/null and b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.opt differ diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtbuild b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtbuild new file mode 100644 index 0000000000..ca7fa895f1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtbuild @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtproject b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtproject new file mode 100644 index 0000000000..48a12e6664 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtproject @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.project b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.project new file mode 100644 index 0000000000..fa611e47c3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.project @@ -0,0 +1,19 @@ + + + CalculatorModule + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000000..415787c073 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,6 @@ +#Tue Dec 13 10:02:34 GMT 2005 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.749943809=\n\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.749943809=\n\n\n\n +environment/project=\n\n +environment/project/cdt.managedbuild.config.gnu.so.debug.749943809=\n\n diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Calculator.h b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Calculator.h new file mode 100644 index 0000000000..9284178d5f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Calculator.h @@ -0,0 +1,33 @@ +/* ++----------------------------------------------------------------------+ +| (c) Copyright IBM Corporation 2005. | +| All Rights Reserved. | ++----------------------------------------------------------------------+ +| | +| 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. | ++----------------------------------------------------------------------+ +*/ + +#ifndef CALCULATOR_H +#define CALCULATOR_H +class Calculator +{ +public: + virtual float add(float arg1, float arg2) = 0; + virtual float sub(float arg1, float arg2) = 0; + virtual float mul(float arg1, float arg2) = 0; + virtual float div(float arg1, float arg2) = 0; +}; + +#endif + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.componentType new file mode 100644 index 0000000000..2033f431bb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.componentType @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.cpp new file mode 100644 index 0000000000..96bd363167 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.cpp @@ -0,0 +1,55 @@ +/* ++----------------------------------------------------------------------+ +| (c) Copyright IBM Corporation 2005. | +| All Rights Reserved. | ++----------------------------------------------------------------------+ +| | +| 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. | ++----------------------------------------------------------------------+ +*/ + +#include "CalculatorImpl.h" + +CalculatorImpl::CalculatorImpl() +{ +} + +CalculatorImpl::~CalculatorImpl() +{ +} + +// Calculator interface +float CalculatorImpl::add(float arg1, float arg2) +{ + float result = arg1 + arg2; + return result; +} + +float CalculatorImpl::sub(float arg1, float arg2) +{ + float result = arg1 - arg2; + return result; +} + +float CalculatorImpl::mul(float arg1, float arg2) +{ + float result = arg1 * arg2; + return result; +} + +float CalculatorImpl::div(float arg1, float arg2) +{ + float result = arg1 / arg2; + return result; +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.h new file mode 100644 index 0000000000..38570aae28 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.h @@ -0,0 +1,39 @@ +/* ++----------------------------------------------------------------------+ +| (c) Copyright IBM Corporation 2005. | +| All Rights Reserved. | ++----------------------------------------------------------------------+ +| | +| 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. | ++----------------------------------------------------------------------+ +*/ + +#ifndef CALCULATORIMPL_H +#define CALCULATORIMPL_H + +#include "Calculator.h" + +class CalculatorImpl : public Calculator +{ +public: + CalculatorImpl(); + virtual ~CalculatorImpl(); + + // Calculator interface + virtual float add(float arg1, float arg2); + virtual float sub(float arg1, float arg2); + virtual float mul(float arg1, float arg2); + virtual float div(float arg1, float arg2); +}; + +#endif + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.dsp b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.dsp new file mode 100644 index 0000000000..43c6bfc044 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.dsp @@ -0,0 +1,138 @@ +# Microsoft Developer Studio Project File - Name="CalculatorModule" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=CalculatorModule - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "CalculatorModule.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "CalculatorModule.mak" CFG="CalculatorModule - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "CalculatorModule - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "CalculatorModule - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "CalculatorModule - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CALCULATORMODULE_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CALCULATORMODULE_EXPORTS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 + +!ELSEIF "$(CFG)" == "CalculatorModule - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CALCULATORMODULE_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /I "$(SDO4CPP)/include" /I "$(SCA4CPP)/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CALCULATORMODULE_EXPORTS" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"$(SDO4CPP)/lib" /libpath:"$(SCA4CPP)/lib" + +!ENDIF + +# Begin Target + +# Name "CalculatorModule - Win32 Release" +# Name "CalculatorModule - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\CalculatorImpl.cpp +# End Source File +# Begin Source File + +SOURCE=.\CalculatorImpl_CalculatorService_Proxy.cpp +# End Source File +# Begin Source File + +SOURCE=.\CalculatorImpl_CalculatorService_Wrapper.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Calculator.h +# End Source File +# Begin Source File + +SOURCE=.\CalculatorImpl.h +# End Source File +# Begin Source File + +SOURCE=.\CalculatorImpl_CalculatorService_Proxy.h +# End Source File +# Begin Source File + +SOURCE=.\CalculatorImpl_CalculatorService_Wrapper.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;module;componentType;fragment" +# Begin Source File + +SOURCE=.\CalculatorImpl.componentType +# End Source File +# Begin Source File + +SOURCE=.\sca.module +# End Source File +# End Group +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.plg b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.plg new file mode 100644 index 0000000000..33016bffaf --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.plg @@ -0,0 +1,39 @@ + + +
+

Build Log

+

+--------------------Configuration: CalculatorModule - Win32 Debug-------------------- +

+

Command Lines

+Creating temporary file "C:\DOCUME~1\winadmin\LOCALS~1\Temp\RSP7D.tmp" with contents +[ +/nologo /MDd /W3 /Gm /GX /ZI /I "D:\Development\tuscany\cpp\sdo/include" /I "D:\Development\tuscany\cpp\sca/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CALCULATORMODULE_EXPORTS" /Fp"Debug/CalculatorModule.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"D:\Development\tuscany\cpp\sca\samples\Calculator\CalculatorModule\CalculatorImpl.cpp" +"D:\Development\tuscany\cpp\sca\samples\Calculator\CalculatorModule\CalculatorImpl_CalculatorService_Proxy.cpp" +"D:\Development\tuscany\cpp\sca\samples\Calculator\CalculatorModule\CalculatorImpl_CalculatorService_Wrapper.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\winadmin\LOCALS~1\Temp\RSP7D.tmp" +Creating temporary file "C:\DOCUME~1\winadmin\LOCALS~1\Temp\RSP7E.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /incremental:yes /pdb:"Debug/CalculatorModule.pdb" /debug /machine:I386 /out:"Debug/CalculatorModule.dll" /implib:"Debug/CalculatorModule.lib" /pdbtype:sept /libpath:"D:\Development\tuscany\cpp\sdo/lib" /libpath:"D:\Development\tuscany\cpp\sca/lib" +.\Debug\CalculatorImpl.obj +.\Debug\CalculatorImpl_CalculatorService_Proxy.obj +.\Debug\CalculatorImpl_CalculatorService_Wrapper.obj +] +Creating command line "link.exe @C:\DOCUME~1\winadmin\LOCALS~1\Temp\RSP7E.tmp" +

Output Window

+Compiling... +CalculatorImpl.cpp +CalculatorImpl_CalculatorService_Proxy.cpp +CalculatorImpl_CalculatorService_Wrapper.cpp +Linking... + Creating library Debug/CalculatorModule.lib and object Debug/CalculatorModule.exp + + + +

Results

+CalculatorModule.dll - 0 error(s), 0 warning(s) +
+ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/makefile b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/makefile new file mode 100644 index 0000000000..1e7f19fce8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/makefile @@ -0,0 +1,43 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +ROOT := .. + +-include $(ROOT)/makefile.init + +RM := rm -rf + +# All of the sources participating in the build are defined here +-include sources.mk +-include $(SUBDIRS:%=%/subdir.mk) +-include objects.mk +ifneq ($(strip $(DEPS)),) +-include $(DEPS) +endif + +-include $(ROOT)/makefile.defs + +# Add inputs and outputs from these tool invocations to the build variables + +# All Target +all: libCalculatorModule.so + +# Tool invocations +libCalculatorModule.so: $(OBJS) $(USER_OBJS) + @echo 'Building target: $@' + @echo 'Invoking: GCC C++ Linker' + @echo g++ -L${SCA4CPP}/lib -shared -olibCalculatorModule.so $(OBJS) $(USER_OBJS) $(LIBS) + @g++ -L${SCA4CPP}/lib -shared -olibCalculatorModule.so $(OBJS) $(USER_OBJS) $(LIBS) + @echo 'Finished building target: $@' + @echo ' ' + +# Other Targets +clean: + -$(RM) $(OBJS)$(DEPS)$(LIBRARIES) libCalculatorModule.so + -@echo ' ' + +.PHONY: all clean dependents +.SECONDARY: + +-include $(ROOT)/makefile.targets diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/objects.mk b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/objects.mk new file mode 100644 index 0000000000..fbdb88403a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/objects.mk @@ -0,0 +1,7 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +LIBS := -ltuscany_sca + +USER_OBJS := \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/sources.mk b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/sources.mk new file mode 100644 index 0000000000..8f0795952f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/sources.mk @@ -0,0 +1,20 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +C_UPPER_SRCS := +CPP_SRCS := +O_SRCS := +ASM_SRCS := +S_SRCS := +CXX_SRCS := +CC_SRCS := +OBJ_SRCS := +OBJS := +DEPS := +LIBRARIES := + +# Every subdirectory with source files must be described here +SUBDIRS := \ +. \ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/subdir.mk b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/subdir.mk new file mode 100644 index 0000000000..dd98e3ddc6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/subdir.mk @@ -0,0 +1,35 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +CPP_SRCS += \ +$(ROOT)/CalculatorImpl.cpp \ +$(ROOT)/CalculatorImpl_CalculatorService_Proxy.cpp \ +$(ROOT)/CalculatorImpl_CalculatorService_Wrapper.cpp + +OBJS += \ +./CalculatorImpl.o \ +./CalculatorImpl_CalculatorService_Proxy.o \ +./CalculatorImpl_CalculatorService_Wrapper.o + +DEPS += \ +${addprefix ./, \ +CalculatorImpl.d \ +CalculatorImpl_CalculatorService_Proxy.d \ +CalculatorImpl_CalculatorService_Wrapper.d \ +} + + +# Each subdirectory must supply rules for building sources it contributes +%.o: $(ROOT)/%.cpp + @echo 'Building file: $<' + @echo 'Invoking: GCC C++ Compiler' + @echo g++ -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -O0 -g3 -Wall -c -fmessage-length=0 -o$@ $< + @g++ -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -O0 -g3 -Wall -c -fmessage-length=0 -o$@ $< && \ + echo -n $(@:%.o=%.d) $(dir $@) > $(@:%.o=%.d) && \ + g++ -MM -MG -P -w -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -O0 -g3 -Wall -c -fmessage-length=0 $< >> $(@:%.o=%.d) + @echo 'Finished building: $<' + @echo ' ' + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module new file mode 100644 index 0000000000..c000e57411 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module.lin b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module.lin new file mode 100644 index 0000000000..2298b5910f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module.lin @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/CalculatorSubsystem.dsp b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/CalculatorSubsystem.dsp new file mode 100644 index 0000000000..ed7ceef2a4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/CalculatorSubsystem.dsp @@ -0,0 +1,67 @@ +# Microsoft Developer Studio Project File - Name="CalculatorSubsystem" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Generic Project" 0x010a + +CFG=CalculatorSubsystem - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "CalculatorSubsystem.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "CalculatorSubsystem.mak" CFG="CalculatorSubsystem - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "CalculatorSubsystem - Win32 Release" (based on "Win32 (x86) Generic Project") +!MESSAGE "CalculatorSubsystem - Win32 Debug" (based on "Win32 (x86) Generic Project") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +MTL=midl.exe + +!IF "$(CFG)" == "CalculatorSubsystem - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "CalculatorSubsystem - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" + +!ENDIF + +# Begin Target + +# Name "CalculatorSubsystem - Win32 Release" +# Name "CalculatorSubsystem - Win32 Debug" +# Begin Source File + +SOURCE=.\sca.subsystem +# End Source File +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/sca.subsystem b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/sca.subsystem new file mode 100644 index 0000000000..4b9fdd1511 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/sca.subsystem @@ -0,0 +1,23 @@ + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtbuild b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtbuild new file mode 100644 index 0000000000..68fe431c95 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtbuild @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtproject b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtproject new file mode 100644 index 0000000000..48a12e6664 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtproject @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.project b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.project new file mode 100644 index 0000000000..20d79410f9 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.project @@ -0,0 +1,19 @@ + + + CalculatorClient + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000000..64ec20058b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,6 @@ +#Tue Dec 13 10:20:35 GMT 2005 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.debug.1274891422=\n\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.debug.1274891422=\n\n\n\n +environment/project=\n\n +environment/project/cdt.managedbuild.config.gnu.exe.debug.1274891422=\n\n diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calc.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calc.cpp new file mode 100644 index 0000000000..8322532617 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calc.cpp @@ -0,0 +1,144 @@ +/* ++----------------------------------------------------------------------+ +| (c) Copyright IBM Corporation 2005. | +| All Rights Reserved. | ++----------------------------------------------------------------------+ +| | +| 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. | ++----------------------------------------------------------------------+ +*/ + +#include "Calculator.h" +#include "osoa/sca/sca.h" +#include +#include + +using namespace osoa::sca; +using namespace std; + +void usage(); +bool IsNumber(const char *p); + +int main(int argc, char* argv[]) +{ + const char *operation; + float arg1 = 0; + float arg2 = 0; + + if (argc == 4) + { + operation = argv[1]; + + if (!IsNumber(argv[2])) + { + cout << "Calc.exe: Argument 1 is not a number" << endl; + usage(); + } + else + { + arg1 = atof(argv[2]); + } + + if (!IsNumber(argv[3])) + { + cout << "Calc.exe: Argument 2 is not a number" << endl; + usage(); + } + else + { + arg2 = atof(argv[3]); + } + } + else + { + usage(); + } + + try + { + + // Set the default module environment variable: / + //char *defaultModule = "SCA4CPP_DEFAULT_MODULE=SubSystem2/CalculatorServiceModule"; + //putenv(defaultModule); + + // Locate a service + ModuleContext myContext = ModuleContext::getCurrent(); + Calculator *calcService = (Calculator*) myContext.locateService("CalculatorServiceComponent"); + if (calcService == 0) + { + cout << "Calc.exe: Unable to find Calculator service" << endl; + } + else + { + try + { + float result = 0; + if (strcmp(operation, "add") == 0) + { + result = calcService->add(arg1, arg2); + cout << "Calculator: add(" << arg1 << "," << arg2 << ") = " << result << endl; + } + else + if (strcmp(operation, "sub") == 0) + { + result = calcService->sub(arg1, arg2); + cout << "Calculator: sub(" << arg1 << "," << arg2 << ") = " << result << endl; + } + else + if (strcmp(operation, "mul") == 0) + { + result = calcService->mul(arg1, arg2); + cout << "Calculator: mul(" << arg1 << "," << arg2 << ") = " << result << endl; + } + else + if (strcmp(operation, "div") == 0) + { + result = calcService->div(arg1, arg2); + cout << "Calculator: div(" << arg1 << "," << arg2 << ") = " << result << endl; + } + else + { + cout << "Calculator: Unrecognized operation: " << operation << endl; + } + } + catch (char* x) + { + cout << "Calc.exe: exception caught: " << x << endl; + } + } + + } + catch (ServiceRuntimeException& ex) + { + cout << ex << endl; + } + return 0; +} + +void usage() +{ + cout << "Usage: calc add|sub|mul|div arg1 arg2" << endl; + exit(1); +} + +bool IsNumber (const char *p) +{ + int len = strlen(p); + for (int i = 0; i < len; i++) + { + if (!isdigit (p[i])) + { + return false; + } + } + return true; +} diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calculator.h b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calculator.h new file mode 100644 index 0000000000..9284178d5f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calculator.h @@ -0,0 +1,33 @@ +/* ++----------------------------------------------------------------------+ +| (c) Copyright IBM Corporation 2005. | +| All Rights Reserved. | ++----------------------------------------------------------------------+ +| | +| 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. | ++----------------------------------------------------------------------+ +*/ + +#ifndef CALCULATOR_H +#define CALCULATOR_H +class Calculator +{ +public: + virtual float add(float arg1, float arg2) = 0; + virtual float sub(float arg1, float arg2) = 0; + virtual float mul(float arg1, float arg2) = 0; + virtual float div(float arg1, float arg2) = 0; +}; + +#endif + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.dsp b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.dsp new file mode 100644 index 0000000000..75a19ae815 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.dsp @@ -0,0 +1,108 @@ +# Microsoft Developer Studio Project File - Name="Client" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=Client - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Client.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Client.mak" CFG="Client - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Client - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "Client - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Client - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "Client - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MD /W3 /Gm /GX /ZI /Od /I "$(SDO4CPP)/include" /I "$(SCA4CPP)/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib tuscany_sca.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"$(SDO4CPP)/lib" /libpath:"$(SCA4CPP)/lib" + +!ENDIF + +# Begin Target + +# Name "Client - Win32 Release" +# Name "Client - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\Calc.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Calculator.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE=.\readme.txt +# End Source File +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.plg b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.plg new file mode 100644 index 0000000000..0f33cc8711 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.plg @@ -0,0 +1,16 @@ + + +
+

Build Log

+

+--------------------Configuration: Client - Win32 Debug-------------------- +

+

Command Lines

+ + + +

Results

+Client.exe - 0 error(s), 0 warning(s) +
+ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/makefile b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/makefile new file mode 100644 index 0000000000..4fed2ace08 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/makefile @@ -0,0 +1,43 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +ROOT := .. + +-include $(ROOT)/makefile.init + +RM := rm -rf + +# All of the sources participating in the build are defined here +-include sources.mk +-include $(SUBDIRS:%=%/subdir.mk) +-include objects.mk +ifneq ($(strip $(DEPS)),) +-include $(DEPS) +endif + +-include $(ROOT)/makefile.defs + +# Add inputs and outputs from these tool invocations to the build variables + +# All Target +all: CalculatorClient + +# Tool invocations +CalculatorClient: $(OBJS) $(USER_OBJS) + @echo 'Building target: $@' + @echo 'Invoking: GCC C++ Linker' + @echo g++ -L${SCA4CPP}/lib -L${SDO4CPP}/lib -L${AXISCPP_DEPLOY}/lib -oCalculatorClient $(OBJS) $(USER_OBJS) $(LIBS) + @g++ -L${SCA4CPP}/lib -L${SDO4CPP}/lib -L${AXISCPP_DEPLOY}/lib -oCalculatorClient $(OBJS) $(USER_OBJS) $(LIBS) + @echo 'Finished building target: $@' + @echo ' ' + +# Other Targets +clean: + -$(RM) $(OBJS)$(DEPS)$(EXECUTABLES) CalculatorClient + -@echo ' ' + +.PHONY: all clean dependents +.SECONDARY: + +-include $(ROOT)/makefile.targets diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/objects.mk b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/objects.mk new file mode 100644 index 0000000000..a6aa648eba --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/objects.mk @@ -0,0 +1,7 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +LIBS := -ltuscany_sca -ltuscany_sdo -lxml2 -laxis_clientC -laxis_client + +USER_OBJS := \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/sources.mk b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/sources.mk new file mode 100644 index 0000000000..3c384d3f72 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/sources.mk @@ -0,0 +1,20 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +C_UPPER_SRCS := +CPP_SRCS := +O_SRCS := +ASM_SRCS := +S_SRCS := +CXX_SRCS := +CC_SRCS := +OBJ_SRCS := +OBJS := +DEPS := +EXECUTABLES := + +# Every subdirectory with source files must be described here +SUBDIRS := \ +. \ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/subdir.mk b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/subdir.mk new file mode 100644 index 0000000000..3328b2862f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/subdir.mk @@ -0,0 +1,29 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +CPP_SRCS += \ +$(ROOT)/Calc.cpp + +OBJS += \ +./Calc.o + +DEPS += \ +${addprefix ./, \ +Calc.d \ +} + + +# Each subdirectory must supply rules for building sources it contributes +%.o: $(ROOT)/%.cpp + @echo 'Building file: $<' + @echo 'Invoking: GCC C++ Compiler' + @echo g++ -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -I${SCA4CPP_HOME}/samples/Calculator/CalculatorModule -O0 -g3 -Wall -c -fmessage-length=0 -o$@ $< + @g++ -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -I${SCA4CPP_HOME}/samples/Calculator/CalculatorModule -O0 -g3 -Wall -c -fmessage-length=0 -o$@ $< && \ + echo -n $(@:%.o=%.d) $(dir $@) > $(@:%.o=%.d) && \ + g++ -MM -MG -P -w -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -I${SCA4CPP_HOME}/samples/Calculator/CalculatorModule -O0 -g3 -Wall -c -fmessage-length=0 $< >> $(@:%.o=%.d) + @echo 'Finished building: $<' + @echo ' ' + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/readme.txt b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/readme.txt new file mode 100644 index 0000000000..615f1533b1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/readme.txt @@ -0,0 +1,53 @@ +Tuscany SCA for C++ Samples - Calculator Sample +=============================================== + +This is a very simple sample to show how an SCA module with a single component +can be built and called from an executable. + +There are three sub projects in this workspace: + - CalculatorModule + This contains the source code and SCA artifacts for the SCA module. This + is the module that will be deployed into the SCA runtime. + - CalculatorSubsystem + This contains the sca.subsystem file which describes a subsystem to the + SCA runtime. + - Client + An example client which will call the service exposed by the single component + in the CalculatorModule. + + +Build instructions +------------------ + +1) Build the SCA module. + - Set CalculatorModule project as the active project. + Right click->Set as active project + + - Run the SCA generation tool to create the proxy and wrapper classes. + Either Tools->SCA Gen if you have added SCA Gen as an external tool + Or run from the command line: + scagen -dir -output + where the projectDirectory is the directory with the sca.module file. + + - Rebuild All + Build->Rebuild All + +2) Package and deploy the SCA module + - There is a script file in the sca/samples/Calculator directory which will + copy across all the files needed for deployment to the Tuscany runtime. + On a command line run pack_deploy.cmd + As a default, the sample will be copied to sca/samples/runtime directory + Both the SCA module and the subsystem will be copied. + +3) Build the client + - Set the Client project as the active project. + Right click->Set as active project + + - Rebuild All + Build->Rebuild All + +4) Run the client + - Use the command file in the sca/samples/Calculator/Client directory to run the + client. This command file will set the SCA environment variables before running + the client. For example, + runclient add 4 9 diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/runclient.cmd b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/runclient.cmd new file mode 100644 index 0000000000..8aa6f24f65 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/Client/runclient.cmd @@ -0,0 +1,14 @@ +@echo off +rem Runs the client after setting the SCA environment variables to use the +rem CalculatorSubsystem +setlocal +set SCA4CPP_SYSTEM_ROOT=%~d0%~p0\..\..\runtime + +rem Only need to specify the subsystem (and not the moduleComponent as well) because +rem there is only one moduleComponent in the subsystem - it is a very simple sample. +set SCA4CPP_DEFAULT_MODULE=CalculatorSubsystem + +rem Run the client +%~d0%~p0\debug\Client.exe %* + +endlocal \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/build.sh b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/build.sh new file mode 100755 index 0000000000..3e2dbcb0bc --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/build.sh @@ -0,0 +1,75 @@ +#!/bin/sh + +# 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. + +APFULLDIR=`pwd` + +export SCA4CPP_HOME="$APFULLDIR/../../" + +if [ x$SCA4CPP = x ]; then +export SCA4CPP="$SCA4CPP_HOME" +fi +echo "Using SCA installed at $SCA4CPP" + +if [ x$AXISCPP_DEPLOY = x ]; then +echo "AXISCPP_DEPLOY not set" +exit; +fi +echo "Using Axis C++ installed at $AXISCPP_DEPLOY" + +if [ x$XERCES_DEPLOY = x ]; then +echo "XERCES_DEPLOY not set" +exit; +fi +echo "Using Xerces C++ installed at $XERCES_DEPLOY" + +if [ x$SDO4CPP = x ]; then +echo "SDO4CPP not set" +export SDO4CPP=$SCA4CPP_HOME/../sdo +fi +echo "Using SDO installed at $SDO4CPP" + +TEST_ROOT=$APFULLDIR + +cd $SCA4CPP/bin +./scagen.sh -dir $TEST_ROOT/CalculatorModule -output $TEST_ROOT/CalculatorModule +cd $TEST_ROOT/CalculatorModule/Debug +make clean +make + +cd $TEST_ROOT/Client/Debug +make clean +make + +TEST_SYSTEM=$TEST_ROOT/../runtime + +mkdir -p $TEST_SYSTEM/modules/CalculatorModule +mkdir -p $TEST_SYSTEM/subsystems/CalculatorSubsystem + +cp $TEST_ROOT/CalculatorModule/sca.module.lin $TEST_SYSTEM/modules/CalculatorModule/sca.module +cp $TEST_ROOT/CalculatorModule/*.componentType $TEST_SYSTEM/modules/CalculatorModule +cp $TEST_ROOT/CalculatorModule/Calculator.h $TEST_SYSTEM/modules/CalculatorModule +cp $TEST_ROOT/CalculatorModule/CalculatorImpl.h $TEST_SYSTEM/modules/CalculatorModule +cp $TEST_ROOT/CalculatorModule/Debug/libCalculatorModule.so $TEST_SYSTEM/modules/CalculatorModule +cp $TEST_ROOT/CalculatorSubsystem/sca.subsystem $TEST_SYSTEM/subsystems/CalculatorSubsystem + +export LD_LIBRARY_PATH=$SCA4CPP/lib:$SDO4CPP/lib:$LD_LIBRARY_PATH:$AXISCPP_DEPLOY/lib:$XERCES_DEPLOY/lib + +export TUSCANY_SCACPP=$SCA4CPP +export TUSCANY_SCACPP_SYSTEM_ROOT=$TEST_SYSTEM +export TUSCANY_SCACPP_DEFAULT_MODULE=CalculatorSubsystem + +cd $TEST_ROOT/Client +Debug/CalculatorClient add 4 9 diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/pack_deploy.cmd b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/pack_deploy.cmd new file mode 100644 index 0000000000..eed6af8411 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/pack_deploy.cmd @@ -0,0 +1,27 @@ +@echo off +rem Will copy the correct files from the source tree for packaging and deployment of the +rem SCA sample. +setlocal +set sourcePath=%~d0%~p0 +if . == %1. ( +set destinationPath=%sourcePath%..\runtime +) ELSE ( +set destinationPath=%1 +) + +mkdir %destinationPath%\modules +mkdir %destinationPath%\modules\CalculatorModule +copy %sourcePath%\CalculatorModule\*.componentType %destinationPath%\modules\CalculatorModule +copy %sourcePath%\CalculatorModule\sca.module %destinationPath%\modules\CalculatorModule +copy %sourcePath%\CalculatorModule\Calculator.h %destinationPath%\modules\CalculatorModule +copy %sourcePath%\CalculatorModule\CalculatorImpl.h %destinationPath%\modules\CalculatorModule + +copy %sourcePath%\CalculatorModule\debug\CalculatorModule.dll %destinationPath%\modules\CalculatorModule + + +mkdir %destinationPath%\subsystems +mkdir %destinationPath%\subsystems\CalculatorSubsystem +copy %sourcePath%\CalculatorSubsystem\sca.subsystem %destinationPath%\subsystems\CalculatorSubsystem + + +endlocal \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/runclient.sh b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/runclient.sh new file mode 100755 index 0000000000..b16ec76414 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/samples/Calculator/runclient.sh @@ -0,0 +1,53 @@ +#!/bin/sh + +# 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. + +APFULLDIR=`pwd` +export SCA4CPP_HOME="$APFULLDIR/../../" + +if [ x$SCA4CPP = x ]; then +export SCA4CPP="$SCA4CPP_HOME" +fi +echo "Using SCA installed at $SCA4CPP" + +if [ x$AXISCPP_DEPLOY = x ]; then +echo "AXISCPP_DEPLOY not set" +exit; +fi +echo "Using Axis C++ installed at $AXISCPP_DEPLOY" + +if [ x$XERCES_DEPLOY = x ]; then +echo "XERCES_DEPLOY not set" +exit; +fi +echo "Using Xerces C++ installed at $XERCES_DEPLOY" + +if [ x$SDO4CPP = x ]; then +echo "SDO4CPP not set" +export SDO4CPP=$SCA4CPP_HOME/../sdo +fi +echo "Using SDO installed at $SDO4CPP" + +TEST_ROOT=$APFULLDIR +TEST_SYSTEM=$TEST_ROOT/../runtime + +export LD_LIBRARY_PATH=$SCA4CPP/lib:$SDO4CPP/lib:$LD_LIBRARY_PATH:$AXISCPP_DEPLOY/lib:$XERCES_DEPLOY/lib + +export TUSCANY_SCACPP=$SCA4CPP +export TUSCANY_SCACPP_SYSTEM_ROOT=$TEST_SYSTEM +export TUSCANY_SCACPP_DEFAULT_MODULE=CalculatorSubsystem + +cd $TEST_ROOT/Client +Debug/CalculatorClient add 4 9 diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/scatest.sh b/sca-cpp/tags/cpp-stable-20060304/sca/scatest.sh new file mode 100755 index 0000000000..e5feeda1f0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/scatest.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +# 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. + + +APFULLDIR=`pwd` + +export SCA4CPP_HOME="$APFULLDIR" +if [ x$SCA4CPP = x ]; then +export TUSCANY_SCACPP="$SCA4CPP_HOME" +fi +echo "Using SCA installed at $SCA4CPP_HOME" + +if [ x$AXISCPP_DEPLOY = x ]; then +echo "AXISCPP_DEPLOY not set" +exit; +fi +echo "Using Axis C++ installed at $AXISCPP_DEPLOY" + +if [ x$XERCES_DEPLOY = x ]; then +echo "XERCES_DEPLOY not set" +exit; +fi +echo "Using Xerces C++ installed at $XERCES_DEPLOY" + +if [ x$TUSCANY_SDOCPP = x ]; then +echo "TUSCANY_SDOCPP not set"exit; +fi +echo "Using SDO installed at $TUSCANY_SDOCPP" + +TEST_ROOT=$SCA4CPP_HOME/runtime/core/test + +export LD_LIBRARY_PATH=$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$LD_LIBRARY_PATH:$AXISCPP_DEPLOY/lib:$XERCES_DEPLOY/lib + +export TUSCANY_SCACPP_SYSTEM_ROOT=$TEST_ROOT/testSCASystem +export TUSCANY_SCACPP_DEFAULT_MODULE=SubSystem1 + +cd $TUSCANY_SCACPP/bin/test +./tuscany_sca_test diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/build.xml b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/build.xml new file mode 100644 index 0000000000..5207b6cc79 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/build.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SCA for C++ Tools]]> + + + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-frame.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-frame.html new file mode 100644 index 0000000000..1eb0408cef --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-frame.html @@ -0,0 +1,84 @@ + + + + + + +All Classes (SCA for C++ Tools) + + + + + + + + + + +All Classes +
+ + + + + +
BodyPart +
+CParsingTool +
+ComponentDomNodeHandler +
+ComponentTypeFileHandler +
+Configuration +
+DirectoryScanner +
+DirectoryTree +
+DomHandler +
+DomNodeHandler +
+FileActor +
+FilePart +
+GenericDomNodeHandler +
+Headers +
+InputCppSourceCode +
+LittleClass +
+MethodPart +
+ModuleOrFragmentFileHandler +
+Options +
+Parameter +
+ParsingException +
+PrototypePart +
+ReferenceDomNodeHandler +
+Scagen +
+ServiceDomNodeHandler +
+ServicesGenerator +
+Signature +
+Utils +
+XMLFileActor +
+
+ + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-noframe.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-noframe.html new file mode 100644 index 0000000000..fdbfa13e1c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-noframe.html @@ -0,0 +1,84 @@ + + + + + + +All Classes (SCA for C++ Tools) + + + + + + + + + + +All Classes +
+ + + + + +
BodyPart +
+CParsingTool +
+ComponentDomNodeHandler +
+ComponentTypeFileHandler +
+Configuration +
+DirectoryScanner +
+DirectoryTree +
+DomHandler +
+DomNodeHandler +
+FileActor +
+FilePart +
+GenericDomNodeHandler +
+Headers +
+InputCppSourceCode +
+LittleClass +
+MethodPart +
+ModuleOrFragmentFileHandler +
+Options +
+Parameter +
+ParsingException +
+PrototypePart +
+ReferenceDomNodeHandler +
+Scagen +
+ServiceDomNodeHandler +
+ServicesGenerator +
+Signature +
+Utils +
+XMLFileActor +
+
+ + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/constant-values.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/constant-values.html new file mode 100644 index 0000000000..e9b450cd20 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/constant-values.html @@ -0,0 +1,305 @@ + + + + + + +Constant Field Values (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Constant Field Values

+
+
+Contents + + + + + + +
+org.apache.*
+ +

+ + + + + + + + + + + + + + + + + + + + + + +
org.apache.tuscany.sca.cpp.tools.common.BodyPart
+public static final intCATCH2
+public static final intRETURN1
+public static final intTRAILING0
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
org.apache.tuscany.sca.cpp.tools.common.FilePart
+public static final intBEGINSCOPE4
+public static final intCLASSATTRIBUTE9
+public static final intCOMMENT1
+public static final intDIRECTIVE6
+public static final intENDSCOPE5
+public static final intENUM10
+public static final intFIELD3
+public static final intMACRO8
+public static final intMETHOD2
+public static final intPROTOTYPE11
+public static final intTYPEDEF12
+public static final intUNKNOWN0
+public static final intWHITESPACE7
+ +

+ +

+ + + + + + + + + + + + +
org.apache.tuscany.sca.cpp.tools.common.Utils
+public static final java.lang.Stringwhitespace" \t\r\n"
+ +

+ +

+ + + + + + + + + + + + +
org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
+public static final intELEMENT1
+ +

+ +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/deprecated-list.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/deprecated-list.html new file mode 100644 index 0000000000..9063a7fff9 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/deprecated-list.html @@ -0,0 +1,138 @@ + + + + + + +Deprecated List (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Deprecated API

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/help-doc.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/help-doc.html new file mode 100644 index 0000000000..5a4302b221 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/help-doc.html @@ -0,0 +1,197 @@ + + + + + + +API Help (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+How This API Document Is Organized

+
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

+Overview

+
+ +

+The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

+

+Package

+
+ +

+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

    +
  • Interfaces (italic)
  • Classes
  • Exceptions
  • Errors
+
+

+Class/Interface

+
+ +

+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    +
  • Class inheritance diagram
  • Direct Subclasses
  • All Known Subinterfaces
  • All Known Implementing Classes
  • Class/interface declaration
  • Class/interface description +

    +

  • Nested Class Summary
  • Field Summary
  • Constructor Summary
  • Method Summary +

    +

  • Field Detail
  • Constructor Detail
  • Method Detail
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+

+Use

+
+Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+

+Tree (Class Hierarchy)

+
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
    +
  • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
  • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
+
+

+Deprecated API

+
+The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+

+Index

+
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+

+Prev/Next

+These links take you to the next or previous class, interface, package, or related page.

+Frames/No Frames

+These links show and hide the HTML frames. All pages are available with or without frames. +

+

+Serialized Form

+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. +

+ + +This help file applies to API documentation generated using the standard doclet. + +
+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index-all.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index-all.html new file mode 100644 index 0000000000..dab7cf9cd3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index-all.html @@ -0,0 +1,701 @@ + + + + + + +Index (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +A B C D E F G H I L M O P Q R S T U V W X
+

+A

+
+
actOnFile(File, File, int) - +Method in interface org.apache.tuscany.sca.cpp.tools.common.FileActor +
  +
actOnFile(File, File, int) - +Method in class org.apache.tuscany.sca.cpp.tools.common.Headers +
  +
actOnFile(File, File, int) - +Method in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor +
This method is the main FileActor method +
+
+

+B

+
+
BEGINSCOPE - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
BodyPart - class org.apache.tuscany.sca.cpp.tools.common.BodyPart.
A snippet of C or C++ source code.
+
+

+C

+
+
CATCH - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.BodyPart +
  +
CLASSATTRIBUTE - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
COMMENT - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
CParsingTool - class org.apache.tuscany.sca.cpp.tools.common.CParsingTool.
The superclass of tools that parse C/C++ code.
CParsingTool(String[]) - +Constructor for class org.apache.tuscany.sca.cpp.tools.common.CParsingTool +
  +
ComponentDomNodeHandler - class org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler.
This class will do the required processing for the element of a + sca module or fragment file.
ComponentDomNodeHandler() - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler +
  +
ComponentTypeFileHandler - class org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler.
The purpose of this class is to specialise the map of XML element handlers + for a XXX.componentType file that is used by the XMLFileActor
ComponentTypeFileHandler() - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler +
  +
Configuration - class org.apache.tuscany.sca.cpp.tools.common.Configuration.
Encapsulates the tool's configuration file
cPrimitives - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.Utils +
  +
cTypeQualifiers - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.Utils +
  +
checkFile(String) - +Method in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool +
Checks the source directory looks good. +
classExcluded(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration +
  +
cppsource - +Variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
createDomFromXMLFile(File) - +Method in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor +
This method builds an in memory DOM from an XML file +
+
+

+D

+
+
DIRECTIVE - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
DirectoryScanner - class org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner.
 
DirectoryScanner(FileActor, Set) - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner +
  +
DirectoryTree - class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree.
 
DirectoryTree(FileActor, Set) - +Constructor for class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree +
  +
DomHandler - class org.apache.tuscany.sca.cpp.tools.services.DomHandler.
The purpose of this class it to provide a generic class that can handle both + a DOM and a DOM node.
DomHandler() - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.DomHandler +
  +
DomNodeHandler - interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler.
 
+
+

+E

+
+
ELEMENT - +Static variable in interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler +
  +
ENDSCOPE - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
ENUM - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
equals(Object) - +Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter +
For two parameters to match their types must match or both be null, but + the parameters names don't have to match. +
equals(Object) - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
+
+

+F

+
+
FIELD - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
FileActor - interface org.apache.tuscany.sca.cpp.tools.common.FileActor.
DirectoryTree calls this interface to allow implementations of this interface + to act on a file in the directory tree.
FilePart - class org.apache.tuscany.sca.cpp.tools.common.FilePart.
A piece of C++ source code
failed - +Variable in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool +
  +
failed() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Headers +
  +
failed() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter +
  +
failed() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
failed - +Variable in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor +
  +
fileExcluded(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration +
  +
+
+

+G

+
+
GenericDomNodeHandler - class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler.
 
GenericDomNodeHandler() - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler +
  +
getAllMethods() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Headers +
Tuscany change - a method to get all the method signatures at once +
getAttributes() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
getBodyParts() - +Method in class org.apache.tuscany.sca.cpp.tools.common.MethodPart +
Returns the method body as code snippets, each ending with a place where + a trace statement belongs. +
getCaughtValue() - +Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart +
  +
getClassName() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
getCodeFragment() - +Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart +
  +
getConfigured(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration +
  +
getFilesActedOn() - +Method in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor +
  +
getMethodName() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
getMethods(String) - +Method in class org.apache.tuscany.sca.cpp.tools.common.Headers +
  +
getName() - +Method in class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode +
  +
getName() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter +
  +
getNamespace() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
getOption(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Options +
  +
getOriginal() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
getOriginalSignature() - +Method in class org.apache.tuscany.sca.cpp.tools.common.MethodPart +
  +
getParameter(String, Object) - +Method in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor +
Get a parameter +
getParameters() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
getPartIterator() - +Method in class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode +
  +
getReturnType() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
getReturnValue() - +Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart +
  +
getScope() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
getSignature() - +Method in class org.apache.tuscany.sca.cpp.tools.common.MethodPart +
  +
getSignature() - +Method in class org.apache.tuscany.sca.cpp.tools.common.PrototypePart +
  +
getTrimClassName() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
getType() - +Method in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
getType() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter +
  +
getTypeWithoutConst() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter +
  +
+
+

+H

+
+
Headers - class org.apache.tuscany.sca.cpp.tools.common.Headers.
 
Headers() - +Constructor for class org.apache.tuscany.sca.cpp.tools.common.Headers +
  +
handleChildElements(Node, String, Map, Map) - +Method in class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler +
This method will iterate through the DOM node's children and call the + appropriate handler for each one. +
handleComponentTypeFile(File, File) - +Method in class org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler +
This method just exists to add the default starting depth of 1 to the + underlying actOnFile interface +
handleDom(Document, Map, Map) - +Static method in class org.apache.tuscany.sca.cpp.tools.services.DomHandler +
This method will run through the initial level of the DOM using the + handlers map +
handleInterfaceHeader(Map, boolean) - +Static method in class org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator +
  +
handleNode(Node, String, Map, Map) - +Method in class org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler +
This method will do the "normal" processing and then trigger a call to + processComponentNode. +
handleNode(Node, String, Map, Map) - +Method in class org.apache.tuscany.sca.cpp.tools.services.DomHandler +
  +
handleNode(Node, String, Map, Map) - +Method in interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler +
An interface for classes that can process DOM nodes. +
handleNode(Node, String, Map, Map) - +Method in class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler +
This method will place the attributes in this node into the parameter + map keyed by the XPath and recursively continue processing for any + sub-elements of the node. +
handleNode(Node, String, Map, Map) - +Method in class org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler +
  +
handleNode(Node, String, Map, Map) - +Method in class org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler +
  +
handlers - +Static variable in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor +
  +
headers - +Variable in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool +
  +
+
+

+I

+
+
InputCppSourceCode - class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode.
 
InputCppSourceCode(BufferedReader, String) - +Constructor for class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode +
  +
initialise(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration +
Reads in the configuration file +
isAttribute(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration +
  +
isCatch() - +Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart +
  +
isClassName(String) - +Method in class org.apache.tuscany.sca.cpp.tools.common.Headers +
  +
isConstructor() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
isDefine(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration +
  +
isDestructor() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
isDotDotDot() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter +
  +
isInstanceMethod(Signature) - +Method in class org.apache.tuscany.sca.cpp.tools.common.Headers +
  +
isMacro(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration +
  +
isReturn() - +Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart +
  +
isStaticMethod(Signature) - +Method in class org.apache.tuscany.sca.cpp.tools.common.Headers +
  +
isTrailing() - +Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart +
  +
isVoid() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter +
  +
iterator() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter +
  +
+
+

+L

+
+
LittleClass - class org.apache.tuscany.sca.cpp.tools.services.LittleClass.
This class is just a convenient application class that is loaded in order to + get the application class loader.
LittleClass() - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.LittleClass +
  +
+
+

+M

+
+
MACRO - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
METHOD - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
MODULE_EXTENSIONS - +Static variable in class org.apache.tuscany.sca.cpp.tools.services.Scagen +
  +
MethodPart - class org.apache.tuscany.sca.cpp.tools.common.MethodPart.
A C or C++ method from a piece of source code.
ModuleOrFragmentFileHandler - class org.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler.
The purpose of this class is purely to specialise the handler map to one with + a specific ComponentDomNodeHandler.
ModuleOrFragmentFileHandler() - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler +
  +
main(String[]) - +Static method in class org.apache.tuscany.sca.cpp.tools.services.Scagen +
Take a directory scanning class and create a vistor that knows how to + handle any sca.module or .fragment that the scanner comes across. +
mapNodeToHandlerAndHandle(Node, String, Map, Map) - +Static method in class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler +
This method will resolve any registered handler for a particular DOM + element and call the handleNode method on it. +
maybeAppendSeparator(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree +
  +
maybeCreateDirectory(String) - +Method in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool +
Checks the target directory and creates it if it doesn't already exist. +
methodExcluded(String, String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration +
  +
+
+

+O

+
+
Options - class org.apache.tuscany.sca.cpp.tools.common.Options.
Command line options passed to a tool's main program.
org.apache.tuscany.sca.cpp.tools.common - package org.apache.tuscany.sca.cpp.tools.common
+ +
org.apache.tuscany.sca.cpp.tools.services - package org.apache.tuscany.sca.cpp.tools.services
+ +
originalLength() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
outputDebugString(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Utils +
  +
+
+

+P

+
+
PROTOTYPE - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
Parameter - class org.apache.tuscany.sca.cpp.tools.common.Parameter.
A parameter from a method signature.
ParsingException - exception org.apache.tuscany.sca.cpp.tools.common.ParsingException.
 
ParsingException() - +Constructor for class org.apache.tuscany.sca.cpp.tools.common.ParsingException +
  +
ParsingException(String) - +Constructor for class org.apache.tuscany.sca.cpp.tools.common.ParsingException +
  +
ParsingException(String, Throwable) - +Constructor for class org.apache.tuscany.sca.cpp.tools.common.ParsingException +
  +
ParsingException(Throwable) - +Constructor for class org.apache.tuscany.sca.cpp.tools.common.ParsingException +
  +
PrototypePart - class org.apache.tuscany.sca.cpp.tools.common.PrototypePart.
A function prototype in an include file and possibly in a class definition.
PrototypePart(String, String, String) - +Constructor for class org.apache.tuscany.sca.cpp.tools.common.PrototypePart +
  +
parameters - +Static variable in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor +
  +
preparseHeaders(String) - +Method in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool +
Read in any include files before the main processing of the tool is done. +
printUsage() - +Method in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool +
  +
printUsage() - +Method in class org.apache.tuscany.sca.cpp.tools.services.Scagen +
Provide a hint to the user on how to call this class +
+
+

+Q

+
+
quiet() - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Options +
  +
+
+

+R

+
+
RETURN - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.BodyPart +
  +
ReferenceDomNodeHandler - class org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler.
The purpose of this class is to process a element in a + componentType file and then trigger a call to the method in ServicesGenerator + to process the interface header file
ReferenceDomNodeHandler() - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler +
  +
rude(String, String, int, String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Utils +
Failed to parse the source code for some reason. +
rude(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Utils +
This method reports an error level problem +
+
+

+S

+
+
Scagen - class org.apache.tuscany.sca.cpp.tools.services.Scagen.
This is the main top level class.
Scagen(String[]) - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.Scagen +
  +
ServiceDomNodeHandler - class org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler.
 
ServiceDomNodeHandler() - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler +
  +
ServicesGenerator - class org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator.
This class is the main class that handles the function that parses a C++ + interface header file into a DOM that holds all the semantic information + about the interface - method names, parameters and return values.
ServicesGenerator(String[]) - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator +
  +
Signature - class org.apache.tuscany.sca.cpp.tools.common.Signature.
A C or C++ method signature with the ability to parse it.
safeEquals(Object, Object) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Utils +
A better method than .equals() because it doesn't NullPointerException + when one of the parameters is null. +
screenMessage(String) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Utils +
This method reports an error level problem +
set(String[]) - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Options +
Initialises the options based on the args passed to main +
setNamespace(String) - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
setParameter(String, Object) - +Method in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor +
Set a parameter +
setScope(String) - +Method in class org.apache.tuscany.sca.cpp.tools.common.PrototypePart +
  +
setScope(String) - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
Sets the scope, but only if the scope is not set by an explicit attribute + in the signature. +
+
+

+T

+
+
TRAILING - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.BodyPart +
  +
TYPEDEF - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
toString() - +Method in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
toString() - +Method in class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode +
  +
toString() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter +
  +
toString() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
toStringWithoutAttrs() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
  +
traceable() - +Method in class org.apache.tuscany.sca.cpp.tools.common.Signature +
Should this method be traced? +
transferAttrsToParameters(Node, String, Map) - +Method in class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler +
This method parses the DOM attributes into name value pairs in the + parameter map each valued keyed by its XPath. +
transformerFactory - +Static variable in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor +
  +
type - +Variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
+
+

+U

+
+
UNKNOWN - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
Utils - class org.apache.tuscany.sca.cpp.tools.common.Utils.
Static utility methods.
+
+

+V

+
+
verbose() - +Static method in class org.apache.tuscany.sca.cpp.tools.common.Options +
  +
+
+

+W

+
+
WHITESPACE - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart +
  +
walkTree(File, File, int) - +Method in class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree +
Starts adding trace into the given file. +
walkTree(File, File, int) - +Method in class org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner +
  +
whitespace - +Static variable in class org.apache.tuscany.sca.cpp.tools.common.Utils +
  +
+
+

+X

+
+
XMLFileActor - class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor.
The purpose of this abstract class is to provide a home for the standard + processing that is involved in turning a XML file into an internal DOM.
XMLFileActor() - +Constructor for class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor +
  +
+
+A B C D E F G H I L M O P Q R S T U V W X + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index.html new file mode 100644 index 0000000000..6595eb4eac --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index.html @@ -0,0 +1,26 @@ + + + + + + +SCA for C++ Tools + + + + + + + + + +<H2> +Frame Alert</H2> + +<P> +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. +<BR> +Link to<A HREF="overview-summary.html">Non-frame version.</A> + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/BodyPart.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/BodyPart.html new file mode 100644 index 0000000000..88b29695e0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/BodyPart.html @@ -0,0 +1,396 @@ + + + + + + +BodyPart (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class BodyPart

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.BodyPart
+
+
+
+
public class BodyPart
extends java.lang.Object
+ +

+A snippet of C or C++ source code. If this snippet ends with a return + statement, this body part also contains the return value. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static intCATCH + +
+           
+static intRETURN + +
+           
+static intTRAILING + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ ParametergetCaughtValue() + +
+           
+ java.lang.StringgetCodeFragment() + +
+           
+ java.lang.StringgetReturnValue() + +
+           
+ booleanisCatch() + +
+           
+ booleanisReturn() + +
+           
+ booleanisTrailing() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+TRAILING

+
+public static final int TRAILING
+
+
+
See Also:
Constant Field Values
+
+
+ +

+RETURN

+
+public static final int RETURN
+
+
+
See Also:
Constant Field Values
+
+
+ +

+CATCH

+
+public static final int CATCH
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + + + + +
+Method Detail
+ +

+getCodeFragment

+
+public java.lang.String getCodeFragment()
+
+
+
+
+
+
+ +

+isTrailing

+
+public boolean isTrailing()
+
+
+
+
+
+
+ +

+isReturn

+
+public boolean isReturn()
+
+
+
+
+
+
+ +

+isCatch

+
+public boolean isCatch()
+
+
+
+
+
+
+ +

+getReturnValue

+
+public java.lang.String getReturnValue()
+
+
+
+
+
+
+ +

+getCaughtValue

+
+public Parameter getCaughtValue()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.html new file mode 100644 index 0000000000..f688955d94 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.html @@ -0,0 +1,389 @@ + + + + + + +CParsingTool (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class CParsingTool

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.CParsingTool
+
+
+
Direct Known Subclasses:
Scagen, ServicesGenerator
+
+
+
+
public class CParsingTool
extends java.lang.Object
+ +

+The superclass of tools that parse C/C++ code. This CParsingTool provides + some useful common methods. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + +
+Field Summary
+protected  booleanfailed + +
+           
+protected  Headersheaders + +
+           
+  + + + + + + + + + + + +
+Constructor Summary
+protected CParsingTool(java.lang.String[] args) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.io.FilecheckFile(java.lang.String option) + +
+          Checks the source directory looks good.
+protected  java.io.FilemaybeCreateDirectory(java.lang.String option) + +
+          Checks the target directory and creates it if it doesn't already exist.
+protected  HeaderspreparseHeaders(java.lang.String option) + +
+          Read in any include files before the main processing of the tool is done.
+protected  voidprintUsage() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+failed

+
+protected boolean failed
+
+
+
+
+
+ +

+headers

+
+protected Headers headers
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+CParsingTool

+
+protected CParsingTool(java.lang.String[] args)
+                throws java.lang.Exception
+
+
+ + + + + + + + +
+Method Detail
+ +

+preparseHeaders

+
+protected Headers preparseHeaders(java.lang.String option)
+                           throws java.lang.Exception
+
+
Read in any include files before the main processing of the tool is done. + This constructs the Headers. +

+

+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+checkFile

+
+protected java.io.File checkFile(java.lang.String option)
+                          throws java.lang.Exception
+
+
Checks the source directory looks good. +

+

+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+maybeCreateDirectory

+
+protected java.io.File maybeCreateDirectory(java.lang.String option)
+                                     throws java.lang.Exception
+
+
Checks the target directory and creates it if it doesn't already exist. +

+

+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+printUsage

+
+protected void printUsage()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Configuration.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Configuration.html new file mode 100644 index 0000000000..5fa0f3af67 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Configuration.html @@ -0,0 +1,373 @@ + + + + + + +Configuration (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class Configuration

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.Configuration
+
+
+
+
public class Configuration
extends java.lang.Object
+ +

+Encapsulates the tool's configuration file +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static booleanclassExcluded(java.lang.String s) + +
+           
+static booleanfileExcluded(java.lang.String s) + +
+           
+static java.lang.StringgetConfigured(java.lang.String key) + +
+           
+static voidinitialise(java.lang.String filename) + +
+          Reads in the configuration file
+static booleanisAttribute(java.lang.String s) + +
+           
+static booleanisDefine(java.lang.String s) + +
+           
+static booleanisMacro(java.lang.String s) + +
+           
+static booleanmethodExcluded(java.lang.String className, + java.lang.String method) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+initialise

+
+public static void initialise(java.lang.String filename)
+                       throws java.lang.Exception
+
+
Reads in the configuration file +

+

+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+fileExcluded

+
+public static boolean fileExcluded(java.lang.String s)
+
+
+
+
+
+
+ +

+classExcluded

+
+public static boolean classExcluded(java.lang.String s)
+
+
+
+
+
+
+ +

+methodExcluded

+
+public static boolean methodExcluded(java.lang.String className,
+                                     java.lang.String method)
+
+
+
+
+
+
+ +

+isMacro

+
+public static boolean isMacro(java.lang.String s)
+
+
+
+
+
+
+ +

+isDefine

+
+public static boolean isDefine(java.lang.String s)
+
+
+
+
+
+
+ +

+isAttribute

+
+public static boolean isAttribute(java.lang.String s)
+
+
+
+
+
+
+ +

+getConfigured

+
+public static java.lang.String getConfigured(java.lang.String key)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.html new file mode 100644 index 0000000000..88913b0dc8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.html @@ -0,0 +1,289 @@ + + + + + + +DirectoryTree (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class DirectoryTree

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.DirectoryTree
+
+
+
+
public class DirectoryTree
extends java.lang.Object
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DirectoryTree(FileActor actor, + java.util.Set extensions) + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+static java.lang.StringmaybeAppendSeparator(java.lang.String name) + +
+           
+ voidwalkTree(java.io.File source, + java.io.File target, + int depth) + +
+          Starts adding trace into the given file.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DirectoryTree

+
+public DirectoryTree(FileActor actor,
+                     java.util.Set extensions)
+
+
+ + + + + + + + +
+Method Detail
+ +

+walkTree

+
+public void walkTree(java.io.File source,
+                     java.io.File target,
+                     int depth)
+              throws java.lang.Exception
+
+
Starts adding trace into the given file. If the given file is a directory + then this the starting directory and all code beneath and in this + directory will be given trace. +

+

+
Parameters:
source - - + either the starting directory or one file to add trace to. +
Throws: +
java.lang.Exception
+
+
+
+ +

+maybeAppendSeparator

+
+public static java.lang.String maybeAppendSeparator(java.lang.String name)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FileActor.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FileActor.html new file mode 100644 index 0000000000..adc1ec6aab --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FileActor.html @@ -0,0 +1,231 @@ + + + + + + +FileActor (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Interface FileActor

+
+
All Known Implementing Classes:
Headers, XMLFileActor
+
+
+
+
public interface FileActor
+ +

+DirectoryTree calls this interface to allow implementations of this interface + to act on a file in the directory tree. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidactOnFile(java.io.File source, + java.io.File target, + int depth) + +
+           
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+actOnFile

+
+public void actOnFile(java.io.File source,
+                      java.io.File target,
+                      int depth)
+               throws java.lang.Exception
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FilePart.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FilePart.html new file mode 100644 index 0000000000..c5e0c1da1c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FilePart.html @@ -0,0 +1,538 @@ + + + + + + +FilePart (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class FilePart

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.FilePart
+
+
+
Direct Known Subclasses:
MethodPart, PrototypePart
+
+
+
+
public class FilePart
extends java.lang.Object
+ +

+A piece of C++ source code +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static intBEGINSCOPE + +
+           
+static intCLASSATTRIBUTE + +
+           
+static intCOMMENT + +
+           
+protected  java.lang.Stringcppsource + +
+           
+static intDIRECTIVE + +
+           
+static intENDSCOPE + +
+           
+static intENUM + +
+           
+static intFIELD + +
+           
+static intMACRO + +
+           
+static intMETHOD + +
+           
+static intPROTOTYPE + +
+           
+protected  inttype + +
+           
+static intTYPEDEF + +
+           
+static intUNKNOWN + +
+           
+static intWHITESPACE + +
+           
+  + + + + + + + + + + + + + + + + + + +
+Method Summary
+ intgetType() + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+UNKNOWN

+
+public static final int UNKNOWN
+
+
+
See Also:
Constant Field Values
+
+
+ +

+COMMENT

+
+public static final int COMMENT
+
+
+
See Also:
Constant Field Values
+
+
+ +

+METHOD

+
+public static final int METHOD
+
+
+
See Also:
Constant Field Values
+
+
+ +

+FIELD

+
+public static final int FIELD
+
+
+
See Also:
Constant Field Values
+
+
+ +

+BEGINSCOPE

+
+public static final int BEGINSCOPE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+ENDSCOPE

+
+public static final int ENDSCOPE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+DIRECTIVE

+
+public static final int DIRECTIVE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+WHITESPACE

+
+public static final int WHITESPACE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MACRO

+
+public static final int MACRO
+
+
+
See Also:
Constant Field Values
+
+
+ +

+CLASSATTRIBUTE

+
+public static final int CLASSATTRIBUTE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+ENUM

+
+public static final int ENUM
+
+
+
See Also:
Constant Field Values
+
+
+ +

+PROTOTYPE

+
+public static final int PROTOTYPE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+TYPEDEF

+
+public static final int TYPEDEF
+
+
+
See Also:
Constant Field Values
+
+
+ +

+cppsource

+
+protected java.lang.String cppsource
+
+
+
+
+
+ +

+type

+
+protected int type
+
+
+
+
+ + + + + + + + + + + +
+Method Detail
+ +

+getType

+
+public int getType()
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Headers.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Headers.html new file mode 100644 index 0000000000..3d08c1df43 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Headers.html @@ -0,0 +1,403 @@ + + + + + + +Headers (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class Headers

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.Headers
+
+
+
All Implemented Interfaces:
FileActor
+
+
+
+
public class Headers
extends java.lang.Object
implements FileActor
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
Headers() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidactOnFile(java.io.File header, + java.io.File ignored, + int depth) + +
+           
+ booleanfailed() + +
+           
+ java.util.ListgetAllMethods() + +
+          Tuscany change - a method to get all the method signatures at once
+ java.util.ListgetMethods(java.lang.String method) + +
+           
+ booleanisClassName(java.lang.String text) + +
+           
+ booleanisInstanceMethod(Signature sign) + +
+           
+ booleanisStaticMethod(Signature sign) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Headers

+
+public Headers()
+
+
+ + + + + + + + +
+Method Detail
+ +

+actOnFile

+
+public void actOnFile(java.io.File header,
+                      java.io.File ignored,
+                      int depth)
+               throws java.lang.Exception
+
+
+
Specified by:
actOnFile in interface FileActor
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+failed

+
+public boolean failed()
+
+
+
+
+
+
+
+
+
+ +

+isInstanceMethod

+
+public boolean isInstanceMethod(Signature sign)
+
+
+
+
+
+
+
+
+
+ +

+isStaticMethod

+
+public boolean isStaticMethod(Signature sign)
+
+
+
+
+
+
+
+
+
+ +

+getMethods

+
+public java.util.List getMethods(java.lang.String method)
+
+
+
+
+
+
+
+
+
+ +

+getAllMethods

+
+public java.util.List getAllMethods()
+
+
Tuscany change - a method to get all the method signatures at once +

+

+
+
+
+
+
+
+
+ +

+isClassName

+
+public boolean isClassName(java.lang.String text)
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.html new file mode 100644 index 0000000000..0d48df2ac7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.html @@ -0,0 +1,297 @@ + + + + + + +InputCppSourceCode (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class InputCppSourceCode

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode
+
+
+
+
public class InputCppSourceCode
extends java.lang.Object
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
InputCppSourceCode(java.io.BufferedReader br, + java.lang.String name) + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetName() + +
+           
+ java.util.IteratorgetPartIterator() + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+InputCppSourceCode

+
+public InputCppSourceCode(java.io.BufferedReader br,
+                          java.lang.String name)
+                   throws java.lang.Exception
+
+
+ + + + + + + + +
+Method Detail
+ +

+getPartIterator

+
+public java.util.Iterator getPartIterator()
+
+
+
+
+
+
+ +

+getName

+
+public java.lang.String getName()
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/MethodPart.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/MethodPart.html new file mode 100644 index 0000000000..591a36b08c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/MethodPart.html @@ -0,0 +1,307 @@ + + + + + + +MethodPart (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class MethodPart

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.FilePart
+      extended byorg.apache.tuscany.sca.cpp.tools.common.MethodPart
+
+
+
+
public class MethodPart
extends FilePart
+ +

+A C or C++ method from a piece of source code. The method has a signature and + a body (the bit between the braces). +

+ +

+


+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.tuscany.sca.cpp.tools.common.FilePart
BEGINSCOPE, CLASSATTRIBUTE, COMMENT, cppsource, DIRECTIVE, ENDSCOPE, ENUM, FIELD, MACRO, METHOD, PROTOTYPE, type, TYPEDEF, UNKNOWN, WHITESPACE
+  + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ BodyPart[]getBodyParts() + +
+          Returns the method body as code snippets, each ending with a place where + a trace statement belongs.
+ java.lang.StringgetOriginalSignature() + +
+           
+ SignaturegetSignature() + +
+           
+ + + + + + + +
Methods inherited from class org.apache.tuscany.sca.cpp.tools.common.FilePart
getType, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getSignature

+
+public Signature getSignature()
+
+
+
+
+
+
+ +

+getOriginalSignature

+
+public java.lang.String getOriginalSignature()
+
+
+
+
+
+
+ +

+getBodyParts

+
+public BodyPart[] getBodyParts()
+                        throws ParsingException
+
+
Returns the method body as code snippets, each ending with a place where + a trace statement belongs. The end of the first code snippet is where the + entry trace should go. The end of every other snippet is a return from + the method. +

+

+ +
Throws: +
ParsingException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Options.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Options.html new file mode 100644 index 0000000000..57c1e42dab --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Options.html @@ -0,0 +1,294 @@ + + + + + + +Options (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class Options

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.Options
+
+
+
+
public class Options
extends java.lang.Object
+ +

+Command line options passed to a tool's main program. All command line + options should begin with a dash "-". Some command line options take a value + which is the next parameter after the option. Others do not. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static java.lang.ObjectgetOption(java.lang.String key) + +
+           
+static booleanquiet() + +
+           
+static voidset(java.lang.String[] args) + +
+          Initialises the options based on the args passed to main
+static booleanverbose() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+set

+
+public static void set(java.lang.String[] args)
+
+
Initialises the options based on the args passed to main +

+

+
+
+
+
+ +

+getOption

+
+public static java.lang.Object getOption(java.lang.String key)
+
+
+
+
+
+
+ +

+verbose

+
+public static boolean verbose()
+
+
+
+
+
+
+ +

+quiet

+
+public static boolean quiet()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Parameter.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Parameter.html new file mode 100644 index 0000000000..e61c2ae9ae --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Parameter.html @@ -0,0 +1,392 @@ + + + + + + +Parameter (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class Parameter

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.Parameter
+
+
+
+
public class Parameter
extends java.lang.Object
+ +

+A parameter from a method signature. The parameter is the datatype plus its + name but not its value. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ booleanequals(java.lang.Object o) + +
+          For two parameters to match their types must match or both be null, but + the parameters names don't have to match.
+ booleanfailed() + +
+           
+ java.lang.StringgetName() + +
+           
+ java.lang.StringgetType() + +
+           
+ java.lang.StringgetTypeWithoutConst() + +
+           
+ booleanisDotDotDot() + +
+           
+ booleanisVoid() + +
+           
+ java.util.Iteratoriterator() + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+failed

+
+public boolean failed()
+
+
+
+
+
+
+ +

+getType

+
+public java.lang.String getType()
+
+
+
+
+
+
+ +

+getTypeWithoutConst

+
+public java.lang.String getTypeWithoutConst()
+
+
+
+
+
+
+ +

+getName

+
+public java.lang.String getName()
+
+
+
+
+
+
+ +

+isVoid

+
+public boolean isVoid()
+
+
+
+
+
+
+ +

+isDotDotDot

+
+public boolean isDotDotDot()
+
+
+
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object o)
+
+
For two parameters to match their types must match or both be null, but + the parameters names don't have to match. Just because a parameter is + called something different in a header file as in the the source file + doesn't mean it's a different parameter. +

+

+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
+
+
+
+ +

+iterator

+
+public java.util.Iterator iterator()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/ParsingException.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/ParsingException.html new file mode 100644 index 0000000000..29585ad7ee --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/ParsingException.html @@ -0,0 +1,284 @@ + + + + + + +ParsingException (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class ParsingException

+
+java.lang.Object
+  extended byjava.lang.Throwable
+      extended byjava.lang.Exception
+          extended byorg.apache.tuscany.sca.cpp.tools.common.ParsingException
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
+
public class ParsingException
extends java.lang.Exception
+ +

+

+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Constructor Summary
ParsingException() + +
+           
ParsingException(java.lang.String message) + +
+           
ParsingException(java.lang.String message, + java.lang.Throwable cause) + +
+           
ParsingException(java.lang.Throwable cause) + +
+           
+  + + + + + + + + + + +
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ParsingException

+
+public ParsingException()
+
+
+
+ +

+ParsingException

+
+public ParsingException(java.lang.String message)
+
+
+
+ +

+ParsingException

+
+public ParsingException(java.lang.String message,
+                        java.lang.Throwable cause)
+
+
+
+ +

+ParsingException

+
+public ParsingException(java.lang.Throwable cause)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.html new file mode 100644 index 0000000000..bfd601d5b3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.html @@ -0,0 +1,309 @@ + + + + + + +PrototypePart (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class PrototypePart

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.FilePart
+      extended byorg.apache.tuscany.sca.cpp.tools.common.PrototypePart
+
+
+
+
public class PrototypePart
extends FilePart
+ +

+A function prototype in an include file and possibly in a class definition. +

+ +

+


+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.tuscany.sca.cpp.tools.common.FilePart
BEGINSCOPE, CLASSATTRIBUTE, COMMENT, cppsource, DIRECTIVE, ENDSCOPE, ENUM, FIELD, MACRO, METHOD, PROTOTYPE, type, TYPEDEF, UNKNOWN, WHITESPACE
+  + + + + + + + + + + +
+Constructor Summary
PrototypePart(java.lang.String s, + java.lang.String className, + java.lang.String namespace) + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ SignaturegetSignature() + +
+           
+ voidsetScope(java.lang.String scope) + +
+           
+ + + + + + + +
Methods inherited from class org.apache.tuscany.sca.cpp.tools.common.FilePart
getType, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+PrototypePart

+
+public PrototypePart(java.lang.String s,
+                     java.lang.String className,
+                     java.lang.String namespace)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getSignature

+
+public Signature getSignature()
+
+
+
+
+
+
+ +

+setScope

+
+public void setScope(java.lang.String scope)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Signature.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Signature.html new file mode 100644 index 0000000000..2a2eef3678 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Signature.html @@ -0,0 +1,584 @@ + + + + + + +Signature (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class Signature

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.Signature
+
+
+
+
public class Signature
extends java.lang.Object
+ +

+A C or C++ method signature with the ability to parse it. TODO: properly + support variable length argument lists using "..." TODO: passing or returning + function pointers (hopefully not needed) TODO: Cope with ~ Classname() +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ booleanequals(java.lang.Object obj) + +
+           
+ booleanfailed() + +
+           
+ java.lang.StringgetAttributes() + +
+           
+ java.lang.StringgetClassName() + +
+           
+ java.lang.StringgetMethodName() + +
+           
+ java.lang.StringgetNamespace() + +
+           
+ java.lang.StringgetOriginal() + +
+           
+ Parameter[]getParameters() + +
+           
+ ParametergetReturnType() + +
+           
+ java.lang.StringgetScope() + +
+           
+ java.lang.StringgetTrimClassName() + +
+           
+ booleanisConstructor() + +
+           
+ booleanisDestructor() + +
+           
+ intoriginalLength() + +
+           
+ voidsetNamespace(java.lang.String namespace) + +
+           
+ voidsetScope(java.lang.String scope) + +
+          Sets the scope, but only if the scope is not set by an explicit attribute + in the signature.
+ java.lang.StringtoString() + +
+           
+ java.lang.StringtoStringWithoutAttrs() + +
+           
+ booleantraceable() + +
+          Should this method be traced?
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getOriginal

+
+public java.lang.String getOriginal()
+
+
+
+
+
+
+ +

+originalLength

+
+public int originalLength()
+
+
+
+
+
+
+ +

+failed

+
+public boolean failed()
+
+
+
+
+
+
+ +

+getAttributes

+
+public java.lang.String getAttributes()
+
+
+
+
+
+
+ +

+getClassName

+
+public java.lang.String getClassName()
+
+
+
+
+
+
+ +

+setNamespace

+
+public void setNamespace(java.lang.String namespace)
+
+
+
Parameters:
namespace - The namespace to set.
+
+
+
+ +

+getNamespace

+
+public java.lang.String getNamespace()
+
+
+ +
Returns:
Returns the namespace.
+
+
+
+ +

+getTrimClassName

+
+public java.lang.String getTrimClassName()
+
+
+
+
+
+
+ +

+getMethodName

+
+public java.lang.String getMethodName()
+
+
+
+
+
+
+ +

+getReturnType

+
+public Parameter getReturnType()
+
+
+
+
+
+
+ +

+getParameters

+
+public Parameter[] getParameters()
+
+
+
+
+
+
+ +

+isConstructor

+
+public boolean isConstructor()
+
+
+
+
+
+
+ +

+isDestructor

+
+public boolean isDestructor()
+
+
+
+
+
+
+ +

+getScope

+
+public java.lang.String getScope()
+
+
+
+
+
+
+ +

+setScope

+
+public void setScope(java.lang.String scope)
+
+
Sets the scope, but only if the scope is not set by an explicit attribute + in the signature. +

+

+
+
+
+
+ +

+traceable

+
+public boolean traceable()
+
+
Should this method be traced? +

+

+
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object obj)
+
+
+
+
+
+
+ +

+toStringWithoutAttrs

+
+public java.lang.String toStringWithoutAttrs()
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Utils.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Utils.html new file mode 100644 index 0000000000..8571178678 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Utils.html @@ -0,0 +1,411 @@ + + + + + + +Utils (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.common +
+Class Utils

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.Utils
+
+
+
+
public final class Utils
extends java.lang.Object
+ +

+Static utility methods. Some of these methods are similar to the methods on + java.lang.String except they are aware of C/C++ comments and string literals. + + TODO: Many of these methods would perform better using StringBuffer not + String +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.util.SetcPrimitives + +
+           
+static java.util.SetcTypeQualifiers + +
+           
+static java.lang.Stringwhitespace + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static voidoutputDebugString(java.lang.String line) + +
+           
+static voidrude(java.lang.String reason) + +
+          This method reports an error level problem
+static voidrude(java.lang.String reason, + java.lang.String filename, + int lineno, + java.lang.String codefragment) + +
+          Failed to parse the source code for some reason.
+static booleansafeEquals(java.lang.Object o1, + java.lang.Object o2) + +
+          A better method than .equals() because it doesn't NullPointerException + when one of the parameters is null.
+static voidscreenMessage(java.lang.String msg) + +
+          This method reports an error level problem
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+cPrimitives

+
+public static final java.util.Set cPrimitives
+
+
+
+
+
+ +

+cTypeQualifiers

+
+public static final java.util.Set cTypeQualifiers
+
+
+
+
+
+ +

+whitespace

+
+public static final java.lang.String whitespace
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + + + + +
+Method Detail
+ +

+rude

+
+public static void rude(java.lang.String reason,
+                        java.lang.String filename,
+                        int lineno,
+                        java.lang.String codefragment)
+                 throws ParsingException
+
+
Failed to parse the source code for some reason. This method prints out a + suitably rude message, and then what? I haven't quite decided yet. + + TODO: Do something sensible here like throw an Exception which will give + up on this file completely and tidy up the output file. It may be just + too dangerous to try to carry on. But we need to fail in such a way that + the build system knows that we've failed for this file and can build this + file without trace. +

+

+ +
Throws: +
ParsingException
+
+
+
+ +

+rude

+
+public static void rude(java.lang.String reason)
+                 throws ParsingException
+
+
This method reports an error level problem +

+

+
Parameters:
reason - why we have an error level problem +
Throws: +
ParsingException
+
+
+
+ +

+screenMessage

+
+public static void screenMessage(java.lang.String msg)
+
+
This method reports an error level problem +

+

+
+
+
+
+ +

+safeEquals

+
+public static boolean safeEquals(java.lang.Object o1,
+                                 java.lang.Object o2)
+
+
A better method than .equals() because it doesn't NullPointerException + when one of the parameters is null. +

+

+
+
+
+
+ +

+outputDebugString

+
+public static void outputDebugString(java.lang.String line)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/BodyPart.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/BodyPart.html new file mode 100644 index 0000000000..109d6c539a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/BodyPart.html @@ -0,0 +1,177 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.BodyPart (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.BodyPart

+
+ + + + + + + + + +
+Packages that use BodyPart
org.apache.tuscany.sca.cpp.tools.common
+ + 
+  +

+ + + + + +
+Uses of BodyPart in org.apache.tuscany.sca.cpp.tools.common
+  +

+ + + + + + + + +
Methods in org.apache.tuscany.sca.cpp.tools.common that return BodyPart +
+ BodyPart[]MethodPart.getBodyParts() + +
+          Returns the method body as code snippets, each ending with a place where + a trace statement belongs.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/CParsingTool.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/CParsingTool.html new file mode 100644 index 0000000000..36cb776f02 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/CParsingTool.html @@ -0,0 +1,186 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.CParsingTool (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.CParsingTool

+
+ + + + + + + + + +
+Packages that use CParsingTool
org.apache.tuscany.sca.cpp.tools.services
+ + 
+  +

+ + + + + +
+Uses of CParsingTool in org.apache.tuscany.sca.cpp.tools.services
+  +

+ + + + + + + + + + + + +
Subclasses of CParsingTool in org.apache.tuscany.sca.cpp.tools.services +
+ classScagen + +
+          This is the main top level class.
+ classServicesGenerator + +
+          This class is the main class that handles the function that parses a C++ + interface header file into a DOM that holds all the semantic information + about the interface - method names, parameters and return values.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Configuration.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Configuration.html new file mode 100644 index 0000000000..bb2432666e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Configuration.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.Configuration (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.Configuration

+
+No usage of org.apache.tuscany.sca.cpp.tools.common.Configuration +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/DirectoryTree.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/DirectoryTree.html new file mode 100644 index 0000000000..4140168273 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/DirectoryTree.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.DirectoryTree

+
+No usage of org.apache.tuscany.sca.cpp.tools.common.DirectoryTree +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FileActor.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FileActor.html new file mode 100644 index 0000000000..3ab90283bd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FileActor.html @@ -0,0 +1,256 @@ + + + + + + +Uses of Interface org.apache.tuscany.sca.cpp.tools.common.FileActor (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Interface
org.apache.tuscany.sca.cpp.tools.common.FileActor

+
+ + + + + + + + + + + + + +
+Packages that use FileActor
org.apache.tuscany.sca.cpp.tools.common
+ + 
org.apache.tuscany.sca.cpp.tools.services
+ + 
+  +

+ + + + + +
+Uses of FileActor in org.apache.tuscany.sca.cpp.tools.common
+  +

+ + + + + + + + +
Classes in org.apache.tuscany.sca.cpp.tools.common that implement FileActor +
+ classHeaders + +
+           
+  +

+ + + + + + + +
Constructors in org.apache.tuscany.sca.cpp.tools.common with parameters of type FileActor +
DirectoryTree(FileActor actor, + java.util.Set extensions) + +
+           
+  +

+ + + + + +
+Uses of FileActor in org.apache.tuscany.sca.cpp.tools.services
+  +

+ + + + + + + + + + + + + + + + +
Classes in org.apache.tuscany.sca.cpp.tools.services that implement FileActor +
+ classComponentTypeFileHandler + +
+          The purpose of this class is to specialise the map of XML element handlers + for a XXX.componentType file that is used by the XMLFileActor
+ classModuleOrFragmentFileHandler + +
+          The purpose of this class is purely to specialise the handler map to one with + a specific ComponentDomNodeHandler.
+ classXMLFileActor + +
+          The purpose of this abstract class is to provide a home for the standard + processing that is involved in turning a XML file into an internal DOM.
+  +

+ + + + + + + +
Constructors in org.apache.tuscany.sca.cpp.tools.services with parameters of type FileActor +
DirectoryScanner(FileActor actor, + java.util.Set extensions) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FilePart.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FilePart.html new file mode 100644 index 0000000000..aa4796486e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FilePart.html @@ -0,0 +1,184 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.FilePart (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.FilePart

+
+ + + + + + + + + +
+Packages that use FilePart
org.apache.tuscany.sca.cpp.tools.common
+ + 
+  +

+ + + + + +
+Uses of FilePart in org.apache.tuscany.sca.cpp.tools.common
+  +

+ + + + + + + + + + + + +
Subclasses of FilePart in org.apache.tuscany.sca.cpp.tools.common +
+ classMethodPart + +
+          A C or C++ method from a piece of source code.
+ classPrototypePart + +
+          A function prototype in an include file and possibly in a class definition.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Headers.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Headers.html new file mode 100644 index 0000000000..60190bbada --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Headers.html @@ -0,0 +1,192 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.Headers (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.Headers

+
+ + + + + + + + + +
+Packages that use Headers
org.apache.tuscany.sca.cpp.tools.common
+ + 
+  +

+ + + + + +
+Uses of Headers in org.apache.tuscany.sca.cpp.tools.common
+  +

+ + + + + + + + +
Fields in org.apache.tuscany.sca.cpp.tools.common declared as Headers +
+protected  HeadersCParsingTool.headers + +
+           
+  +

+ + + + + + + + +
Methods in org.apache.tuscany.sca.cpp.tools.common that return Headers +
+protected  HeadersCParsingTool.preparseHeaders(java.lang.String option) + +
+          Read in any include files before the main processing of the tool is done.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/InputCppSourceCode.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/InputCppSourceCode.html new file mode 100644 index 0000000000..463968468c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/InputCppSourceCode.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode

+
+No usage of org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/MethodPart.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/MethodPart.html new file mode 100644 index 0000000000..19b474a7e7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/MethodPart.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.MethodPart (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.MethodPart

+
+No usage of org.apache.tuscany.sca.cpp.tools.common.MethodPart +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Options.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Options.html new file mode 100644 index 0000000000..040187072f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Options.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.Options (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.Options

+
+No usage of org.apache.tuscany.sca.cpp.tools.common.Options +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Parameter.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Parameter.html new file mode 100644 index 0000000000..a91a2c687b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Parameter.html @@ -0,0 +1,192 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.Parameter (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.Parameter

+
+ + + + + + + + + +
+Packages that use Parameter
org.apache.tuscany.sca.cpp.tools.common
+ + 
+  +

+ + + + + +
+Uses of Parameter in org.apache.tuscany.sca.cpp.tools.common
+  +

+ + + + + + + + + + + + + + + + +
Methods in org.apache.tuscany.sca.cpp.tools.common that return Parameter +
+ ParameterSignature.getReturnType() + +
+           
+ Parameter[]Signature.getParameters() + +
+           
+ ParameterBodyPart.getCaughtValue() + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/ParsingException.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/ParsingException.html new file mode 100644 index 0000000000..dedd25a4f2 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/ParsingException.html @@ -0,0 +1,196 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.ParsingException (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.ParsingException

+
+ + + + + + + + + +
+Packages that use ParsingException
org.apache.tuscany.sca.cpp.tools.common
+ + 
+  +

+ + + + + +
+Uses of ParsingException in org.apache.tuscany.sca.cpp.tools.common
+  +

+ + + + + + + + + + + + + + + + +
Methods in org.apache.tuscany.sca.cpp.tools.common that throw ParsingException +
+static voidUtils.rude(java.lang.String reason, + java.lang.String filename, + int lineno, + java.lang.String codefragment) + +
+          Failed to parse the source code for some reason.
+static voidUtils.rude(java.lang.String reason) + +
+          This method reports an error level problem
+ BodyPart[]MethodPart.getBodyParts() + +
+          Returns the method body as code snippets, each ending with a place where + a trace statement belongs.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/PrototypePart.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/PrototypePart.html new file mode 100644 index 0000000000..22c4575fab --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/PrototypePart.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.PrototypePart (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.PrototypePart

+
+No usage of org.apache.tuscany.sca.cpp.tools.common.PrototypePart +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Signature.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Signature.html new file mode 100644 index 0000000000..228807ba8a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Signature.html @@ -0,0 +1,208 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.Signature (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.Signature

+
+ + + + + + + + + +
+Packages that use Signature
org.apache.tuscany.sca.cpp.tools.common
+ + 
+  +

+ + + + + +
+Uses of Signature in org.apache.tuscany.sca.cpp.tools.common
+  +

+ + + + + + + + + + + + +
Methods in org.apache.tuscany.sca.cpp.tools.common that return Signature +
+ SignaturePrototypePart.getSignature() + +
+           
+ SignatureMethodPart.getSignature() + +
+           
+  +

+ + + + + + + + + + + + +
Methods in org.apache.tuscany.sca.cpp.tools.common with parameters of type Signature +
+ booleanHeaders.isInstanceMethod(Signature sign) + +
+           
+ booleanHeaders.isStaticMethod(Signature sign) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Utils.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Utils.html new file mode 100644 index 0000000000..cd93afeeb6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Utils.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.common.Utils (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.common.Utils

+
+No usage of org.apache.tuscany.sca.cpp.tools.common.Utils +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-frame.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-frame.html new file mode 100644 index 0000000000..2e0e528f32 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-frame.html @@ -0,0 +1,78 @@ + + + + + + +org.apache.tuscany.sca.cpp.tools.common (SCA for C++ Tools) + + + + + + + + + + + +org.apache.tuscany.sca.cpp.tools.common + + + + +
+Interfaces  + +
+FileActor
+ + + + + + +
+Classes  + +
+BodyPart +
+Configuration +
+CParsingTool +
+DirectoryTree +
+FilePart +
+Headers +
+InputCppSourceCode +
+MethodPart +
+Options +
+Parameter +
+PrototypePart +
+Signature +
+Utils
+ + + + + + +
+Exceptions  + +
+ParsingException
+ + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-summary.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-summary.html new file mode 100644 index 0000000000..3fa24db0cd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-summary.html @@ -0,0 +1,273 @@ + + + + + + +org.apache.tuscany.sca.cpp.tools.common (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+Package org.apache.tuscany.sca.cpp.tools.common +

+
+ + +

+See: +
+          Description +

+ + + + + + + + + +
+Interface Summary
FileActorDirectoryTree calls this interface to allow implementations of this interface + to act on a file in the directory tree.
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
BodyPartA snippet of C or C++ source code.
ConfigurationEncapsulates the tool's configuration file
CParsingToolThe superclass of tools that parse C/C++ code.
DirectoryTree 
FilePartA piece of C++ source code
Headers 
InputCppSourceCode 
MethodPartA C or C++ method from a piece of source code.
OptionsCommand line options passed to a tool's main program.
ParameterA parameter from a method signature.
PrototypePartA function prototype in an include file and possibly in a class definition.
SignatureA C or C++ method signature with the ability to parse it.
UtilsStatic utility methods.
+  + +

+ + + + + + + + + +
+Exception Summary
ParsingException 
+  + +

+

+Package org.apache.tuscany.sca.cpp.tools.common Description +

+ +

+

+ +

Overview

+ +This package can be used to reflect across C++ source code. It can produce +a network of descriptive objects describing C++ Headers, Signatures, Parameters and so +on that it finds in a given location of the file system. +Each of the descriptive objects has a set of getters that return either +the descriptive child objects, or for primitives, the string that represents the actual +value such as "int" or "myFunction". +

+There are also various utility methods that help with navigating the information, for example the Signature +class has an isConstructor method. The API Javadoc contains further details of these. +

+The package can scan a directory using a file mask to identify what types +of files are to be scanned. In this application we are interested only +in the function prototypes in the C++ header files. +

+The implementation was originated using some java code that was also +contributed to the Apache org.apache.axis.tools.common package. Care +has been taken that the original code was not sourced via Apache. If +this project is adopted by Apache then it is very possible that this +package could be merged with or made obsolete by org.apache.axis.tools.common +and because of this the design and interfaces have been preserved from +the original code as much as possible. + +

+

+

+ +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-tree.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-tree.html new file mode 100644 index 0000000000..d6ca34c836 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-tree.html @@ -0,0 +1,162 @@ + + + + + + +org.apache.tuscany.sca.cpp.tools.common Class Hierarchy (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Hierarchy For Package org.apache.tuscany.sca.cpp.tools.common +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class org.apache.tuscany.sca.cpp.tools.common.BodyPart
    • class org.apache.tuscany.sca.cpp.tools.common.Configuration
    • class org.apache.tuscany.sca.cpp.tools.common.CParsingTool
    • class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree
    • class org.apache.tuscany.sca.cpp.tools.common.FilePart
        +
      • class org.apache.tuscany.sca.cpp.tools.common.MethodPart
      • class org.apache.tuscany.sca.cpp.tools.common.PrototypePart
      +
    • class org.apache.tuscany.sca.cpp.tools.common.Headers (implements org.apache.tuscany.sca.cpp.tools.common.FileActor) +
    • class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode
    • class org.apache.tuscany.sca.cpp.tools.common.Options
    • class org.apache.tuscany.sca.cpp.tools.common.Parameter
    • class org.apache.tuscany.sca.cpp.tools.common.Signature
    • class java.lang.Throwable (implements java.io.Serializable) +
        +
      • class java.lang.Exception +
      +
    • class org.apache.tuscany.sca.cpp.tools.common.Utils
    +
+

+Interface Hierarchy +

+
    +
  • interface org.apache.tuscany.sca.cpp.tools.common.FileActor
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-use.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-use.html new file mode 100644 index 0000000000..36fda7a829 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-use.html @@ -0,0 +1,231 @@ + + + + + + +Uses of Package org.apache.tuscany.sca.cpp.tools.common (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Package
org.apache.tuscany.sca.cpp.tools.common

+
+ + + + + + + + + + + + + +
+Packages that use org.apache.tuscany.sca.cpp.tools.common
org.apache.tuscany.sca.cpp.tools.common
+ + 
org.apache.tuscany.sca.cpp.tools.services
+ + 
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Classes in org.apache.tuscany.sca.cpp.tools.common used by org.apache.tuscany.sca.cpp.tools.common
BodyPart + +
+          A snippet of C or C++ source code.
FileActor + +
+          DirectoryTree calls this interface to allow implementations of this interface + to act on a file in the directory tree.
FilePart + +
+          A piece of C++ source code
Headers + +
+           
Parameter + +
+          A parameter from a method signature.
ParsingException + +
+           
Signature + +
+          A C or C++ method signature with the ability to parse it.
+  +

+ + + + + + + + + + + +
+Classes in org.apache.tuscany.sca.cpp.tools.common used by org.apache.tuscany.sca.cpp.tools.services
CParsingTool + +
+          The superclass of tools that parse C/C++ code.
FileActor + +
+          DirectoryTree calls this interface to allow implementations of this interface + to act on a file in the directory tree.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.html new file mode 100644 index 0000000000..84b07c500a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.html @@ -0,0 +1,303 @@ + + + + + + +ComponentDomNodeHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class ComponentDomNodeHandler

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
+      extended byorg.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler
+
+
+
All Implemented Interfaces:
DomNodeHandler
+
+
+
+
public class ComponentDomNodeHandler
extends GenericDomNodeHandler
+ +

+This class will do the required processing for the element of a + sca module or fragment file. +

+ +

+


+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
ELEMENT
+  + + + + + + + + + + +
+Constructor Summary
ComponentDomNodeHandler() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ voidhandleNode(org.w3c.dom.Node node, + java.lang.String contextXPath, + java.util.Map handlers, + java.util.Map parameters) + +
+          This method will do the "normal" processing and then trigger a call to + processComponentNode.
+ + + + + + + +
Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
handleChildElements, mapNodeToHandlerAndHandle, transferAttrsToParameters
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ComponentDomNodeHandler

+
+public ComponentDomNodeHandler()
+
+
+ + + + + + + + +
+Method Detail
+ +

+handleNode

+
+public void handleNode(org.w3c.dom.Node node,
+                       java.lang.String contextXPath,
+                       java.util.Map handlers,
+                       java.util.Map parameters)
+
+
This method will do the "normal" processing and then trigger a call to + processComponentNode. +

+

+
Specified by:
handleNode in interface DomNodeHandler
Overrides:
handleNode in class GenericDomNodeHandler
+
+
+
Parameters:
node - the node being processed
contextXPath - the XPath to the node
handlers - the map pf element names to DomNodeHandlers
parameters - a map of XPaths to parameters values found so far
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.html new file mode 100644 index 0000000000..666f530637 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.html @@ -0,0 +1,299 @@ + + + + + + +ComponentTypeFileHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class ComponentTypeFileHandler

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.services.XMLFileActor
+      extended byorg.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler
+
+
+
All Implemented Interfaces:
FileActor
+
+
+
+
public class ComponentTypeFileHandler
extends XMLFileActor
+ +

+The purpose of this class is to specialise the map of XML element handlers + for a XXX.componentType file that is used by the XMLFileActor +

+ +

+


+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor
failed, handlers, parameters, transformerFactory
+  + + + + + + + + + + +
+Constructor Summary
ComponentTypeFileHandler() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ voidhandleComponentTypeFile(java.io.File componentTypeXML, + java.io.File target) + +
+          This method just exists to add the default starting depth of 1 to the + underlying actOnFile interface
+ + + + + + + +
Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor
actOnFile, createDomFromXMLFile, getFilesActedOn, getParameter, setParameter
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ComponentTypeFileHandler

+
+public ComponentTypeFileHandler()
+
+
+ + + + + + + + +
+Method Detail
+ +

+handleComponentTypeFile

+
+public void handleComponentTypeFile(java.io.File componentTypeXML,
+                                    java.io.File target)
+                             throws java.lang.Exception
+
+
This method just exists to add the default starting depth of 1 to the + underlying actOnFile interface +

+

+
Parameters:
componentTypeXML -
target - +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.html new file mode 100644 index 0000000000..c7c82a3cc0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.html @@ -0,0 +1,271 @@ + + + + + + +DirectoryScanner (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class DirectoryScanner

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.services.DirectoryScanner
+
+
+
+
public class DirectoryScanner
extends java.lang.Object
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DirectoryScanner(FileActor actor, + java.util.Set extensions) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ voidwalkTree(java.io.File source, + java.io.File target, + int depth) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DirectoryScanner

+
+public DirectoryScanner(FileActor actor,
+                        java.util.Set extensions)
+
+
+ + + + + + + + +
+Method Detail
+ +

+walkTree

+
+public void walkTree(java.io.File source,
+                     java.io.File target,
+                     int depth)
+              throws java.lang.Exception
+
+
+
Parameters:
source - The module root directory
target - The directory that will holdthe generated output
depth - The depth from the inial starting point, not significant for + the Scagen tool as we are only interested in the module root + directory but present due to the inherited actOnFile interface + whcih come from the oreg.apache.axis.tools practice This + interface has been left unchanged as we hope to reconverge the + parser here with the original one once the changes are fed + back into the original code. +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomHandler.html new file mode 100644 index 0000000000..cf6f2e436c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomHandler.html @@ -0,0 +1,341 @@ + + + + + + +DomHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class DomHandler

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
+      extended byorg.apache.tuscany.sca.cpp.tools.services.DomHandler
+
+
+
All Implemented Interfaces:
DomNodeHandler
+
+
+
+
public class DomHandler
extends GenericDomNodeHandler
+ +

+The purpose of this class it to provide a generic class that can handle both + a DOM and a DOM node. +

+ +

+


+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
ELEMENT
+  + + + + + + + + + + +
+Constructor Summary
DomHandler() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+static voidhandleDom(org.w3c.dom.Document dom, + java.util.Map handlers, + java.util.Map parameters) + +
+          This method will run through the initial level of the DOM using the + handlers map
+ voidhandleNode(org.w3c.dom.Node node, + java.lang.String contextXPath, + java.util.Map handlers, + java.util.Map parameters) + +
+          This method will place the attributes in this node into the parameter + map keyed by the XPath and recursively continue processing for any + sub-elements of the node.
+ + + + + + + +
Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
handleChildElements, mapNodeToHandlerAndHandle, transferAttrsToParameters
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DomHandler

+
+public DomHandler()
+
+
+ + + + + + + + +
+Method Detail
+ +

+handleDom

+
+public static void handleDom(org.w3c.dom.Document dom,
+                             java.util.Map handlers,
+                             java.util.Map parameters)
+
+
This method will run through the initial level of the DOM using the + handlers map +

+

+
Parameters:
dom - the document being consumed
handlers - the map from element name to node handler
parameters - a map of parameters - this is often used by a handler to place + a name-value pair, the name is often an Xpath representation + of the location of the data in the DOM but handlers are free + to use whatever they like - the contextXpath is generated as + an Xpath prefix for those handlers that wish to use it.
+
+
+
+ +

+handleNode

+
+public void handleNode(org.w3c.dom.Node node,
+                       java.lang.String contextXPath,
+                       java.util.Map handlers,
+                       java.util.Map parameters)
+
+
Description copied from class: GenericDomNodeHandler
+
This method will place the attributes in this node into the parameter + map keyed by the XPath and recursively continue processing for any + sub-elements of the node. +

+

+
Specified by:
handleNode in interface DomNodeHandler
Overrides:
handleNode in class GenericDomNodeHandler
+
+
+
Parameters:
node - The DOM node being consumed
contextXPath - The XPath to this node
handlers - The map from element name to node handler
parameters - A map of parameters - this is often used by a handler to place + a name-value pair, the name is often an Xpath representation + of the location of the data in the DOM but handlers are free + to use whatever they like - the contextXpath is generated as + an Xpath prefix for those handlers that wish to use it.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.html new file mode 100644 index 0000000000..b62f5a4694 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.html @@ -0,0 +1,262 @@ + + + + + + +DomNodeHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Interface DomNodeHandler

+
+
All Known Implementing Classes:
GenericDomNodeHandler
+
+
+
+
public interface DomNodeHandler
+ +

+


+ +

+ + + + + + + + + + + + + + +
+Field Summary
+static intELEMENT + +
+           
+  + + + + + + + + + + + + + + +
+Method Summary
+ voidhandleNode(org.w3c.dom.Node node, + java.lang.String contextXPath, + java.util.Map handlers, + java.util.Map parameters) + +
+          An interface for classes that can process DOM nodes.
+  +

+ + + + + + + + +
+Field Detail
+ +

+ELEMENT

+
+public static final int ELEMENT
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + + + + +
+Method Detail
+ +

+handleNode

+
+public void handleNode(org.w3c.dom.Node node,
+                       java.lang.String contextXPath,
+                       java.util.Map handlers,
+                       java.util.Map parameters)
+
+
An interface for classes that can process DOM nodes. +

+

+
Parameters:
node - the DOM node being consumed
contextXPath - the XPath to this node
handlers - The map from element name to node handler
parameters - A map of parameters - this is often used by a handler to place + a name-value pair, the name is often an Xpath representation of the + location of the data in the DOM but handlers are free to use whatever + they like - the contextXpath is generated as an Xpath prefix for those + handlers that wish to use it.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.html new file mode 100644 index 0000000000..2a7a65c242 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.html @@ -0,0 +1,396 @@ + + + + + + +GenericDomNodeHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class GenericDomNodeHandler

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
+
+
+
All Implemented Interfaces:
DomNodeHandler
+
+
+
Direct Known Subclasses:
ComponentDomNodeHandler, DomHandler, ReferenceDomNodeHandler, ServiceDomNodeHandler
+
+
+
+
public class GenericDomNodeHandler
extends java.lang.Object
implements DomNodeHandler
+ +

+


+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
ELEMENT
+  + + + + + + + + + + +
+Constructor Summary
GenericDomNodeHandler() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidhandleChildElements(org.w3c.dom.Node node, + java.lang.String contextPath, + java.util.Map handlers, + java.util.Map parameters) + +
+          This method will iterate through the DOM node's children and call the + appropriate handler for each one.
+ voidhandleNode(org.w3c.dom.Node node, + java.lang.String contextXPath, + java.util.Map handlers, + java.util.Map parameters) + +
+          This method will place the attributes in this node into the parameter + map keyed by the XPath and recursively continue processing for any + sub-elements of the node.
+static voidmapNodeToHandlerAndHandle(org.w3c.dom.Node node, + java.lang.String contextPath, + java.util.Map handlers, + java.util.Map parameters) + +
+          This method will resolve any registered handler for a particular DOM + element and call the handleNode method on it.
+ voidtransferAttrsToParameters(org.w3c.dom.Node node, + java.lang.String contextPath, + java.util.Map parameters) + +
+          This method parses the DOM attributes into name value pairs in the + parameter map each valued keyed by its XPath.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+GenericDomNodeHandler

+
+public GenericDomNodeHandler()
+
+
+ + + + + + + + +
+Method Detail
+ +

+transferAttrsToParameters

+
+public void transferAttrsToParameters(org.w3c.dom.Node node,
+                                      java.lang.String contextPath,
+                                      java.util.Map parameters)
+
+
This method parses the DOM attributes into name value pairs in the + parameter map each valued keyed by its XPath. +

+

+
+
+
+
Parameters:
node - the DOM node being processed
contextPath - the XPath to the DOM node being processed
parameters - a scratchpad map of name value pairs
+
+
+
+ +

+handleChildElements

+
+public void handleChildElements(org.w3c.dom.Node node,
+                                java.lang.String contextPath,
+                                java.util.Map handlers,
+                                java.util.Map parameters)
+
+
This method will iterate through the DOM node's children and call the + appropriate handler for each one. +

+

+
+
+
+
Parameters:
node - the DOM node being processed
contextPath - the XPath to the DOM node being processed
handlers - a map of element name to handler objects
parameters - a scratchpad map of name value pairs
+
+
+
+ +

+mapNodeToHandlerAndHandle

+
+public static void mapNodeToHandlerAndHandle(org.w3c.dom.Node node,
+                                             java.lang.String contextPath,
+                                             java.util.Map handlers,
+                                             java.util.Map parameters)
+
+
This method will resolve any registered handler for a particular DOM + element and call the handleNode method on it. If the handlers map has a + mapping from "entity" to an instance of EntityHandler which implements + the DomNodeHandler interface then any node that looks like + + + Will be passed to the EntityHandler to process. +

+

+
+
+
+
Parameters:
node - the DOM node being processed
contextPath - the XPath to the DOM node being processed
handlers - a map of element name to handler objects
parameters - a scratchpad map of name value pairs
+
+
+
+ +

+handleNode

+
+public void handleNode(org.w3c.dom.Node node,
+                       java.lang.String contextXPath,
+                       java.util.Map handlers,
+                       java.util.Map parameters)
+
+
This method will place the attributes in this node into the parameter + map keyed by the XPath and recursively continue processing for any + sub-elements of the node. +

+

+
Specified by:
handleNode in interface DomNodeHandler
+
+
+
Parameters:
node - The DOM node being consumed
contextXPath - The XPath to this node
handlers - The map from element name to node handler
parameters - A map of parameters - this is often used by a handler to place + a name-value pair, the name is often an Xpath representation + of the location of the data in the DOM but handlers are free + to use whatever they like - the contextXpath is generated as + an Xpath prefix for those handlers that wish to use it.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/LittleClass.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/LittleClass.html new file mode 100644 index 0000000000..3562f99e07 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/LittleClass.html @@ -0,0 +1,231 @@ + + + + + + +LittleClass (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class LittleClass

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.services.LittleClass
+
+
+
+
public class LittleClass
extends java.lang.Object
+ +

+This class is just a convenient application class that is loaded in order to + get the application class loader. We are interested in the application class + loader as we use its getResource method to resolve XML files independantly of + where they are. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
LittleClass() + +
+           
+  + + + + + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+LittleClass

+
+public LittleClass()
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.html new file mode 100644 index 0000000000..71448f7f04 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.html @@ -0,0 +1,258 @@ + + + + + + +ModuleOrFragmentFileHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class ModuleOrFragmentFileHandler

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.services.XMLFileActor
+      extended byorg.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler
+
+
+
All Implemented Interfaces:
FileActor
+
+
+
+
public class ModuleOrFragmentFileHandler
extends XMLFileActor
+ +

+The purpose of this class is purely to specialise the handler map to one with + a specific ComponentDomNodeHandler. +

+ +

+


+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor
failed, handlers, parameters, transformerFactory
+  + + + + + + + + + + +
+Constructor Summary
ModuleOrFragmentFileHandler() + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor
actOnFile, createDomFromXMLFile, getFilesActedOn, getParameter, setParameter
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ModuleOrFragmentFileHandler

+
+public ModuleOrFragmentFileHandler()
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.html new file mode 100644 index 0000000000..506b804627 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.html @@ -0,0 +1,311 @@ + + + + + + +ReferenceDomNodeHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class ReferenceDomNodeHandler

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
+      extended byorg.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler
+
+
+
All Implemented Interfaces:
DomNodeHandler
+
+
+
+
public class ReferenceDomNodeHandler
extends GenericDomNodeHandler
+ +

+The purpose of this class is to process a element in a + componentType file and then trigger a call to the method in ServicesGenerator + to process the interface header file +

+ +

+


+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
ELEMENT
+  + + + + + + + + + + +
+Constructor Summary
ReferenceDomNodeHandler() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ voidhandleNode(org.w3c.dom.Node node, + java.lang.String contextXPath, + java.util.Map handlers, + java.util.Map parameters) + +
+          This method will place the attributes in this node into the parameter + map keyed by the XPath and recursively continue processing for any + sub-elements of the node.
+ + + + + + + +
Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
handleChildElements, mapNodeToHandlerAndHandle, transferAttrsToParameters
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ReferenceDomNodeHandler

+
+public ReferenceDomNodeHandler()
+
+
+ + + + + + + + +
+Method Detail
+ +

+handleNode

+
+public void handleNode(org.w3c.dom.Node node,
+                       java.lang.String contextXPath,
+                       java.util.Map handlers,
+                       java.util.Map parameters)
+
+
Description copied from class: GenericDomNodeHandler
+
This method will place the attributes in this node into the parameter + map keyed by the XPath and recursively continue processing for any + sub-elements of the node. +

+

+
Specified by:
handleNode in interface DomNodeHandler
Overrides:
handleNode in class GenericDomNodeHandler
+
+
+
Parameters:
node - The DOM node being consumed
contextXPath - The XPath to this node
handlers - The map from element name to node handler
parameters - A map of parameters - this is often used by a handler to place + a name-value pair, the name is often an Xpath representation + of the location of the data in the DOM but handlers are free + to use whatever they like - the contextXpath is generated as + an Xpath prefix for those handlers that wish to use it.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/Scagen.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/Scagen.html new file mode 100644 index 0000000000..08c200c9e8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/Scagen.html @@ -0,0 +1,344 @@ + + + + + + +Scagen (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class Scagen

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.CParsingTool
+      extended byorg.apache.tuscany.sca.cpp.tools.services.Scagen
+
+
+
+
public class Scagen
extends CParsingTool
+ +

+This is the main top level class. Its purpose is to create a + Module/FragmentFile handler visitor and pass it to a DirectoryScanner for + processing. +

+ +

+


+ +

+ + + + + + + + + + + + + + +
+Field Summary
+static java.util.SetMODULE_EXTENSIONS + +
+           
+ + + + + + + +
Fields inherited from class org.apache.tuscany.sca.cpp.tools.common.CParsingTool
failed, headers
+  + + + + + + + + + + +
+Constructor Summary
Scagen(java.lang.String[] args) + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+static voidmain(java.lang.String[] args) + +
+          Take a directory scanning class and create a vistor that knows how to + handle any sca.module or .fragment that the scanner comes across.
+protected  voidprintUsage() + +
+          Provide a hint to the user on how to call this class
+ + + + + + + +
Methods inherited from class org.apache.tuscany.sca.cpp.tools.common.CParsingTool
checkFile, maybeCreateDirectory, preparseHeaders
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+MODULE_EXTENSIONS

+
+public static java.util.Set MODULE_EXTENSIONS
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+Scagen

+
+public Scagen(java.lang.String[] args)
+       throws java.lang.Exception
+
+ +
Throws: +
java.lang.Exception
+ + + + + + + + +
+Method Detail
+ +

+main

+
+public static void main(java.lang.String[] args)
+
+
Take a directory scanning class and create a vistor that knows how to + handle any sca.module or .fragment that the scanner comes across. +

+

+
Parameters:
args - standard main args. THe values we expect in this class are + scagen -dir input_dir -output output_dir
+
+
+
+ +

+printUsage

+
+protected void printUsage()
+
+
Provide a hint to the user on how to call this class +

+

+
Overrides:
printUsage in class CParsingTool
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.html new file mode 100644 index 0000000000..5970989783 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.html @@ -0,0 +1,305 @@ + + + + + + +ServiceDomNodeHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class ServiceDomNodeHandler

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
+      extended byorg.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler
+
+
+
All Implemented Interfaces:
DomNodeHandler
+
+
+
+
public class ServiceDomNodeHandler
extends GenericDomNodeHandler
+ +

+


+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
ELEMENT
+  + + + + + + + + + + +
+Constructor Summary
ServiceDomNodeHandler() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ voidhandleNode(org.w3c.dom.Node node, + java.lang.String contextXPath, + java.util.Map handlers, + java.util.Map parameters) + +
+          This method will place the attributes in this node into the parameter + map keyed by the XPath and recursively continue processing for any + sub-elements of the node.
+ + + + + + + +
Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
handleChildElements, mapNodeToHandlerAndHandle, transferAttrsToParameters
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServiceDomNodeHandler

+
+public ServiceDomNodeHandler()
+
+
+ + + + + + + + +
+Method Detail
+ +

+handleNode

+
+public void handleNode(org.w3c.dom.Node node,
+                       java.lang.String contextXPath,
+                       java.util.Map handlers,
+                       java.util.Map parameters)
+
+
Description copied from class: GenericDomNodeHandler
+
This method will place the attributes in this node into the parameter + map keyed by the XPath and recursively continue processing for any + sub-elements of the node. +

+

+
Specified by:
handleNode in interface DomNodeHandler
Overrides:
handleNode in class GenericDomNodeHandler
+
+
+
Parameters:
node - The DOM node being consumed
contextXPath - The XPath to this node
handlers - The map from element name to node handler
parameters - A map of parameters - this is often used by a handler to place + a name-value pair, the name is often an Xpath representation + of the location of the data in the DOM but handlers are free + to use whatever they like - the contextXpath is generated as + an Xpath prefix for those handlers that wish to use it.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.html new file mode 100644 index 0000000000..ebf2ec4ac5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.html @@ -0,0 +1,312 @@ + + + + + + +ServicesGenerator (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class ServicesGenerator

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.common.CParsingTool
+      extended byorg.apache.tuscany.sca.cpp.tools.services.ServicesGenerator
+
+
+
+
public class ServicesGenerator
extends CParsingTool
+ +

+This class is the main class that handles the function that parses a C++ + interface header file into a DOM that holds all the semantic information + about the interface - method names, parameters and return values. It then + uses XSLT to generate different "views" of this data plus the parameter map + from other sources that are the C++ programs for the proxy and wrapper + implementations and headers. +

+ +

+


+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.tuscany.sca.cpp.tools.common.CParsingTool
failed, headers
+  + + + + + + + + + + +
+Constructor Summary
ServicesGenerator(java.lang.String[] args) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+static voidhandleInterfaceHeader(java.util.Map parameters, + boolean forReference) + +
+           
+ + + + + + + +
Methods inherited from class org.apache.tuscany.sca.cpp.tools.common.CParsingTool
checkFile, maybeCreateDirectory, preparseHeaders, printUsage
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServicesGenerator

+
+public ServicesGenerator(java.lang.String[] args)
+                  throws java.lang.Exception
+
+
+ + + + + + + + +
+Method Detail
+ +

+handleInterfaceHeader

+
+public static void handleInterfaceHeader(java.util.Map parameters,
+                                         boolean forReference)
+                                  throws java.lang.Exception
+
+
+
Parameters:
parameters -
forReference - true if we are creating a proxy for a reference (rather than + for a service) +
Throws: +
java.lang.Exception - The design is +
    +
  • handleInterfaceHeader +
  • createDOMofMethods +
  • createProxyCPPFromDom(outputDir, dom); +
  • createProxyHeaderFromDom(outputDir, dom); +
+ + plus if we are not generating for a reference element +
    +
  • createWrapperCPPFromDom(outputDir, dom); +
  • createWrapperHeaderFromDom(outputDir, dom); +
      + Each of the create.... methods calls createOutputFromDom with a different + style sheet.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.html new file mode 100644 index 0000000000..67930e3ba8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.html @@ -0,0 +1,469 @@ + + + + + + +XMLFileActor (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +

+ +org.apache.tuscany.sca.cpp.tools.services +
+Class XMLFileActor

+
+java.lang.Object
+  extended byorg.apache.tuscany.sca.cpp.tools.services.XMLFileActor
+
+
+
All Implemented Interfaces:
FileActor
+
+
+
Direct Known Subclasses:
ComponentTypeFileHandler, ModuleOrFragmentFileHandler
+
+
+
+
public abstract class XMLFileActor
extends java.lang.Object
implements FileActor
+ +

+The purpose of this abstract class is to provide a home for the standard + processing that is involved in turning a XML file into an internal DOM. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+ booleanfailed + +
+           
+protected static java.util.Maphandlers + +
+           
+protected static java.util.Mapparameters + +
+           
+protected static javax.xml.transform.TransformerFactorytransformerFactory + +
+           
+  + + + + + + + + + + +
+Constructor Summary
XMLFileActor() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidactOnFile(java.io.File moduleXML, + java.io.File target, + int depth) + +
+          This method is the main FileActor method
+protected  org.w3c.dom.DocumentcreateDomFromXMLFile(java.io.File xmlSourceFile) + +
+          This method builds an in memory DOM from an XML file
+ intgetFilesActedOn() + +
+           
+ java.lang.ObjectgetParameter(java.lang.String name, + java.lang.Object value) + +
+          Get a parameter
+ voidsetParameter(java.lang.String name, + java.lang.Object value) + +
+          Set a parameter
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+handlers

+
+protected static java.util.Map handlers
+
+
+
+
+
+ +

+parameters

+
+protected static java.util.Map parameters
+
+
+
+
+
+ +

+failed

+
+public boolean failed
+
+
+
+
+
+ +

+transformerFactory

+
+protected static javax.xml.transform.TransformerFactory transformerFactory
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+XMLFileActor

+
+public XMLFileActor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+actOnFile

+
+public void actOnFile(java.io.File moduleXML,
+                      java.io.File target,
+                      int depth)
+               throws java.lang.Exception
+
+
This method is the main FileActor method +

+

+
Specified by:
actOnFile in interface FileActor
+
+
+
Parameters:
moduleXML - the sca.module or fragment file
target - the target directory
depth - not uesed here but in the +
Throws: +
java.lang.Exception
See Also:
Here we create an initial DOM + and kick off the processing (using the handler map that has been set + up by the concrete subclass)., +interface to allow for + recursive diving into a directory structure.
+
+
+
+ +

+createDomFromXMLFile

+
+protected org.w3c.dom.Document createDomFromXMLFile(java.io.File xmlSourceFile)
+
+
This method builds an in memory DOM from an XML file +

+

+
+
+
+
Parameters:
xmlSourceFile - the XML file we are handling +
Returns:
the resulting document
+
+
+
+ +

+setParameter

+
+public void setParameter(java.lang.String name,
+                         java.lang.Object value)
+
+
Set a parameter +

+

+
+
+
+
Parameters:
name -
value -
+
+
+
+ +

+getParameter

+
+public java.lang.Object getParameter(java.lang.String name,
+                                     java.lang.Object value)
+
+
Get a parameter +

+

+
+
+
+
Parameters:
name -
value - +
Returns:
the value of the parameter
+
+
+
+ +

+getFilesActedOn

+
+public int getFilesActedOn()
+
+
+
+
+
+ +
Returns:
Returns the filesActedOn.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentDomNodeHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentDomNodeHandler.html new file mode 100644 index 0000000000..5b92855433 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentDomNodeHandler.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler

+
+No usage of org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentTypeFileHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentTypeFileHandler.html new file mode 100644 index 0000000000..5b7fe28bdb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentTypeFileHandler.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler

+
+No usage of org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DirectoryScanner.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DirectoryScanner.html new file mode 100644 index 0000000000..2b9b52e3bc --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DirectoryScanner.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner

+
+No usage of org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomHandler.html new file mode 100644 index 0000000000..000ac87acc --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomHandler.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.DomHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.DomHandler

+
+No usage of org.apache.tuscany.sca.cpp.tools.services.DomHandler +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomNodeHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomNodeHandler.html new file mode 100644 index 0000000000..ed14ed35cd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomNodeHandler.html @@ -0,0 +1,212 @@ + + + + + + +Uses of Interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Interface
org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler

+
+ + + + + + + + + +
+Packages that use DomNodeHandler
org.apache.tuscany.sca.cpp.tools.services
+ + 
+  +

+ + + + + +
+Uses of DomNodeHandler in org.apache.tuscany.sca.cpp.tools.services
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + +
Classes in org.apache.tuscany.sca.cpp.tools.services that implement DomNodeHandler +
+ classComponentDomNodeHandler + +
+          This class will do the required processing for the element of a + sca module or fragment file.
+ classDomHandler + +
+          The purpose of this class it to provide a generic class that can handle both + a DOM and a DOM node.
+ classGenericDomNodeHandler + +
+           
+ classReferenceDomNodeHandler + +
+          The purpose of this class is to process a element in a + componentType file and then trigger a call to the method in ServicesGenerator + to process the interface header file
+ classServiceDomNodeHandler + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/GenericDomNodeHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/GenericDomNodeHandler.html new file mode 100644 index 0000000000..b35bfde41f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/GenericDomNodeHandler.html @@ -0,0 +1,204 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler

+
+ + + + + + + + + +
+Packages that use GenericDomNodeHandler
org.apache.tuscany.sca.cpp.tools.services
+ + 
+  +

+ + + + + +
+Uses of GenericDomNodeHandler in org.apache.tuscany.sca.cpp.tools.services
+  +

+ + + + + + + + + + + + + + + + + + + + +
Subclasses of GenericDomNodeHandler in org.apache.tuscany.sca.cpp.tools.services +
+ classComponentDomNodeHandler + +
+          This class will do the required processing for the element of a + sca module or fragment file.
+ classDomHandler + +
+          The purpose of this class it to provide a generic class that can handle both + a DOM and a DOM node.
+ classReferenceDomNodeHandler + +
+          The purpose of this class is to process a element in a + componentType file and then trigger a call to the method in ServicesGenerator + to process the interface header file
+ classServiceDomNodeHandler + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/LittleClass.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/LittleClass.html new file mode 100644 index 0000000000..a7597e3212 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/LittleClass.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.LittleClass (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.LittleClass

+
+No usage of org.apache.tuscany.sca.cpp.tools.services.LittleClass +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ModuleOrFragmentFileHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ModuleOrFragmentFileHandler.html new file mode 100644 index 0000000000..4115066abd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ModuleOrFragmentFileHandler.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler

+
+No usage of org.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ReferenceDomNodeHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ReferenceDomNodeHandler.html new file mode 100644 index 0000000000..b86f9da242 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ReferenceDomNodeHandler.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler

+
+No usage of org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/Scagen.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/Scagen.html new file mode 100644 index 0000000000..2a212df7cf --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/Scagen.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.Scagen (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.Scagen

+
+No usage of org.apache.tuscany.sca.cpp.tools.services.Scagen +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServiceDomNodeHandler.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServiceDomNodeHandler.html new file mode 100644 index 0000000000..630cee5ec6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServiceDomNodeHandler.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler

+
+No usage of org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServicesGenerator.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServicesGenerator.html new file mode 100644 index 0000000000..ecf5d60367 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServicesGenerator.html @@ -0,0 +1,138 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator

+
+No usage of org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/XMLFileActor.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/XMLFileActor.html new file mode 100644 index 0000000000..4749bbd440 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/XMLFileActor.html @@ -0,0 +1,186 @@ + + + + + + +Uses of Class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Class
org.apache.tuscany.sca.cpp.tools.services.XMLFileActor

+
+ + + + + + + + + +
+Packages that use XMLFileActor
org.apache.tuscany.sca.cpp.tools.services
+ + 
+  +

+ + + + + +
+Uses of XMLFileActor in org.apache.tuscany.sca.cpp.tools.services
+  +

+ + + + + + + + + + + + +
Subclasses of XMLFileActor in org.apache.tuscany.sca.cpp.tools.services +
+ classComponentTypeFileHandler + +
+          The purpose of this class is to specialise the map of XML element handlers + for a XXX.componentType file that is used by the XMLFileActor
+ classModuleOrFragmentFileHandler + +
+          The purpose of this class is purely to specialise the handler map to one with + a specific ComponentDomNodeHandler.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-frame.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-frame.html new file mode 100644 index 0000000000..67936195cb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-frame.html @@ -0,0 +1,65 @@ + + + + + + +org.apache.tuscany.sca.cpp.tools.services (SCA for C++ Tools) + + + + + + + + + + + +org.apache.tuscany.sca.cpp.tools.services + + + + +
+Interfaces  + +
+DomNodeHandler
+ + + + + + +
+Classes  + +
+ComponentDomNodeHandler +
+ComponentTypeFileHandler +
+DirectoryScanner +
+DomHandler +
+GenericDomNodeHandler +
+LittleClass +
+ModuleOrFragmentFileHandler +
+ReferenceDomNodeHandler +
+Scagen +
+ServiceDomNodeHandler +
+ServicesGenerator +
+XMLFileActor
+ + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-summary.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-summary.html new file mode 100644 index 0000000000..7d4ef0c594 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-summary.html @@ -0,0 +1,364 @@ + + + + + + +org.apache.tuscany.sca.cpp.tools.services (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+Package org.apache.tuscany.sca.cpp.tools.services +

+
+ + +

+See: +
+          Description +

+ + + + + + + + + +
+Interface Summary
DomNodeHandler 
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
ComponentDomNodeHandlerThis class will do the required processing for the element of a + sca module or fragment file.
ComponentTypeFileHandlerThe purpose of this class is to specialise the map of XML element handlers + for a XXX.componentType file that is used by the XMLFileActor
DirectoryScanner 
DomHandlerThe purpose of this class it to provide a generic class that can handle both + a DOM and a DOM node.
GenericDomNodeHandler 
LittleClassThis class is just a convenient application class that is loaded in order to + get the application class loader.
ModuleOrFragmentFileHandlerThe purpose of this class is purely to specialise the handler map to one with + a specific ComponentDomNodeHandler.
ReferenceDomNodeHandlerThe purpose of this class is to process a element in a + componentType file and then trigger a call to the method in ServicesGenerator + to process the interface header file
ScagenThis is the main top level class.
ServiceDomNodeHandler 
ServicesGeneratorThis class is the main class that handles the function that parses a C++ + interface header file into a DOM that holds all the semantic information + about the interface - method names, parameters and return values.
XMLFileActorThe purpose of this abstract class is to provide a home for the standard + processing that is involved in turning a XML file into an internal DOM.
+  + +

+

+Package org.apache.tuscany.sca.cpp.tools.services Description +

+ +

+

+ +

Overview

+ + + +

This package contains classes that generate C++ wrappers and +proxies for C++ implementations of SCA services.

+ +

What the package does

+ +

The Scagen class main method will take in an input and +output directory name. The input directory is taken to be the SCA module root +directory.  The tool will generate the wrapper and proxy headers and methods +bodies in the output directory.

+ +

These proxies and wrappers enable the SCA for C++ runtime to +act as a conduit for SCA C++ calls in a type free manner. Client code can call +the type specific functions that are in the generated proxy classes. The call +is marshalled into a generic format and a SCA for C++ runtime function with a +standard signature is invoked. The details of the call are passed as data.

+ +

On the other end of the runtime, a generated function with a +standard signature is called, this function will inspect the data that +represents the call’s method name and call the appropriate type specific +function in the C++ implementation.

+ +

The Input Data Used

+ +

The input directory passed to the Scagen method is taken to +be the SCA module root directory. All the sca.module and .fragment files in +that directory are inspected to resolve all the <component/> elements +within them.

+ +

Each <component/> element found is inspected to see if +it has a <implementation.cpp/> element within it.

+ +

Each <implementation.cpp/> element should have a +header attribute that represents a C++ header file that contains function +prototypes for the C++ implementation of the service. An optional class +attribute can be used to select one class if more than one that is present in +the header file. The default class is the one with the same name as the header +file. The tool will verify that the implementation header contains an +appropriate class prototype.

+ + + +

The directory that contains the implementation header should +also contain a matching .componentType file for the equivalent SCA component. So +for example, a MyServiceImpl.h file would have a corresponding MyServiceImpl.componentType +file in the same directory.

+ + + +

Each componentType file is inspected for <service/> +and <reference/> elements. For each <service/> element that is +found that contains a <interface.cpp/> element within it,

+ +

the header attribute of the <interface.cpp/> is taken +as the filename of the C++ interface header for the SCA service.  This C++ +header file is opened and used as a means for specifying the SCA service +resulting in an appropriate wrapper and proxy being generated for this service +interface. Both method bodies and headers are generated in the given output +directory. The processing of a <reference/> element is the same except +that only a proxy header and implementation are generated.

+ + + + + +

Outline Design: How it Works

+ + + +

The basic approach is to scan in the XML files by first +creating a DOM document tree of them and then recursively rifling through the DOM  +with some generic code in the XMLFileActorClass by default this processing will +build up a map which maps the XPath location of attributes to their values. +Additionally subclasses can add to a “handlers map” which maps from the name of +a particular element to an object that implements the DomNodeHandler interface. +If the XMLFileActor code comes across any element that has an equivalent handler +in the handler map the objects handleNode method will be called.

+ +

Typically the DomNodeHandler’s handle node interface will +use XPath to pull out the parameters that it is interested in from the +parameters map that is being built up by the generic code.

+ +

This design was chosen as the Java level specified for the +original implementation did not have direct XPath query of XML data but it was +known that this would be available in Java 1.5 onwards. The design allows the +DOM and parameters map handling to be replaced in the future with JRE 1.5 code +with less impact on the rest of the code.

+ + + +

The processing leads to the parsing of the C++ interface +files using the org\apache\tuscany\sca\cpp\tools\common package. This results +in a Headers object

+ +

that contains a List of Signature objects, each one +representing a function prototype found in the header.

+ + + +

We are aiming to get all the semantic data we want to use +into a DOM document (this represents the model of our input data) and then use +XSLT to create the 4 different views of this data:

+ +

Proxy C++ header

+ +

Proxy C++  body

+ +

Wrapper C++ header

+ +

Wrapper C++ body

+ + + +

So we prepopulate the DOM with parameter data that comes +from the XML files and then iterate through the Signatures that are returned +from the C++ header parser transferring the useful data into the DOM.

+ + + +

We than use 4 XSLT stylesheets to generate the C++ output +files as required.

+ +
+

+ +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-tree.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-tree.html new file mode 100644 index 0000000000..adceb9d363 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-tree.html @@ -0,0 +1,162 @@ + + + + + + +org.apache.tuscany.sca.cpp.tools.services Class Hierarchy (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Hierarchy For Package org.apache.tuscany.sca.cpp.tools.services +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-use.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-use.html new file mode 100644 index 0000000000..f35093ab2a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-use.html @@ -0,0 +1,179 @@ + + + + + + +Uses of Package org.apache.tuscany.sca.cpp.tools.services (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Uses of Package
org.apache.tuscany.sca.cpp.tools.services

+
+ + + + + + + + + +
+Packages that use org.apache.tuscany.sca.cpp.tools.services
org.apache.tuscany.sca.cpp.tools.services
+ + 
+  +

+ + + + + + + + + + + + + + +
+Classes in org.apache.tuscany.sca.cpp.tools.services used by org.apache.tuscany.sca.cpp.tools.services
DomNodeHandler + +
+           
GenericDomNodeHandler + +
+           
XMLFileActor + +
+          The purpose of this abstract class is to provide a home for the standard + processing that is involved in turning a XML file into an internal DOM.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-frame.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-frame.html new file mode 100644 index 0000000000..ac9bf75355 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-frame.html @@ -0,0 +1,46 @@ + + + + + + +Overview (SCA for C++ Tools) + + + + + + + + + + + + + + + +
+
+ + + + + +
All Classes +

+ +Packages +
+org.apache.tuscany.sca.cpp.tools.common +
+org.apache.tuscany.sca.cpp.tools.services +
+

+ +

+  + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-summary.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-summary.html new file mode 100644 index 0000000000..8d79e7de28 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-summary.html @@ -0,0 +1,174 @@ + + + + + + +Overview (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +


+ +
+

+ +

SCA for C++ Tools

+ + +
+ + + + + + + + + +
+C++ Parser
org.apache.tuscany.sca.cpp.tools.common
+ +
+ +

+  + + + + + + + + +
+SCA Services Generator
org.apache.tuscany.sca.cpp.tools.services
+ +
+ +


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-tree.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-tree.html new file mode 100644 index 0000000000..0c3da7e516 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-tree.html @@ -0,0 +1,167 @@ + + + + + + +Class Hierarchy (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Hierarchy For All Packages

+
+
+
Package Hierarchies:
org.apache.tuscany.sca.cpp.tools.common, org.apache.tuscany.sca.cpp.tools.services
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+
    +
  • interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
  • interface org.apache.tuscany.sca.cpp.tools.common.FileActor
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/package-list b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/package-list new file mode 100644 index 0000000000..2d78f0b38b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/package-list @@ -0,0 +1,2 @@ +org.apache.tuscany.sca.cpp.tools.common +org.apache.tuscany.sca.cpp.tools.services diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/packages.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/packages.html new file mode 100644 index 0000000000..5657522fec --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/packages.html @@ -0,0 +1,37 @@ + + + + + + + (SCA for C++ Tools) + + + + + + + + + + + +
+ +
+ +
+
+The front page has been relocated.Please see: +
+          Frame version +
+          Non-frame version.
+ + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/resources/inherit.gif b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/resources/inherit.gif new file mode 100644 index 0000000000..c814867a13 Binary files /dev/null and b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/resources/inherit.gif differ diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/serialized-form.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/serialized-form.html new file mode 100644 index 0000000000..75a28975e2 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/serialized-form.html @@ -0,0 +1,159 @@ + + + + + + +Serialized Form (SCA for C++ Tools) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+

+Serialized Form

+
+
+ + + + + +
+Package org.apache.tuscany.sca.cpp.tools.common
+ +

+ + + + + +
+Class org.apache.tuscany.sca.cpp.tools.common.ParsingException extends java.lang.Exception implements Serializable
+ +

+ +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/stylesheet.css b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/stylesheet.css new file mode 100644 index 0000000000..6d31fdbc7f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/stylesheet.css @@ -0,0 +1,29 @@ +/* Javadoc style sheet */ + +/* Define colors, fonts and other style attributes here to override the defaults */ + +/* Page background color */ +body { background-color: #FFFFFF } + +/* Headings */ +h1 { font-size: 145% } + +/* Table colors */ +.TableHeadingColor { background: #CCCCFF } /* Dark mauve */ +.TableSubHeadingColor { background: #EEEEFF } /* Light mauve */ +.TableRowColor { background: #FFFFFF } /* White */ + +/* Font used in left-hand frame lists */ +.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif } +.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif } +.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif } + +/* Navigation bar fonts and colors */ +.NavBarCell1 { background-color:#EEEEFF;} /* Light mauve */ +.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */ +.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;} +.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;} + +.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} +.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/CalculatorTest.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/CalculatorTest.java new file mode 100644 index 0000000000..448fd6dd7d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/CalculatorTest.java @@ -0,0 +1,29 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.junit; + +import org.apache.tuscany.sca.cpp.tools.junit.TuscanyTestCase; + +/** + * This test case tests a simple Calculator service tools generation + */ +public class CalculatorTest extends TuscanyTestCase { + + public void testCalculatorModuleAndComponent() { + testModule("CalculatorModuleAndComponent", check_results); + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/EnvHandlerTest.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/EnvHandlerTest.java new file mode 100644 index 0000000000..2f1bf78921 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/EnvHandlerTest.java @@ -0,0 +1,46 @@ +/* +* +* 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. +*/ +package org.apache.tuscany.sca.cpp.tools.junit; + +import org.apache.tuscany.sca.cpp.tools.services.Scagen; + +/** + * This is a "run this first" testcase that just tests some simple operations of + * the scagen tools it uses the + * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as + * input data. + */ +public class EnvHandlerTest extends TuscanyTestCase { + + /** + * Constructor for CustomerInfoTestOLD. + * + * @param arg0 + */ + public EnvHandlerTest(String arg0) { + super(arg0); + } + + /** + * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule + * proxy and wrapper generation. + */ + public void testEnvHandler() { + testModule("MyValueServiceModule", check_results); + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceTest.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceTest.java new file mode 100644 index 0000000000..1dfe302cf1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceTest.java @@ -0,0 +1,46 @@ +/* +* +* 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. +*/ +package org.apache.tuscany.sca.cpp.tools.junit; + +import org.apache.tuscany.sca.cpp.tools.services.Scagen; + +/** + * This is a "run this first" testcase that just tests some simple operations of + * the scagen tools it uses the + * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as + * input data. + */ +public class ImplClassWithNameSpaceTest extends TuscanyTestCase { + + /** + * Constructor for CustomerInfoTestOLD. + * + * @param arg0 + */ + public ImplClassWithNameSpaceTest(String arg0) { + super(arg0); + } + + /** + * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule + * proxy and wrapper generation. + */ + public void testEnvHandler() { + testModule("MyValueServiceModuleImplClassWithNamespace", check_results); + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceButNotInClassAttrTest.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceButNotInClassAttrTest.java new file mode 100644 index 0000000000..146c18fa1b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceButNotInClassAttrTest.java @@ -0,0 +1,46 @@ +/* +* +* 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. +*/ +package org.apache.tuscany.sca.cpp.tools.junit; + +import org.apache.tuscany.sca.cpp.tools.services.Scagen; + +/** + * This is a "run this first" testcase that just tests some simple operations of + * the scagen tools it uses the + * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as + * input data. + */ +public class IntfClassWithNameSpaceButNotInClassAttrTest extends TuscanyTestCase { + + /** + * Constructor for CustomerInfoTestOLD. + * + * @param arg0 + */ + public IntfClassWithNameSpaceButNotInClassAttrTest(String arg0) { + super(arg0); + } + + /** + * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule + * proxy and wrapper generation. + */ + public void testEnvHandler() { + testModule("MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr", check_results); + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceTest.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceTest.java new file mode 100644 index 0000000000..c78f8a5f93 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceTest.java @@ -0,0 +1,46 @@ +/* +* +* 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. +*/ +package org.apache.tuscany.sca.cpp.tools.junit; + +import org.apache.tuscany.sca.cpp.tools.services.Scagen; + +/** + * This is a "run this first" testcase that just tests some simple operations of + * the scagen tools it uses the + * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as + * input data. + */ +public class IntfClassWithNameSpaceTest extends TuscanyTestCase { + + /** + * Constructor for CustomerInfoTestOLD. + * + * @param arg0 + */ + public IntfClassWithNameSpaceTest(String arg0) { + super(arg0); + } + + /** + * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule + * proxy and wrapper generation. + */ + public void testEnvHandler() { + testModule("MyValueServiceModuleIntfClassWithNamespace", check_results); + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/MissingModuleAndFragmentTest.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/MissingModuleAndFragmentTest.java new file mode 100644 index 0000000000..4a8f8449a6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/MissingModuleAndFragmentTest.java @@ -0,0 +1,46 @@ +/* +* +* 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. +*/ +package org.apache.tuscany.sca.cpp.tools.junit; + +import org.apache.tuscany.sca.cpp.tools.services.Scagen; + +/** + * This is a "run this first" testcase that just tests some simple operations of + * the scagen tools it uses the + * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as + * input data. + */ +public class MissingModuleAndFragmentTest extends TuscanyTestCase { + + /** + * Constructor for CustomerInfoTestOLD. + * + * @param arg0 + */ + public MissingModuleAndFragmentTest(String arg0) { + super(arg0); + } + + /** + * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule + * proxy and wrapper generation. + */ + public void testEnvHandler() { + testModule("MyValueServiceModuleMissingScaModule",check_results); + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/SimplePublicPrivateProtectedTest.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/SimplePublicPrivateProtectedTest.java new file mode 100644 index 0000000000..9c05599286 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/SimplePublicPrivateProtectedTest.java @@ -0,0 +1,47 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.junit; + +import org.apache.tuscany.sca.cpp.tools.services.Scagen; + +/** + * This is a "run this first" testcase that just tests some simple operations of + * the scagen tools it uses the + * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as + * input data. + */ +public class SimplePublicPrivateProtectedTest extends TuscanyTestCase { + + /** + * Constructor for CustomerInfoTestOLD. + * + * @param arg0 + */ + public SimplePublicPrivateProtectedTest(String arg0) { + super(arg0); + } + + /** + * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule + * proxy and wrapper generation. + */ + public void testEnvHandler() { + + testModule("SimplePublicPrivateProtectedTest", check_results); + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllModulesTest.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllModulesTest.java new file mode 100644 index 0000000000..fc5c8c5653 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllModulesTest.java @@ -0,0 +1,82 @@ +/* + * IBM Confidential + * + * OCO Source Materials + * + * + * + * (C) Copyright IBM Corp. 2005 + * + * The source code for this program is not published + * or otherwise divested of its trade secrets, + * irrespective of what has been deposited with the + * U. S. Copyright Office. + */ +package org.apache.tuscany.sca.cpp.tools.junit; + +import java.io.File; +import java.util.HashSet; +import java.util.Set; + +import org.apache.tuscany.sca.cpp.tools.junit.TuscanyTestCase; + +/** + * This test case will test all the modules placed in the "modules" directory + * against the results in their repectice "expected_results" folders. + */ +public class TestAllModulesTest extends TuscanyTestCase { + + String testsDir = TuscanyTestCase.junit_modules; + + Set excludes = new HashSet(); + + public TestAllModulesTest(String arg0) { + super(arg0); + excludes.add("MyValueServiceModuleMissingScaModule"); + excludes.add("CVS"); + } + + + /* main exists to allow running from the java ant task */ + public static void main(String[] args) { + TestAllModulesTest test = new TestAllModulesTest(""); + test.testAllModulesRegression(); + } + + public void testAllModulesRegression() { + File dir = new File(testsDir); + + if (dir.isDirectory()) { + System.out.println("Testing all modules under " + + dir.getAbsolutePath()); + String[] test_modules = dir.list(); + + for (int i = 0; i < test_modules.length; i++) { + File test_module = new File(testsDir, test_modules[i]); + + String module_name = null; + if (test_module.isDirectory()) { + module_name = test_module.getName(); + if (!excludes.contains(module_name.intern())) { + testModule(module_name, check_results); + System.out.println("Test of module \"" + module_name + + "\" passed."); + continue; + } else { + System.out + .println("Ignoring excluded module subdirectory \"" + + module_name + "\""); + } + } + } + + } else { + + fail("Test directory is not a directory! \r The variable org.apache.tuscany.sca.cpp.tools.junit.TuscanyTestCase.root sets the location of the junit input data,\r it is currently set as " + + TuscanyTestCase.root + "\rand we expect to find a testinput\\modules directory under there."); + } + + System.out.println("testAllModules test passed."); + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestDeployAssistTool.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestDeployAssistTool.java new file mode 100644 index 0000000000..fb4cd4b606 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestDeployAssistTool.java @@ -0,0 +1,94 @@ +/* + * IBM Confidential + * + * OCO Source Materials + * + * + * + * (C) Copyright IBM Corp. 2005 + * + * The source code for this program is not published + * or otherwise divested of its trade secrets, + * irrespective of what has been deposited with the + * U. S. Copyright Office. + */ +package org.apache.tuscany.sca.cpp.tools.junit; + +import java.io.File; +import java.util.HashSet; +import java.util.Set; + +import org.apache.tuscany.sca.cpp.tools.common.Utils; +import org.apache.tuscany.sca.cpp.tools.junit.TuscanyTestCase; + +/** + * This test case will test all the modules placed in the "modules" directory + * against the results in their repectice "expected_results" folders. + */ +public class TestDeployAssistTool extends TuscanyTestCase { + + String testsDir = TuscanyTestCase.junit_modules; + + Set excludes = new HashSet(); + + public TestDeployAssistTool(String arg0) { + super(arg0); + excludes.add("MyValueServiceModuleMissingScaModule"); + excludes.add("CVS"); + } + + /* main exists to allow running from the test script which will + * wrap this test case and pipe the satandard output to somewhere + * for checking. + */ + + public static void main(String[] args) { + TestDeployAssistTool test = new TestDeployAssistTool(""); + test.testDeployToolNullParms(); + } + + public void testDeployTool() { + //Utils.setReportArtefacts(true); + TestAllModulesTest t = new TestAllModulesTest(""); + File dir = new File(testsDir); + + if (dir.isDirectory()) { + String[] test_modules = dir.list(); + + for (int i = 0; i < test_modules.length; i++) { + File test_module = new File(testsDir, test_modules[i]); + String module_name = null; + if (test_module.isDirectory()) { + module_name = test_module.getName(); + if (!excludes.contains(module_name.intern())) { + t.testModuleDeploy(module_name, create_results, "c:\\colin", "cp"); + } + } + System.out.println(""); + } + } + } + + public void testDeployToolNullParms() { + //Utils.setReportArtefacts(true); + TestAllModulesTest t = new TestAllModulesTest(""); + File dir = new File(testsDir); + + if (dir.isDirectory()) { + String[] test_modules = dir.list(); + + for (int i = 0; i < test_modules.length; i++) { + File test_module = new File(testsDir, test_modules[i]); + String module_name = null; + if (test_module.isDirectory()) { + module_name = test_module.getName(); + if (!excludes.contains(module_name.intern())) { + t.testModuleDeploy(module_name, create_results, null, null); + } + } + System.out.println(""); + } + } + } +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TuscanyTestCase.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TuscanyTestCase.java new file mode 100644 index 0000000000..00f6868ce6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TuscanyTestCase.java @@ -0,0 +1,332 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.junit; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.Reader; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.cpp.tools.common.Options; +import org.apache.tuscany.sca.cpp.tools.services.Scagen; + +/** + * A superclass for testcases that can be used to store common functions. + */ +public class TuscanyTestCase extends TestCase { + + public static String root = "cpp\\sca\\tools\\scagen\\junit\\"; + + public static String junit_modules = root + "testinput\\modules\\"; + + public static String junit_output = root + "testoutput\\"; + + private String testcase = "TESTCASE NOT SET BY SUBCLASS"; + + String input = null; + + String output = null; + + /** + * Check the resulting files with the contents of the expected_results + * folder in the testModule method + */ + public final static boolean check_results = true; + + /** + * Create test output but do not check it (useful for setting up new + * expected test output + */ + public final static boolean create_results = false; + + /** + * + */ + public TuscanyTestCase() { + super(); + } + + /** + * @param arg0 + */ + public TuscanyTestCase(String arg0) { + super(arg0); + } + + protected void setUp() throws Exception { + super.setUp(); + } + + protected void tearDown() throws Exception { + super.tearDown(); + } + + /** + * Tests to see if two files are the same - this is just a scratch method at + * the moment that flags up testcase output files not matching expected + * results rather than needing to be a fully robust implementation and needs + * a little further work. + * + * @param file1 + * the first file to compare + * @param file2 + * the second file to compare + * + */ + protected boolean areFilesEqual(String file1, String file2) { + + try { + FileInputStream fis1 = new java.io.FileInputStream(file1); + FileInputStream fis2 = new java.io.FileInputStream(file2); + + BufferedReader br1 = new BufferedReader(new InputStreamReader(fis1)); + BufferedReader br2 = new BufferedReader(new InputStreamReader(fis2)); + + String line1 = br1.readLine(); + String line2 = br2.readLine(); + boolean moretodo = (line1 != null) && (line2 != null); + + for (int line = 1; moretodo; line++) { + + if (line1.equals(line2)) { + + line1 = br1.readLine(); + line2 = br2.readLine(); + + } else { + + int l1i, l2i; + + if ((l1i = line1.lastIndexOf("$Id")) > 0) { + //allow CVS strings + line1 = br1.readLine(); + } + + if ((l2i = line2.lastIndexOf("$Id")) > 0) { + //allow CVS strings + line2 = br2.readLine(); + } + + if (l1i == -1 && l2i == -1) { + + // they don't match + System.out.println("file " + file1 + " and file " + + file2); + System.out.println(" don't match at line " + line); + System.out.println("1 is :" + line1); + System.out.println("2 is :" + line2); + + return false; + } + } + + moretodo = (line1 != null) && (line2 != null); + } + + System.out.println("MATCH FOR: file " + file1 + " and file " + + file2); + return true; + + } catch (Throwable t) { + t.printStackTrace(); + return true; + } + + } + + /** + * @param outputDir + */ + protected void clearDirButNotExpectedOutputSubDir(String outputDir) { + File dir = new File(outputDir); + if (dir.isDirectory()) { + String[] files = dir.list(); + for (int i = 0; i < files.length; i++) { + File child = new File(dir, files[i]); + if (child.isDirectory()) { + if (!child.getName().equals("expected_output")) { + clearDirButNotExpectedOutputSubDir(dir + .getAbsolutePath() + + File.separator + files[i]); + } + } + child.delete(); + } + + } + + } + + public void testModule(String module, boolean check) { + + Options.reset(); + setTestcase(module); + clearDirButNotExpectedOutputSubDir(output); + + String[] commandLine = new String[] { "-dir", input, "-output", output }; + try { + Scagen.main(commandLine); + } catch (Exception e) { + fail(e.getMessage()); + } + + if (check) { + checkDirWithExpected(output); + } + } + + public void testModuleDeploy(String module, boolean check, + String deployDir, String command) { + + Options.reset(); + setTestcase(module); + clearDirButNotExpectedOutputSubDir(output); + + String[] commandLine; + if (null == deployDir) { + commandLine = new String[] { "-dir", input, "-output", + output, "-deploy"}; + } else { + commandLine = new String[] { "-dir", input, "-output", + output, "-deploy", deployDir, "-command", command }; + } + try { + Scagen.main(commandLine); + } catch (Exception e) { + fail(e.getMessage()); + } + + if (check) { + checkDirWithExpected(output); + } + } + + /** + * @param outputDirName + */ + private void checkDirWithExpected(String outputDirName) { + + File actualDir = new File(outputDirName); + if (actualDir == null || !actualDir.isDirectory()) { + fail("result directory does not exist"); + } + + File expectedDir = new File(outputDirName + File.separator + + "expected_output"); + if (expectedDir == null || !actualDir.isDirectory()) { + fail("can't check results as expected directory does not exist"); + } + + //Check every file in the expected output directory is present + //in the actual directory + + String[] expectedFiles = expectedDir.list(); + + if (expectedFiles == null) { + fail("no expected results for " + expectedDir.getPath()); + } + for (int i = 0; expectedFiles != null && i < expectedFiles.length; i++) { + File expectedFile = new File(expectedDir, expectedFiles[i]); + if (expectedFile.isDirectory()) { + // we can't check subdirectories yet + // and it conveniently skips over "CVS" + } else { + File actualFile = checkFileExistsFailIfNot(actualDir, + expectedFile.getName()); + checkFileHasNoTabsAndEndsInNewline(actualDir, expectedFile + .getName()); + if (!areFilesEqual(expectedFile.getAbsolutePath(), actualFile + .getAbsolutePath())) { + fail("odd output for " + expectedFile.getPath()); + } + + } + + } + + } + + /** + * @param actualDir + * @param name + */ + private File checkFileExistsFailIfNot(File dir, String name) { + + File f = new File(dir, name); + if (f == null || !f.exists() || !f.isFile()) { + fail("Expected result file " + f + " does not exist"); + } + return f; + + } + + /** + * @param actualDir + * @param name + */ + private void checkFileHasNoTabsAndEndsInNewline(File dir, String name) { + + try { + File f = new File(dir, name); + FileInputStream fis = new FileInputStream(f); + InputStreamReader isr = new InputStreamReader(fis); + Reader br = new BufferedReader(isr); + int ch, charBeforeMinusOne = -1; + while ((ch = br.read()) > -1) { + if (ch == '\t') { + fail("found tab in output " + f.getPath()); + } + charBeforeMinusOne = ch; + } + //The last char must be newline; + if (charBeforeMinusOne != '\n') { + fail("last char in file is not a newline in " + "(char is:" + + ch + " " + dir.getName() + File.separator + name); + } + + br.close(); + } catch (IOException e) { + e.printStackTrace(); + fail("io exception in tab/newline checker for " + dir.getName() + + File.separator + name); + return; + } + + } + + /** + * @param testcase + * The testcase to set. + */ + void setTestcase(String testcase) { + this.testcase = testcase; + input = TuscanyTestCase.junit_modules + testcase; + output = TuscanyTestCase.junit_output + testcase; + } + + /** + * @return Returns the testcase. + */ + String getTestcase() { + return testcase; + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go.cmd b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go.cmd new file mode 100644 index 0000000000..6a303b1471 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go.cmd @@ -0,0 +1,2 @@ +rm -rf out +java -jar scagen.jar -dir c:\workspaces\wid60-no-core\Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule -output c:\hydra\out diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_dir_option.cmd b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_dir_option.cmd new file mode 100644 index 0000000000..13834b3aae --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_dir_option.cmd @@ -0,0 +1 @@ +java -jar scagen.jar -dirX c:\workspaces\wid60-no-core\Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule -output c:\hydra\out diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_input_dir.cmd b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_input_dir.cmd new file mode 100644 index 0000000000..4fa9a86b1f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_input_dir.cmd @@ -0,0 +1 @@ +java -jar scagen.jar -dir x:\not_there -output c:\hydra\irrelevant diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_output_dir.cmd b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_output_dir.cmd new file mode 100644 index 0000000000..5e6b818ae3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_output_dir.cmd @@ -0,0 +1 @@ +java -jar scagen.jar -dir c:\workspaces\wid60-no-core\Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule -output r:\hydra\out diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/refresh-tools-jar.cmd b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/refresh-tools-jar.cmd new file mode 100644 index 0000000000..2640ed87de --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/refresh-tools-jar.cmd @@ -0,0 +1 @@ +copy c:\workspaces\wid60-no-core\Hydra.sca.tools\scagen.jar . \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/Calculator.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/Calculator.h new file mode 100644 index 0000000000..3ab503ef1d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/Calculator.h @@ -0,0 +1,32 @@ +/* + * + * 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. + */ + +#ifndef CALCULATOR_H +#define CALCULATOR_H + + +class Calculator { + +private: + virtual long add(long a, long b) = 0; +public: + + virtual long subtract(long a, long b) = 0; +}; + + +#endif // CALCULATOR_H diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.componentType new file mode 100644 index 0000000000..ef0f346ba0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.componentType @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.h new file mode 100644 index 0000000000..daa9b25627 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.h @@ -0,0 +1,33 @@ +/* + * + * 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. + */ + +#ifndef CALCULATORIMPL_H +#define CALCULATORIMPL_H + +#include "Calculator.h" + +class CalculatorImpl : public Calculator +{ +public: + CalculatorImpl(); + virtual ~CalculatorImpl(); + virtual long add(long a, long b); + virtual long subtract(long a, long b); + +}; + +#endif // diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/sca.module b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/sca.module new file mode 100644 index 0000000000..f74d5f690c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/sca.module @@ -0,0 +1,28 @@ + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorBack.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorBack.h new file mode 100644 index 0000000000..da74be77a6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorBack.h @@ -0,0 +1,31 @@ +/* + * + * 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. + */ +#ifndef CALCULATOR_H +#define CALCULATOR_H + + +class CalculatorBack { + + + +public: + virtual long subtractBack(long a, long b) = 0; + virtual long addBack(long a, long b) = 0; +}; + + +#endif // CALCULATOR_H diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorForward.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorForward.h new file mode 100644 index 0000000000..48a5ff5018 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorForward.h @@ -0,0 +1,30 @@ +/* + * + * 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. + */ +#ifndef CALCULATOR_H +#define CALCULATOR_H + + +class CalculatorForward { + +public: + + virtual long subtractForward(long a, long b) = 0; + virtual long addForward(long a, long b) = 0; +}; + + +#endif // CALCULATOR_H diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/sca.module b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/sca.module new file mode 100644 index 0000000000..b4aaa37a4c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/sca.module @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.componentType new file mode 100644 index 0000000000..6a5a152266 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.componentType @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.h new file mode 100644 index 0000000000..0cacc5916c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.h @@ -0,0 +1,33 @@ +/* + * + * 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. + */ + +#ifndef CALCULATORIMPL_H +#define CALCULATORIMPL_H + +#include "Calculator.h" + +class CalculatorBackImpl : public Calculator +{ +public: + CalculatorImpl(); + virtual ~CalculatorImpl(); + virtual long addBack(long a, long b); + virtual long subtractBack(long a, long b); + +}; + +#endif // diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.componentType new file mode 100644 index 0000000000..9617b22aee --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.componentType @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.h new file mode 100644 index 0000000000..f3b0467002 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.h @@ -0,0 +1,32 @@ +/* + * + * 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. + */ +#ifndef CALCULATORIMPL_H +#define CALCULATORIMPL_H + +#include "Calculator.h" + +class CalculatorForwardImpl : public Calculator +{ +public: + CalculatorImpl(); + virtual ~CalculatorImpl(); + virtual long addForward(long a, long b); + virtual long subtractForward(long a, long b); + +}; + +#endif // diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.fragment b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.fragment new file mode 100644 index 0000000000..29fd03c399 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.fragment @@ -0,0 +1,39 @@ + + + + + + + + + + x + 23 + 42 + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.h new file mode 100644 index 0000000000..d5e1a702c6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.h @@ -0,0 +1,94 @@ +/* + * + * 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. + */ + +#ifndef CustomerInfo_h +#define CustomerInfo_h + +class CustomerInfo +{ +public: +//char (simple extra type) + virtual const char* getCustomerInformationChar(char * p1, const char* customerID ) = 0; + virtual const char* getCustomerInfoAChar(char * p1,const char*) = 0; + virtual const char* getCustomerInfoBChar(char * p1, char* customerID ) = 0; + virtual const char* getCustomerInfoCChar(char * p1, char customerID ) = 0; + virtual const char* getCustomerInfoDChar(char * p1,char) = 0; + virtual const char* getCustomerInfoEChar(char * p1 , char *) = 0; + virtual const char* getCustomerInfoFChar(char * p1, char * p1, char *customerID ) = 0; + virtual const char* getCustomerInfoGChar(char * p1, char *, char * p1,signed char *customerID ) = 0; + virtual const char* getCustomerInfoHChar(unsigned char *customerID, const char, ) = 0; + virtual const char* getCustomerInfoHChar(unsigned char *customerID, const char*) = 0; + +//long (duplicate the types) + virtual const long* getCustomerInformationLong(const long* customerID, const long* customerID ) = 0; + virtual const long* getCustomerInfoALong(const long*,const long*) = 0; + virtual const long* getCustomerInfoBLong(long* customerID, long* customerID2 ) = 0; + virtual const long* getCustomerInfoCLong(long customerID , long customerID2 ) = 0; + virtual const long* getCustomerInfoDLong(long,long) = 0; + virtual const long* getCustomerInfoELong(long *, long*) = 0; + virtual const long* getCustomerInfoFLong(long *customerID, long* customerID2 ) = 0; + virtual const long* getCustomerInfoGLong(signed long *customerID, signed long *customerID2 ) = 0; + virtual const long* getCustomerInfoHLong(signed long *customerID, signed long *customerID2 ) = 0; + +//int + virtual const int* getCustomerInformationInt(char*, const int* customerID ) = 0; + virtual const int* getCustomerInfoAInt(char*,const int*) = 0; + virtual const int* getCustomerInfoBInt(char*,int* customerID ) = 0; + virtual const int* getCustomerInfoCInt(char*,int customerID ) = 0; + virtual const int* getCustomerInfoDInt(char*,int) = 0; + virtual const int* getCustomerInfoEInt(char*,int *) = 0; + virtual const int* getCustomerInfoFInt(char*,int *customerID ) = 0; + virtual const int* getCustomerInfoGInt(char*,signed int *customerID ) = 0; + virtual const int* getCustomerInfoHInt(char*,unsigned int *customerID ) = 0; + + +//__int64 + virtual const __int64* getCustomerInformationint64(Diamond&,const __int64* customerID ) = 0; + virtual const __int64* getCustomerInfoAint64(Diamond&, const __int64*) = 0; + virtual const __int64* getCustomerInfoBint64( Diamond&, __int64* customerID ) = 0; + virtual const __int64* getCustomerInfoCint64(Diamond&,__int64 customerID ) = 0; + virtual const __int64* getCustomerInfoDint64(Diamond& myDiamond,__int64) = 0; + virtual const __int64* getCustomerInfoEint64(Diamond& myDiamond, __int64 *) = 0; + virtual const __int64* getCustomerInfoFint64(Diamond& myDiamond, __int64 *customerID ) = 0; + virtual const __int64* getCustomerInfoGint64(Diamond& myDiamond, signed __int64 *customerID ) = 0; + virtual const __int64* getCustomerInfoHint64(const Diamond& myDiamond, unsigned int64 *customerID ) = 0; + +//void + virtual const void* getCustomerInformationVoid(float& f, const __int64* customerID ) = 0; + virtual void getCustomerInfoAVoid(const float& f, const __int64*) = 0; + virtual void getCustomerInfoBVoid( ) = 0; + virtual void getCustomerInfoCVoid() = 0; + virtual void getCustomerInfoDVoid(void) = 0; + virtual char getCustomerInfoEVoid(void) = 0; + virtual char getCustomerInfoFVoid() = 0; + virtual char getCustomerInfoGVoid( void ) = 0; + +//inline + virtual inline const char * getCustomerInfoAInline(int,int,int,int, char* customer id) = 0; + inline int getCustomerInfoBInline(int*,int* f, int* g, char* customer id) = 0; + virtual inline friend const unsigned int * getCustomerInfoCInline(char* customer id) = 0; + +//tricky examples + int getCustomerInfoTrickyA(const char, const char) = 0; + int getCustomerInfoTrickyB(int myInt, int myInt) = 0; + + + + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.componentType new file mode 100644 index 0000000000..d39a3bdadf --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.componentType @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.h new file mode 100644 index 0000000000..546df093a3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.h @@ -0,0 +1,34 @@ +/* + * + * 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. + */ + +#ifndef CustomerInfoImpl_h +#define CustomerInfoImpl_h + +#include "CustomerInfo.h" + + + +class CustomerInfoImpl : public CustomerInfo +{ +public: + CustomerInfoImpl(); + virtual ~CustomerInfoImpl(); + virtual const char* getCustomerInformation(const char* customerID); + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.fragment b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.fragment new file mode 100644 index 0000000000..fa6d101363 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.fragment @@ -0,0 +1,39 @@ + + + + + + + + + + x + 23 + 42 + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.h new file mode 100644 index 0000000000..d3be176bfd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.h @@ -0,0 +1,89 @@ +/* + * + * 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. + */ +#ifndef CustomerInfo_h +#define CustomerInfo_h + +class CustomerInfo +{ +public: +//char + virtual const char* getCustomerInformationChar(const char* customerID ) = 0; + virtual const char* getCustomerInfoAChar(const char*) = 0; + virtual const char* getCustomerInfoBChar(char* customerID ) = 0; + virtual const char* getCustomerInfoCChar(char customerID ) = 0; + virtual const char* getCustomerInfoDChar(char) = 0; + virtual const char* getCustomerInfoEChar(char *) = 0; + virtual const char* getCustomerInfoFChar(char *customerID ) = 0; + virtual const char* getCustomerInfoGChar(signed char *customerID ) = 0; + virtual const char* getCustomerInfoHChar(unsigned char *customerID ) = 0; + +//long + virtual const long* getCustomerInformationLong(const long* customerID ) = 0; + virtual const long* getCustomerInfoALong(const long*) = 0; + virtual const long* getCustomerInfoBLong(long* customerID ) = 0; + virtual const long* getCustomerInfoCLong(long customerID ) = 0; + virtual const long* getCustomerInfoDLong(long) = 0; + virtual const long* getCustomerInfoELong(long *) = 0; + virtual const long* getCustomerInfoFLong(long *customerID ) = 0; + virtual const long* getCustomerInfoGLong(signed long *customerID ) = 0; + virtual const long* getCustomerInfoHLong(unsigned long *customerID ) = 0; + +//int + virtual const int* getCustomerInformationInt(const int* customerID ) = 0; + virtual const int* getCustomerInfoAInt(const int*) = 0; + virtual const int* getCustomerInfoBInt(int* customerID ) = 0; + virtual const int* getCustomerInfoCInt(int customerID ) = 0; + virtual const int* getCustomerInfoDInt(int) = 0; + virtual const int* getCustomerInfoEInt(int *) = 0; + virtual const int* getCustomerInfoFInt(int *customerID ) = 0; + virtual const int* getCustomerInfoGInt(signed int *customerID ) = 0; + virtual const int* getCustomerInfoHInt(unsigned int *customerID ) = 0; + + +//__int64 + virtual const __int64* getCustomerInformationint64(const __int64* customerID ) = 0; + virtual const __int64* getCustomerInfoAint64(const __int64*) = 0; + virtual const __int64* getCustomerInfoBint64(__int64* customerID ) = 0; + virtual const __int64* getCustomerInfoCint64(__int64 customerID ) = 0; + virtual const __int64* getCustomerInfoDint64(__int64) = 0; + virtual const __int64* getCustomerInfoEint64(__int64 *) = 0; + virtual const __int64* getCustomerInfoFint64(__int64 *customerID ) = 0; + virtual const __int64* getCustomerInfoGint64(signed __int64 *customerID ) = 0; + virtual const __int64* getCustomerInfoHint64(unsigned int64 *customerID ) = 0; + +//void + virtual const void* getCustomerInformationVoid(const __int64* customerID ) = 0; + virtual void getCustomerInfoAVoid(const __int64*) = 0; + virtual void getCustomerInfoBVoid( ) = 0; + virtual void getCustomerInfoCVoid() = 0; + virtual void getCustomerInfoDVoid(void) = 0; + +//inline + virtual inline const char * getCustomerInfoAInline(char* customer id) = 0; + inline int getCustomerInfoBInline(char* customer id) = 0; + virtual inline friend const unsigned int * getCustomerInfoCInline(char* customer id) = 0; + +//tricky examples + int getCustomerInfoTrickyA(const char) = 0; + int getCustomerInfoTrickyB(int myInt) = 0; + + + + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.componentType new file mode 100644 index 0000000000..d39a3bdadf --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.componentType @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.h new file mode 100644 index 0000000000..50d37ee4f2 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.h @@ -0,0 +1,43 @@ +/* + * + * 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. + */ + +#ifndef CustomerInfoImpl_h +#define CustomerInfoImpl_h + +#include "CustomerInfo.h" + + + +class CustomerInfoImpl : public CustomerInfo +{ +public: + CustomerInfoImpl(); + virtual ~CustomerInfoImpl(); + virtual const char* getCustomerInformation(const char* customerID); + +}; + +class CustomerInfoImpl2 : public CustomerInfo +{ +public: + CustomerInfoImpl(); + virtual ~CustomerInfoImpl(); + virtual const char* getCustomerInformation2(const char* customerID); + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.fragment b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.fragment new file mode 100644 index 0000000000..491e79f5e4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.fragment @@ -0,0 +1,38 @@ + + + + + + + + + x + 23 + 42 + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.h new file mode 100644 index 0000000000..7bd355b3ab --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.h @@ -0,0 +1,36 @@ +/* + * + * 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. + */ +#ifndef CustomerInfo_h +#define CustomerInfo_h + +class CustomerInfo +{ +public: + virtual const char* getCustomerInformation(const char* customerID) = 0; + +}; + + +class CustomerInfoSecond +{ +public: + virtual const char* getCustomerInformationSecond(const char* customerID) = 0; + +}; + + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.componentType new file mode 100644 index 0000000000..179af71dca --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.componentType @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.h new file mode 100644 index 0000000000..85e96bb348 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.h @@ -0,0 +1,46 @@ +/* + * + * 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. + */ + + +// Class definition for the implementation + +#ifndef CustomerInfoImpl_h +#define CustomerInfoImpl_h + +#include "CustomerInfo.h" + + + +class CustomerInfoImpl : public CustomerInfo +{ +public: + CustomerInfoImpl(); + virtual ~CustomerInfoImpl(); + virtual const char* getCustomerInformation(const char* customerID); + +}; + +class CustomerInfoImpl2 : public CustomerInfo +{ +public: + CustomerInfoImpl(); + virtual ~CustomerInfoImpl(); + virtual const char* getCustomerInformation2(const char* customerID); + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValue.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValue.h new file mode 100644 index 0000000000..a65b1f944c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValue.h @@ -0,0 +1,35 @@ +/* + * + * 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. + */ +// MyValue.h: interface for the MyValueImpl class. +// +////////////////////////////////////////////////////////////////////// + +#ifndef MyValue_h +#define MyValue_h +#include +using std::string; +class MyValue +{ +public: + virtual float getMyValue(const char* customerID) = 0; + virtual float getMyValueS(const string& customerID) = 0; + virtual string getCustname(string& customerID) = 0; + virtual const string& getCustnamecs(string customerID) = 0; + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.componentType new file mode 100644 index 0000000000..df0d97a438 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.componentType @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.hpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.hpp new file mode 100644 index 0000000000..f7a8171a65 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.hpp @@ -0,0 +1,38 @@ +/* + * + * 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. + */ +// Class definition for the implementation + +#ifndef MyValueImpl_h +#define MyValueImpl_h + +#include "MyValue.h" + + + +class MyValueImpl : public MyValue +{ +public: + MyValueImpl(); + virtual ~MyValueImpl(); + virtual float getMyValue(const char* customerID); + virtual float getMyValueS(const string& customerID); + virtual string getCustname(string& customerID); + virtual const string& getCustnamecs(string customerID); + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl_stockQuote_Proxy.h new file mode 100644 index 0000000000..5c8293b51e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl_stockQuote_Proxy.h @@ -0,0 +1,34 @@ +/* + * + * 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. + */ + +#ifndef MyValueImpl_stockQuote_Proxy_h +#define MyValueImpl_stockQuote_Proxy_h + +#include "StockQuoteService.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_stockQuote_Proxy : public StockQuoteService +{ +public: + MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_stockQuote_Proxy(); + virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_stockQuote_Proxy_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/StockQuoteService.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/StockQuoteService.h new file mode 100644 index 0000000000..d96115fb3f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/StockQuoteService.h @@ -0,0 +1,33 @@ +/* + * + * 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. + */ + +// +////////////////////////////////////////////////////////////////////// + +#ifndef StockQuoteService_h +#define StockQuoteService_h +#include +#include "commonj/sdo/sdo.h" +using std::string; +class StockQuoteService +{ +public: + virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0; + +}; + +#endif // StockQuoteService_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/sca.module b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/sca.module new file mode 100644 index 0000000000..565f4a74ec --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/sca.module @@ -0,0 +1,59 @@ + + + + + + + + + MyValueServiceComponent + + + + + + + + CustomerInfoComponent + StockQuoteService + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.fragment b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.fragment new file mode 100644 index 0000000000..5666c51a41 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.fragment @@ -0,0 +1,38 @@ + + + + + + + + + x + 23 + 42 + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.h new file mode 100644 index 0000000000..e41f9e8287 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.h @@ -0,0 +1,37 @@ +/* + * + * 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. + */ + +#ifndef CustomerInfo_h +#define CustomerInfo_h + +class CustomerInfo +{ +public: + virtual const char* getCustomerInformation(const char* customerID) = 0; + +}; + + +class CustomerInfoSecond +{ +public: + virtual const char* getCustomerInformationSecond(const char* customerID) = 0; + +}; + + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.componentType new file mode 100644 index 0000000000..179af71dca --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.componentType @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.h new file mode 100644 index 0000000000..b1360c5994 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.h @@ -0,0 +1,47 @@ +/* + * + * 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. + */ +// Class definition for the implementation + +#ifndef CustomerInfoImpl_h +#define CustomerInfoImpl_h + +#include "CustomerInfo.h" + + +/* +class CustomerInfoImpl : public CustomerInfo +{ +public: + CustomerInfoImpl(); + virtual ~CustomerInfoImpl(); + virtual const char* getCustomerInformation(const char* customerID); + +}; + +*/ +namespace Other { + class CustomerInfoImpl : public CustomerInfo + { + public: + CustomerInfoImpl(); + virtual ~CustomerInfoImpl(); + virtual const char* getCustomerInformationOther(const char* customerID); + + }; +} + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValue.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValue.h new file mode 100644 index 0000000000..8b921bc2bf --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValue.h @@ -0,0 +1,36 @@ +/* + * + * 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. + */ + +// MyValue.h: interface for the MyValueImpl class. +// +////////////////////////////////////////////////////////////////////// + +#ifndef MyValue_h +#define MyValue_h +#include +using std::string; +class MyValue +{ +public: + virtual float getMyValue(const char* customerID) = 0; + virtual float getMyValueS(const string& customerID) = 0; + virtual string getCustname(string& customerID) = 0; + virtual const string& getCustnamecs(string customerID) = 0; + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.componentType new file mode 100644 index 0000000000..df0d97a438 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.componentType @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.hpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.hpp new file mode 100644 index 0000000000..f7a8171a65 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.hpp @@ -0,0 +1,38 @@ +/* + * + * 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. + */ +// Class definition for the implementation + +#ifndef MyValueImpl_h +#define MyValueImpl_h + +#include "MyValue.h" + + + +class MyValueImpl : public MyValue +{ +public: + MyValueImpl(); + virtual ~MyValueImpl(); + virtual float getMyValue(const char* customerID); + virtual float getMyValueS(const string& customerID); + virtual string getCustname(string& customerID); + virtual const string& getCustnamecs(string customerID); + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl_stockQuote_Proxy.h new file mode 100644 index 0000000000..5c8293b51e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl_stockQuote_Proxy.h @@ -0,0 +1,34 @@ +/* + * + * 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. + */ + +#ifndef MyValueImpl_stockQuote_Proxy_h +#define MyValueImpl_stockQuote_Proxy_h + +#include "StockQuoteService.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_stockQuote_Proxy : public StockQuoteService +{ +public: + MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_stockQuote_Proxy(); + virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_stockQuote_Proxy_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/StockQuoteService.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/StockQuoteService.h new file mode 100644 index 0000000000..919b514e1a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/StockQuoteService.h @@ -0,0 +1,32 @@ +/* + * + * 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. + */ +// +////////////////////////////////////////////////////////////////////// + +#ifndef StockQuoteService_h +#define StockQuoteService_h +#include +#include "commonj/sdo/sdo.h" +using std::string; +class StockQuoteService +{ +public: + virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0; + +}; + +#endif // StockQuoteService_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/sca.module b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/sca.module new file mode 100644 index 0000000000..565f4a74ec --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/sca.module @@ -0,0 +1,59 @@ + + + + + + + + + MyValueServiceComponent + + + + + + + + CustomerInfoComponent + StockQuoteService + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValue.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValue.h new file mode 100644 index 0000000000..503f771bb2 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValue.h @@ -0,0 +1,39 @@ +/* + * + * 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. + */ + +// MyValue.h: interface for the MyValueImpl class. +// +////////////////////////////////////////////////////////////////////// + +#ifndef MyValue_h +#define MyValue_h +#include +using std::string; + +namespace Other { + class MyValue + { + public: + virtual float getMyValueOther(const char* customerID) = 0; + virtual float getMyValueSOther(const string& customerID) = 0; + virtual string getCustnameOther(string& customerID) = 0; + virtual const string& getCustnamecsOther(string customerID) = 0; + } +} + + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.componentType new file mode 100644 index 0000000000..8673c813a6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.componentType @@ -0,0 +1,28 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.hpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.hpp new file mode 100644 index 0000000000..f7a8171a65 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.hpp @@ -0,0 +1,38 @@ +/* + * + * 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. + */ +// Class definition for the implementation + +#ifndef MyValueImpl_h +#define MyValueImpl_h + +#include "MyValue.h" + + + +class MyValueImpl : public MyValue +{ +public: + MyValueImpl(); + virtual ~MyValueImpl(); + virtual float getMyValue(const char* customerID); + virtual float getMyValueS(const string& customerID); + virtual string getCustname(string& customerID); + virtual const string& getCustnamecs(string customerID); + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/sca.module b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/sca.module new file mode 100644 index 0000000000..6572621f1d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/sca.module @@ -0,0 +1,48 @@ + + + + + + + + + MyValueServiceComponent + + + + + + + + CustomerInfoComponent + StockQuoteService + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValue.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValue.h new file mode 100644 index 0000000000..ea8ebbb792 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValue.h @@ -0,0 +1,37 @@ +/* + * + * 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. + */ + +// MyValue.h: interface for the MyValueImpl class. +// +////////////////////////////////////////////////////////////////////// + +#ifndef MyValue_h +#define MyValue_h +#include +using std::string; + +namespace Other { + class MyValue + { + public: + virtual float getMyValueOther(const char* customerID) = 0; + virtual float getMyValueSOther(const string& customerID) = 0; + virtual string getCustnameOther(string& customerID) = 0; + virtual const string& getCustnamecsOther(string customerID) = 0; + } +} +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType new file mode 100644 index 0000000000..c8d68fba5a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType @@ -0,0 +1,28 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp new file mode 100644 index 0000000000..f7a8171a65 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp @@ -0,0 +1,38 @@ +/* + * + * 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. + */ +// Class definition for the implementation + +#ifndef MyValueImpl_h +#define MyValueImpl_h + +#include "MyValue.h" + + + +class MyValueImpl : public MyValue +{ +public: + MyValueImpl(); + virtual ~MyValueImpl(); + virtual float getMyValue(const char* customerID); + virtual float getMyValueS(const string& customerID); + virtual string getCustname(string& customerID); + virtual const string& getCustnamecs(string customerID); + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/sca.module b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/sca.module new file mode 100644 index 0000000000..6572621f1d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/sca.module @@ -0,0 +1,48 @@ + + + + + + + + + MyValueServiceComponent + + + + + + + + CustomerInfoComponent + StockQuoteService + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/CustomerInfo.fragmentX b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/CustomerInfo.fragmentX new file mode 100644 index 0000000000..10c1805244 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/CustomerInfo.fragmentX @@ -0,0 +1,38 @@ + + + + + + + + + x + 23 + 42 + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/sca.moduleX b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/sca.moduleX new file mode 100644 index 0000000000..3eea80439f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/sca.moduleX @@ -0,0 +1,60 @@ + + + + + + + + + + MyValueServiceComponent + + + + + + + + CustomerInfoComponent + StockQuoteService + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.fragment b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.fragment new file mode 100644 index 0000000000..491e79f5e4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.fragment @@ -0,0 +1,38 @@ + + + + + + + + + x + 23 + 42 + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.h new file mode 100644 index 0000000000..7bd355b3ab --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.h @@ -0,0 +1,36 @@ +/* + * + * 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. + */ +#ifndef CustomerInfo_h +#define CustomerInfo_h + +class CustomerInfo +{ +public: + virtual const char* getCustomerInformation(const char* customerID) = 0; + +}; + + +class CustomerInfoSecond +{ +public: + virtual const char* getCustomerInformationSecond(const char* customerID) = 0; + +}; + + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.componentType new file mode 100644 index 0000000000..179af71dca --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.componentType @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.h new file mode 100644 index 0000000000..e247a9b0bb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.h @@ -0,0 +1,45 @@ +/* + * + * 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. + */ + +// Class definition for the implementation + +#ifndef CustomerInfoImpl_h +#define CustomerInfoImpl_h + +#include "CustomerInfo.h" + + + +class CustomerInfoImpl : public CustomerInfo +{ +public: + CustomerInfoImpl(); + virtual ~CustomerInfoImpl(); + virtual const char* getCustomerInformation(const char* customerID); + +}; + +class CustomerInfoImpl2 : public CustomerInfo +{ +public: + CustomerInfoImpl(); + virtual ~CustomerInfoImpl(); + virtual const char* getCustomerInformation(const char* customerID); + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValue.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValue.h new file mode 100644 index 0000000000..a65b1f944c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValue.h @@ -0,0 +1,35 @@ +/* + * + * 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. + */ +// MyValue.h: interface for the MyValueImpl class. +// +////////////////////////////////////////////////////////////////////// + +#ifndef MyValue_h +#define MyValue_h +#include +using std::string; +class MyValue +{ +public: + virtual float getMyValue(const char* customerID) = 0; + virtual float getMyValueS(const string& customerID) = 0; + virtual string getCustname(string& customerID) = 0; + virtual const string& getCustnamecs(string customerID) = 0; + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.componentType new file mode 100644 index 0000000000..df0d97a438 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.componentType @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.hpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.hpp new file mode 100644 index 0000000000..f7a8171a65 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.hpp @@ -0,0 +1,38 @@ +/* + * + * 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. + */ +// Class definition for the implementation + +#ifndef MyValueImpl_h +#define MyValueImpl_h + +#include "MyValue.h" + + + +class MyValueImpl : public MyValue +{ +public: + MyValueImpl(); + virtual ~MyValueImpl(); + virtual float getMyValue(const char* customerID); + virtual float getMyValueS(const string& customerID); + virtual string getCustname(string& customerID); + virtual const string& getCustnamecs(string customerID); + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl_stockQuote_Proxy.h new file mode 100644 index 0000000000..5c8293b51e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl_stockQuote_Proxy.h @@ -0,0 +1,34 @@ +/* + * + * 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. + */ + +#ifndef MyValueImpl_stockQuote_Proxy_h +#define MyValueImpl_stockQuote_Proxy_h + +#include "StockQuoteService.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_stockQuote_Proxy : public StockQuoteService +{ +public: + MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_stockQuote_Proxy(); + virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_stockQuote_Proxy_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/StockQuoteService.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/StockQuoteService.h new file mode 100644 index 0000000000..919b514e1a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/StockQuoteService.h @@ -0,0 +1,32 @@ +/* + * + * 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. + */ +// +////////////////////////////////////////////////////////////////////// + +#ifndef StockQuoteService_h +#define StockQuoteService_h +#include +#include "commonj/sdo/sdo.h" +using std::string; +class StockQuoteService +{ +public: + virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0; + +}; + +#endif // StockQuoteService_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/sca.module b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/sca.module new file mode 100644 index 0000000000..565f4a74ec --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/sca.module @@ -0,0 +1,59 @@ + + + + + + + + + MyValueServiceComponent + + + + + + + + CustomerInfoComponent + StockQuoteService + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.fragment b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.fragment new file mode 100644 index 0000000000..687162ec2a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.fragment @@ -0,0 +1,39 @@ + + + + + + + + + + x + 23 + 42 + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.h new file mode 100644 index 0000000000..b944d161eb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.h @@ -0,0 +1,40 @@ +/* + * + * 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. + */ +#ifndef CustomerInfo_h +#define CustomerInfo_h + +class CustomerInfo +{ +public: + virtual const char* getCustomerInformationCharPublic(char * p1, const char* customerID ) = 0; + virtual const char* getCustomerInfoACharPublic(char * p1,const char*) = 0; + virtual const char* getCustomerInfoBCharPublic(char * p1, char* customerID ) = 0; + +private: + virtual const char* getCustomerInformationCharPrivate(char * p1, const char* customerID ) = 0; + virtual const char* getCustomerInfoACharPrivate(char * p1,const char*) = 0; + virtual const char* getCustomerInfoBCharPrivate(char * p1, char* customerID ) = 0; + +protected: + virtual const char* getCustomerInformationCharProtected(char * p1, const char* customerID ) = 0; + virtual const char* getCustomerInfoACharProtected(char * p1,const char*) = 0; + virtual const char* getCustomerInfoBCharProtected(char * p1, char* customerID ) = 0; + + +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.componentType b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.componentType new file mode 100644 index 0000000000..179af71dca --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.componentType @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.h new file mode 100644 index 0000000000..87cac61085 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.h @@ -0,0 +1,34 @@ +/* + * + * 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. + */ +// Class definition for the implementation + +#ifndef CustomerInfoImpl_h +#define CustomerInfoImpl_h + +#include "CustomerInfo.h" + + + +class CustomerInfoImpl : public CustomerInfo +{ +public: + CustomerInfoImpl(); + virtual ~CustomerInfoImpl(); + virtual const char* getCustomerInformation(const char* customerID); + +}; +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp new file mode 100644 index 0000000000..04980879e3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp @@ -0,0 +1,67 @@ +/* + * 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. + */ + +#include "CalculatorImpl_CalculatorService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CalculatorImpl_CalculatorService_Proxy* CalculatorImpl_CalculatorService_Proxy_Factory(ServiceWrapper* target) + { + return new CalculatorImpl_CalculatorService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void CalculatorImpl_CalculatorService_Proxy_Destructor(void* proxy) + { + delete (CalculatorImpl_CalculatorService_Proxy*)proxy; + } +} + +CalculatorImpl_CalculatorService_Proxy::CalculatorImpl_CalculatorService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +CalculatorImpl_CalculatorService_Proxy::~CalculatorImpl_CalculatorService_Proxy() +{ + if (target) + delete target; +} + +long CalculatorImpl_CalculatorService_Proxy::subtract( long arg0, long arg1) +{ + Operation operation("subtract", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + long ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.h new file mode 100644 index 0000000000..748c493865 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +#ifndef CalculatorImpl_CalculatorService_Proxy_h +#define CalculatorImpl_CalculatorService_Proxy_h + +#include "Calculator.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class CalculatorImpl_CalculatorService_Proxy : public Calculator +{ +public: + CalculatorImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~CalculatorImpl_CalculatorService_Proxy(); + virtual long subtract( long a, long b); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // CalculatorImpl_CalculatorService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp new file mode 100644 index 0000000000..c174fb3a47 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#include "CalculatorImpl_CalculatorService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CalculatorImpl_CalculatorService_Wrapper* CalculatorImpl_CalculatorService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new CalculatorImpl_CalculatorService_Wrapper(target); + } +} + +CalculatorImpl_CalculatorService_Wrapper::CalculatorImpl_CalculatorService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (CalculatorImpl*)getImplementation(); +} + +CalculatorImpl_CalculatorService_Wrapper::~CalculatorImpl_CalculatorService_Wrapper() +{ + releaseImplementation(); +} + +void* CalculatorImpl_CalculatorService_Wrapper::newImplementation() +{ + return new CalculatorImpl; +} + +void CalculatorImpl_CalculatorService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void CalculatorImpl_CalculatorService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "subtract") + { + long& p0 = *( long*)operation.getParameter(0); + long& p1 = *( long*)operation.getParameter(1); + *(long*)operation.getReturnValue() = impl->subtract(p0, p1); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.h new file mode 100644 index 0000000000..8856c7786c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef CalculatorImpl_CalculatorService_Wrapper_h +#define CalculatorImpl_CalculatorService_Wrapper_h + +#include "CalculatorImpl.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class CalculatorImpl_CalculatorService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + CalculatorImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target); + virtual ~CalculatorImpl_CalculatorService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + CalculatorImpl* impl; +}; + +#endif // CalculatorImpl_CalculatorService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp new file mode 100644 index 0000000000..ded3e76eb0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp @@ -0,0 +1,81 @@ +/* + * 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. + */ + +#include "CalculatorBackImpl_CalculatorService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CalculatorBackImpl_CalculatorService_Proxy* CalculatorBackImpl_CalculatorService_Proxy_Factory(ServiceWrapper* target) + { + return new CalculatorBackImpl_CalculatorService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void CalculatorBackImpl_CalculatorService_Proxy_Destructor(void* proxy) + { + delete (CalculatorBackImpl_CalculatorService_Proxy*)proxy; + } +} + +CalculatorBackImpl_CalculatorService_Proxy::CalculatorBackImpl_CalculatorService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +CalculatorBackImpl_CalculatorService_Proxy::~CalculatorBackImpl_CalculatorService_Proxy() +{ + if (target) + delete target; +} + +long CalculatorBackImpl_CalculatorService_Proxy::subtractBack( long arg0, long arg1) +{ + Operation operation("subtractBack", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + long ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +long CalculatorBackImpl_CalculatorService_Proxy::addBack( long arg0, long arg1) +{ + Operation operation("addBack", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + long ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.h new file mode 100644 index 0000000000..2a2474aad1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.h @@ -0,0 +1,35 @@ +/* + * 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. + */ + +#ifndef CalculatorBackImpl_CalculatorService_Proxy_h +#define CalculatorBackImpl_CalculatorService_Proxy_h + +#include "otherSubFolder/CalculatorBack.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class CalculatorBackImpl_CalculatorService_Proxy : public CalculatorBack +{ +public: + CalculatorBackImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~CalculatorBackImpl_CalculatorService_Proxy(); + virtual long subtractBack( long a, long b); + virtual long addBack( long a, long b); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // CalculatorBackImpl_CalculatorService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp new file mode 100644 index 0000000000..b9a7f0a69a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp @@ -0,0 +1,78 @@ +/* + * 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. + */ + +#include "CalculatorBackImpl_CalculatorService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CalculatorBackImpl_CalculatorService_Wrapper* CalculatorBackImpl_CalculatorService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new CalculatorBackImpl_CalculatorService_Wrapper(target); + } +} + +CalculatorBackImpl_CalculatorService_Wrapper::CalculatorBackImpl_CalculatorService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (CalculatorBackImpl*)getImplementation(); +} + +CalculatorBackImpl_CalculatorService_Wrapper::~CalculatorBackImpl_CalculatorService_Wrapper() +{ + releaseImplementation(); +} + +void* CalculatorBackImpl_CalculatorService_Wrapper::newImplementation() +{ + return new CalculatorBackImpl; +} + +void CalculatorBackImpl_CalculatorService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void CalculatorBackImpl_CalculatorService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "subtractBack") + { + long& p0 = *( long*)operation.getParameter(0); + long& p1 = *( long*)operation.getParameter(1); + *(long*)operation.getReturnValue() = impl->subtractBack(p0, p1); + return; + } + if (operationName == "addBack") + { + long& p0 = *( long*)operation.getParameter(0); + long& p1 = *( long*)operation.getParameter(1); + *(long*)operation.getReturnValue() = impl->addBack(p0, p1); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.h new file mode 100644 index 0000000000..da132b9e34 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef CalculatorBackImpl_CalculatorService_Wrapper_h +#define CalculatorBackImpl_CalculatorService_Wrapper_h + +#include "subFolder/CalculatorBackImpl.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class CalculatorBackImpl_CalculatorService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + CalculatorBackImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target); + virtual ~CalculatorBackImpl_CalculatorService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + CalculatorBackImpl* impl; +}; + +#endif // CalculatorBackImpl_CalculatorService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp new file mode 100644 index 0000000000..77c6b7e29b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp @@ -0,0 +1,81 @@ +/* + * 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. + */ + +#include "CalculatorForwardImpl_CalculatorService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CalculatorForwardImpl_CalculatorService_Proxy* CalculatorForwardImpl_CalculatorService_Proxy_Factory(ServiceWrapper* target) + { + return new CalculatorForwardImpl_CalculatorService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void CalculatorForwardImpl_CalculatorService_Proxy_Destructor(void* proxy) + { + delete (CalculatorForwardImpl_CalculatorService_Proxy*)proxy; + } +} + +CalculatorForwardImpl_CalculatorService_Proxy::CalculatorForwardImpl_CalculatorService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +CalculatorForwardImpl_CalculatorService_Proxy::~CalculatorForwardImpl_CalculatorService_Proxy() +{ + if (target) + delete target; +} + +long CalculatorForwardImpl_CalculatorService_Proxy::subtractForward( long arg0, long arg1) +{ + Operation operation("subtractForward", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + long ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +long CalculatorForwardImpl_CalculatorService_Proxy::addForward( long arg0, long arg1) +{ + Operation operation("addForward", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + long ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.h new file mode 100644 index 0000000000..8714cddb83 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.h @@ -0,0 +1,35 @@ +/* + * 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. + */ + +#ifndef CalculatorForwardImpl_CalculatorService_Proxy_h +#define CalculatorForwardImpl_CalculatorService_Proxy_h + +#include "otherSubFolder/CalculatorForward.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class CalculatorForwardImpl_CalculatorService_Proxy : public CalculatorForward +{ +public: + CalculatorForwardImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~CalculatorForwardImpl_CalculatorService_Proxy(); + virtual long subtractForward( long a, long b); + virtual long addForward( long a, long b); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // CalculatorForwardImpl_CalculatorService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp new file mode 100644 index 0000000000..019cf00ca8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp @@ -0,0 +1,78 @@ +/* + * 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. + */ + +#include "CalculatorForwardImpl_CalculatorService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CalculatorForwardImpl_CalculatorService_Wrapper* CalculatorForwardImpl_CalculatorService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new CalculatorForwardImpl_CalculatorService_Wrapper(target); + } +} + +CalculatorForwardImpl_CalculatorService_Wrapper::CalculatorForwardImpl_CalculatorService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (CalculatorForwardImpl*)getImplementation(); +} + +CalculatorForwardImpl_CalculatorService_Wrapper::~CalculatorForwardImpl_CalculatorService_Wrapper() +{ + releaseImplementation(); +} + +void* CalculatorForwardImpl_CalculatorService_Wrapper::newImplementation() +{ + return new CalculatorForwardImpl; +} + +void CalculatorForwardImpl_CalculatorService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void CalculatorForwardImpl_CalculatorService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "subtractForward") + { + long& p0 = *( long*)operation.getParameter(0); + long& p1 = *( long*)operation.getParameter(1); + *(long*)operation.getReturnValue() = impl->subtractForward(p0, p1); + return; + } + if (operationName == "addForward") + { + long& p0 = *( long*)operation.getParameter(0); + long& p1 = *( long*)operation.getParameter(1); + *(long*)operation.getReturnValue() = impl->addForward(p0, p1); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.h new file mode 100644 index 0000000000..3ab3fd9a7d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef CalculatorForwardImpl_CalculatorService_Wrapper_h +#define CalculatorForwardImpl_CalculatorService_Wrapper_h + +#include "subFolder/CalculatorForwardImpl.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class CalculatorForwardImpl_CalculatorService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + CalculatorForwardImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target); + virtual ~CalculatorForwardImpl_CalculatorService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + CalculatorForwardImpl* impl; +}; + +#endif // CalculatorForwardImpl_CalculatorService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp new file mode 100644 index 0000000000..9087c58b0f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp @@ -0,0 +1,699 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) + { + return new CustomerInfoImpl_CustomerInfoService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) + { + delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; + } +} + +CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() +{ + if (target) + delete target; +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationChar( char* arg0, const char* arg1) +{ + Operation operation("getCustomerInformationChar", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAChar( char* arg0, const char* arg1) +{ + Operation operation("getCustomerInfoAChar", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBChar( char* arg0, char* arg1) +{ + Operation operation("getCustomerInfoBChar", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCChar( char* arg0, char arg1) +{ + Operation operation("getCustomerInfoCChar", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)&arg1); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDChar( char* arg0, char arg1) +{ + Operation operation("getCustomerInfoDChar", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)&arg1); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEChar( char* arg0, char* arg1) +{ + Operation operation("getCustomerInfoEChar", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFChar( char* arg0, char* arg1, char* arg2) +{ + Operation operation("getCustomerInfoFChar", 3); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + operation.setParameter(2, (void*)arg2); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGChar( char* arg0, char* arg1, char* arg2, signed char* arg3) +{ + Operation operation("getCustomerInfoGChar", 4); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + operation.setParameter(2, (void*)arg2); + + operation.setParameter(3, (void*)arg3); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHChar( unsigned char* arg0, const char arg1) +{ + Operation operation("getCustomerInfoHChar", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)&arg1); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHChar( unsigned char* arg0, const char* arg1) +{ + Operation operation("getCustomerInfoHChar", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationLong(const long* arg0, const long* arg1) +{ + Operation operation("getCustomerInformationLong", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoALong(const long* arg0, const long* arg1) +{ + Operation operation("getCustomerInfoALong", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBLong( long* arg0, long* arg1) +{ + Operation operation("getCustomerInfoBLong", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCLong( long arg0, long arg1) +{ + Operation operation("getCustomerInfoCLong", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDLong( long arg0, long arg1) +{ + Operation operation("getCustomerInfoDLong", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoELong( long* arg0, long* arg1) +{ + Operation operation("getCustomerInfoELong", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFLong( long* arg0, long* arg1) +{ + Operation operation("getCustomerInfoFLong", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGLong( signed long* arg0, signed long* arg1) +{ + Operation operation("getCustomerInfoGLong", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHLong( signed long* arg0, signed long* arg1) +{ + Operation operation("getCustomerInfoHLong", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationInt( char* arg0, const int* arg1) +{ + Operation operation("getCustomerInformationInt", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInt( char* arg0, const int* arg1) +{ + Operation operation("getCustomerInfoAInt", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInt( char* arg0, int* arg1) +{ + Operation operation("getCustomerInfoBInt", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInt( char* arg0, int arg1) +{ + Operation operation("getCustomerInfoCInt", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)&arg1); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDInt( char* arg0, int arg1) +{ + Operation operation("getCustomerInfoDInt", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)&arg1); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEInt( char* arg0, int* arg1) +{ + Operation operation("getCustomerInfoEInt", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFInt( char* arg0, int* arg1) +{ + Operation operation("getCustomerInfoFInt", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGInt( char* arg0, signed int* arg1) +{ + Operation operation("getCustomerInfoGInt", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHInt( char* arg0, unsigned int* arg1) +{ + Operation operation("getCustomerInfoHInt", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationint64( Diamond& arg0, const __int64* arg1) +{ + Operation operation("getCustomerInformationint64", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAint64( Diamond& arg0, const __int64* arg1) +{ + Operation operation("getCustomerInfoAint64", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBint64( Diamond& arg0, __int64* arg1) +{ + Operation operation("getCustomerInfoBint64", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCint64( Diamond& arg0, __int64 arg1) +{ + Operation operation("getCustomerInfoCint64", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDint64( Diamond& arg0, __int64 arg1) +{ + Operation operation("getCustomerInfoDint64", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEint64( Diamond& arg0, __int64* arg1) +{ + Operation operation("getCustomerInfoEint64", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFint64( Diamond& arg0, __int64* arg1) +{ + Operation operation("getCustomerInfoFint64", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGint64( Diamond& arg0, signed __int64* arg1) +{ + Operation operation("getCustomerInfoGint64", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHint64(const Diamond& arg0, unsigned int64* arg1) +{ + Operation operation("getCustomerInfoHint64", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const void* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationVoid( float& arg0, const __int64* arg1) +{ + Operation operation("getCustomerInformationVoid", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const void*)operation.getReturnValue(); + +} + +void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAVoid(const float& arg0, const __int64* arg1) +{ + Operation operation("getCustomerInfoAVoid", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return; + +} + +void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBVoid() +{ + Operation operation("getCustomerInfoBVoid", 0); + + target->invoke(operation); + return; + +} + +void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCVoid() +{ + Operation operation("getCustomerInfoCVoid", 0); + + target->invoke(operation); + return; + +} + +void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDVoid() +{ + Operation operation("getCustomerInfoDVoid", 0); + + target->invoke(operation); + return; + +} + +char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEVoid() +{ + Operation operation("getCustomerInfoEVoid", 0); + char ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFVoid() +{ + Operation operation("getCustomerInfoFVoid", 0); + char ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGVoid() +{ + Operation operation("getCustomerInfoGVoid", 0); + char ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInline( int arg0, int arg1, int arg2, int arg3, char* customer arg4) +{ + Operation operation("getCustomerInfoAInline", 5); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + operation.setParameter(2, (void*)&arg2); + + operation.setParameter(3, (void*)&arg3); + + operation.setParameter(4, (void*)arg4); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInline( int* arg0, int* arg1, int* arg2, char* customer arg3) +{ + Operation operation("getCustomerInfoBInline", 4); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + operation.setParameter(2, (void*)arg2); + + operation.setParameter(3, (void*)arg3); + + int ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +friend const unsigned int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInline( char* customer arg0) +{ + Operation operation("getCustomerInfoCInline", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (friend const unsigned int*)operation.getReturnValue(); + +} + +int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyA(const char arg0, const char arg1) +{ + Operation operation("getCustomerInfoTrickyA", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + int ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyB( int arg0, int arg1) +{ + Operation operation("getCustomerInfoTrickyB", 2); + operation.setParameter(0, (void*)&arg0); + + operation.setParameter(1, (void*)&arg1); + + int ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h new file mode 100644 index 0000000000..47b604358a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h @@ -0,0 +1,83 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h +#define CustomerInfoImpl_CustomerInfoService_Proxy_h + +#include "/CustomerInfo.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo +{ +public: + CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); + virtual const char* getCustomerInformationChar( char* p1, const char* customerID); + virtual const char* getCustomerInfoAChar( char* p1, const char* ); + virtual const char* getCustomerInfoBChar( char* p1, char* customerID); + virtual const char* getCustomerInfoCChar( char* p1, char customerID); + virtual const char* getCustomerInfoDChar( char* p1, char ); + virtual const char* getCustomerInfoEChar( char* p1, char* ); + virtual const char* getCustomerInfoFChar( char* p1, char* p1, char* customerID); + virtual const char* getCustomerInfoGChar( char* p1, char* , char* p1, signed char* customerID); + virtual const char* getCustomerInfoHChar( unsigned char* customerID, const char ); + virtual const char* getCustomerInfoHChar( unsigned char* customerID, const char* ); + virtual const long* getCustomerInformationLong(const long* customerID, const long* customerID); + virtual const long* getCustomerInfoALong(const long* , const long* ); + virtual const long* getCustomerInfoBLong( long* customerID, long* customerID2); + virtual const long* getCustomerInfoCLong( long customerID, long customerID2); + virtual const long* getCustomerInfoDLong( long , long ); + virtual const long* getCustomerInfoELong( long* , long* ); + virtual const long* getCustomerInfoFLong( long* customerID, long* customerID2); + virtual const long* getCustomerInfoGLong( signed long* customerID, signed long* customerID2); + virtual const long* getCustomerInfoHLong( signed long* customerID, signed long* customerID2); + virtual const int* getCustomerInformationInt( char* , const int* customerID); + virtual const int* getCustomerInfoAInt( char* , const int* ); + virtual const int* getCustomerInfoBInt( char* , int* customerID); + virtual const int* getCustomerInfoCInt( char* , int customerID); + virtual const int* getCustomerInfoDInt( char* , int ); + virtual const int* getCustomerInfoEInt( char* , int* ); + virtual const int* getCustomerInfoFInt( char* , int* customerID); + virtual const int* getCustomerInfoGInt( char* , signed int* customerID); + virtual const int* getCustomerInfoHInt( char* , unsigned int* customerID); + virtual const __int64* getCustomerInformationint64( Diamond& , const __int64* customerID); + virtual const __int64* getCustomerInfoAint64( Diamond& , const __int64* ); + virtual const __int64* getCustomerInfoBint64( Diamond& , __int64* customerID); + virtual const __int64* getCustomerInfoCint64( Diamond& , __int64 customerID); + virtual const __int64* getCustomerInfoDint64( Diamond& myDiamond, __int64 ); + virtual const __int64* getCustomerInfoEint64( Diamond& myDiamond, __int64* ); + virtual const __int64* getCustomerInfoFint64( Diamond& myDiamond, __int64* customerID); + virtual const __int64* getCustomerInfoGint64( Diamond& myDiamond, signed __int64* customerID); + virtual const __int64* getCustomerInfoHint64(const Diamond& myDiamond, unsigned int64* customerID); + virtual const void* getCustomerInformationVoid( float& f, const __int64* customerID); + virtual void getCustomerInfoAVoid(const float& f, const __int64* ); + virtual void getCustomerInfoBVoid(); + virtual void getCustomerInfoCVoid(); + virtual void getCustomerInfoDVoid( void ); + virtual char getCustomerInfoEVoid( void ); + virtual char getCustomerInfoFVoid(); + virtual char getCustomerInfoGVoid( void ); + virtual const char* getCustomerInfoAInline( int , int , int , int , char* customer id); + virtual int getCustomerInfoBInline( int* , int* f, int* g, char* customer id); + virtual friend const unsigned int* getCustomerInfoCInline( char* customer id); + virtual int getCustomerInfoTrickyA(const char , const char ); + virtual int getCustomerInfoTrickyB( int myInt, int myInt); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp new file mode 100644 index 0000000000..51c975ec9b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp @@ -0,0 +1,449 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); + } +} + +CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (CustomerInfoImpl*)getImplementation(); +} + +CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() +{ + releaseImplementation(); +} + +void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() +{ + return new CustomerInfoImpl; +} + +void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "getCustomerInformationChar") + { + char* p0 = ( char*)operation.getParameter(0); + const char* p1 = (const char*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInformationChar(p0, p1)); + return; + } + if (operationName == "getCustomerInfoAChar") + { + char* p0 = ( char*)operation.getParameter(0); + const char* p1 = (const char*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoAChar(p0, p1)); + return; + } + if (operationName == "getCustomerInfoBChar") + { + char* p0 = ( char*)operation.getParameter(0); + char* p1 = ( char*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoBChar(p0, p1)); + return; + } + if (operationName == "getCustomerInfoCChar") + { + char* p0 = ( char*)operation.getParameter(0); + char& p1 = *( char*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoCChar(p0, p1)); + return; + } + if (operationName == "getCustomerInfoDChar") + { + char* p0 = ( char*)operation.getParameter(0); + char& p1 = *( char*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoDChar(p0, p1)); + return; + } + if (operationName == "getCustomerInfoEChar") + { + char* p0 = ( char*)operation.getParameter(0); + char* p1 = ( char*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoEChar(p0, p1)); + return; + } + if (operationName == "getCustomerInfoFChar") + { + char* p0 = ( char*)operation.getParameter(0); + char* p1 = ( char*)operation.getParameter(1); + char* p2 = ( char*)operation.getParameter(2); + + operation.setReturnValue((void*) impl->getCustomerInfoFChar(p0, p1, p2)); + return; + } + if (operationName == "getCustomerInfoGChar") + { + char* p0 = ( char*)operation.getParameter(0); + char* p1 = ( char*)operation.getParameter(1); + char* p2 = ( char*)operation.getParameter(2); + signed char* p3 = ( signed char*)operation.getParameter(3); + + operation.setReturnValue((void*) impl->getCustomerInfoGChar(p0, p1, p2, p3)); + return; + } + if (operationName == "getCustomerInfoHChar") + { + unsigned char* p0 = ( unsigned char*)operation.getParameter(0); + const char& p1 = *(const char*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoHChar(p0, p1)); + return; + } + if (operationName == "getCustomerInfoHChar") + { + unsigned char* p0 = ( unsigned char*)operation.getParameter(0); + const char* p1 = (const char*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoHChar(p0, p1)); + return; + } + if (operationName == "getCustomerInformationLong") + { + const long* p0 = (const long*)operation.getParameter(0); + const long* p1 = (const long*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInformationLong(p0, p1)); + return; + } + if (operationName == "getCustomerInfoALong") + { + const long* p0 = (const long*)operation.getParameter(0); + const long* p1 = (const long*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoALong(p0, p1)); + return; + } + if (operationName == "getCustomerInfoBLong") + { + long* p0 = ( long*)operation.getParameter(0); + long* p1 = ( long*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoBLong(p0, p1)); + return; + } + if (operationName == "getCustomerInfoCLong") + { + long& p0 = *( long*)operation.getParameter(0); + long& p1 = *( long*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoCLong(p0, p1)); + return; + } + if (operationName == "getCustomerInfoDLong") + { + long& p0 = *( long*)operation.getParameter(0); + long& p1 = *( long*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoDLong(p0, p1)); + return; + } + if (operationName == "getCustomerInfoELong") + { + long* p0 = ( long*)operation.getParameter(0); + long* p1 = ( long*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoELong(p0, p1)); + return; + } + if (operationName == "getCustomerInfoFLong") + { + long* p0 = ( long*)operation.getParameter(0); + long* p1 = ( long*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoFLong(p0, p1)); + return; + } + if (operationName == "getCustomerInfoGLong") + { + signed long* p0 = ( signed long*)operation.getParameter(0); + signed long* p1 = ( signed long*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoGLong(p0, p1)); + return; + } + if (operationName == "getCustomerInfoHLong") + { + signed long* p0 = ( signed long*)operation.getParameter(0); + signed long* p1 = ( signed long*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoHLong(p0, p1)); + return; + } + if (operationName == "getCustomerInformationInt") + { + char* p0 = ( char*)operation.getParameter(0); + const int* p1 = (const int*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInformationInt(p0, p1)); + return; + } + if (operationName == "getCustomerInfoAInt") + { + char* p0 = ( char*)operation.getParameter(0); + const int* p1 = (const int*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoAInt(p0, p1)); + return; + } + if (operationName == "getCustomerInfoBInt") + { + char* p0 = ( char*)operation.getParameter(0); + int* p1 = ( int*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoBInt(p0, p1)); + return; + } + if (operationName == "getCustomerInfoCInt") + { + char* p0 = ( char*)operation.getParameter(0); + int& p1 = *( int*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoCInt(p0, p1)); + return; + } + if (operationName == "getCustomerInfoDInt") + { + char* p0 = ( char*)operation.getParameter(0); + int& p1 = *( int*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoDInt(p0, p1)); + return; + } + if (operationName == "getCustomerInfoEInt") + { + char* p0 = ( char*)operation.getParameter(0); + int* p1 = ( int*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoEInt(p0, p1)); + return; + } + if (operationName == "getCustomerInfoFInt") + { + char* p0 = ( char*)operation.getParameter(0); + int* p1 = ( int*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoFInt(p0, p1)); + return; + } + if (operationName == "getCustomerInfoGInt") + { + char* p0 = ( char*)operation.getParameter(0); + signed int* p1 = ( signed int*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoGInt(p0, p1)); + return; + } + if (operationName == "getCustomerInfoHInt") + { + char* p0 = ( char*)operation.getParameter(0); + unsigned int* p1 = ( unsigned int*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoHInt(p0, p1)); + return; + } + if (operationName == "getCustomerInformationint64") + { + Diamond& p0 = *(Diamond*)operation.getParameter(0); + const __int64* p1 = (const __int64*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInformationint64(p0, p1)); + return; + } + if (operationName == "getCustomerInfoAint64") + { + Diamond& p0 = *(Diamond*)operation.getParameter(0); + const __int64* p1 = (const __int64*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoAint64(p0, p1)); + return; + } + if (operationName == "getCustomerInfoBint64") + { + Diamond& p0 = *(Diamond*)operation.getParameter(0); + __int64* p1 = ( __int64*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoBint64(p0, p1)); + return; + } + if (operationName == "getCustomerInfoCint64") + { + Diamond& p0 = *(Diamond*)operation.getParameter(0); + __int64& p1 = *( __int64*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoCint64(p0, p1)); + return; + } + if (operationName == "getCustomerInfoDint64") + { + Diamond& p0 = *(Diamond*)operation.getParameter(0); + __int64& p1 = *( __int64*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoDint64(p0, p1)); + return; + } + if (operationName == "getCustomerInfoEint64") + { + Diamond& p0 = *(Diamond*)operation.getParameter(0); + __int64* p1 = ( __int64*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoEint64(p0, p1)); + return; + } + if (operationName == "getCustomerInfoFint64") + { + Diamond& p0 = *(Diamond*)operation.getParameter(0); + __int64* p1 = ( __int64*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoFint64(p0, p1)); + return; + } + if (operationName == "getCustomerInfoGint64") + { + Diamond& p0 = *(Diamond*)operation.getParameter(0); + signed __int64* p1 = ( signed __int64*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoGint64(p0, p1)); + return; + } + if (operationName == "getCustomerInfoHint64") + { + Diamond& p0 = *(Diamond*)operation.getParameter(0); + unsigned int64* p1 = ( unsigned int64*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoHint64(p0, p1)); + return; + } + if (operationName == "getCustomerInformationVoid") + { + float& p0 = *(float*)operation.getParameter(0); + const __int64* p1 = (const __int64*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInformationVoid(p0, p1)); + return; + } + if (operationName == "getCustomerInfoAVoid") + { + float& p0 = *(float*)operation.getParameter(0); + const __int64* p1 = (const __int64*)operation.getParameter(1); + impl->getCustomerInfoAVoid(p0, p1); + return; + } + if (operationName == "getCustomerInfoBVoid") + { + impl->getCustomerInfoBVoid(); + return; + } + if (operationName == "getCustomerInfoCVoid") + { + impl->getCustomerInfoCVoid(); + return; + } + if (operationName == "getCustomerInfoDVoid") + { + impl->getCustomerInfoDVoid(); + return; + } + if (operationName == "getCustomerInfoEVoid") + { + *(char*)operation.getReturnValue() = impl->getCustomerInfoEVoid(); + return; + } + if (operationName == "getCustomerInfoFVoid") + { + *(char*)operation.getReturnValue() = impl->getCustomerInfoFVoid(); + return; + } + if (operationName == "getCustomerInfoGVoid") + { + *(char*)operation.getReturnValue() = impl->getCustomerInfoGVoid(); + return; + } + if (operationName == "getCustomerInfoAInline") + { + int& p0 = *( int*)operation.getParameter(0); + int& p1 = *( int*)operation.getParameter(1); + int& p2 = *( int*)operation.getParameter(2); + int& p3 = *( int*)operation.getParameter(3); + char* customer p4 = ( char* customer)operation.getParameter(4); + + operation.setReturnValue((void*) impl->getCustomerInfoAInline(p0, p1, p2, p3, p4)); + return; + } + if (operationName == "getCustomerInfoBInline") + { + int* p0 = ( int*)operation.getParameter(0); + int* p1 = ( int*)operation.getParameter(1); + int* p2 = ( int*)operation.getParameter(2); + char* customer p3 = ( char* customer)operation.getParameter(3); + *(int*)operation.getReturnValue() = impl->getCustomerInfoBInline(p0, p1, p2, p3); + return; + } + if (operationName == "getCustomerInfoCInline") + { + char* customer p0 = ( char* customer)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoCInline(p0)); + return; + } + if (operationName == "getCustomerInfoTrickyA") + { + const char& p0 = *(const char*)operation.getParameter(0); + const char& p1 = *(const char*)operation.getParameter(1); + *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyA(p0, p1); + return; + } + if (operationName == "getCustomerInfoTrickyB") + { + int& p0 = *( int*)operation.getParameter(0); + int& p1 = *( int*)operation.getParameter(1); + *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyB(p0, p1); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h new file mode 100644 index 0000000000..778a168220 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h +#define CustomerInfoImpl_CustomerInfoService_Wrapper_h + +#include "CustomerInfoImpl.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); + virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + CustomerInfoImpl* impl; +}; + +#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp new file mode 100644 index 0000000000..a033e9b11e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp @@ -0,0 +1,556 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) + { + return new CustomerInfoImpl_CustomerInfoService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) + { + delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; + } +} + +CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() +{ + if (target) + delete target; +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationChar(const char* arg0) +{ + Operation operation("getCustomerInformationChar", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAChar(const char* arg0) +{ + Operation operation("getCustomerInfoAChar", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBChar( char* arg0) +{ + Operation operation("getCustomerInfoBChar", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCChar( char arg0) +{ + Operation operation("getCustomerInfoCChar", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDChar( char arg0) +{ + Operation operation("getCustomerInfoDChar", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEChar( char* arg0) +{ + Operation operation("getCustomerInfoEChar", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFChar( char* arg0) +{ + Operation operation("getCustomerInfoFChar", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGChar( signed char* arg0) +{ + Operation operation("getCustomerInfoGChar", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHChar( unsigned char* arg0) +{ + Operation operation("getCustomerInfoHChar", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationLong(const long* arg0) +{ + Operation operation("getCustomerInformationLong", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoALong(const long* arg0) +{ + Operation operation("getCustomerInfoALong", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBLong( long* arg0) +{ + Operation operation("getCustomerInfoBLong", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCLong( long arg0) +{ + Operation operation("getCustomerInfoCLong", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDLong( long arg0) +{ + Operation operation("getCustomerInfoDLong", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoELong( long* arg0) +{ + Operation operation("getCustomerInfoELong", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFLong( long* arg0) +{ + Operation operation("getCustomerInfoFLong", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGLong( signed long* arg0) +{ + Operation operation("getCustomerInfoGLong", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHLong( unsigned long* arg0) +{ + Operation operation("getCustomerInfoHLong", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const long*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationInt(const int* arg0) +{ + Operation operation("getCustomerInformationInt", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInt(const int* arg0) +{ + Operation operation("getCustomerInfoAInt", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInt( int* arg0) +{ + Operation operation("getCustomerInfoBInt", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInt( int arg0) +{ + Operation operation("getCustomerInfoCInt", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDInt( int arg0) +{ + Operation operation("getCustomerInfoDInt", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEInt( int* arg0) +{ + Operation operation("getCustomerInfoEInt", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFInt( int* arg0) +{ + Operation operation("getCustomerInfoFInt", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGInt( signed int* arg0) +{ + Operation operation("getCustomerInfoGInt", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHInt( unsigned int* arg0) +{ + Operation operation("getCustomerInfoHInt", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const int*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationint64(const __int64* arg0) +{ + Operation operation("getCustomerInformationint64", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAint64(const __int64* arg0) +{ + Operation operation("getCustomerInfoAint64", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBint64( __int64* arg0) +{ + Operation operation("getCustomerInfoBint64", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCint64( __int64 arg0) +{ + Operation operation("getCustomerInfoCint64", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDint64( __int64 arg0) +{ + Operation operation("getCustomerInfoDint64", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEint64( __int64* arg0) +{ + Operation operation("getCustomerInfoEint64", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFint64( __int64* arg0) +{ + Operation operation("getCustomerInfoFint64", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGint64( signed __int64* arg0) +{ + Operation operation("getCustomerInfoGint64", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHint64( unsigned int64* arg0) +{ + Operation operation("getCustomerInfoHint64", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const __int64*)operation.getReturnValue(); + +} + +const void* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationVoid(const __int64* arg0) +{ + Operation operation("getCustomerInformationVoid", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const void*)operation.getReturnValue(); + +} + +void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAVoid(const __int64* arg0) +{ + Operation operation("getCustomerInfoAVoid", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return; + +} + +void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBVoid() +{ + Operation operation("getCustomerInfoBVoid", 0); + + target->invoke(operation); + return; + +} + +void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCVoid() +{ + Operation operation("getCustomerInfoCVoid", 0); + + target->invoke(operation); + return; + +} + +void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDVoid() +{ + Operation operation("getCustomerInfoDVoid", 0); + + target->invoke(operation); + return; + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInline( char* customer arg0) +{ + Operation operation("getCustomerInfoAInline", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInline( char* customer arg0) +{ + Operation operation("getCustomerInfoBInline", 1); + operation.setParameter(0, (void*)arg0); + + int ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +friend const unsigned int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInline( char* customer arg0) +{ + Operation operation("getCustomerInfoCInline", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (friend const unsigned int*)operation.getReturnValue(); + +} + +int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyA(const char arg0) +{ + Operation operation("getCustomerInfoTrickyA", 1); + operation.setParameter(0, (void*)&arg0); + + int ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyB( int arg0) +{ + Operation operation("getCustomerInfoTrickyB", 1); + operation.setParameter(0, (void*)&arg0); + + int ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h new file mode 100644 index 0000000000..f10da9c15e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h @@ -0,0 +1,79 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h +#define CustomerInfoImpl_CustomerInfoService_Proxy_h + +#include "/CustomerInfo.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo +{ +public: + CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); + virtual const char* getCustomerInformationChar(const char* customerID); + virtual const char* getCustomerInfoAChar(const char* ); + virtual const char* getCustomerInfoBChar( char* customerID); + virtual const char* getCustomerInfoCChar( char customerID); + virtual const char* getCustomerInfoDChar( char ); + virtual const char* getCustomerInfoEChar( char* ); + virtual const char* getCustomerInfoFChar( char* customerID); + virtual const char* getCustomerInfoGChar( signed char* customerID); + virtual const char* getCustomerInfoHChar( unsigned char* customerID); + virtual const long* getCustomerInformationLong(const long* customerID); + virtual const long* getCustomerInfoALong(const long* ); + virtual const long* getCustomerInfoBLong( long* customerID); + virtual const long* getCustomerInfoCLong( long customerID); + virtual const long* getCustomerInfoDLong( long ); + virtual const long* getCustomerInfoELong( long* ); + virtual const long* getCustomerInfoFLong( long* customerID); + virtual const long* getCustomerInfoGLong( signed long* customerID); + virtual const long* getCustomerInfoHLong( unsigned long* customerID); + virtual const int* getCustomerInformationInt(const int* customerID); + virtual const int* getCustomerInfoAInt(const int* ); + virtual const int* getCustomerInfoBInt( int* customerID); + virtual const int* getCustomerInfoCInt( int customerID); + virtual const int* getCustomerInfoDInt( int ); + virtual const int* getCustomerInfoEInt( int* ); + virtual const int* getCustomerInfoFInt( int* customerID); + virtual const int* getCustomerInfoGInt( signed int* customerID); + virtual const int* getCustomerInfoHInt( unsigned int* customerID); + virtual const __int64* getCustomerInformationint64(const __int64* customerID); + virtual const __int64* getCustomerInfoAint64(const __int64* ); + virtual const __int64* getCustomerInfoBint64( __int64* customerID); + virtual const __int64* getCustomerInfoCint64( __int64 customerID); + virtual const __int64* getCustomerInfoDint64( __int64 ); + virtual const __int64* getCustomerInfoEint64( __int64* ); + virtual const __int64* getCustomerInfoFint64( __int64* customerID); + virtual const __int64* getCustomerInfoGint64( signed __int64* customerID); + virtual const __int64* getCustomerInfoHint64( unsigned int64* customerID); + virtual const void* getCustomerInformationVoid(const __int64* customerID); + virtual void getCustomerInfoAVoid(const __int64* ); + virtual void getCustomerInfoBVoid(); + virtual void getCustomerInfoCVoid(); + virtual void getCustomerInfoDVoid( void ); + virtual const char* getCustomerInfoAInline( char* customer id); + virtual int getCustomerInfoBInline( char* customer id); + virtual friend const unsigned int* getCustomerInfoCInline( char* customer id); + virtual int getCustomerInfoTrickyA(const char ); + virtual int getCustomerInfoTrickyB( int myInt); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp new file mode 100644 index 0000000000..abf2b8ed1a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp @@ -0,0 +1,376 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); + } +} + +CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (CustomerInfoImpl*)getImplementation(); +} + +CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() +{ + releaseImplementation(); +} + +void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() +{ + return new CustomerInfoImpl; +} + +void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "getCustomerInformationChar") + { + const char* p0 = (const char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInformationChar(p0)); + return; + } + if (operationName == "getCustomerInfoAChar") + { + const char* p0 = (const char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoAChar(p0)); + return; + } + if (operationName == "getCustomerInfoBChar") + { + char* p0 = ( char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoBChar(p0)); + return; + } + if (operationName == "getCustomerInfoCChar") + { + char& p0 = *( char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoCChar(p0)); + return; + } + if (operationName == "getCustomerInfoDChar") + { + char& p0 = *( char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoDChar(p0)); + return; + } + if (operationName == "getCustomerInfoEChar") + { + char* p0 = ( char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoEChar(p0)); + return; + } + if (operationName == "getCustomerInfoFChar") + { + char* p0 = ( char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoFChar(p0)); + return; + } + if (operationName == "getCustomerInfoGChar") + { + signed char* p0 = ( signed char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoGChar(p0)); + return; + } + if (operationName == "getCustomerInfoHChar") + { + unsigned char* p0 = ( unsigned char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoHChar(p0)); + return; + } + if (operationName == "getCustomerInformationLong") + { + const long* p0 = (const long*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInformationLong(p0)); + return; + } + if (operationName == "getCustomerInfoALong") + { + const long* p0 = (const long*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoALong(p0)); + return; + } + if (operationName == "getCustomerInfoBLong") + { + long* p0 = ( long*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoBLong(p0)); + return; + } + if (operationName == "getCustomerInfoCLong") + { + long& p0 = *( long*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoCLong(p0)); + return; + } + if (operationName == "getCustomerInfoDLong") + { + long& p0 = *( long*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoDLong(p0)); + return; + } + if (operationName == "getCustomerInfoELong") + { + long* p0 = ( long*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoELong(p0)); + return; + } + if (operationName == "getCustomerInfoFLong") + { + long* p0 = ( long*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoFLong(p0)); + return; + } + if (operationName == "getCustomerInfoGLong") + { + signed long* p0 = ( signed long*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoGLong(p0)); + return; + } + if (operationName == "getCustomerInfoHLong") + { + unsigned long* p0 = ( unsigned long*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoHLong(p0)); + return; + } + if (operationName == "getCustomerInformationInt") + { + const int* p0 = (const int*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInformationInt(p0)); + return; + } + if (operationName == "getCustomerInfoAInt") + { + const int* p0 = (const int*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoAInt(p0)); + return; + } + if (operationName == "getCustomerInfoBInt") + { + int* p0 = ( int*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoBInt(p0)); + return; + } + if (operationName == "getCustomerInfoCInt") + { + int& p0 = *( int*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoCInt(p0)); + return; + } + if (operationName == "getCustomerInfoDInt") + { + int& p0 = *( int*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoDInt(p0)); + return; + } + if (operationName == "getCustomerInfoEInt") + { + int* p0 = ( int*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoEInt(p0)); + return; + } + if (operationName == "getCustomerInfoFInt") + { + int* p0 = ( int*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoFInt(p0)); + return; + } + if (operationName == "getCustomerInfoGInt") + { + signed int* p0 = ( signed int*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoGInt(p0)); + return; + } + if (operationName == "getCustomerInfoHInt") + { + unsigned int* p0 = ( unsigned int*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoHInt(p0)); + return; + } + if (operationName == "getCustomerInformationint64") + { + const __int64* p0 = (const __int64*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInformationint64(p0)); + return; + } + if (operationName == "getCustomerInfoAint64") + { + const __int64* p0 = (const __int64*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoAint64(p0)); + return; + } + if (operationName == "getCustomerInfoBint64") + { + __int64* p0 = ( __int64*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoBint64(p0)); + return; + } + if (operationName == "getCustomerInfoCint64") + { + __int64& p0 = *( __int64*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoCint64(p0)); + return; + } + if (operationName == "getCustomerInfoDint64") + { + __int64& p0 = *( __int64*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoDint64(p0)); + return; + } + if (operationName == "getCustomerInfoEint64") + { + __int64* p0 = ( __int64*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoEint64(p0)); + return; + } + if (operationName == "getCustomerInfoFint64") + { + __int64* p0 = ( __int64*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoFint64(p0)); + return; + } + if (operationName == "getCustomerInfoGint64") + { + signed __int64* p0 = ( signed __int64*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoGint64(p0)); + return; + } + if (operationName == "getCustomerInfoHint64") + { + unsigned int64* p0 = ( unsigned int64*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoHint64(p0)); + return; + } + if (operationName == "getCustomerInformationVoid") + { + const __int64* p0 = (const __int64*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInformationVoid(p0)); + return; + } + if (operationName == "getCustomerInfoAVoid") + { + const __int64* p0 = (const __int64*)operation.getParameter(0); + impl->getCustomerInfoAVoid(p0); + return; + } + if (operationName == "getCustomerInfoBVoid") + { + impl->getCustomerInfoBVoid(); + return; + } + if (operationName == "getCustomerInfoCVoid") + { + impl->getCustomerInfoCVoid(); + return; + } + if (operationName == "getCustomerInfoDVoid") + { + impl->getCustomerInfoDVoid(); + return; + } + if (operationName == "getCustomerInfoAInline") + { + char* customer p0 = ( char* customer)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoAInline(p0)); + return; + } + if (operationName == "getCustomerInfoBInline") + { + char* customer p0 = ( char* customer)operation.getParameter(0); + *(int*)operation.getReturnValue() = impl->getCustomerInfoBInline(p0); + return; + } + if (operationName == "getCustomerInfoCInline") + { + char* customer p0 = ( char* customer)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInfoCInline(p0)); + return; + } + if (operationName == "getCustomerInfoTrickyA") + { + const char& p0 = *(const char*)operation.getParameter(0); + *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyA(p0); + return; + } + if (operationName == "getCustomerInfoTrickyB") + { + int& p0 = *( int*)operation.getParameter(0); + *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyB(p0); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h new file mode 100644 index 0000000000..778a168220 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h +#define CustomerInfoImpl_CustomerInfoService_Wrapper_h + +#include "CustomerInfoImpl.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); + virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + CustomerInfoImpl* impl; +}; + +#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp new file mode 100644 index 0000000000..e1950f17a6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp @@ -0,0 +1,64 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl2_CustomerInfoService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl2_CustomerInfoService_Proxy* CustomerInfoImpl2_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) + { + return new CustomerInfoImpl2_CustomerInfoService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void CustomerInfoImpl2_CustomerInfoService_Proxy_Destructor(void* proxy) + { + delete (CustomerInfoImpl2_CustomerInfoService_Proxy*)proxy; + } +} + +CustomerInfoImpl2_CustomerInfoService_Proxy::CustomerInfoImpl2_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +CustomerInfoImpl2_CustomerInfoService_Proxy::~CustomerInfoImpl2_CustomerInfoService_Proxy() +{ + if (target) + delete target; +} + +const char* CustomerInfoImpl2_CustomerInfoService_Proxy::getCustomerInformation(const char* arg0) +{ + Operation operation("getCustomerInformation", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h new file mode 100644 index 0000000000..03fe3e3b93 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl2_CustomerInfoService_Proxy_h +#define CustomerInfoImpl2_CustomerInfoService_Proxy_h + +#include "/CustomerInfo.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class CustomerInfoImpl2_CustomerInfoService_Proxy : public CustomerInfo +{ +public: + CustomerInfoImpl2_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~CustomerInfoImpl2_CustomerInfoService_Proxy(); + virtual const char* getCustomerInformation(const char* customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // CustomerInfoImpl2_CustomerInfoService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp new file mode 100644 index 0000000000..2d5f502b08 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl2_CustomerInfoService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl2_CustomerInfoService_Wrapper* CustomerInfoImpl2_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new CustomerInfoImpl2_CustomerInfoService_Wrapper(target); + } +} + +CustomerInfoImpl2_CustomerInfoService_Wrapper::CustomerInfoImpl2_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (CustomerInfoImpl2*)getImplementation(); +} + +CustomerInfoImpl2_CustomerInfoService_Wrapper::~CustomerInfoImpl2_CustomerInfoService_Wrapper() +{ + releaseImplementation(); +} + +void* CustomerInfoImpl2_CustomerInfoService_Wrapper::newImplementation() +{ + return new CustomerInfoImpl2; +} + +void CustomerInfoImpl2_CustomerInfoService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void CustomerInfoImpl2_CustomerInfoService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "getCustomerInformation") + { + const char* p0 = (const char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInformation(p0)); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h new file mode 100644 index 0000000000..7f7cb13a6b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl2_CustomerInfoService_Wrapper_h +#define CustomerInfoImpl2_CustomerInfoService_Wrapper_h + +#include "CustomerInfoImpl.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class CustomerInfoImpl2_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + CustomerInfoImpl2_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); + virtual ~CustomerInfoImpl2_CustomerInfoService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + CustomerInfoImpl2* impl; +}; + +#endif // CustomerInfoImpl2_CustomerInfoService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.cpp new file mode 100644 index 0000000000..c83eb661ca --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.cpp @@ -0,0 +1,100 @@ +/* + * 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. + */ + +#include "MyValueImpl_MyValueService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(ServiceWrapper* target) + { + return new MyValueImpl_MyValueService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) + { + delete (MyValueImpl_MyValueService_Proxy*)proxy; + } +} + +MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() +{ + if (target) + delete target; +} + +float MyValueImpl_MyValueService_Proxy::getMyValue(const char* arg0) +{ + Operation operation("getMyValue", 1); + operation.setParameter(0, (void*)arg0); + + float ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +float MyValueImpl_MyValueService_Proxy::getMyValueS(const string& arg0) +{ + Operation operation("getMyValueS", 1); + operation.setParameter(0, (void*)&arg0); + + float ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +string MyValueImpl_MyValueService_Proxy::getCustname( string& arg0) +{ + Operation operation("getCustname", 1); + operation.setParameter(0, (void*)&arg0); + + string ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +const string& MyValueImpl_MyValueService_Proxy::getCustnamecs( string arg0) +{ + Operation operation("getCustnamecs", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return *(const string*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.h new file mode 100644 index 0000000000..38f22384b0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.h @@ -0,0 +1,37 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_MyValueService_Proxy_h +#define MyValueImpl_MyValueService_Proxy_h + +#include "MyValue.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_MyValueService_Proxy : public MyValue +{ +public: + MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_MyValueService_Proxy(); + virtual float getMyValue(const char* customerID); + virtual float getMyValueS(const string& customerID); + virtual string getCustname( string& customerID); + virtual const string& getCustnamecs( string customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_MyValueService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.cpp new file mode 100644 index 0000000000..d9337c9341 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.cpp @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#include "MyValueImpl_MyValueService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new MyValueImpl_MyValueService_Wrapper(target); + } +} + +MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (MyValueImpl*)getImplementation(); +} + +MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() +{ + releaseImplementation(); +} + +void* MyValueImpl_MyValueService_Wrapper::newImplementation() +{ + return new MyValueImpl; +} + +void MyValueImpl_MyValueService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void MyValueImpl_MyValueService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "getMyValue") + { + const char* p0 = (const char*)operation.getParameter(0); + *(float*)operation.getReturnValue() = impl->getMyValue(p0); + return; + } + if (operationName == "getMyValueS") + { + string& p0 = *(string*)operation.getParameter(0); + *(float*)operation.getReturnValue() = impl->getMyValueS(p0); + return; + } + if (operationName == "getCustname") + { + string& p0 = *(string*)operation.getParameter(0); + *(string*)operation.getReturnValue() = impl->getCustname(p0); + return; + } + if (operationName == "getCustnamecs") + { + string& p0 = *( string*)operation.getParameter(0); + const string& ret = impl->getCustnamecs(p0); + operation.setReturnValue((void*)&ret); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.h new file mode 100644 index 0000000000..2f5da06e30 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_MyValueService_Wrapper_h +#define MyValueImpl_MyValueService_Wrapper_h + +#include "MyValueImpl.hpp" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); + virtual ~MyValueImpl_MyValueService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + MyValueImpl* impl; +}; + +#endif // MyValueImpl_MyValueService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.cpp new file mode 100644 index 0000000000..7625556203 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.cpp @@ -0,0 +1,64 @@ +/* + * 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. + */ + +#include "MyValueImpl_customerInfo_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_customerInfo_Proxy* MyValueImpl_customerInfo_Proxy_Factory(ServiceWrapper* target) + { + return new MyValueImpl_customerInfo_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void MyValueImpl_customerInfo_Proxy_Destructor(void* proxy) + { + delete (MyValueImpl_customerInfo_Proxy*)proxy; + } +} + +MyValueImpl_customerInfo_Proxy::MyValueImpl_customerInfo_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +MyValueImpl_customerInfo_Proxy::~MyValueImpl_customerInfo_Proxy() +{ + if (target) + delete target; +} + +const char* MyValueImpl_customerInfo_Proxy::getCustomerInformation(const char* arg0) +{ + Operation operation("getCustomerInformation", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.h new file mode 100644 index 0000000000..cc60ef5005 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_customerInfo_Proxy_h +#define MyValueImpl_customerInfo_Proxy_h + +#include "CustomerInfo.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_customerInfo_Proxy : public CustomerInfo +{ +public: + MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_customerInfo_Proxy(); + virtual const char* getCustomerInformation(const char* customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_customerInfo_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.cpp new file mode 100644 index 0000000000..14b37fa4bd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.cpp @@ -0,0 +1,66 @@ +/* + * 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. + */ + +#include "MyValueImpl_stockQuote_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_stockQuote_Proxy* MyValueImpl_stockQuote_Proxy_Factory(ServiceWrapper* target) + { + return new MyValueImpl_stockQuote_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void MyValueImpl_stockQuote_Proxy_Destructor(void* proxy) + { + delete (MyValueImpl_stockQuote_Proxy*)proxy; + } +} + +MyValueImpl_stockQuote_Proxy::MyValueImpl_stockQuote_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +MyValueImpl_stockQuote_Proxy::~MyValueImpl_stockQuote_Proxy() +{ + if (target) + delete target; +} + +commonj::sdo::DataObjectPtr MyValueImpl_stockQuote_Proxy::GetStockQuotes( commonj::sdo::DataObjectPtr arg0) +{ + Operation operation("GetStockQuotes", 1); + operation.setParameter(0, (void*)&arg0); + + commonj::sdo::DataObjectPtr ret = 0; + operation.setReturnValue((void*)&ret); + + target->invoke(operation); + return ret; + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.h new file mode 100644 index 0000000000..850bc3861c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_stockQuote_Proxy_h +#define MyValueImpl_stockQuote_Proxy_h + +#include "StockQuoteService.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_stockQuote_Proxy : public StockQuoteService +{ +public: + MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_stockQuote_Proxy(); + virtual commonj::sdo::DataObjectPtr GetStockQuotes( commonj::sdo::DataObjectPtr request); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_stockQuote_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp new file mode 100644 index 0000000000..aaf2115547 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp @@ -0,0 +1,64 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) + { + return new CustomerInfoImpl_CustomerInfoService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) + { + delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; + } +} + +CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() +{ + if (target) + delete target; +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformation(const char* arg0) +{ + Operation operation("getCustomerInformation", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h new file mode 100644 index 0000000000..3739cd72d1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h +#define CustomerInfoImpl_CustomerInfoService_Proxy_h + +#include "/CustomerInfo.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo +{ +public: + CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); + virtual const char* getCustomerInformation(const char* customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp new file mode 100644 index 0000000000..d1fb6073c9 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); + } +} + +CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (CustomerInfoImpl*)getImplementation(); +} + +CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() +{ + releaseImplementation(); +} + +void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() +{ + return new CustomerInfoImpl; +} + +void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "getCustomerInformation") + { + const char* p0 = (const char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInformation(p0)); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h new file mode 100644 index 0000000000..778a168220 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h +#define CustomerInfoImpl_CustomerInfoService_Wrapper_h + +#include "CustomerInfoImpl.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); + virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + CustomerInfoImpl* impl; +}; + +#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp new file mode 100644 index 0000000000..c83eb661ca --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp @@ -0,0 +1,100 @@ +/* + * 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. + */ + +#include "MyValueImpl_MyValueService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(ServiceWrapper* target) + { + return new MyValueImpl_MyValueService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) + { + delete (MyValueImpl_MyValueService_Proxy*)proxy; + } +} + +MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() +{ + if (target) + delete target; +} + +float MyValueImpl_MyValueService_Proxy::getMyValue(const char* arg0) +{ + Operation operation("getMyValue", 1); + operation.setParameter(0, (void*)arg0); + + float ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +float MyValueImpl_MyValueService_Proxy::getMyValueS(const string& arg0) +{ + Operation operation("getMyValueS", 1); + operation.setParameter(0, (void*)&arg0); + + float ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +string MyValueImpl_MyValueService_Proxy::getCustname( string& arg0) +{ + Operation operation("getCustname", 1); + operation.setParameter(0, (void*)&arg0); + + string ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +const string& MyValueImpl_MyValueService_Proxy::getCustnamecs( string arg0) +{ + Operation operation("getCustnamecs", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return *(const string*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h new file mode 100644 index 0000000000..38f22384b0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h @@ -0,0 +1,37 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_MyValueService_Proxy_h +#define MyValueImpl_MyValueService_Proxy_h + +#include "MyValue.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_MyValueService_Proxy : public MyValue +{ +public: + MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_MyValueService_Proxy(); + virtual float getMyValue(const char* customerID); + virtual float getMyValueS(const string& customerID); + virtual string getCustname( string& customerID); + virtual const string& getCustnamecs( string customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_MyValueService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp new file mode 100644 index 0000000000..d9337c9341 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#include "MyValueImpl_MyValueService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new MyValueImpl_MyValueService_Wrapper(target); + } +} + +MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (MyValueImpl*)getImplementation(); +} + +MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() +{ + releaseImplementation(); +} + +void* MyValueImpl_MyValueService_Wrapper::newImplementation() +{ + return new MyValueImpl; +} + +void MyValueImpl_MyValueService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void MyValueImpl_MyValueService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "getMyValue") + { + const char* p0 = (const char*)operation.getParameter(0); + *(float*)operation.getReturnValue() = impl->getMyValue(p0); + return; + } + if (operationName == "getMyValueS") + { + string& p0 = *(string*)operation.getParameter(0); + *(float*)operation.getReturnValue() = impl->getMyValueS(p0); + return; + } + if (operationName == "getCustname") + { + string& p0 = *(string*)operation.getParameter(0); + *(string*)operation.getReturnValue() = impl->getCustname(p0); + return; + } + if (operationName == "getCustnamecs") + { + string& p0 = *( string*)operation.getParameter(0); + const string& ret = impl->getCustnamecs(p0); + operation.setReturnValue((void*)&ret); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h new file mode 100644 index 0000000000..2f5da06e30 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_MyValueService_Wrapper_h +#define MyValueImpl_MyValueService_Wrapper_h + +#include "MyValueImpl.hpp" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); + virtual ~MyValueImpl_MyValueService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + MyValueImpl* impl; +}; + +#endif // MyValueImpl_MyValueService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp new file mode 100644 index 0000000000..7625556203 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp @@ -0,0 +1,64 @@ +/* + * 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. + */ + +#include "MyValueImpl_customerInfo_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_customerInfo_Proxy* MyValueImpl_customerInfo_Proxy_Factory(ServiceWrapper* target) + { + return new MyValueImpl_customerInfo_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void MyValueImpl_customerInfo_Proxy_Destructor(void* proxy) + { + delete (MyValueImpl_customerInfo_Proxy*)proxy; + } +} + +MyValueImpl_customerInfo_Proxy::MyValueImpl_customerInfo_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +MyValueImpl_customerInfo_Proxy::~MyValueImpl_customerInfo_Proxy() +{ + if (target) + delete target; +} + +const char* MyValueImpl_customerInfo_Proxy::getCustomerInformation(const char* arg0) +{ + Operation operation("getCustomerInformation", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.h new file mode 100644 index 0000000000..cc60ef5005 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_customerInfo_Proxy_h +#define MyValueImpl_customerInfo_Proxy_h + +#include "CustomerInfo.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_customerInfo_Proxy : public CustomerInfo +{ +public: + MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_customerInfo_Proxy(); + virtual const char* getCustomerInformation(const char* customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_customerInfo_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp new file mode 100644 index 0000000000..14b37fa4bd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp @@ -0,0 +1,66 @@ +/* + * 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. + */ + +#include "MyValueImpl_stockQuote_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_stockQuote_Proxy* MyValueImpl_stockQuote_Proxy_Factory(ServiceWrapper* target) + { + return new MyValueImpl_stockQuote_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void MyValueImpl_stockQuote_Proxy_Destructor(void* proxy) + { + delete (MyValueImpl_stockQuote_Proxy*)proxy; + } +} + +MyValueImpl_stockQuote_Proxy::MyValueImpl_stockQuote_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +MyValueImpl_stockQuote_Proxy::~MyValueImpl_stockQuote_Proxy() +{ + if (target) + delete target; +} + +commonj::sdo::DataObjectPtr MyValueImpl_stockQuote_Proxy::GetStockQuotes( commonj::sdo::DataObjectPtr arg0) +{ + Operation operation("GetStockQuotes", 1); + operation.setParameter(0, (void*)&arg0); + + commonj::sdo::DataObjectPtr ret = 0; + operation.setReturnValue((void*)&ret); + + target->invoke(operation); + return ret; + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.h new file mode 100644 index 0000000000..850bc3861c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_stockQuote_Proxy_h +#define MyValueImpl_stockQuote_Proxy_h + +#include "StockQuoteService.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_stockQuote_Proxy : public StockQuoteService +{ +public: + MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_stockQuote_Proxy(); + virtual commonj::sdo::DataObjectPtr GetStockQuotes( commonj::sdo::DataObjectPtr request); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_stockQuote_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp new file mode 100644 index 0000000000..5e5a85a7c5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp @@ -0,0 +1,100 @@ +/* + * 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. + */ + +#include "MyValueImpl_MyValueService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(ServiceWrapper* target) + { + return new MyValueImpl_MyValueService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) + { + delete (MyValueImpl_MyValueService_Proxy*)proxy; + } +} + +MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() +{ + if (target) + delete target; +} + +float MyValueImpl_MyValueService_Proxy::getMyValueOther(const char* arg0) +{ + Operation operation("getMyValueOther", 1); + operation.setParameter(0, (void*)arg0); + + float ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +float MyValueImpl_MyValueService_Proxy::getMyValueSOther(const string& arg0) +{ + Operation operation("getMyValueSOther", 1); + operation.setParameter(0, (void*)&arg0); + + float ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +string MyValueImpl_MyValueService_Proxy::getCustnameOther( string& arg0) +{ + Operation operation("getCustnameOther", 1); + operation.setParameter(0, (void*)&arg0); + + string ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +const string& MyValueImpl_MyValueService_Proxy::getCustnamecsOther( string arg0) +{ + Operation operation("getCustnamecsOther", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return *(const string*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h new file mode 100644 index 0000000000..19f4e9c89a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h @@ -0,0 +1,37 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_MyValueService_Proxy_h +#define MyValueImpl_MyValueService_Proxy_h + +#include "MyValue.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_MyValueService_Proxy : public Other::MyValue +{ +public: + MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_MyValueService_Proxy(); + virtual float getMyValueOther(const char* customerID); + virtual float getMyValueSOther(const string& customerID); + virtual string getCustnameOther( string& customerID); + virtual const string& getCustnamecsOther( string customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_MyValueService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp new file mode 100644 index 0000000000..7a5e40e9ea --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#include "MyValueImpl_MyValueService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new MyValueImpl_MyValueService_Wrapper(target); + } +} + +MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (MyValueImpl*)getImplementation(); +} + +MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() +{ + releaseImplementation(); +} + +void* MyValueImpl_MyValueService_Wrapper::newImplementation() +{ + return new MyValueImpl; +} + +void MyValueImpl_MyValueService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void MyValueImpl_MyValueService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "getMyValueOther") + { + const char* p0 = (const char*)operation.getParameter(0); + *(float*)operation.getReturnValue() = impl->getMyValueOther(p0); + return; + } + if (operationName == "getMyValueSOther") + { + string& p0 = *(string*)operation.getParameter(0); + *(float*)operation.getReturnValue() = impl->getMyValueSOther(p0); + return; + } + if (operationName == "getCustnameOther") + { + string& p0 = *(string*)operation.getParameter(0); + *(string*)operation.getReturnValue() = impl->getCustnameOther(p0); + return; + } + if (operationName == "getCustnamecsOther") + { + string& p0 = *( string*)operation.getParameter(0); + const string& ret = impl->getCustnamecsOther(p0); + operation.setReturnValue((void*)&ret); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h new file mode 100644 index 0000000000..2f5da06e30 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_MyValueService_Wrapper_h +#define MyValueImpl_MyValueService_Wrapper_h + +#include "MyValueImpl.hpp" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); + virtual ~MyValueImpl_MyValueService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + MyValueImpl* impl; +}; + +#endif // MyValueImpl_MyValueService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp new file mode 100644 index 0000000000..5e5a85a7c5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp @@ -0,0 +1,100 @@ +/* + * 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. + */ + +#include "MyValueImpl_MyValueService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(ServiceWrapper* target) + { + return new MyValueImpl_MyValueService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) + { + delete (MyValueImpl_MyValueService_Proxy*)proxy; + } +} + +MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() +{ + if (target) + delete target; +} + +float MyValueImpl_MyValueService_Proxy::getMyValueOther(const char* arg0) +{ + Operation operation("getMyValueOther", 1); + operation.setParameter(0, (void*)arg0); + + float ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +float MyValueImpl_MyValueService_Proxy::getMyValueSOther(const string& arg0) +{ + Operation operation("getMyValueSOther", 1); + operation.setParameter(0, (void*)&arg0); + + float ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +string MyValueImpl_MyValueService_Proxy::getCustnameOther( string& arg0) +{ + Operation operation("getCustnameOther", 1); + operation.setParameter(0, (void*)&arg0); + + string ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +const string& MyValueImpl_MyValueService_Proxy::getCustnamecsOther( string arg0) +{ + Operation operation("getCustnamecsOther", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return *(const string*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h new file mode 100644 index 0000000000..19f4e9c89a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h @@ -0,0 +1,37 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_MyValueService_Proxy_h +#define MyValueImpl_MyValueService_Proxy_h + +#include "MyValue.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_MyValueService_Proxy : public Other::MyValue +{ +public: + MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_MyValueService_Proxy(); + virtual float getMyValueOther(const char* customerID); + virtual float getMyValueSOther(const string& customerID); + virtual string getCustnameOther( string& customerID); + virtual const string& getCustnamecsOther( string customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_MyValueService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp new file mode 100644 index 0000000000..7a5e40e9ea --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#include "MyValueImpl_MyValueService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new MyValueImpl_MyValueService_Wrapper(target); + } +} + +MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (MyValueImpl*)getImplementation(); +} + +MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() +{ + releaseImplementation(); +} + +void* MyValueImpl_MyValueService_Wrapper::newImplementation() +{ + return new MyValueImpl; +} + +void MyValueImpl_MyValueService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void MyValueImpl_MyValueService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "getMyValueOther") + { + const char* p0 = (const char*)operation.getParameter(0); + *(float*)operation.getReturnValue() = impl->getMyValueOther(p0); + return; + } + if (operationName == "getMyValueSOther") + { + string& p0 = *(string*)operation.getParameter(0); + *(float*)operation.getReturnValue() = impl->getMyValueSOther(p0); + return; + } + if (operationName == "getCustnameOther") + { + string& p0 = *(string*)operation.getParameter(0); + *(string*)operation.getReturnValue() = impl->getCustnameOther(p0); + return; + } + if (operationName == "getCustnamecsOther") + { + string& p0 = *( string*)operation.getParameter(0); + const string& ret = impl->getCustnamecsOther(p0); + operation.setReturnValue((void*)&ret); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h new file mode 100644 index 0000000000..2f5da06e30 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_MyValueService_Wrapper_h +#define MyValueImpl_MyValueService_Wrapper_h + +#include "MyValueImpl.hpp" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); + virtual ~MyValueImpl_MyValueService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + MyValueImpl* impl; +}; + +#endif // MyValueImpl_MyValueService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp new file mode 100644 index 0000000000..e1950f17a6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp @@ -0,0 +1,64 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl2_CustomerInfoService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl2_CustomerInfoService_Proxy* CustomerInfoImpl2_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) + { + return new CustomerInfoImpl2_CustomerInfoService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void CustomerInfoImpl2_CustomerInfoService_Proxy_Destructor(void* proxy) + { + delete (CustomerInfoImpl2_CustomerInfoService_Proxy*)proxy; + } +} + +CustomerInfoImpl2_CustomerInfoService_Proxy::CustomerInfoImpl2_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +CustomerInfoImpl2_CustomerInfoService_Proxy::~CustomerInfoImpl2_CustomerInfoService_Proxy() +{ + if (target) + delete target; +} + +const char* CustomerInfoImpl2_CustomerInfoService_Proxy::getCustomerInformation(const char* arg0) +{ + Operation operation("getCustomerInformation", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h new file mode 100644 index 0000000000..03fe3e3b93 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl2_CustomerInfoService_Proxy_h +#define CustomerInfoImpl2_CustomerInfoService_Proxy_h + +#include "/CustomerInfo.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class CustomerInfoImpl2_CustomerInfoService_Proxy : public CustomerInfo +{ +public: + CustomerInfoImpl2_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~CustomerInfoImpl2_CustomerInfoService_Proxy(); + virtual const char* getCustomerInformation(const char* customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // CustomerInfoImpl2_CustomerInfoService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp new file mode 100644 index 0000000000..2d5f502b08 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl2_CustomerInfoService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl2_CustomerInfoService_Wrapper* CustomerInfoImpl2_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new CustomerInfoImpl2_CustomerInfoService_Wrapper(target); + } +} + +CustomerInfoImpl2_CustomerInfoService_Wrapper::CustomerInfoImpl2_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (CustomerInfoImpl2*)getImplementation(); +} + +CustomerInfoImpl2_CustomerInfoService_Wrapper::~CustomerInfoImpl2_CustomerInfoService_Wrapper() +{ + releaseImplementation(); +} + +void* CustomerInfoImpl2_CustomerInfoService_Wrapper::newImplementation() +{ + return new CustomerInfoImpl2; +} + +void CustomerInfoImpl2_CustomerInfoService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void CustomerInfoImpl2_CustomerInfoService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "getCustomerInformation") + { + const char* p0 = (const char*)operation.getParameter(0); + + operation.setReturnValue((void*) impl->getCustomerInformation(p0)); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h new file mode 100644 index 0000000000..7f7cb13a6b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl2_CustomerInfoService_Wrapper_h +#define CustomerInfoImpl2_CustomerInfoService_Wrapper_h + +#include "CustomerInfoImpl.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class CustomerInfoImpl2_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + CustomerInfoImpl2_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); + virtual ~CustomerInfoImpl2_CustomerInfoService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + CustomerInfoImpl2* impl; +}; + +#endif // CustomerInfoImpl2_CustomerInfoService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp new file mode 100644 index 0000000000..c83eb661ca --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp @@ -0,0 +1,100 @@ +/* + * 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. + */ + +#include "MyValueImpl_MyValueService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(ServiceWrapper* target) + { + return new MyValueImpl_MyValueService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) + { + delete (MyValueImpl_MyValueService_Proxy*)proxy; + } +} + +MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() +{ + if (target) + delete target; +} + +float MyValueImpl_MyValueService_Proxy::getMyValue(const char* arg0) +{ + Operation operation("getMyValue", 1); + operation.setParameter(0, (void*)arg0); + + float ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +float MyValueImpl_MyValueService_Proxy::getMyValueS(const string& arg0) +{ + Operation operation("getMyValueS", 1); + operation.setParameter(0, (void*)&arg0); + + float ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +string MyValueImpl_MyValueService_Proxy::getCustname( string& arg0) +{ + Operation operation("getCustname", 1); + operation.setParameter(0, (void*)&arg0); + + string ret; + operation.setReturnValue((void*)&ret); + target->invoke(operation); + return ret; + +} + +const string& MyValueImpl_MyValueService_Proxy::getCustnamecs( string arg0) +{ + Operation operation("getCustnamecs", 1); + operation.setParameter(0, (void*)&arg0); + + + target->invoke(operation); + return *(const string*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h new file mode 100644 index 0000000000..38f22384b0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h @@ -0,0 +1,37 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_MyValueService_Proxy_h +#define MyValueImpl_MyValueService_Proxy_h + +#include "MyValue.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_MyValueService_Proxy : public MyValue +{ +public: + MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_MyValueService_Proxy(); + virtual float getMyValue(const char* customerID); + virtual float getMyValueS(const string& customerID); + virtual string getCustname( string& customerID); + virtual const string& getCustnamecs( string customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_MyValueService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp new file mode 100644 index 0000000000..d9337c9341 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#include "MyValueImpl_MyValueService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new MyValueImpl_MyValueService_Wrapper(target); + } +} + +MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (MyValueImpl*)getImplementation(); +} + +MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() +{ + releaseImplementation(); +} + +void* MyValueImpl_MyValueService_Wrapper::newImplementation() +{ + return new MyValueImpl; +} + +void MyValueImpl_MyValueService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void MyValueImpl_MyValueService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "getMyValue") + { + const char* p0 = (const char*)operation.getParameter(0); + *(float*)operation.getReturnValue() = impl->getMyValue(p0); + return; + } + if (operationName == "getMyValueS") + { + string& p0 = *(string*)operation.getParameter(0); + *(float*)operation.getReturnValue() = impl->getMyValueS(p0); + return; + } + if (operationName == "getCustname") + { + string& p0 = *(string*)operation.getParameter(0); + *(string*)operation.getReturnValue() = impl->getCustname(p0); + return; + } + if (operationName == "getCustnamecs") + { + string& p0 = *( string*)operation.getParameter(0); + const string& ret = impl->getCustnamecs(p0); + operation.setReturnValue((void*)&ret); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h new file mode 100644 index 0000000000..2f5da06e30 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_MyValueService_Wrapper_h +#define MyValueImpl_MyValueService_Wrapper_h + +#include "MyValueImpl.hpp" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); + virtual ~MyValueImpl_MyValueService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + MyValueImpl* impl; +}; + +#endif // MyValueImpl_MyValueService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp new file mode 100644 index 0000000000..7625556203 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp @@ -0,0 +1,64 @@ +/* + * 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. + */ + +#include "MyValueImpl_customerInfo_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_customerInfo_Proxy* MyValueImpl_customerInfo_Proxy_Factory(ServiceWrapper* target) + { + return new MyValueImpl_customerInfo_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void MyValueImpl_customerInfo_Proxy_Destructor(void* proxy) + { + delete (MyValueImpl_customerInfo_Proxy*)proxy; + } +} + +MyValueImpl_customerInfo_Proxy::MyValueImpl_customerInfo_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +MyValueImpl_customerInfo_Proxy::~MyValueImpl_customerInfo_Proxy() +{ + if (target) + delete target; +} + +const char* MyValueImpl_customerInfo_Proxy::getCustomerInformation(const char* arg0) +{ + Operation operation("getCustomerInformation", 1); + operation.setParameter(0, (void*)arg0); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.h new file mode 100644 index 0000000000..cc60ef5005 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_customerInfo_Proxy_h +#define MyValueImpl_customerInfo_Proxy_h + +#include "CustomerInfo.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_customerInfo_Proxy : public CustomerInfo +{ +public: + MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_customerInfo_Proxy(); + virtual const char* getCustomerInformation(const char* customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_customerInfo_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp new file mode 100644 index 0000000000..14b37fa4bd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp @@ -0,0 +1,66 @@ +/* + * 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. + */ + +#include "MyValueImpl_stockQuote_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + MyValueImpl_stockQuote_Proxy* MyValueImpl_stockQuote_Proxy_Factory(ServiceWrapper* target) + { + return new MyValueImpl_stockQuote_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void MyValueImpl_stockQuote_Proxy_Destructor(void* proxy) + { + delete (MyValueImpl_stockQuote_Proxy*)proxy; + } +} + +MyValueImpl_stockQuote_Proxy::MyValueImpl_stockQuote_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +MyValueImpl_stockQuote_Proxy::~MyValueImpl_stockQuote_Proxy() +{ + if (target) + delete target; +} + +commonj::sdo::DataObjectPtr MyValueImpl_stockQuote_Proxy::GetStockQuotes( commonj::sdo::DataObjectPtr arg0) +{ + Operation operation("GetStockQuotes", 1); + operation.setParameter(0, (void*)&arg0); + + commonj::sdo::DataObjectPtr ret = 0; + operation.setReturnValue((void*)&ret); + + target->invoke(operation); + return ret; + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.h new file mode 100644 index 0000000000..850bc3861c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +#ifndef MyValueImpl_stockQuote_Proxy_h +#define MyValueImpl_stockQuote_Proxy_h + +#include "StockQuoteService.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class MyValueImpl_stockQuote_Proxy : public StockQuoteService +{ +public: + MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~MyValueImpl_stockQuote_Proxy(); + virtual commonj::sdo::DataObjectPtr GetStockQuotes( commonj::sdo::DataObjectPtr request); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // MyValueImpl_stockQuote_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp new file mode 100644 index 0000000000..fae8534537 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp @@ -0,0 +1,92 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) + { + return new CustomerInfoImpl_CustomerInfoService_Proxy(target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) + { + delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; + } +} + +CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) +{ +} + +CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() +{ + if (target) + delete target; +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationCharPublic( char* arg0, const char* arg1) +{ + Operation operation("getCustomerInformationCharPublic", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoACharPublic( char* arg0, const char* arg1) +{ + Operation operation("getCustomerInfoACharPublic", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + +const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBCharPublic( char* arg0, char* arg1) +{ + Operation operation("getCustomerInfoBCharPublic", 2); + operation.setParameter(0, (void*)arg0); + + operation.setParameter(1, (void*)arg1); + + + target->invoke(operation); + return (const char*)operation.getReturnValue(); + +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h new file mode 100644 index 0000000000..ea4c69e376 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h +#define CustomerInfoImpl_CustomerInfoService_Proxy_h + +#include "/CustomerInfo.h" +#include "tuscany/sca/core/ServiceWrapper.h" + +class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo +{ +public: + CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); + virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); + virtual const char* getCustomerInformationCharPublic( char* p1, const char* customerID); + virtual const char* getCustomerInfoACharPublic( char* p1, const char* ); + virtual const char* getCustomerInfoBCharPublic( char* p1, char* customerID); +private: + tuscany::sca::ServiceWrapper* target; +}; + +#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp new file mode 100644 index 0000000000..70a1e8cbd1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp @@ -0,0 +1,88 @@ +/* + * 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. + */ + +#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) + { + return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); + } +} + +CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) +{ + impl = (CustomerInfoImpl*)getImplementation(); +} + +CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() +{ + releaseImplementation(); +} + +void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() +{ + return new CustomerInfoImpl; +} + +void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() +{ + delete impl; +} + +void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + if (operationName == "getCustomerInformationCharPublic") + { + char* p0 = ( char*)operation.getParameter(0); + const char* p1 = (const char*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInformationCharPublic(p0, p1)); + return; + } + if (operationName == "getCustomerInfoACharPublic") + { + char* p0 = ( char*)operation.getParameter(0); + const char* p1 = (const char*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoACharPublic(p0, p1)); + return; + } + if (operationName == "getCustomerInfoBCharPublic") + { + char* p0 = ( char*)operation.getParameter(0); + char* p1 = ( char*)operation.getParameter(1); + + operation.setReturnValue((void*) impl->getCustomerInfoBCharPublic(p0, p1)); + return; + } + + + throw ServiceRuntimeException("Invalid operation"); + +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h new file mode 100644 index 0000000000..778a168220 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h +#define CustomerInfoImpl_CustomerInfoService_Wrapper_h + +#include "CustomerInfoImpl.h" +#include "tuscany/sca/core/ComponentServiceWrapper.h" + +class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper +{ +public: + CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); + virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); +private: + CustomerInfoImpl* impl; +}; + +#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/lib/readme.txt b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/lib/readme.txt new file mode 100644 index 0000000000..d99c666c6a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/lib/readme.txt @@ -0,0 +1,4 @@ +Place a junit.jar file (not shipped as part of Tuscany) +in this directory to get the scagen build.xml Ant build +file to find it and Junit classes (without setting the +property "junit.jar.folder". diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/scagen.cmd b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/scagen.cmd new file mode 100644 index 0000000000..b222ce2f9f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/scagen.cmd @@ -0,0 +1 @@ +@java -jar %~d0%~p0scagen.jar %* diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/scagen.sh b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/scagen.sh new file mode 100755 index 0000000000..23d6dedc47 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/scagen.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +# 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. + +java -jar scagen.jar -dir $2 -output $4 \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/BodyPart.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/BodyPart.java new file mode 100644 index 0000000000..65b1e2f6fa --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/BodyPart.java @@ -0,0 +1,90 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + */ + +package org.apache.tuscany.sca.cpp.tools.common; + +/** + * A snippet of C or C++ source code. If this snippet ends with a return + * statement, this body part also contains the return value. + */ +public class BodyPart { + public final static int TRAILING = 0; + + public final static int RETURN = 1; + + public final static int CATCH = 2; + + private String codeFragment; + + private String returnValue = null; + + private Parameter caughtValue = null; + + private int type; + + BodyPart(String cf) { + codeFragment = cf; + type = TRAILING; + } + + BodyPart(String cf, String rv) { + codeFragment = cf; + if (null != rv && !Utils.isSpace(rv)) { + type = RETURN; + returnValue = rv; + } else + type = TRAILING; + } + + BodyPart(String cf, Parameter cv) { + codeFragment = cf; + caughtValue = cv; + type = CATCH; + } + + public String getCodeFragment() { + return codeFragment; + } + + public boolean isTrailing() { + return TRAILING == type; + } + + public boolean isReturn() { + return RETURN == type; + } + + public boolean isCatch() { + return CATCH == type; + } + + public String getReturnValue() { + if (returnValue != null) + return returnValue.trim(); + else + return null; + } + + public Parameter getCaughtValue() { + return caughtValue; + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.java new file mode 100644 index 0000000000..6846bb4096 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.java @@ -0,0 +1,119 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + */ +package org.apache.tuscany.sca.cpp.tools.common; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; + +/** + * The superclass of tools that parse C/C++ code. This CParsingTool provides + * some useful common methods. + */ +public class CParsingTool { + protected boolean failed = false; + + protected Headers headers = new Headers(); + + protected CParsingTool(String[] args) throws Exception { + String text = new String(); + for (int i = 0; i < args.length; i++) + text += args[i] + " "; + Utils.outputDebugString(text); + + Options.set(args); + String config = (String) Options.getOption("-config"); + if (null != config) + Configuration.initialise(config); + } + + /** + * Read in any include files before the main processing of the tool is done. + * This constructs the Headers. + */ + protected Headers preparseHeaders(String option) throws Exception { + Headers headers = new Headers(); + Object o = Options.getOption(option); + if (null != o) { + Utils.outputDebugString("Pre-parsing headers..."); + List includeList; + if (o instanceof List) + includeList = (List) o; + else { + includeList = new ArrayList(); + includeList.add(o); + } + Iterator it = includeList.iterator(); + while (it.hasNext()) { + File include = new File((String) it.next()); + if (!include.isDirectory()) + Utils.rude("Bad include directory " + include); + + DirectoryTree tree = new DirectoryTree(headers, new HashSet( + Arrays.asList(new Object[] { "hpp", "h" }))); + tree.walkTree(include, null, 0); + } + Utils.outputDebugString("Parsing files..."); + } + + return headers; + } + + /** + * Checks the source directory looks good. + */ + protected File checkFile(String option) throws Exception { + String name = (String) Options.getOption(option); + if (null == name) { + printUsage(); + System.exit(-1); + } + + File file = new File(name); + if (!file.isFile() && !file.isDirectory()) + Utils.rude("Bad file or directory " + file); + return file; + } + + /** + * Checks the target directory and creates it if it doesn't already exist. + */ + protected File maybeCreateDirectory(String option) throws Exception { + String name = (String) Options.getOption(option); + if (null == name) { + printUsage(); + System.exit(-1); + } + + File file = new File(name); + if (!file.exists() && !file.mkdir()) + Utils.screenMessage("Failed to create directory " + file); + return file; + } + + protected void printUsage() { + System.out.println("usage: ??"); + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Configuration.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Configuration.java new file mode 100644 index 0000000000..1a900ff711 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Configuration.java @@ -0,0 +1,126 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + */ +package org.apache.tuscany.sca.cpp.tools.common; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +/** + * Encapsulates the tool's configuration file + */ +public class Configuration { + private static Set files = new HashSet(); + + private static Set classes = new HashSet(); + + private static Set methods = new HashSet(); + + private static Set macros = new HashSet(); + + private static Set defines = new HashSet(); + + private static Set attributes = new HashSet(); + + private static Map others = new HashMap(); + + /** + * No one creates an instance of this class. + */ + private Configuration() { + } + + /** + * Reads in the configuration file + */ + public static void initialise(String filename) throws Exception { + File file = new File(filename); + FileReader fr = new FileReader(file); + BufferedReader br = new BufferedReader(fr); + String line = br.readLine(); + for (int lineno = 1; null != line; lineno++, line = br.readLine()) { + // Ignore lines starting with a # (comments) and blank lines + if (line.startsWith("#")) + continue; + boolean blank = true; + for (int i = 0; i < line.length() && blank; i++) + if (!Character.isWhitespace(line.charAt(i))) + blank = false; + if (blank) + continue; + + int equals = line.indexOf("="); + if (-1 == equals) + Utils.rude("Bad line in configuration file " + filename + + " lineno " + lineno); + String key = line.substring(0, equals).trim(); + String value = line.substring(equals + 1).trim(); + if ("excludefile".equals(key)) { + files.add(value); + } else if ("excludeclass".equals(key)) { + classes.add(value); + } else if ("excludemethod".equals(key)) { + methods.add(value); + } else if ("macro".equals(key)) { + macros.add(value); + } else if ("define".equals(key)) { + defines.add(value); + } else if ("attribute".equals(key)) { + attributes.add(value); + } else { + others.put(key, value); + } + } + } + + public static boolean fileExcluded(String s) { + return files.contains(s); + } + + public static boolean classExcluded(String s) { + return classes.contains(s); + } + + public static boolean methodExcluded(String className, String method) { + return methods.contains(className + "::" + method); + } + + public static boolean isMacro(String s) { + return macros.contains(s); + } + + public static boolean isDefine(String s) { + return defines.contains(s); + } + + public static boolean isAttribute(String s) { + return attributes.contains(s); + } + + public static String getConfigured(String key) { + return (String) others.get(key); + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.java new file mode 100644 index 0000000000..a4f1ca9a21 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.java @@ -0,0 +1,100 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + */ +package org.apache.tuscany.sca.cpp.tools.common; + +import java.io.File; +import java.util.Set; +import java.util.StringTokenizer; + +public class DirectoryTree { + private FileActor actor; + + private Set extensions; + + public DirectoryTree(FileActor actor, Set extensions) { + this.actor = actor; + this.extensions = extensions; + } + + /** + * Starts adding trace into the given file. If the given file is a directory + * then this the starting directory and all code beneath and in this + * directory will be given trace. + * + * @param source - + * either the starting directory or one file to add trace to. + */ + public void walkTree(File source, File target, int depth) throws Exception { + depth++; + boolean noTarget = (null == target); + + if (!source.canRead()) + Utils.rude("Cannot read from source directory " + source); + if (!noTarget && !target.canWrite()) + Utils.rude("Cannot write to target directory " + target); + + if (source.isDirectory()) { + File[] filesInDirectory = source.listFiles(); + for (int i = 0; i < filesInDirectory.length; i++) { + File file = filesInDirectory[i]; + String name = file.getName(); + int dot = name.lastIndexOf('.'); + String ext = null; + if (-1 != dot) + ext = name.substring(dot + 1); + + if (file.isDirectory()) { + File newTarget = null; + if (!noTarget) { + StringTokenizer st = new StringTokenizer( + file.getPath(), "\\/"); + String newdir = null; + while (st.hasMoreTokens()) + newdir = st.nextToken(); + String targetName = maybeAppendSeparator(target + .toString()); + newTarget = new File(targetName + newdir); + if (!newTarget.mkdir()) + Utils.rude("Failed to create target directory " + + newTarget); + } + + // recurse + walkTree(file, newTarget, depth); + } else if (file.isFile() + && (extensions == null || (!file.isHidden() && extensions + .contains(ext)))) { + // this is a file and we need to add trace into it ! + actor.actOnFile(file, target, depth); + } + } + } else { + actor.actOnFile(source, target, depth); + } + } + + public static String maybeAppendSeparator(String name) { + if (!name.endsWith("/") && !name.endsWith("\\")) + name += "/"; + return name; + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FileActor.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FileActor.java new file mode 100644 index 0000000000..fc1c8ec5c3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FileActor.java @@ -0,0 +1,32 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + */ +package org.apache.tuscany.sca.cpp.tools.common; + +import java.io.File; + +/** + * DirectoryTree calls this interface to allow implementations of this interface + * to act on a file in the directory tree. + */ +public interface FileActor { + public void actOnFile(File source, File target, int depth) throws Exception; +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FilePart.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FilePart.java new file mode 100644 index 0000000000..e629751ea4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FilePart.java @@ -0,0 +1,75 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + */ + +package org.apache.tuscany.sca.cpp.tools.common; + +/** + * A piece of C++ source code + */ +public class FilePart { + public final static int UNKNOWN = 0; + + public final static int COMMENT = 1; + + public final static int METHOD = 2; + + public final static int FIELD = 3; + + public final static int BEGINSCOPE = 4; + + public final static int ENDSCOPE = 5; + + public final static int DIRECTIVE = 6; + + public final static int WHITESPACE = 7; + + public final static int MACRO = 8; + + public final static int CLASSATTRIBUTE = 9; + + public final static int ENUM = 10; + + public final static int PROTOTYPE = 11; + + public final static int TYPEDEF = 12; + + protected String cppsource; + + protected int type; + + FilePart(String s, int type) { + cppsource = s; + this.type = type; + } + + public int getType() { + return type; + } + + int length() { + return cppsource.length(); + } + + public String toString() { + return cppsource; + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Headers.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Headers.java new file mode 100644 index 0000000000..8deba2401d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Headers.java @@ -0,0 +1,162 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + */ +package org.apache.tuscany.sca.cpp.tools.common; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class Headers implements FileActor { + private ArrayList instanceMethods = new ArrayList(); + + private ArrayList staticMethods = new ArrayList(); + + private ArrayList allMethods = new ArrayList(); + + private ArrayList classNames = new ArrayList(); + + private boolean failed = false; + + public void actOnFile(File header, File ignored, int depth) + throws Exception { + if (Configuration.fileExcluded(header.getName())) { + Utils.outputDebugString("excluding " + header + "..."); + return; + } + + Utils.outputDebugString("pre-parsing " + header + "..."); + FileReader fr = null; + try { + fr = new FileReader(header); + } catch (FileNotFoundException fnfe) { + throw fnfe; + } + BufferedReader inputFile = new BufferedReader(fr); + + try { + InputCppSourceCode code = new InputCppSourceCode(inputFile, header + .getName()); + Iterator it = code.getPartIterator(); + while (it.hasNext()) { + FilePart fp = (FilePart) (it.next()); + if (fp.getType() != FilePart.PROTOTYPE) + continue; + PrototypePart pp = (PrototypePart) fp; + String className = pp.className(); + if (null == className) + continue; + String trimClassName = className; + if (className.endsWith("::")) + trimClassName = className.substring(0, + className.length() - 2); + if (!classNames.contains(trimClassName)) + classNames.add(trimClassName); + + Signature sign = new Signature(fp.toString()); + sign.setClassName(className); + //Tuscany + sign.setScope(pp.getSignature().getScope()); + sign.setNamespace(pp.getSignature().getNamespace()); + + // "Clean" the signature by stripping off attributes, + // semicolons, etc + Signature cleaned = new Signature(sign.toStringWithoutAttrs()); + //Tuscany - problem + cleaned.setClassName(className); + cleaned.setScope(pp.getSignature().getScope()); + cleaned.setNamespace(pp.getSignature().getNamespace()); + //Tuscany - end of problem + + + if (-1 == sign.getAttributes().indexOf("static")) + instanceMethods.add(cleaned); + else + staticMethods.add(cleaned); + } + } catch (ParsingException pe) { + failed = true; + } + + inputFile.close(); + allMethods.addAll(staticMethods); + allMethods.addAll(instanceMethods); + } + + public boolean failed() { + return failed; + } + + public boolean isInstanceMethod(Signature sign) { + Iterator it = instanceMethods.iterator(); + while (it.hasNext()) { + Signature s = (Signature) it.next(); + if (s.equals(sign)) + return true; + } + return false; + } + + public boolean isStaticMethod(Signature sign) { + Iterator it = staticMethods.iterator(); + while (it.hasNext()) { + Signature s = (Signature) it.next(); + if (s.equals(sign)) + return true; + } + return false; + } + + public List getMethods(String method) { + ArrayList list = new ArrayList(); + if (null == method) + return list; + + Iterator it = allMethods.iterator(); + while (it.hasNext()) { + Signature s = (Signature) it.next(); + if (method.equals(s.getMethodName())) + list.add(s); + } + return list; + } + + /** + * Tuscany change - a method to get all the method signatures at once + */ + public List getAllMethods() { + ArrayList list = new ArrayList(); + Iterator it = allMethods.iterator(); + while (it.hasNext()) { + Signature s = (Signature) it.next(); + list.add(s); + } + return list; + } + + public boolean isClassName(String text) { + return classNames.contains(text); + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.java new file mode 100644 index 0000000000..ae6a646eaf --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.java @@ -0,0 +1,412 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + */ +package org.apache.tuscany.sca.cpp.tools.common; + +import java.io.BufferedReader; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.StringTokenizer; + +public class InputCppSourceCode { + + private ArrayList parts = new ArrayList(); + + private String name; + + public InputCppSourceCode(BufferedReader br, String name) throws Exception { + this.name = name; + + String s = null; + StringBuffer buff = new StringBuffer(); + for (int i = 1;; i++) { + try { + s = br.readLine(); + } catch (Exception e) { + System.err.println("Ignoring exception thrown parsing file " + + name + " line number " + i); + e.printStackTrace(); + break; + } + if (s == null) + break; + buff.append(s + "\n"); + } + String str = buff.toString(); + + // TODO: When checking for rest.startsWith("struct") should + // check the next letter after struct is not alphanumeric otherwise + // we'll get false matches on a function called structify() for + // instance. Also applies to enum, union, public, typedef, etc + + String rest, text = ""; + int scopedepth = 0; + String scope = "public"; + String currentClass = null; + String currentNamespace = null; + for (int idx = 0; idx < str.length(); /* No idx++ */ + ) { + rest = str.substring(idx); + if (Character.isWhitespace(rest.charAt(0))) { + int ridx = 0; + while (ridx < rest.length() + && Character.isWhitespace(rest.charAt(ridx))) + ridx++; + text = rest.substring(0, ridx); + FilePart fp = new FilePart(text, FilePart.WHITESPACE); + parts.add(fp); + idx += ridx; + + } else if (rest.startsWith("/*")) { + int ridx = rest.indexOf("*/"); // Don't use Utils here + text = str.substring(idx, idx + ridx + 2); + FilePart fp = new FilePart(text, FilePart.COMMENT); + parts.add(fp); + idx += text.length(); + + } else if (rest.startsWith("//")) { + text = str.substring(idx, idx + rest.indexOf("\n")); + FilePart fp = new FilePart(text, FilePart.COMMENT); + parts.add(fp); + idx += text.length(); + + } else if (rest.startsWith("#")) { + int ridx = rest.indexOf("\n"); + char c = rest.charAt(ridx - 1); + while (-1 != ridx && '\\' == c) { + String rest2 = rest.substring(ridx + 1); + ridx += rest2.indexOf("\n") + 1; + c = rest.charAt(ridx - 1); + } + text = str.substring(idx, idx + ridx); + FilePart fp = new FilePart(text, FilePart.DIRECTIVE); + parts.add(fp); + idx += text.length(); + + } else if (rest.startsWith("}")) { + if (scopedepth <= 0) //Tuscany need to increase scopedepth for + // namespaces? + Utils.rude("Braces do not match", name, lineNo(str, idx), + rest.substring(0, rest.indexOf("\n"))); + else + scopedepth--; + // TODO: better checking that this brace really ends the class + if (0 == scopedepth) + currentClass = null; + scope = "public"; + parts.add(new FilePart("}", FilePart.ENDSCOPE)); + idx++; + + } else if (rest.startsWith(";")) { + parts.add(new FilePart(";", FilePart.FIELD)); + idx++; + + } else if (!Character.isLetter(rest.charAt(0)) + && '~' != rest.charAt(0) && '_' != rest.charAt(0)) { + Utils.rude("Lines must start with a letter ", name, lineNo(str, + idx), rest.substring(0, rest.indexOf("\n"))); + + } else if (MacroPart.isAMacro(rest)) { + MacroPart mp = MacroPart.create(rest); + parts.add(mp); + idx += mp.length(); + + } else if (beginsScope(rest)) { + + //Tuscany a namespace comes in here + scopedepth++; + text = rest.substring(0, Utils.indexOf(rest, "{") + 1); + FilePart fp = new FilePart(text, FilePart.BEGINSCOPE); + parts.add(fp); + idx += text.length(); + if (Utils.startsWith(text, "class")) { + // TODO: cope with comments here + // TODO: split out classes into a ClassPart + StringTokenizer st = new StringTokenizer(text, + Utils.whitespace + ":"); + st.nextToken(); // step over "class" + while (st.hasMoreTokens()) { + String word = st.nextToken(); + if (Configuration.isAttribute(word)) + continue; + currentClass = word; + break; + } + } + + //Tuscany + if (Utils.startsWith(text, "namespace")) { + // TODO: cope with comments here + StringTokenizer st = new StringTokenizer(text, + Utils.whitespace + "{"); + st.nextToken(); // step over "namespace" + String word = ""; + while (st.hasMoreTokens()) { + word = st.nextToken(); + if (word.equals("{")) { + break; + } + + } + currentNamespace = word; + //We have not got to the class yet + //so will need ot deal with the namespace + //when we do + } + // Tuscany end + + } else if (isEnumOrUnion(rest)) { + int ridx = Utils.findMatching(rest, '{', '}') + 1; + String rest2 = rest.substring(ridx); + ridx = idx + ridx + Utils.indexOf(rest2, ';') + 1; + text = str.substring(idx, ridx); + FilePart fp = new FilePart(text, FilePart.ENUM); + parts.add(fp); + idx += text.length(); + + } else if (scopedepth > 0 + && (rest.startsWith("public") + || rest.startsWith("protected") || rest + .startsWith("private"))) { + int colon = rest.indexOf(":"); + if (-1 == colon) + Utils.rude("No colon found after public or private ", name, + lineNo(str, idx), rest.substring(0, rest + .indexOf("\n"))); + scope = str.substring(idx, idx + colon); + text = str.substring(idx, idx + colon + 1); + FilePart fp = new FilePart(text, FilePart.CLASSATTRIBUTE); + parts.add(fp); + idx += text.length(); + + } else if (Utils.startsWith(rest, "typedef")) { + int semicolon = Utils.indexOf(rest, ';'); + int brace = Utils.indexOf(rest, '{'); + + if (-1 == semicolon) + Utils.rude("No semicolon found after typedef", name, + lineNo(str, idx), rest.substring(0, rest + .indexOf("\n"))); + + if (-1 == brace || semicolon < brace) { + // Simple typedef + text = str.substring(idx, idx + semicolon + 1); + } else { + // Typedef of a struct, etc + int endbrace = Utils.findMatching(rest, '{', '}'); + String rest2 = rest.substring(endbrace); + semicolon = Utils.indexOf(rest2, ';'); + text = str.substring(idx, idx + endbrace + semicolon + 1); + } + FilePart fp = new FilePart(text, FilePart.TYPEDEF); + parts.add(fp); + idx += text.length(); + + } else { + if (isMethod(rest)) { + + int brace = Utils.indexOf(rest, '{'); + Signature signature = new Signature(str.substring(idx, idx + + brace)); + if (signature.failed()) + Utils.rude("Signature parsing failed", name, lineNo( + str, idx), signature.getOriginal()); + if (null != currentClass + && null == signature.getClassName()) + signature.setClassName(currentClass); + signature.setScope(scope); + signature.setNamespace(currentNamespace); + + String body = rest.substring(brace); + int endBrace = Utils.findMatching(body, '{', '}'); + body = body.substring(0, endBrace + 1); + int endIdx = idx + signature.originalLength() + + body.length(); + text = str.substring(idx, endIdx); + MethodPart mp = new MethodPart(text, signature, body); + parts.add(mp); + idx += text.length(); + + } else if (isField(rest)) { + int semicolon = Utils.indexOf(rest, ';'); + text = str.substring(idx, idx + semicolon + 1); + FilePart fp = new FilePart(text, FilePart.FIELD); + parts.add(fp); + idx += text.length(); + + } else if (isPrototype(rest)) { + int semicolon = Utils.indexOf(rest, ';'); + text = str.substring(idx, idx + semicolon + 1); + PrototypePart pp = new PrototypePart(text, currentClass, currentNamespace); + pp.setScope(scope); + parts.add(pp); + idx += text.length(); + + } else { + //TODO other file parts here - not sure if there are any + // others? + Utils.rude("Unrecognised file part", name, + lineNo(str, idx), rest.substring(0, rest + .indexOf("\n"))); + } // end if + } // end if + } // end for + } + + public Iterator getPartIterator() { + return parts.iterator(); + } + + private int lineNo(String s, int idx) { + int n = 0; + for (int i = 0; i < idx && i < s.length(); i++) + if ('\n' == s.charAt(i)) + n++; + return n; + } + + /** + * Find out whether we are defining a class, struct or extern "C" which may + * contain function implementations. These will have braces which begin a + * new scope. Ignore function prototypes that return a struct. struct mystr { + * int f1; }; struct mystr func(); struct mystr func() { struct mystr a; + * return a; } + */ + private static boolean beginsScope(String s) throws ParsingException { + if (isMethod(s)) + return false; + + int brace = Utils.indexOf(s, '{'); + int semicolon = Utils.indexOf(s, ';'); + + // Return false for class prototypes, but true for class definitions. + if (Utils.startsWith(s, "class")) { + if (-1 == brace) + return false; + if (-1 == semicolon) + return true; + return brace < semicolon; + } + + if (Utils.startsWith(s, "struct")) { + if (-1 == brace || -1 == semicolon) + return false; + return brace < semicolon; + } + + //Tuscany handle namespace for prototypes + //in a similar way to "class" + if (Utils.startsWith(s, "namespace")) { + if (-1 == brace || -1 == semicolon) + return false; + return brace < semicolon; + } + + return startsWithExternScope(s); + } + + /** + * There are 4 types of extern ... extern int field; extern int func(); + * extern "C" int func() { return 2; } extern "C" { int func() { return 2; } } + * This method should return true only for the last of these three examples + * since only the last one creates a new scope using braces. + */ + private static boolean startsWithExternScope(String s) + throws ParsingException { + if (!s.startsWith("extern")) + return false; + + int brace = Utils.indexOf(s, '{'); + int semicolon = Utils.indexOf(s, ';'); + int bracket = Utils.indexOf(s, '('); + + if (-1 == brace) + return false; + return (-1 == semicolon || brace < semicolon) + && (-1 == bracket || brace < bracket); + } + + /** + * Find out whether we are defining an enum or union which will contain + * braces. Ignore function prototypes that return an enum or union. enum + * colour { red, blue }; enum colour func(); enum colour func() { return + * colour.red; } + */ + private static boolean isEnumOrUnion(String s) throws ParsingException { + if ((!Utils.startsWith(s, "enum") && !Utils.startsWith(s, "union")) + || isMethod(s)) + return false; + + int brace = Utils.indexOf(s, '{'); + int semicolon = Utils.indexOf(s, ';'); + return -1 != brace && (-1 == semicolon || brace < semicolon); + } + + /** + * Rules to recognise fields and methods... + * + * Fields must contain a semicolon Methods may or may not contain a + * semicolon Prototypes must contain a semicolon Fields may or may not + * contain a brace (array initialisers do) Methods must contain a brace + * Prototypes must not contain a brace Fields may or may not contain a + * bracket (casts do) Methods must contain a bracket Prototypes must contain + * a bracket + * + * It's a method if it contains a bracket and then a brace before the first + * semicolon (if there is a semicolon). It's a prototype if it's not a + * method and it contains brackets before a semicolon. It's a field if it's + * not a method or a prototype and it contains a semicolon. If it's not a + * field, a method or a prototype and we haven't recognised it previously + * then it's an error. + */ + private static boolean isMethod(String s) throws ParsingException { + int semicolon = Utils.indexOf(s, ';'); + int brace = Utils.indexOf(s, '{'); + int bracket = Utils.indexOf(s, '('); + + return (-1 != bracket && -1 != brace && bracket < brace && (-1 == semicolon || brace < semicolon)); + } + + private static boolean isPrototype(String s) throws ParsingException { + int semicolon = Utils.indexOf(s, ';'); + int bracket = Utils.indexOf(s, '('); + return !isMethod(s) && -1 != semicolon && -1 != bracket + && bracket < semicolon; + } + + private static boolean isField(String s) throws ParsingException { + int semicolon = Utils.indexOf(s, ';'); + return !isMethod(s) && !isPrototype(s) && -1 != semicolon; + } + + public String getName() { + return name; + } + + public String toString() { + StringBuffer text = new StringBuffer(); + for (int i = 0; i < parts.size(); i++) { + text.append(((FilePart) (parts.get(i))).toString()); + } + return text.toString(); + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MacroPart.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MacroPart.java new file mode 100644 index 0000000000..813de0ff56 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MacroPart.java @@ -0,0 +1,82 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + */ + +/* + * A C or C++ macro as it is used in the source code + */ +package org.apache.tuscany.sca.cpp.tools.common; + +class MacroPart extends FilePart { + /** + * Factory method to create a MacroPart. + * + * @param s + * unparsed source code which may start with a define or macro. + */ + static MacroPart create(String s) { + String orig = getOriginalText(s); + if (null == orig) + return null; + return new MacroPart(orig); + } + + MacroPart(String s) { + super(s, FilePart.MACRO); + } + + /** + * @param s + * unparsed source code which may start with a define or macro. + * @return all of s up to the end of the define or macro. + */ + private static String getOriginalText(String s) { + String name = getName(s); + int len = name.length(); + if (null == name) + return null; + else if (Configuration.isDefine(name)) { + return s.substring(0, len); + } else if (Configuration.isMacro(name)) { + String rest = s.substring(len); + len += Utils.findMatching(rest, '(', ')'); + return s.substring(0, len + 1); + } else + return null; + } + + static boolean isAMacro(String s) { + if (s == null || 0 == s.length()) + return false; + String name = getName(s); + return Configuration.isMacro(name) || Configuration.isDefine(name); + } + + private static String getName(String s) { + int i; + for (i = 0; i < s.length(); i++) + if (!Character.isLetterOrDigit(s.charAt(i)) && '_' != s.charAt(i)) + break; + if (s.length() == i) + return null; + return s.substring(0, i); + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MethodPart.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MethodPart.java new file mode 100644 index 0000000000..facebe84ef --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MethodPart.java @@ -0,0 +1,128 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + */ +package org.apache.tuscany.sca.cpp.tools.common; + +import java.util.ArrayList; + +/** + * A C or C++ method from a piece of source code. The method has a signature and + * a body (the bit between the braces). + */ +public class MethodPart extends FilePart { + private Signature signature; + + private String body; + + MethodPart(String s, Signature signature, String body) { + super(s, METHOD); + this.signature = signature; + this.body = body; + } + + public Signature getSignature() { + return signature; + } + + public String getOriginalSignature() { + return signature.getOriginal(); + } + + /** + * Returns the method body as code snippets, each ending with a place where + * a trace statement belongs. The end of the first code snippet is where the + * entry trace should go. The end of every other snippet is a return from + * the method. + */ + public BodyPart[] getBodyParts() throws ParsingException { + String b = body; // Don't alter field member + if (b.startsWith("{")) + b = b.substring(1); + + // Add in trace exit at all the return statements in the method. + ArrayList al = new ArrayList(); + int idxR = Utils.indexOf(b, "return"); + int idxC = Utils.indexOf(b, "catch"); + while (-1 != idxR || -1 != idxC) { + if (-1 == idxC || (-1 != idxR && idxR < idxC)) { + String frag = b.substring(0, idxR); + String rest = b.substring(idxR + "return".length()); + + int semicolon = Utils.indexOf(rest, ';'); + if (-1 == semicolon) + Utils.rude("Missing semicolon in " + signature); + String retVal = rest.substring(0, semicolon); + BodyPart bp = new BodyPart(frag, retVal); + al.add(bp); + b = b.substring(idxR + "return".length() + retVal.length() + 1); + } else { + String frag = b.substring(0, idxC); + String rest = b.substring(idxC); + + int brace = Utils.indexOf(rest, "{"); + if (-1 == brace) + Utils.rude("Missing open brace in " + signature); + Signature signature = new Signature(rest.substring(0, brace)); + frag = frag + rest.substring(0, brace + 1); + BodyPart bp = new BodyPart(frag, signature.getParameters()[0]); + al.add(bp); + b = rest.substring(brace + 1); + } + idxR = Utils.indexOf(b, "return"); + idxC = Utils.indexOf(b, "catch"); + } + + // Add in trace exit before the last } if there are no returns in + // the method or there is code after the last return and the method + // returns void. + // int f1(){try{return f2();}catch(Exception& e){throw;}} + // has code after the last return but having a traceexit before the + // last brace wouldn't compile since the method returns an int. We + // cope with this by only adding in a traceexit before the last brace + // if the method returns void. That may mean we add in an unreachable + // traceexit which may give a compiler warning, but that should be + // benign. + // + // TODO: Not quite good enough for + // void f(int a){if(a){printf("a");}else{printf("!a");return;}} + // as a trace exit is needed before the last } in case a>0 but + // void f(int a){if(a){printf("a");return;}else{printf("!a");return;}} + // would give compiler warnings about unreachable code if a trace + // exit is added before the last brace. This could be tricky to fix. + if ((0 == al.size() || -1 != Utils.indexOf(b, ';')) + && null == signature.getReturnType().getType()) { + + int last = b.lastIndexOf('}'); + if (-1 == last) + Utils.rude("Missing end brace in " + signature); + String b2 = b.substring(0, last); + al.add(new BodyPart(b2)); + b = b.substring(last); + } + + // The final body part is the last } + al.add(new BodyPart(b)); + + BodyPart[] bps = new BodyPart[al.size()]; + System.arraycopy(al.toArray(), 0, bps, 0, al.size()); + return bps; + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Options.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Options.java new file mode 100644 index 0000000000..dc9d941849 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Options.java @@ -0,0 +1,159 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + * + */ +package org.apache.tuscany.sca.cpp.tools.common; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * Command line options passed to a tool's main program. All command line + * options should begin with a dash "-". Some command line options take a value + * which is the next parameter after the option. Others do not. + */ +public class Options { + static HashMap pairs = new HashMap(); + + static List values = new ArrayList(); + + /** + * No one constructs this class. + */ + private Options() { + } + + public static void reset() { + pairs = new HashMap(); + values = new ArrayList(); + } + + /** + * Initialises the options based on the args passed to main + */ + public static void set(String args[]) { + for (int i = 0; i < args.length; i++) { + if (args[i].startsWith("-")) { + if ((i + 1 <= args.length - 1) && // next one is testable + !args[i + 1].startsWith("-") // and it starts with a "-" + ) { + String key = args[i]; + Object pairValue = pairs.get(key); + if (null == pairValue) { + pairs.put(args[i], args[i + 1]); + } else if (pairValue instanceof String) { + List l = new ArrayList(); + l.add(pairValue); + l.add(args[i + 1]); + pairs.put(key, l); + } else if (pairValue instanceof List) { + ((List) pairValue).add(args[i + 1]); + } + i++; // Step over value for this key + } else + values.add(args[i]); + } + } + } + + public static Object getOption(String key) { + return pairs.get(key); + } + + static boolean isOptionSet(String key) { + return values.contains(key) || null!=pairs.get(key); + } + + /** + * This option will cause scagen to print out messages + * about the artefacts it is processing + * @return + */ + public static boolean verbose() { + return isOptionSet("-verbose"); + } + + /** + * This option will cause scagen to print out some + * basic internal log type messages + * @return + */ + public static boolean debug() { + return isOptionSet("-debug"); + } + + /** + * This option will cause scagen to print out some + * text that can be used or pasted into a command + * file to copy all the relevant artefacts from + * where they are found or generated to a specific + * deployment location + * + * @return + */ + public static boolean deploy() { + return isOptionSet("-deploy"); + } + + /** + * This option will prevent scagen from actually writing out + * the generated files. It is useful if used in conjunction + * with the "-deploy" option. + * @return + */ + public static boolean noGenerate() { + return isOptionSet("-nogenerate"); + } + + /** + * This option is useful only when used in conjunction with + * the "-deploy" option. It changes the output to be more like the + * source code of a command script to copy the files to a + * specific place. + * @return + */ + public static boolean outputCommand() { + return isOptionSet("-outputCommand"); + } + + /** + * This option is useful only when used in conjunction with + * the "-deploy" option. It changes the output to be a simple + * list of artefacts. It has no effect if the "-outputCommand" + * option is set. + * + * @return + */ + public static boolean list() { + return isOptionSet("-list"); + } + + /** + * This option is maintained for compatibility with the + * original package source. It is not used by new scagen code. + * + * @return + */ + public static boolean quiet() { + return isOptionSet("-quiet"); + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Parameter.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Parameter.java new file mode 100644 index 0000000000..3f4b3e971e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Parameter.java @@ -0,0 +1,211 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + * + */ +package org.apache.tuscany.sca.cpp.tools.common; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +/** + * A parameter from a method signature. The parameter is the datatype plus its + * name but not its value. + */ +public class Parameter { + private ArrayList type = new ArrayList(); + + private String name = null; + + private boolean failed = false; + + /** + * Defaults to a parameter in a parameter list so it HAS a parameter name in + * it + */ + Parameter(List parts) { + this(parts, false); + } + + /** + * A parameter which is a return type does not have a parameter name. + * Parameters in a parameter list do have parameter names embedded in them + */ + Parameter(List parts, boolean isRetType) { + if (parts == null || parts.size() == 0) + return; + + // Tuscany: The original code below from apache axis blocks int + // getCustomer(long) + // i.e. no spaces in parameter list. + // We do not need to deal with "..." as parameters to SCS methods. + // + // if (!isRetType && parts.size() == 1) { + // if ("...".equals(parts.get(0))) { + // type.add("..."); + // name = ""; + // } else if (!"void".equals(parts.get(0))) + // failed = true; // Seems like bad C++ code here + // return; + // } + + if (isRetType) { + Iterator it = parts.iterator(); + while (it.hasNext()) + type.add(it.next()); + + // Some methods return have void on their signature and others + // have nothing. So to make them both the same, if a method + // doesn't return anything make type null. + // TODO: This assumption is wrong - methods that return nothing + // default to returning an int! + if (1 == type.size() && "void".equals(type.get(0))) + type = new ArrayList(); + + } else { + // Cope with array subscripts [] after the name + int arrIdx = -1; + for (int i = 0; i < parts.size(); i++) { + String tok = (String) parts.get(i); + if ("[".equals(tok)) { + arrIdx = i; + break; + } + } + + // Find the name + int nameIdx = parts.size() - 1; + if (-1 != arrIdx) + nameIdx = arrIdx - 1; + + // Even in real method declarations, parameters may not have a name + boolean noName = false; + name = (String) parts.get(nameIdx); + // Tuscany: The original code below from apache axis + // was updated to work with signatures of + // the form fn(int) a non-named, no-space, parameter list. + // if (Utils.cPrimitives.contains(name) || + // Utils.cTypeQualifiers.contains(name) ) + // + if (Utils.cPrimitives.contains(name) + || Utils.cTypeQualifiers.contains(name) + || parts.size() == 1) + noName = true; + + if (noName) { + name = null; + for (int i = 0; i < parts.size(); i++) + type.add(parts.get(i)); + } else { + // Construct the type + for (int i = 0; i < nameIdx; i++) + type.add(parts.get(i)); + + if (-1 != arrIdx) + for (int i = arrIdx; i < parts.size(); i++) + type.add(parts.get(i)); + } + } + } + + public boolean failed() { + return failed; + } + + public String getType() { + String s = null; + Iterator it = type.iterator(); + while (it.hasNext()) { + String next = (String) it.next(); + if (null == s) + s = next; + else if ("*".equals(next) || "&".equals(next)) + s += next; + else + s += " " + next; + } + return s; + } + + public String getTypeWithoutConst() { + String s = null; + Iterator it = type.iterator(); + while (it.hasNext()) { + String next = (String) it.next(); + if ("const".equals(next)) + continue; + else if (null == s) + s = next; + else if ("*".equals(next) || "&".equals(next)) + s += next; + else + s += " " + next; + } + return s; + } + + public String getName() { + return name; + } + + public boolean isVoid() { + return 0 == type.size(); + } + + public boolean isDotDotDot() { + return 1 == type.size() && "...".equals(type.get(0)); + } + + /** + * For two parameters to match their types must match or both be null, but + * the parameters names don't have to match. Just because a parameter is + * called something different in a header file as in the the source file + * doesn't mean it's a different parameter. + */ + public boolean equals(Object o) { + if (null == o || !(o instanceof Parameter)) + return false; + Parameter that = (Parameter) o; + if (type.size() != that.type.size()) + return false; + for (int i = 0; i < type.size(); i++) { + String s1 = (String) type.get(i); + String s2 = (String) that.type.get(i); + if (!Utils.safeEquals(s1, s2)) + return false; + } + return true; + } + + public String toString() { + if (0 == type.size()) + return "void"; + if (null == name) + return getType(); + return getType() + " " + name; + } + + public Iterator iterator() { + if (null == type) + return null; + return type.iterator(); + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/ParsingException.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/ParsingException.java new file mode 100644 index 0000000000..3f140c0f9f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/ParsingException.java @@ -0,0 +1,42 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + * + */ +package org.apache.tuscany.sca.cpp.tools.common; + +public class ParsingException extends Exception { + + public ParsingException() { + super(); + } + + public ParsingException(String message) { + super(message); + } + + public ParsingException(String message, Throwable cause) { + super(message, cause); + } + + public ParsingException(Throwable cause) { + super(cause); + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.java new file mode 100644 index 0000000000..64ed2e9542 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.java @@ -0,0 +1,51 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + * + */ +package org.apache.tuscany.sca.cpp.tools.common; + +/** + * A function prototype in an include file and possibly in a class definition. + */ +public class PrototypePart extends FilePart { + private Signature signature; + + public PrototypePart(String s, String className, String namespace) { + super(s, PROTOTYPE); + signature = new Signature(s); + if (null != className) + signature.setClassName(className); + if (null != namespace && namespace.length()>0) + signature.setNamespace(namespace); + } + + String className() { + return signature.getClassName(); + } + + public Signature getSignature() { + return signature; + } + + public void setScope(String scope) { + signature.setScope(scope); + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Signature.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Signature.java new file mode 100644 index 0000000000..3650839cab --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Signature.java @@ -0,0 +1,501 @@ +/* + * + * 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. + */ + +/* + * Branched from the original class that was also contributed to the + * org.apache.axis.tools.common package. + * + */ +package org.apache.tuscany.sca.cpp.tools.common; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +/** + * A C or C++ method signature with the ability to parse it. TODO: properly + * support variable length argument lists using "..." TODO: passing or returning + * function pointers (hopefully not needed) TODO: Cope with ~ Classname() + */ +public class Signature { + private String originalText; + + private String attributes; + + private String className = null; + + private String namespace = null; + + private String methodName = null; + + private Parameter returnType = null; + + private Parameter[] params = null; + + private String trailingAttributes; + + private String scope = "public"; + + private boolean failed = false; + + private boolean traceable = true; + + private final static Set knownAttrs = new HashSet(Arrays + .asList(new Object[] { "public", "private", "extern", "\"C\"", + "virtual", "static", "inline" })); + + private final static Set specialOperators = new HashSet( + Arrays.asList(new Object[] { "(", ")", "*", ",", "&", "]", "[", + "=", "~" })); + + /** + * Takes an unparsed signature string and parses it. + * + * TODO: Should optionally pass in the className here in case it's an inline + * method implementation inside the class{}. Just so the className comes out + * in the trace. + */ + Signature(String s) { + originalText = s; + + try { + List tokens = tokenise(s); + + ArrayList alAttrs = new ArrayList(); + ArrayList alName = new ArrayList(); + ArrayList alParms = new ArrayList(); + ArrayList alTrailAttrs = new ArrayList(); + ArrayList alInits = new ArrayList(); + if (!splitUp(tokens, alAttrs, alName, alParms, alTrailAttrs, + alInits)) { + failed = true; + return; + } + + parseAttributes(alAttrs); + parseNameAndRetType(alName); + parseParameters(alParms); + parseTrailingAttributes(alTrailAttrs); + + // Ignore any tokens after the ) since these are (hopefully) + // constructor initialisers + + traceable = !Configuration.methodExcluded(className, methodName); + } catch (NullPointerException npe) { + failed = true; + traceable = false; + } + } + + /** + * Parse the signature into tokens. This removes whitespace and comments and + * separates out "*", ",", "(", ")", "&", "[" and "]". + */ + private static List tokenise(String s) { + ArrayList tokens = new ArrayList(); + String tok = null; + boolean space = true; + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + if (Character.isWhitespace(c)) { + space = true; + continue; + } + if (space) { + if (tok != null) + tokens.add(tok); + tok = "" + c; + } else + tok += c; + space = false; + + if (tok.endsWith("/*")) { + String sub = s.substring(i); + int endcomm = sub.indexOf("*/"); + if (endcomm == -1) + break; + i += endcomm + 1; + if (tok.equals("/*")) + tok = ""; + else + tok = tok.substring(0, tok.length() - 2); + continue; + } + + if (tok.endsWith("//")) { + String sub = s.substring(i); + int endcomm = sub.indexOf("\n"); + if (endcomm == -1) + break; + i += endcomm; + if (tok.equals("//")) + tok = ""; + else + tok = tok.substring(0, tok.length() - 1); + continue; + } + + if (tok.endsWith("::")) + space = true; + + String sc = "" + c; + if (specialOperators.contains(sc)) { + if (!tok.equals(sc)) { + tokens.add(tok.substring(0, tok.length() - 1)); + tok = sc; + } + space = true; + } + } + tokens.add(tok); + return tokens; + } + + /** + * Split up a tokenised method signature into a list of attributes, a list + * of name and return type tokens, a list of parameter tokens and a list of + * initialiser tokens. + */ + private static boolean splitUp(List tokens, List attrs, List nameAndRet, + List parms, List trailAttrs, List inits) { + + // nameStart points to the start of the return type if there is one + // else the start of the method name + int nameStart; + for (nameStart = 0; nameStart < tokens.size(); nameStart++) { + String tok = (String) (tokens.get(nameStart)); + if (!knownAttrs.contains(tok) && !Configuration.isAttribute(tok)) + break; + } + if (nameStart == tokens.size()) + return false; + + // initStart points to the initialisers, or thrown exceptions after + // the parameter list. throw is a keyword so we can safely search for + // it. + int initStart = tokens.size(); + for (int i = nameStart; i < tokens.size(); i++) { + String tok = (String) tokens.get(i); + if ((tok.startsWith(":") && !tok.startsWith("::")) + || "throw".equals(tok)) + initStart = i; + } + + int parmEnd; + for (parmEnd = initStart - 1; parmEnd > nameStart; parmEnd--) + if (")".equals(tokens.get(parmEnd))) + break; + if (parmEnd == nameStart) + return false; + + int parmStart = parmEnd; + for (parmStart = parmEnd; parmStart > nameStart; parmStart--) + if ("(".equals(tokens.get(parmStart))) + break; + + for (int i = 0; i < tokens.size(); i++) { + Object tok = tokens.get(i); + if (i < nameStart || Configuration.isAttribute((String) tok)) + attrs.add(tok); + else if (i < parmStart) + nameAndRet.add(tok); + else if (i <= parmEnd) + parms.add(tok); + else if (i < initStart) + trailAttrs.add(tok); + else + inits.add(tok); + } + return true; + } + + private void parseAttributes(List list) { + attributes = new String(); + Iterator it = list.iterator(); + while (it.hasNext()) { + if (attributes.length() > 0) + attributes += " "; + String next = (String) it.next(); + + //Tuscancy + //the scope is not present in the attributes + //but is set later in the InputCppSource contructor + if ("public".equals(next) || "protected".equals(next) + || "private".equals(next)) + scope = next; + attributes += next; + } + } + + private void parseNameAndRetType(List list) { + int size = list.size(); + int idx; + // "operator" is a key word so if it's present we know we're + // dealing with operator overloading. The operator that's been + // overloaded might have been split up into multiple tokens. + for (idx = 0; idx < size; idx++) + if ("operator".equals(list.get(idx))) + break; + + if (idx < size) { + methodName = ""; + for (int i = idx; i < size; i++) + methodName += (String) list.get(i); + } else { // No operator overloading + methodName = "" + list.get(size - 1); + idx = size - 1; + } + + // If it's a destructor, the "~" will be split out into a separate + // token, so add it onto the methodName here. + if (idx > 0 && "~".equals(list.get(idx - 1))) { + methodName = "~" + methodName; + idx--; + } + + // The class name comes before the method name + while (idx > 0 && ((String) list.get(idx - 1)).endsWith("::")) { + if (null == className) + className = (String) list.get(idx - 1); + else + className = (String) list.get(idx - 1) + className; + idx--; + } + + // Whatever's left before the classname/methodname must be the + // return type + ArrayList retParm = new ArrayList(); + for (int i = 0; i < idx; i++) + retParm.add(list.get(i)); + + returnType = new Parameter(retParm, true); + } + + /** + * Constructs the parameter list + */ + private void parseParameters(List list) { + ArrayList alParams = new ArrayList(); + Iterator it = list.iterator(); + String token = (String) it.next(); // step over the ( + while (it.hasNext() && !")".equals(token)) { + token = (String) it.next(); + + int template = 0; // Depth of template scope + boolean foundEquals = false; + // Ignore default value for an optional parameter + ArrayList parm = new ArrayList(); + while (!token.equals(")") && (!token.equals(",") || template > 0)) { + if (token.equals("=")) + foundEquals = true; + if (!foundEquals) + parm.add(token); + if (contains(token, "<")) + template++; + if (contains(token, ">")) + template--; + token = (String) it.next(); + } + + // No parameters so break out + if (token.equals(")") && 0 == parm.size()) + break; + + Parameter p = new Parameter(parm); + if (p.failed()) { + failed = true; + return; + } + + // Copes with void func(void) + if (!p.isVoid()) + alParams.add(p); + } + + int size = alParams.size(); + if (size > 0) { + params = new Parameter[size]; + System.arraycopy(alParams.toArray(), 0, params, 0, size); + } + } + + private void parseTrailingAttributes(List list) { + trailingAttributes = new String(); + Iterator it = list.iterator(); + while (it.hasNext()) { + if (trailingAttributes.length() > 0) + trailingAttributes += " "; + trailingAttributes += (String) it.next(); + } + } + + public String getOriginal() { + return originalText; + } + + public int originalLength() { + return originalText.length(); + } + + public boolean failed() { + return failed; + } + + public String getAttributes() { + return attributes; + } + + public String getClassName() { + return className; + } + + /** + * @param namespace The namespace to set. + */ + public void setNamespace(String namespace) { + this.namespace = namespace; + } + + /** + * @return Returns the namespace. + */ + public String getNamespace() { + return namespace; + } + + public String getTrimClassName() { + return trimClassName(className); + } + + public String getMethodName() { + return methodName; + } + + public Parameter getReturnType() { + return returnType; + } + + public Parameter[] getParameters() { + return params; + } + + public boolean isConstructor() { + return className != null && methodName != null + && trimClassName(className).equals(methodName); + } + + public boolean isDestructor() { + return className != null && methodName != null + && methodName.startsWith("~") + && methodName.endsWith(trimClassName(className)); + } + + private static String trimClassName(String name) { + if (name.endsWith("::")) + return name.substring(0, name.length() - 2); + return name; + } + + void setClassName(String className) { + if (null == className) + return; + if (!className.endsWith("::")) + className += "::"; + this.className = className; + } + + public String getScope() { + return scope; + } + + /** + * Sets the scope, but only if the scope is not set by an explicit attribute + * in the signature. + */ + public void setScope(String scope) { + if (-1 == attributes.indexOf(this.scope)) + this.scope = scope; + } + + /** + * Should this method be traced? + */ + public boolean traceable() { + return traceable; + } + + private static boolean contains(String src, String tgt) { + if (src == null || tgt == null) + return false; + if (-1 == src.indexOf(tgt)) + return false; + return true; + } + + public boolean equals(Object obj) { + if (null == obj || !(obj instanceof Signature)) + return false; + Signature that = (Signature) obj; + if (!Utils.safeEquals(className, that.className)) + return false; + if (!Utils.safeEquals(methodName, that.methodName)) + return false; + if (!Utils.safeEquals(returnType, that.returnType)) + return false; + if (null == params && null == that.params) + return true; + if (null != params && null == that.params) + return false; + if (null == params && null != that.params) + return false; + if (params.length != that.params.length) + return false; + for (int i = 0; i < params.length; i++) + if (!Utils.safeEquals(params[i], that.params[i])) + return false; + return true; + } + + public String toStringWithoutAttrs() { + String s = new String(); + if (returnType != null) + s += returnType + " "; + if (className != null) + s += className; + s += methodName + "("; + for (int i = 0; params != null && i < params.length; i++) { + if (i > 0) + s += ", "; + s += params[i].toString(); + } + s += ")"; + return s; + } + + public String toString() { + String s = attributes; + if (attributes.length() > 0) + s += " "; + s += toStringWithoutAttrs(); + if (trailingAttributes.length() > 0) + s += " " + trailingAttributes; + return s; + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Utils.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Utils.java new file mode 100644 index 0000000000..5bd80fc37a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Utils.java @@ -0,0 +1,543 @@ +/* +* +* 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. +*/ + +/* +* Branched from the original class that was also contributed to the +* org.apache.axis.tools.common package. +* +*/ +package org.apache.tuscany.sca.cpp.tools.common; + +import java.io.File; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +//Apache Common Logging +//import org.apache.commons.logging.Log; +//import org.apache.commons.logging.LogFactory; + +/** +* Static utility methods. Some of these methods are similar to the methods on +* java.lang.String except they are aware of C/C++ comments and string literals. +* +* TODO: Many of these methods would perform better using StringBuffer not +* String +*/ +public final class Utils { + // All the C primitive data types + public final static Set cPrimitives = new HashSet(Arrays + .asList(new Object[] { "void", "byte", "char", "unsigned", + "signed", "int", "short", "long", "double", "float", + "struct", "class", "enum", "union" })); + + // All the qualifiers that can affect C types + public final static Set cTypeQualifiers = new HashSet( + Arrays.asList(new Object[] { "(", ")", "*", ",", "&", "]", "[", + "const" })); + + public final static String whitespace = " \t\r\n"; + + //private static Log log = LogFactory.getLog(CLASS.class); + + /** + * Never instantiate this class + */ + private Utils() { + } + + /** + * Is this string all whitespace? + */ + static boolean isSpace(String s) { + for (int i = 0; i < s.length(); i++) + if (!Character.isWhitespace(s.charAt(i))) + return false; + return true; + } + + // TODO look for other trailing chars like { (because of class{) + static boolean startsWith(String source, String target) { + if (source == null || target == null) + return false; + if (!source.startsWith(target)) + return false; + if (source.length() == target.length()) + return true; + if (Character.isWhitespace(source.charAt(target.length()))) + return true; + return false; + } + + /** + * Performs a C-aware version of String.indexOf(char) in that it skips + * characters in string literals and comments. + */ + static int indexOf(String s, char c) throws ParsingException { + if ('"' == c) + rude("Utils.indexOf cannot be passed quotes"); + + for (int i = 0; i < s.length(); i++) { + if (s.charAt(i) == c) + return i; + + i = skip(s.substring(i), i); + if (-1 == i) + return -1; + } + return -1; + } + + /** + * Performs a C-aware version of String.indexOf(String) in that it skips + * characters in string literals and comments and makes sure that the target + * string is not embedded in a longer word. + */ + static int indexOf(String s, String t) { + char t0 = t.charAt(0); + for (int i = 0; i < s.length(); i++) { + if (s.charAt(i) == t0 + && s.substring(i).startsWith(t) + && (0 == i || !Character.isLetterOrDigit(s.charAt(i - 1))) + && (s.length() == (i + t.length()) || !Character + .isLetterOrDigit(s.charAt(i + t.length())))) + return i; + + i = skip(s.substring(i), i); + if (-1 == i) + return -1; + } + return -1; + } + + /** + * Matches braces or quotes and is C-aware. It skips characters in string + * literals and comments. + */ + static int findMatching(String s, char c1, char c2) { + int depth = 0; + for (int i = 0; i < s.length(); i++) { + if (s.charAt(i) == c1) + depth++; + else if (s.charAt(i) == c2) { + depth--; + if (depth == 0) + return i; + } else { + i = skip(s.substring(i), i); + if (-1 == i) + return -1; + } + } + return -1; + } + + /** + * Failed to parse the source code for some reason. This method prints out a + * suitably rude message, and then what? I haven't quite decided yet. + * + * TODO: Do something sensible here like throw an Exception which will give + * up on this file completely and tidy up the output file. It may be just + * too dangerous to try to carry on. But we need to fail in such a way that + * the build system knows that we've failed for this file and can build this + * file without trace. + */ + public static void rude(String reason, String filename, int lineno, + String codefragment) throws ParsingException { + + String text = "Bad C++ code!! "; + if (reason != null) + text += reason; + if (filename != null) + text += " " + filename + " lineno=" + lineno; + if (codefragment != null) + text += " <" + codefragment + ">"; + System.err.println(text); + throw new ParsingException(); + } + + /** + * This method reports an error level problem + * + * @param reason + * why we have an error level problem + */ + public static void rude(String reason) throws ParsingException { + // Apache commons logging + // log.error(Object line, null); + // or for now.... + rude(reason, null, 0, null); + } + + /** + * This method reports an error level problem + * + * @param reason + * why we have an error level problem + */ + public static void screenMessage(String msg) { + // Apache commons logging + // log.error(Object line, null); + // or for now.... + System.out.println(msg); + } + + /** + * Escapes special characters like " so that they can be output in a C + * string literal. Also removes newlines, since C string literals can't be + * split over lines. + */ + String pretty(String s) { + StringBuffer sb = new StringBuffer(s); + for (int i = 0; i < sb.length(); i++) + switch (sb.charAt(i)) { + case '"': + sb = sb.insert(i, '\\'); + i++; + break; + case '\n': + sb = sb.deleteCharAt(i); + i--; + break; + } + return sb.toString(); + } + + private static boolean startsWithComment(String s) { + if (null == s || s.length() < 2) + return false; + if (s.startsWith("//")) + return true; + if (s.startsWith("/*")) + return true; + return false; + } + + private static int endOfComment(String s) { + int idx; + if (s.startsWith("//")) + idx = s.indexOf("\n"); + else { + idx = s.indexOf("*/"); + if (-1 != idx) + idx++; // Step over */ + } + return idx; + } + + private static boolean startsWithStringLiteral(String s) { + if (null == s || s.length() < 1) + return false; + if (s.startsWith("\"") || s.startsWith("'")) + return true; + return false; + } + + private static int endOfStringLiteral(String s) { + boolean escape = false; + char c0 = s.charAt(0); + for (int i = 1; i < s.length(); i++) { + if (!escape && s.charAt(i) == c0) + return i; + + // \" or \' does not end the literal + if ('\\' == s.charAt(i)) + // Escaping a \ should switch escape off so \\' does end + // the literal + escape = !escape; + else + escape = false; + } + return -1; + } + + /** + * If the String s starts with a string literal or a comment, return i plus + * the index of the end of the literal or comment. String literals are + * enclosed in " or ' and comments start with /* or //. + */ + private static int skip(String s, int i) { + int j = 0; + if (startsWithStringLiteral(s)) { + j = endOfStringLiteral(s); + if (-1 == j) + return -1; + } else if (startsWithComment(s)) { + j = endOfComment(s); + if (-1 == j) + return -1; + } + return i + j; + } + + /** + * A better method than .equals() because it doesn't NullPointerException + * when one of the parameters is null. + */ + public static boolean safeEquals(Object o1, Object o2) { + if (null == o1 && null == o2) + return true; + if (null == o1 && null != o2) + return false; + if (null != o1 && null == o2) + return false; + return o1.equals(o2); + } + + public static void outputDebugString(String line) { + if (!Options.quiet()) { + if (Options.debug()) + // Apache commons logging + // log.debug(Object line, null); + // or for now + System.out.println(line); + } + } + + /** + * This static method allows different parts of the code to inform about + * significant events. Code interested in specific types of event can + * register a listener against that type (not written yet) + * + * @param eventType + * An int type enum indicating the type of event. + * @param message + * A message that can be output to the user. + */ + public static final int EVENT_TYPE_XML_ITEM_PARSED = 1; + + public static final int EVENT_TYPE_FILE_PARSED = 2; + + public static final int EVENT_TYPE_FILE_CREATE = 3; + + public static final int VERBOSE_LIMIT = 1024; + + public static final int DEPLOYMENT_ARTEFACT = VERBOSE_LIMIT; + + public static final int DEPLOYMENT_ARTEFACT_ENCOUNTERED = DEPLOYMENT_ARTEFACT + 1; + + public static final int DEPLOYMENT_ARTEFACT_GENERATED = DEPLOYMENT_ARTEFACT + 2; + + public static final int DEPLOYMENT_INPUT_DIRECTORY = DEPLOYMENT_ARTEFACT + 3; + + public static final int DEPLOYMENT_OUTPUT_DIRECTORY = DEPLOYMENT_ARTEFACT + 4; + + private static boolean reportArtefacts = false; + + /** + * An easily callable method to allow tracking/reposting of events in scagen + * and other tools. + * + * @param eventType + * used for classifying event + * @param message + * a user readable message + */ + public static void postEvent(int eventType, String message) { + if (Options.verbose() && eventType < VERBOSE_LIMIT) { + screenMessage(message); + } + + if ((eventType & DEPLOYMENT_ARTEFACT) > 0) { + reportArtefact(message, eventType); + } + + } + + /** + * @param message + * The user message + * @param eventType + * The type of event (input or output). This is used to determine + * if the path name of the file starts with the MODULE_ROOT + * directory or the given output directory as the one of these + * prefixes is removed from the path name in order to give the + * new (destination) path relative to the new module root + * + * + */ + + static String scagenInputDir = "MODULE_ROOT"; + + static String scagenOutputDir = "SCAGEN_OUTPUT"; + + static String newModuleRoot = "NEW_MODULE_ROOT"; + + static String generatedDirName = "$sourceDir1"; + + private static void reportArtefact(String message, int eventType) { + + if (Utils.isReportArtefacts()) { + + // Changing the value of the variable below will alter the output of + // the + // deploy assist strings: + // true will result in a "copy source NEW_MODULE_ROOT\dest" output + // and + // false will result in a "inputDir c:\fred" + // "outputDir c:\bob" + // "input c:\fred\sca.module" + // "output c:\bob\proxy.h" type output + String command = null; + + try { + newModuleRoot = (String) Options.getOption("-deploy"); + command = (String) Options.getOption("-command"); + } catch (Exception e) { + // let it default + } + + if (null == newModuleRoot) { + newModuleRoot = "DEPLOY_MODULE_ROOT"; + } + + if (null == command) { + command = "copy"; + } + + if (Options.outputCommand()) { + + String tail = message; + switch (eventType) { + case DEPLOYMENT_ARTEFACT_ENCOUNTERED: + if (message.startsWith(scagenInputDir)) { + tail = message.substring(scagenInputDir.length()); + } + + String dest = joinPathElements(newModuleRoot, tail); + + System.out.println(command + " " + platformSlashes(message) + + " " + platformSlashes(dest)); + break; + + case DEPLOYMENT_ARTEFACT_GENERATED: + if (message.startsWith(scagenOutputDir)) { + tail = message.substring(scagenOutputDir.length()); + } + + dest = joinPathElements(newModuleRoot, tail); + System.out.println(command + " " + platformSlashes(message) + + " " + platformSlashes(dest)); + break; + case DEPLOYMENT_INPUT_DIRECTORY: + scagenInputDir = message; + //System.out.println("inputDir " + message); + break; + case DEPLOYMENT_OUTPUT_DIRECTORY: + scagenOutputDir = message; + //System.out.println("outputDir " + message); + break; + default: + break; + } + + } else { + + if (Options.list()) { + switch (eventType) { + case DEPLOYMENT_ARTEFACT_ENCOUNTERED: + case DEPLOYMENT_ARTEFACT_GENERATED: + System.out.println(platformSlashes(message)); + break; + case DEPLOYMENT_INPUT_DIRECTORY: + case DEPLOYMENT_OUTPUT_DIRECTORY: + default: + break; + } + } else { + switch (eventType) { + case DEPLOYMENT_ARTEFACT_ENCOUNTERED: + //TODO make efficient + System.out.println("$sourceDir1" + + platformSlashes(message.substring(scagenInputDir.length()))); + break; + case DEPLOYMENT_ARTEFACT_GENERATED: + //TODO make efficient + System.out.println(generatedDirName + + platformSlashes(message.substring(scagenOutputDir.length()))); + break; + case DEPLOYMENT_INPUT_DIRECTORY: + scagenInputDir = platformSlashes(message); + System.out.println("sourceDir1=" + scagenInputDir); + break; + case DEPLOYMENT_OUTPUT_DIRECTORY: + scagenOutputDir = platformSlashes(message); + if (!scagenInputDir.equals(scagenOutputDir)) { + generatedDirName = "$sourceDir2"; + System.out.println("sourceDir2=" + scagenOutputDir); + } else { + //generatedDirName = "sourceDir1"; + } + break; + default: + break; + } + } + } + } + } + + /** + * @param tail + * @param tail + * @return + */ + public static String joinPathElements(String root, String tail) { + String separator; + // Stick in a "/" (File.separator) if required. + if ((tail.substring(0, 1).equals("/") || newModuleRoot.substring( + root.length() - 1, root.length()).equals("/")) + || (tail.substring(0, 1).equals("\\") || root.substring( + root.length() - 1, root.length()).equals("\\")) + + ) { + separator = ""; + } else { + separator = File.separator; + } + String dest = newModuleRoot + separator + tail; + return dest; + } + + /** + * @param reportArtefacts + * The reportArtefacts to set. + */ + public static void setReportArtefacts(boolean reportArtefacts) { + Utils.reportArtefacts = reportArtefacts; + } + + /** + * @return Returns the reportArtefacts. + */ + private static boolean isReportArtefacts() { + return reportArtefacts; + } + + private static String platformSlashes(String path) { + if (null == path) { + return path; + } + // We need a double level of \\ escapes if the slashes are + // this way round. + String separatorForRegex = File.separator + .replaceAll("\\\\", "\\\\\\\\"); + return path.replaceAll("[/\\\\]+", separatorForRegex); + + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/package.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/package.html new file mode 100644 index 0000000000..c86184f441 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/package.html @@ -0,0 +1,39 @@ + + + +Design documentation for org\apache\tuscany\sca\cpp\tools\common + + + + +
+ +

Overview

+ +This package can be used to reflect across C++ source code. It can produce +a network of descriptive objects describing C++ Headers, Signatures, Parameters and so +on that it finds in a given location of the file system. +Each of the descriptive objects has a set of getters that return either +the descriptive child objects, or for primitives, the string that represents the actual +value such as "int" or "myFunction". +

+There are also various utility methods that help with navigating the information, for example the Signature +class has an isConstructor method. The API Javadoc contains further details of these. +

+The package can scan a directory using a file mask to identify what types +of files are to be scanned. In this application we are interested only +in the function prototypes in the C++ header files. +

+The implementation was originated using some java code that was also +contributed to the Apache org.apache.axis.tools.common package. Care +has been taken that the original code was not sourced via Apache. If +this project is adopted by Apache then it is very possible that this +package could be merged with or made obsolete by org.apache.axis.tools.common +and because of this the design and interfaces have been preserved from +the original code as much as possible. + +

+

+ + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.java new file mode 100644 index 0000000000..ea27e33d09 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.java @@ -0,0 +1,352 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.tuscany.sca.cpp.tools.common.Headers; +import org.apache.tuscany.sca.cpp.tools.common.Signature; +import org.apache.tuscany.sca.cpp.tools.common.Utils; +import org.w3c.dom.Node; + +/** + * This class will do the required processing for the element of a + * sca module or fragment file. + */ +public class ComponentDomNodeHandler extends GenericDomNodeHandler { + + /** + * This method will do the "normal" processing and then trigger a call to + * processComponentNode. + * + * @param node + * the node being processed + * @param contextXPath + * the XPath to the node + * @param handlers + * the map pf element names to DomNodeHandlers + * @param parameters + * a map of XPaths to parameters values found so far + */ + + public void handleNode(Node node, String contextXPath, Map handlers, + Map parameters) { + + // Pick up attrs and the interface.cpp child elements + super.handleNode(node, contextXPath, handlers, parameters); + + try { + //OK now go and create the wrapper and proxy for the service + processComponentNode(contextXPath, parameters); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + /** + * This method basically moved from the text names of things to operating on + * the actual Files. It will also verify or work out the correct class name + * for the implmentation and complain if this does match at least one + * potential service method in the class. + * + * @param contextXPath + * used to pull the correct values from the parameters map (as + * there can be multiple implementation.cpp elelements in there). + * @param parameters + * a map of XPath keys to attribute values + * @throws Exception + */ + private void processComponentNode(String contextXPath, Map parameters) + throws Exception { + + String implHeader = (String) parameters.get(contextXPath + + "/implementation.cpp/@header"); + String implClass = (String) parameters.get(contextXPath + + "/implementation.cpp/@class"); + + File moduleOrFragmentFile = (File) parameters + .get("moduleOrFragmentFile"); + File implHeaderFile = null; + if (null != moduleOrFragmentFile) { + File dir = moduleOrFragmentFile.getParentFile(); + implHeaderFile = new File(dir, implHeader); + } else { + throw new InternalError( + "Internal error: sca.module or fragment file not present in interal parameters"); + } + + try { + String resolvedImplClassName = getClassName(implHeaderFile, + implClass); + + // Check or retrieve the impl Class name. + if (null == resolvedImplClassName) { + try { + //A class attribute was set but there were no methods of + // the + // class in the header + System.out + .println("Classname given (" + + implClass + + ") does not match any header file method's classes in file: " + + implHeaderFile.getCanonicalPath()); + } catch (IOException e) { + System.out + .println("Classname given (" + + implClass + + ") does not match any header file method's classes in file: " + + implHeaderFile.getAbsolutePath()); + } + return; + } else { + File target = (File) parameters.get("targetFile"); + // go into the .componentType file and generate the cpp + processComponentTypeFile(implHeaderFile, target, + resolvedImplClassName); + + } + } catch (Exception e) { + String compName = (String) parameters + .get("/moduleFragment/component/@name"); + Utils + .screenMessage("Problem interpreting header or class attributes in " + + compName + + " component, in " + + moduleOrFragmentFile.getPath() + " file"); + System.exit(-2); + } + + } + + /** + * The purpose of this method is to move from the DOM parameters to dealing + * with the actual Files involved. It is from this method that we kick off + * the processing of the componentType file. + * + * @param header + * the implementation header + * @param target + * the directory for the output + * @param implClass + * @throws Exception + */ + private void processComponentTypeFile(File header, File target, + String implClass) throws Exception { + + // The componentType files should be in the same dir as the Impl + // header... + if (header == null || target == null) { + return; + } + + File componentTypeDirectory = header.getParentFile(); + String headerFileName = header.getName(); + String componentTypeName = headerFileName.substring(0, headerFileName + .lastIndexOf(".")); + + File componentTypeFile = new File(componentTypeDirectory, + componentTypeName + ".componentType"); + + ComponentTypeFileHandler ctParser = new ComponentTypeFileHandler(); + + // The implClass is used in the generated wrapper code so we need to + // store + // it so we can tunnel through the standard actOnFile signature. + + int namespaceEnd = -1; + if (null != implClass) { + namespaceEnd = implClass.lastIndexOf("::"); + } + + String namespace = null; + + if (-1 != namespaceEnd) { + namespace = implClass.substring(0, namespaceEnd); + ctParser.setParameter("namespace", namespace); + implClass = implClass.substring(namespaceEnd + 2); + } + + if (implClass != null) { + ctParser.setParameter("implClass", implClass); + } + + try { + ctParser.handleComponentTypeFile(componentTypeFile, target); + } catch (Exception e) { + Utils + .screenMessage("There has been a problem parsing the componentType file: " + + componentTypeFile.getCanonicalPath()); + Utils.screenMessage(" the reported errors is " + + e.getLocalizedMessage()); + Utils.screenMessage(" and the java exception stack is below."); + e.printStackTrace(); + throw e; + } + } + + /** + * The resolve and check the classname of the service. If we have an + * implementation class name we have to check that there is: at least one + * (non-private, non constructor or finalizer) method of that class in the + * header If there is no implementation class then we will return the class + * of the first non-private/constructor/finalizer method we find. + * + * @param header + * @param implementationCppClass + * @return + * @throws Exception + */ + private String getClassName(File header, String implementationCppClass) + throws Exception { + String methodClassName = null; + List methods = null; + + if (null == header) { + return null; + } + + Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, header + .getAbsolutePath()); + Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, + "Scagen processing C++ implementation header " + + header.getAbsolutePath()); + + try { + Headers headers = new Headers(); + + headers.actOnFile(header, null, 1); + + methods = headers.getAllMethods(); + + } catch (FileNotFoundException fnfe) { + String path; + try { + path = header.getCanonicalPath(); + } catch (IOException e1) { + path = header.getPath(); + } + Utils.screenMessage("The header file: " + path + + " referenced cannot be found."); + throw fnfe; + } catch (Exception e) { + String path = header.getPath(); + Utils.screenMessage("The header file: " + path + + " referenced is not valid. Reason given is " + + e.getLocalizedMessage()); + throw e; + } + + // We need at least some methods + if (null == methods) { + return null; + } + + // We need at least one service method of to do anything + methods = trimMethodsOfPrivatesConstructorsAndDestrutors(methods); + if (null == methods || methods.size() == 0) { + return null; + } + + // If the user specifies an implementation class then we need at + // least one service method of that class + if (implementationCppClass != null) { + methods = filterMethodsToOneClass(methods, implementationCppClass); + + if (null == methods || methods.size() == 0) { + return null; + } else { + // There was at least one method of the correct type + return implementationCppClass; + } + } else { + // Implementation class is null so we return the classname of the + // first service method + return ((Signature) methods.get(0)).getTrimClassName(); + } + } + + /** + * Filter the mthods supplied to only ones fo the supplied class. + * + * @param methods + * the list of methods + * @param implementationCppClass + * the class we wish + * @return a list of methods of the correct class + */ + private List filterMethodsToOneClass(List methods, + String implementationCppClass) { + + if (null == methods) { + return null; + } + + if (null == implementationCppClass + || implementationCppClass.length() == 0) { + return null; + } + + for (Iterator iter = methods.listIterator(); iter.hasNext();) { + Signature method = (Signature) iter.next(); + + String className = method.getTrimClassName(); + String namespace = method.getNamespace(); + + if (namespace != null && namespace.length() > 0) { + className = namespace + "::" + className; + } + + if (!implementationCppClass.equals(className)) { + iter.remove(); + } + } + + return methods; + + } + + /** + * This method removes contructor and destructor methods from the list. + * + * @param methods + * the list of methods + * @return + */ + private List trimMethodsOfPrivatesConstructorsAndDestrutors(List methods) { + + if (null == methods) { + return null; + } + + for (Iterator iter = methods.listIterator(); iter.hasNext();) { + Signature method = (Signature) iter.next(); + + if (method.isConstructor() || method.isDestructor()) { + iter.remove(); + } + } + + return methods; + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.java new file mode 100644 index 0000000000..0ee9b97138 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.java @@ -0,0 +1,124 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.io.File; + +import org.apache.tuscany.sca.cpp.tools.common.FileActor; +import org.apache.tuscany.sca.cpp.tools.common.Utils; + +/** + * The purpose of this class is to specialise the map of XML element handlers + * for a XXX.componentType file that is used by the XMLFileActor + */ +public class ComponentTypeFileHandler extends XMLFileActor { + + static { + // We set up a map for each element type we wish to handle + // this alows the XML handling code to be generic and type free + // while the handlers don't have to do mcuh XML handling. + + GenericDomNodeHandler gdnh = new GenericDomNodeHandler(); + handlers.put("componentType", gdnh); + handlers.put("interface.cpp", gdnh); + + ServiceDomNodeHandler sdnh = new ServiceDomNodeHandler(); + handlers.put("service", sdnh); + + ReferenceDomNodeHandler rdnh = new ReferenceDomNodeHandler(); + handlers.put("reference", rdnh); + } + + /** + * This method just exists to add the default starting depth of 1 to the + * underlying actOnFile interface + * + * @param componentTypeXML + * @param target + * @throws Exception + */ + public void handleComponentTypeFile(File componentTypeXML, File target) + throws Exception { + // We have already set up the XML element handlers. + actOnFile(componentTypeXML, target, 1); + // We need do no more, the service and reference handlers + // ServiceDomNodeHandler and ReferenceDomNodeHandler + // will take appropriate action. + } + + /** + * This method is the main FileActor method + * + * @see FileActor#actOnFile(File, File, int) Here we create an initial DOM + * and kick off the processing (using the handler map that has been set + * up by the concrete subclass). + * + * @param moduleXML + * the sca.module or fragment file + * @param target + * the target directory + * @param depth + * not uesed here but in the + * @see FileActor#actOnFile(File, File, int) interface to allow for + * recursive diving into a directory structure. + */ + public void actOnFile(File fileXML, File target, int depth) + throws Exception { + + if (null == fileXML || null == target) { + return; + } + + parameters.put("componentTypeFile", fileXML); + + Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, fileXML.getAbsolutePath()); + Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, "Scagen processing SCA componentType file " + fileXML.getAbsolutePath()); + + super.actOnFile(fileXML, target, depth); + + } + + /** + * @return an error message - usually over-ridden. + */ + protected String getContextMessage() { + + String module = ((File) parameters.get("moduleOrFragmentFile")).getPath(); + if (null == module) { + module = "unknown"; + } + + String component = (String) parameters.get("/module/component/@name"); + if (null == component) { + component = (String) parameters + .get("/moduleFragment/component/@name"); + } + if (null == component) { + module = "unknown"; + } + + String msg = "when processing module " + module; + + msg = msg + + "\nin this module file, the component \"" + + component + + "\" has an implementation.cpp element with a header attribute \nwhere the C++ header can be found but it has no matching .componentType file present in\nthe same directory as the header."; + + return msg; + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.java new file mode 100644 index 0000000000..1ff4504fff --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.java @@ -0,0 +1,87 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.io.File; +import java.util.Set; + +import org.apache.tuscany.sca.cpp.tools.common.FileActor; +import org.apache.tuscany.sca.cpp.tools.common.Utils; + +public class DirectoryScanner { + private FileActor actor; + + private Set actOnTheseFileExtensions; + + public DirectoryScanner(FileActor actor, Set extensions) { + this.actor = actor; + this.actOnTheseFileExtensions = extensions; + } + + /** + * + * @param source + * The module root directory + * @param target + * The directory that will hold the generated output + * @param depth + * The depth from the initial starting point, not significant for + * the Scagen tool as we are only interested in the module root + * directory but present due to the FileActor actOnFile interface + * method. This code is pulled from the code in the CParsingTool + * class and further work is needed to remove the duplication. + * Tnterface has been left unchanged as we hope to reconverge the + * parser here with the original one once the changes are fed + * back into the original code. + * @throws Exception + */ + public void walkTree(File source, File target, int depth) throws Exception { + depth++; + boolean noTarget = (null == target); + + if (!source.canRead()) + Utils.rude("Cannot read from source directory " + source); + if (!noTarget && !target.canWrite()) + Utils.rude("Cannot write to target directory " + target); + + if (source.isDirectory()) { + File[] filesInDirectory = source.listFiles(); + for (int i = 0; i < filesInDirectory.length; i++) { + File file = filesInDirectory[i]; + String name = file.getName(); + int dot = name.lastIndexOf('.'); + String ext = null; + if (-1 != dot) { + ext = name.substring(dot + 1); + } + + if (file.isFile() + && (actOnTheseFileExtensions == null || (!file + .isHidden() && actOnTheseFileExtensions + .contains(ext)))) { + // this is a file we need to act on! + actor.actOnFile(file, target, depth); + } + } + } else { + return; // Do not act on single files for now we expect a module + // root directory + // and the "main" class checks its parameters to ensure this is so. + } + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomHandler.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomHandler.java new file mode 100644 index 0000000000..2ca4c7c881 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomHandler.java @@ -0,0 +1,77 @@ +/* +* +* 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. +*/ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.util.Map; + +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +/** + * The purpose of this class it to provide a generic class that can handle both + * a DOM and a DOM node. + * + */ +public class DomHandler extends GenericDomNodeHandler { + /** + * This method will run through the initial level of the DOM using the + * handlers map + * + * @param dom + * the document being consumed + * @param handlers + * the map from element name to node handler + * @param parameters + * a map of parameters - this is often used by a handler to place + * a name-value pair, the name is often an Xpath representation + * of the location of the data in the DOM but handlers are free + * to use whatever they like - the contextXpath is generated as + * an Xpath prefix for those handlers that wish to use it. + */ + public static void handleDom(Document dom, Map handlers, Map parameters) { + if (dom != null) { + NodeList childNodes = dom.getChildNodes(); + for (int i = 0; i < childNodes.getLength(); i++) { + Node childNode = childNodes.item(i); + mapNodeToHandlerAndHandle(childNode, "/" + + childNode.getNodeName(), handlers, parameters); + } + } + } + + /** + * + * @param node + * The DOM node being consumed + * @param contextXPath + * The XPath to this node + * @param handlers + * The map from element name to node handler + * @param parameters + * A map of parameters - this is often used by a handler to place + * a name-value pair, the name is often an Xpath representation + * of the location of the data in the DOM but handlers are free + * to use whatever they like - the contextXpath is generated as + * an Xpath prefix for those handlers that wish to use it. + */ + public void handleNode(Node node, String contextXPath, Map handlers, + Map parameters) { + mapNodeToHandlerAndHandle(node, contextXPath, handlers, parameters); + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.java new file mode 100644 index 0000000000..00942bd9ca --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.java @@ -0,0 +1,40 @@ +/* +* +* 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. +*/ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.util.Map; + +import org.w3c.dom.Node; + +public interface DomNodeHandler { + + public static int ELEMENT = 1; + /** + * An interface for classes that can process DOM nodes. + * + * @param node the DOM node being consumed + * @param contextXPath the XPath to this node + * @param handlers The map from element name to node handler + * @param parameters A map of parameters - this is often used by a handler to place + * a name-value pair, the name is often an Xpath like representation of the + * location of the data in the DOM but handlers are free to use whatever + * they like - the contextXpath is generated as an Xpath prefix for those + * handlers that wish to use it. + */ + void handleNode( Node node, String contextXPath, Map handlers, Map parameters ); + +} diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.java new file mode 100644 index 0000000000..3f9fb359f5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.java @@ -0,0 +1,214 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.io.File; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.Map.Entry; + +import org.apache.tuscany.sca.cpp.tools.common.Utils; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +/** + * + * + * + * + */ +public class GenericDomNodeHandler implements DomNodeHandler { + /** + * This method parses the DOM attributes into name value pairs in the + * parameter map each valued keyed by its XPath. + * + * @param node + * the DOM node being processed + * @param contextPath + * the XPath to the DOM node being processed + * @param parameters + * a scratchpad map of name value pairs + */ + public void transferAttrsToParameters(Node node, String contextPath, + Map parameters) { + + if (node == null || contextPath == null || parameters == null) + return; + + NamedNodeMap attrs = node.getAttributes(); + if (attrs != null) { + for (int i = 0; i < attrs.getLength(); i++) { + Node attr = attrs.item(i); + parameters.put(contextPath + "/" + "@" + attr.getNodeName(), + attr.getNodeValue()); + + // Report the dll name to the deployment tool if required. + if ("dll".equals(attr.getNodeName())) { + //This is a path relative to the module root. + //so we need to add it in. + File mod = (File) parameters.get("moduleOrFragmentFile"); + if (null != mod) { + String separatorForRegex = File.separator.replaceAll( + "\\\\", "\\\\\\\\"); + + String end = attr.getNodeValue().replaceAll("[/\\\\]+", + separatorForRegex); + + if (!end.startsWith(File.separator)) { + end = File.separator + end; + } + + String fullPath = mod.getParentFile().getAbsolutePath() + + end; + Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, + fullPath); + } + + } + + } + } + return; + } + + /** + * This method will iterate through the DOM node's children and call the + * appropriate handler for each one. + * + * @param node + * the DOM node being processed + * @param contextPath + * the XPath to the DOM node being processed + * @param handlers + * a map of element name to handler objects + * @param parameters + * a scratchpad map of name value pairs + */ + public void handleChildElements(Node node, String contextPath, + Map handlers, Map parameters) { + + if (node == null || contextPath == null) + return; + + NodeList children = node.getChildNodes(); + if (children != null) { + for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + mapNodeToHandlerAndHandle(child, contextPath + "/" + + child.getNodeName(), handlers, parameters); + } + } + return; + } + + /** + * This method will resolve any registered handler for a particular DOM + * element and call the handleNode method on it. If the handlers map has a + * mapping from "entity" to an instance of EntityHandler which implements + * the DomNodeHandler interface then any node that looks like + * + * + * Will be passed to the EntityHandler to process. + * + * @param node + * the DOM node being processed + * @param contextPath + * the XPath to the DOM node being processed + * @param handlers + * a map of element name to handler objects + * @param parameters + * a scratchpad map of name value pairs + */ + public static void mapNodeToHandlerAndHandle(Node node, String contextPath, + Map handlers, Map parameters) { + if (node != null && node.getNodeType() == DomNodeHandler.ELEMENT) { + String nodeName = node.getNodeName(); + if (nodeName != null && nodeName.length() > 0) { + DomNodeHandler handler = (DomNodeHandler) handlers + .get(nodeName); + if (handler != null) { + handler.handleNode(node, contextPath, handlers, parameters); + } + } + } + } + + /** + * This method will place the attributes in this node into the parameter map + * keyed by the XPath and recursively continue processing for any + * sub-elements of the node. + * + * @param node + * The DOM node being consumed + * @param contextXPath + * The XPath to this node + * @param handlers + * The map from element name to node handler + * @param parameters + * A map of parameters - this is often used by a handler to place + * a name-value pair, the name is often an Xpath representation + * of the location of the data in the DOM but handlers are free + * to use whatever they like - the contextXpath is generated as + * an Xpath prefix for those handlers that wish to use it. + */ + public void handleNode(Node node, String contextXPath, Map handlers, + Map parameters) { + + clearParametersAtThisXPath(contextXPath, parameters); + transferAttrsToParameters(node, contextXPath, parameters); + handleChildElements(node, contextXPath, handlers, parameters); + } + + /** + * @param contextXPath + * @param parameters + */ + private void clearParametersAtThisXPath(String contextXPath, Map parameters) { + + // TODO: Slow but works, improve parameters mechanism overall + // to make this unecessary + if (contextXPath == null || parameters == null) { + return; + } + + // We want to clear both /moduleFragment and /module + // subtrees when we come across the root of either.. + if (contextXPath.equals("/moduleFragment")) { + //clear both this and "module" + contextXPath = "/module"; + } + + Set parms = parameters.entrySet(); + if (null != parms) { + Iterator iter = parms.iterator(); + Map.Entry item = null; + String thisKey; + + while (iter.hasNext()) { + item = (Entry) iter.next(); + thisKey = (String) item.getKey(); + if (thisKey.startsWith(contextXPath)) { + //System.out.println(" removing " + thisKey + " for " + + // item.getValue().toString() + " against " + contextXPath); + iter.remove(); + } + } + } + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/LittleClass.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/LittleClass.java new file mode 100644 index 0000000000..699abf7a08 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/LittleClass.java @@ -0,0 +1,27 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.services; + +/** + * This class is just a convenient application class that is loaded in order to + * get the application class loader. We are interested in the application class + * loader as we use its getResource method to resolve XML files independantly of + * where they are. + */ +public class LittleClass { + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.java new file mode 100644 index 0000000000..3bd8129401 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.java @@ -0,0 +1,85 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.io.File; + +import org.apache.tuscany.sca.cpp.tools.common.FileActor; +import org.apache.tuscany.sca.cpp.tools.common.Utils; + +/** + * The purpose of this class is purely to specialise the handler map to one with + * a specific ComponentDomNodeHandler. + */ +public class ModuleOrFragmentFileHandler extends XMLFileActor { + + static { + + GenericDomNodeHandler gdnh = new GenericDomNodeHandler(); + + /* + * We use a specific Component node handler in order to be able to + * process multiple components in the same XML file + */ + ComponentDomNodeHandler componentdnh = new ComponentDomNodeHandler(); + handlers.put("component", componentdnh); + + /* + * We are interested inthe elements below but they only need standard + * processing + */ + handlers.put("module", gdnh); + handlers.put("moduleFragment", gdnh); + handlers.put("implementation.cpp", gdnh); + } + + /** + * This method is the main FileActor method + * + * @see FileActor#actOnFile(File, File, int) Here we create an initial DOM + * and kick off the processing (using the handler map that has been set + * up by the concrete subclass). + * + * @param moduleXML + * the sca.module or fragment file + * @param target + * the target directory + * @param depth + * not uesed here but in the + * @see FileActor#actOnFile(File, File, int) interface to allow for + * recursive diving into a directory structure. + */ + public void actOnFile(File moduleXML, File target, int depth) + throws Exception { + + if (null == moduleXML || null == target) { + return; + } + + parameters.put("moduleOrFragmentFile", moduleXML); + + Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, moduleXML + .getAbsolutePath()); + + Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, + "Scagen processing SCA module file " + + moduleXML.getAbsolutePath()); + + super.actOnFile(moduleXML, target, depth); + + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.java new file mode 100644 index 0000000000..a490d184d1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.java @@ -0,0 +1,67 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.util.Map; + +import org.apache.tuscany.sca.cpp.tools.common.Options; +import org.w3c.dom.Node; + +/** + * The purpose of this class is to process a element in a + * componentType file and then trigger a call to the method in ServicesGenerator + * to process the interface header file + */ +public class ReferenceDomNodeHandler extends GenericDomNodeHandler { + + /* + * (non-Javadoc) + * + * @see org.apache.tuscany.sca.cpp.services.DomNodeHandler#handleNode(org.w3c.dom.Node, + * java.lang.String, java.util.Map, java.util.Map) + */ + public void handleNode(Node node, String contextXPath, Map handlers, + Map parameters) { + + // Pick up attrs and children + super.handleNode(node, contextXPath, handlers, parameters); + + //OK we know we are handling a reference + //now go and create the wrapper and proxy for it + createProxyForReference(parameters); + + } + + /** + * This method is really just an adapter that adapts the -dir Option to a + * value int he parameters map for "module_root" + * + * @param parameters + * the map of name-value parameters. + */ + private void createProxyForReference(Map parameters) { + try { + String mr = (String) Options.getOption("-dir"); + parameters.put("module_root", mr); + ServicesGenerator.handleInterfaceHeader(parameters, true); + + } catch (Exception e) { + e.printStackTrace(); + } + + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/Scagen.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/Scagen.java new file mode 100644 index 0000000000..a6f6f58644 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/Scagen.java @@ -0,0 +1,170 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.io.File; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +import org.apache.tuscany.sca.cpp.tools.common.CParsingTool; +import org.apache.tuscany.sca.cpp.tools.common.Options; +import org.apache.tuscany.sca.cpp.tools.common.Utils; + +/** + * This is the main top level class. Its purpose is to create a + * Module/FragmentFile handler visitor and pass it to a DirectoryScanner for + * processing. + */ +public class Scagen extends CParsingTool { + + public static Set MODULE_EXTENSIONS = new HashSet(Arrays + .asList(new Object[] { "module", "fragment" })); + + /** + * @throws Exception + * + */ + public Scagen(String[] args) throws Exception { + super(args); + } + + /** + * Take a directory scanning class and create a vistor that knows how to + * handle any sca.module or .fragment that the scanner comes across. + * + * @param args + * standard main args. THe values we expect in this class are + * scagen -dir input_dir -output output_dir + * + */ + public static void main(String[] args) { + boolean failed = false; + try { + Scagen env = new Scagen(args); + ModuleOrFragmentFileHandler module_handler = new ModuleOrFragmentFileHandler(); + + // Check and access the input SCA module directory + String name = (String) Options.getOption("-dir"); + if (null == name) { + Utils + .screenMessage("Please provide a SCA module directory name as a \"-dir\" option."); + env.printUsage(); + System.exit(-1); + } + File source = new File(name); + if (!source.isFile() && !source.isDirectory()) { + Utils + .screenMessage("The SCA module directory provided as the \"-dir\" option cannot be accessed,"); + Utils.screenMessage("the option given was: " + source); + env.printUsage(); + System.exit(-1); + } + + String deployDir = null; + try { + deployDir = (String) Options.getOption("-deploy"); + if (null != deployDir || Options.deploy()) { + Utils.setReportArtefacts(true); + } + } catch (Exception e) { + // let it default to null + } + + Utils.postEvent(Utils.DEPLOYMENT_INPUT_DIRECTORY, source + .getAbsolutePath()); + + // We check the -output option here as we wish to + // reuse the env.maybeCreateDirectory method + // unchanged from the original that went into axis and it will do a + // System.exit if there is no matching Option + String outputDirName = (String) Options.getOption("-output"); + if (null == outputDirName) { + Utils + .screenMessage("Please provide an output directory name for the generated files as a \"-output\" option."); + env.printUsage(); + System.exit(-1); + } + + File outputDir = new File(outputDirName); + + // Check we can create the output directory + if (outputDir == null || !outputDir.exists() && !outputDir.mkdir()) { + Utils.screenMessage("Failed to create output directory: " + + outputDirName); + env.printUsage(); + System.exit(-1); + } + + Utils.postEvent(Utils.DEPLOYMENT_OUTPUT_DIRECTORY, outputDir + .getAbsolutePath()); + + DirectoryScanner scanner = new DirectoryScanner(module_handler, + MODULE_EXTENSIONS); + scanner.walkTree(source, outputDir, 1); + + if (0 == module_handler.getFilesActedOn()) { + Utils + .screenMessage("No SCA module or fragment files were found in: " + + source); + } + + failed = module_handler.failed; + + } catch (Exception exception) { + Utils + .screenMessage("Unexpected error occurred while runnning the Scagen tool. The Java exception is below."); + exception.printStackTrace(); + failed = true; + } + + if (failed) { + Utils + .outputDebugString("Finished! (but encountered problems parsing modules)"); + System.exit(-2); + } + + Utils.outputDebugString("Finished!"); + } + + /** + * Provide a hint to the user on how to call this class + */ + protected void printUsage() { + System.out + .println("usage: Java Scagen -dir -output [-verbose] [-deploy ] [-nogenerate] [-outputCommand] [-command ]"); + System.out + .println(" -dir : the SCA module root directory"); + System.out + .println(" -output : a directory to put the generated output into"); + System.out.println(" [-verbose]: report on what scagen is doing"); + System.out + .println(" [-deploy ]: output text to help in deploying the module's artefacts"); + System.out + .println(" [-command ]: a string that is injected into the deploy text"); + System.out + .println(" [-list]: change the deploy output text to a simple list of artefacts"); + System.out + .println(" [-outputCommand]: change the deploy output text to command text format"); + System.out + .println(" output is of form \"copy_cmd file1 file1\""); + System.out + .println(" [-nogenerate]: do not generate proxies and wrappers"); + + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.java new file mode 100644 index 0000000000..79b74c0450 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.java @@ -0,0 +1,62 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.util.Map; + +import org.apache.tuscany.sca.cpp.tools.common.Options; +import org.w3c.dom.Node; + +public class ServiceDomNodeHandler extends GenericDomNodeHandler { + + /* + * (non-Javadoc) + * + * @see org.apache.tuscany.sca.cpp.services.DomNodeHandler#handleNode(org.w3c.dom.Node, + * java.lang.String, java.util.Map, java.util.Map) + */ + public void handleNode(Node node, String contextXPath, Map handlers, + Map parameters) { + + // Pick up attrs and the interface.cpp child elements + super.handleNode(node, contextXPath, handlers, parameters); + + //OK now go and create the wrapper and proxy for the service + createWrapperAndProxyForService(parameters); + + } + + /** + * This method will generate the wrapper and proxy C++ and header files for + * the service. + * + * @param parameters + * a map of name-value parameters + */ + private void createWrapperAndProxyForService(Map parameters) { + + try { + String mr = (String) Options.getOption("-dir"); + parameters.put("module_root", mr); + ServicesGenerator.handleInterfaceHeader(parameters, false); + + } catch (Exception e) { + e.printStackTrace(); + } + + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.java new file mode 100644 index 0000000000..6442b76992 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.java @@ -0,0 +1,802 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.apache.tuscany.sca.cpp.tools.common.CParsingTool; +import org.apache.tuscany.sca.cpp.tools.common.Headers; +import org.apache.tuscany.sca.cpp.tools.common.Options; +import org.apache.tuscany.sca.cpp.tools.common.Parameter; +import org.apache.tuscany.sca.cpp.tools.common.Signature; +import org.apache.tuscany.sca.cpp.tools.common.Utils; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; + +/** + * This class is the main class that handles the function that parses a C++ + * interface header file into a DOM that holds all the semantic information + * about the interface - method names, parameters and return values. It then + * uses XSLT to generate different "views" of this data plus the parameter map + * from other sources that are the C++ programs for the proxy and wrapper + * implementations and headers. + */ +public class ServicesGenerator extends CParsingTool { + + private static final String OPERATION_NAME_ATTR = "operationNameAttr"; + + private static final String HEADER_NAME_ATTR = "headerNameAttr"; + + private static final String SCA_OPERATION = "scaOperation"; + + private static final String SCA_SERVICE = "scaService"; + + private static final String SCA_OPERATION_RETURN_TYPE = "scaOperationReturnType"; + + private static final String SCA_OPERATION_PARAMETER = "scaOperationParameter"; + + private static final String SCA_OPERATION_PARAMETER_NAME_ATTR = "scaOperationParameterNameAttr"; + + private static final String SCA_OPERATION_PARAMETER_CONST_ATTR = "scaOperationParameterConstAttr"; + + private static final String SCA_INTERFACE_NAME_ATTR = "scaInterfaceNameAttr"; + + private static final String CPP_HEADER = "cppHeader"; + + private static boolean TESTING = true; + + private static TransformerFactory txmf = null; + + private static ServicesGenerator instance = null; + + public ServicesGenerator(String[] args) throws Exception { + super(args); + txmf = TransformerFactory.newInstance(); + } + + /** + * + * @param parameters + * @param forReference + * true if we are creating a proxy for a reference (rather than + * for a service) + * @throws Exception + * + * The design is + *
    + *
  • handleInterfaceHeader + *
  • createDOMofMethods + *
  • createProxyCPPFromDom(outputDir, dom); + *
  • createProxyHeaderFromDom(outputDir, dom); + *
+ * + * plus if we are not generating for a reference element + *
    + *
  • createWrapperCPPFromDom(outputDir, dom); + *
  • createWrapperHeaderFromDom(outputDir, dom); + *
      + * Each of the create.... methods calls createOutputFromDom with a different + * style sheet. + * + */ + public static void handleInterfaceHeader(Map parameters, + boolean forReference) throws Exception { + boolean failed = false; + + String type = null; + if (forReference) { + type = "reference"; + } else { + type = "service"; + } + String interfaceHeaderFilename = (String) parameters + .get("/componentType/" + type + "/interface.cpp/@header"); + + String componentTypeFileHeaderName = interfaceHeaderFilename; + + String sca_module_root = (String) Options.getOption("-dir"); + parameters.put("module_root", sca_module_root); + + if (sca_module_root != null && interfaceHeaderFilename != null + && interfaceHeaderFilename.length() > 0) { + String separator; + // Stick in a "/" (File.separator) if required. + if ((interfaceHeaderFilename.substring(0, 1).equals("/") || sca_module_root + .substring(sca_module_root.length() - 1, + sca_module_root.length()).equals("/")) + || (interfaceHeaderFilename.substring(0, 1).equals("\\") || sca_module_root + .substring(sca_module_root.length() - 1, + sca_module_root.length()).equals("\\")) + + ) { + separator = ""; + } else { + separator = File.separator; + } + interfaceHeaderFilename = sca_module_root + separator + + interfaceHeaderFilename; + } + + File outputDir = (File) parameters.get("targetDirectoryFile"); + + String[] args = new String[] { "-source", interfaceHeaderFilename, + "-target", outputDir.getPath() }; + ServicesGenerator gen = new ServicesGenerator(args); + File file; + try { + if (null == interfaceHeaderFilename) { + gen.printUsage(); + System.exit(-1); + } + + file = new File(interfaceHeaderFilename); + if (!file.isFile()) { + if (file.isDirectory()) { + Utils + .rude("This tool works at the header file level and not for directories like " + + file); + } + Utils.rude("Bad file or directory " + file); + } + File source = file; + if (!outputDir.exists() && !outputDir.mkdir()) + Utils.rude("Failed to create directory " + outputDir); + + // The class below is the one that will go through the header + // file(s) + Headers headers = new Headers(); + + if (null != interfaceHeaderFilename) { + Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, file + .getAbsolutePath()); + Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, + "Scagen processing C++ interface header " + + file.getAbsolutePath()); + headers.actOnFile(file, outputDir, 1); + Utils.outputDebugString("Parsing files..."); + } + + String nameOfSorR = null; + String referenceName = null; + String serviceName = null; + + if (forReference) { + + Object rn = parameters.get("/componentType/reference/@name"); + + if (rn instanceof String) { + referenceName = (String) rn; + nameOfSorR = referenceName; + } + } else { + + Object sn = parameters.get("/componentType/service/@name"); + + if (sn instanceof String) { + serviceName = (String) sn; + nameOfSorR = serviceName; + } + } + + String moduleXmlFileHeader = null; + String moduleXmlFileHeaderNoExt = null; + Object moduleh = parameters + .get("/module/component/implementation.cpp/@header"); + + if (moduleh == null) { + moduleh = parameters + .get("/moduleFragment/component/implementation.cpp/@header"); + } + + if (moduleh instanceof String) { + File f = new File((String) moduleh); + moduleXmlFileHeader = (String) moduleh; + + String fname = f.getName(); + moduleXmlFileHeaderNoExt = fname.substring(0, fname + .lastIndexOf('.')); + + } + + String implClassNameAttrFromModuleFile = (String) parameters + .get("implClass"); + + String interfaceClassNameAttrFromComponentTypeFile; + if (forReference) { + interfaceClassNameAttrFromComponentTypeFile = (String) parameters + .get("/componentType/reference/interface.cpp/@class"); + } else { + interfaceClassNameAttrFromComponentTypeFile = (String) parameters + .get("/componentType/service/interface.cpp/@class"); + } + + List methods = headers.getAllMethods(); + + // Pull out one of the methods' namespace attributes. + String intfNamespace = null; + if (methods.size() > 0) { + Signature method = (Signature) methods.get(0); + intfNamespace = method.getNamespace(); + } + + if (interfaceClassNameAttrFromComponentTypeFile != null) { + methods = filterToPublicMethodsOfGivenClass(methods, + interfaceClassNameAttrFromComponentTypeFile, true); + } else { + //We want to filter to methods of the class whose + //name matches the header file name. + // String intfClassName = (String) parameters.get("intfClass"); + // + String headerFileBase = file.getName().replaceAll( + "\\.h|\\.hpp|\\.h++", ""); + + methods = filterToPublicMethodsOfGivenClass(methods, + headerFileBase, false); + } + + Document dom = createDOMofMethods(methods, source, serviceName, + referenceName, nameOfSorR, null, + componentTypeFileHeaderName, moduleXmlFileHeader, + moduleXmlFileHeaderNoExt, intfNamespace, + interfaceClassNameAttrFromComponentTypeFile, + implClassNameAttrFromModuleFile); + + createProxyCPPFromDom(outputDir, dom); + createProxyHeaderFromDom(outputDir, dom); + + if (!forReference) { + createWrapperCPPFromDom(outputDir, dom); + createWrapperHeaderFromDom(outputDir, dom); + } + + } catch (Exception exception) { + exception.printStackTrace(); + failed = true; + } + + if (failed) { + Utils.outputDebugString("Finished! (but encountered problems)"); + System.exit(-2); + } + } + + /** + * This methods takes a list of methods and filters them to only contain the + * public methods of the given class + * + * @param methods + * a list of methods + * @param className + * we will return a list of only this classes methods from the + * methods parameter + * @param attrSpecified + * if the user does not specify one we ignore namespaces + * @return + */ + private static List filterToPublicMethodsOfGivenClass(List methods, + String className, boolean useNamespace) { + if (methods != null && className != null && className.length() > 0) { + for (Iterator iter = methods.listIterator(); iter.hasNext();) { + Signature method = (Signature) iter.next(); + String scope = method.getScope(); + String sig = method.getOriginal(); + String namespace = method.getNamespace(); + + String qualifiedClassName; + if (useNamespace && null != namespace && 0 < namespace.length()) { + qualifiedClassName = namespace + "::" + + method.getTrimClassName(); + } else { + qualifiedClassName = method.getTrimClassName(); + } + + // If we are not public or the classname does not match + // remove... + if (!qualifiedClassName.equals(className) + || -1 == scope.indexOf("public")) { + iter.remove(); + } + } + } + return methods; + } + + /** + * Use an XSLT transformation to create a Proxy "view" of the DOM + * information + * + * @param outputDir + * where to put the C++ + * @param dom + * the DOM of semantic method information + * @throws TransformerException + */ + private static void createProxyCPPFromDom(File outputDir, Document dom) + throws TransformerException { + + //Create the Filename from the Service Name in the DOM + if (dom == null) { + return; + } + + String serviceOrReferenceName = "noSorRNameDefined"; + + String implClass = "nomoduleXmlFileHeaderDefined"; + + Element topNode = dom.getDocumentElement(); + if (null != topNode) { + Attr attr = topNode.getAttributeNode("nameOfSorR"); + if (attr != null) { + serviceOrReferenceName = attr.getNodeValue(); + } + + attr = topNode.getAttributeNode("implClass"); + if (attr != null) { + implClass = attr.getNodeValue(); + } + } + + File proxyCPP = new File(outputDir, implClass + "_" + + serviceOrReferenceName + "_Proxy.cpp"); + if (null != proxyCPP) { + + Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, proxyCPP + .getAbsolutePath()); + Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, + "Scagen creating SCA for C++ proxy implementation " + + proxyCPP.getAbsolutePath()); + } + + createOutputFromDom(dom, proxyCPP, + "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl"); + + } + + /** + * Use an XSLT transformation to create a Wrapper "view" of the DOM + * information + * + * @param outputDir + * where to put the C++ + * @param dom + * the DOM of semantic method information + * @throws TransformerException + */ + private static void createWrapperCPPFromDom(File outputDir, Document dom) + throws TransformerException { + + //Create the Filename from the Service Name in the DOM + if (dom == null) { + return; + } + + String serviceName = "noServiceDefined"; + + String implClass = "nomoduleXmlFileHeaderDefined"; + + Element topNode = dom.getDocumentElement(); + if (null != topNode) { + Attr attr = topNode.getAttributeNode("serviceName"); + if (attr != null) { + serviceName = attr.getNodeValue(); + } + + attr = topNode.getAttributeNode("implClass"); + if (attr != null) { + implClass = attr.getNodeValue(); + } + } + + File wrapperCPP = new File(outputDir, implClass + "_" + serviceName + + "_Wrapper.cpp"); + if (null != wrapperCPP) { + Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, wrapperCPP + .getAbsolutePath()); + Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, + "Scagen creating SCA for C++ wrapper implementation " + + wrapperCPP.getAbsolutePath()); + } + createOutputFromDom(dom, wrapperCPP, + "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl"); + + } + + /** + * Use an XSLT transformation to create a Proxy header "view" of the DOM + * information + * + * @param outputDir + * where to put the C++ + * @param dom + * the DOM of sematic method information + * @throws TransformerException + */ + private static void createProxyHeaderFromDom(File outputDir, Document dom) + throws TransformerException { + + //Create the Filename from the Service Name in the DOM + if (dom == null) { + return; + } + + String serviceOrReferenceName = "noServiceDefined"; + String intfClass = "noInterfaceClassNameOrDefaultDefined"; + String implClass = "noImplementationClassOrDefaultDefined"; + + Element topNode = dom.getDocumentElement(); + if (null != topNode) { + Attr attr = topNode.getAttributeNode("nameOfSorR"); + if (attr != null) { + serviceOrReferenceName = attr.getNodeValue(); + } + attr = topNode.getAttributeNode("intfClass"); + if (attr != null) { + intfClass = attr.getNodeValue(); + } + attr = topNode.getAttributeNode("implClass"); + if (attr != null) { + implClass = attr.getNodeValue(); + } + } + + File proxyHeader = new File(outputDir, implClass + "_" + + serviceOrReferenceName + "_Proxy.h"); + if (null != proxyHeader) { + Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, proxyHeader + .getAbsolutePath()); + Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, + "Scagen creating SCA for C++ proxy header " + + proxyHeader.getAbsolutePath()); + } + + createOutputFromDom(dom, proxyHeader, + "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl"); + + } + + /** + * Use an XSLT transformation to create a Wrapper header "view" of the DOM + * information + * + * @param outputDir + * where to put the C++ + * @param dom + * the DOM of sematic method information + * @throws TransformerException + */ + private static void createWrapperHeaderFromDom(File outputDir, Document dom) + throws TransformerException { + + //Create the Filename from the Service Name in the DOM + if (dom == null) { + return; + } + + String serviceName = "noServiceDefined"; + + String implClass = "nomoduleXmlFileHeaderDefined"; + + Element topNode = dom.getDocumentElement(); + if (null != topNode) { + Attr attr = topNode.getAttributeNode("serviceName"); + if (attr != null) { + serviceName = attr.getNodeValue(); + } + + attr = topNode.getAttributeNode("implClass"); + if (attr != null) { + implClass = attr.getNodeValue(); + } + } + + File wrapperHeader = new File(outputDir, implClass + "_" + serviceName + + "_Wrapper.h"); + + if (null != wrapperHeader) { + Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, wrapperHeader + .getAbsolutePath()); + Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, + "Scagen creating SCA for C++ wrapper header " + + wrapperHeader.getAbsolutePath()); + } + createOutputFromDom(dom, wrapperHeader, + "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl"); + + } + + /** + * This method will return a class loader that can see the resources that + * are parts of "this" package. + */ + private static ClassLoader getALoader() { + + LittleClass lc; + try { + lc = new LittleClass(); + return lc.getClass().getClassLoader(); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * This method will generically process the DOM using a stylesheet passed + * in. + * + * @param dom + * the source of data (the model) + * @param outputFile + * where to put the result + * @param xslTransformationFileName + * the xsl file containing the "view" + * @throws TransformerException + */ + private static void createOutputFromDom(Document dom, File outputFile, + String xslTransformationFileName) throws TransformerException { + + if(Options.noGenerate()){ + return; + } + + InputStream stream = getALoader().getResourceAsStream( + xslTransformationFileName); + StreamSource ss = new StreamSource(stream); + StreamResult out = new StreamResult(outputFile); + try { + Transformer xslt = txmf.newTransformer(ss); + + // Unless a width is set, there will be only line breaks but no + // indentation. + // The IBM JDK and the Sun JDK don't agree on the property name, + // so we set them both. + // + try { + xslt.setOutputProperty( + "{http://xml.apache.org/xalan}indent-amount", "2"); + } catch (Throwable t) { + //OK to ignore this, depends on XSLT engine and one will fail + } + try { + xslt.setOutputProperty( + "{http://xml.apache.org/xslt}indent-amount", "2"); + } catch (Throwable t) { + //OK to ignore this, depends on XSLT engine and one will fail + } + + DOMSource from = new DOMSource(dom); + + xslt.transform(from, out); + + } catch (TransformerConfigurationException e) { + e.printStackTrace(); + throw (e); + } catch (TransformerException e) { + e.printStackTrace(); + throw (e); + } finally { + try { + stream.close(); + } catch (IOException e1) { + // unlikely but if + // we can't close it, we can't close it + } + } + + } + + //TODO clear up the parameter list below to make it smaller if + // possible + /** + * This method will create A DOM containing all the semantic information + * that it can extract from a C++ header file. + * + * @param methods + * a list of methods that are going into the DOM + * @param source + * the header file the methods came from + * @param serviceName + * the name of the service + * @referenceName the name of the reference + * @nameOfSorR the non null one of the two parameters above + * @headerClassName the name of the header class + * @param moduleXmlFileImplHeaderNameWithPathAndExt + * the source filename + * @param moduleXmlFileHeaderNoExtorPath + * the shortname of the source file + * @param implClass + * the implementation class + * @param intfClass + * the interface we are turning into a service + * @return + */ + private static Document createDOMofMethods(List methods, File source, + String serviceName, String referenceName, String nameOfSorR, + String headerClassName, + String componentTypeXmlFileIntfHeaderNameWithPathAndExt, + String moduleXmlFileImplHeaderNameWithPathAndExt, + String moduleXmlFileHeaderNoExtorPath, String intfNamespace, + String intfClass, String implClass) { + + if (methods == null) { + return null; + } + + // Create a DOM of the methods + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + Document document = null; + try { + DocumentBuilder builder = factory.newDocumentBuilder(); + document = builder.newDocument(); + + Element root = (Element) document.createElement(CPP_HEADER); + + root.setAttribute(HEADER_NAME_ATTR, source.getPath()); + + document.appendChild(root); + + Element intf = (Element) document.createElement(SCA_SERVICE); + root.appendChild(intf); + + // Go through all the signatures we have collected... + Signature s = null; + for (Iterator iter = methods.iterator(); iter.hasNext();) { + s = (Signature) iter.next(); + + // Each signature is an operation + Element op = document.createElement(SCA_OPERATION); + op.setAttribute(OPERATION_NAME_ATTR, s.getMethodName()); + intf.appendChild(op); + + Parameter[] parms = s.getParameters(); + if (parms != null) { + + for (int i = 0; i < parms.length; i++) { + Element parm = (Element) document + .createElement(SCA_OPERATION_PARAMETER); + String type_string = parms[i].getTypeWithoutConst() + .toString(); + + type_string = type_string.replaceAll(":: ", "::"); + + Text text = document.createTextNode(type_string); + parm.appendChild(text); + parm.setAttribute(SCA_OPERATION_PARAMETER_NAME_ATTR, + parms[i].getName()); + + if (parms[i].getTypeWithoutConst().intern() != parms[i] + .getType().intern()) { + parm.setAttribute( + SCA_OPERATION_PARAMETER_CONST_ATTR, "true"); + } + + op.appendChild(parm); + // TO DO only really stores the value + // unsafely/temporarily + // which is fine while we handle everything at the + // end of parsing the "leaf" that represents that actual + // interface/service but the below will cause the second + // service + // processed to overwite the first one in the DOM. I we + // wish + // to do some overall processing at the end we will have + // to + // use a better more XPath like key that varies by + // instance + // of the service. + intf.setAttribute(SCA_INTERFACE_NAME_ATTR, s + .getTrimClassName()); + } + } + + Element rc = document.createElement(SCA_OPERATION_RETURN_TYPE); + rc.appendChild(document.createTextNode(s.getReturnType() + .toString().replaceAll(":: ", "::"))); + op.appendChild(rc); + + root.appendChild(intf); + } + + // Set the name of the Service + // here, if we are not passed one we use + // the classname from the last header function signature... + if (serviceName == null && s != null) { + serviceName = s.getTrimClassName(); + } + + // this is used for the proxy file name but we need to + // use the reference name if this is pulled in due to it + // being a reference!!! + if (serviceName != null) + root.setAttribute("serviceName", serviceName); + if (referenceName != null) + root.setAttribute("referenceName", referenceName); + if (nameOfSorR != null) + root.setAttribute("nameOfSorR", nameOfSorR); + + if (implClass != null) { + root.setAttribute("implClass", implClass); + } else { + root.setAttribute("implClass", moduleXmlFileHeaderNoExtorPath); + } + + // default class name to the name of the header... + if (headerClassName == null && source != null) { + headerClassName = source.getName().replaceAll( + "\\.h|\\.hpp|\\.h++", ""); + } + root.setAttribute("headerClassName", headerClassName); + + if (null == intfClass) { + intfClass = headerClassName; + } + + if (null != intfNamespace) { + root.setAttribute("namespace", intfNamespace); + if (null != intfClass && !intfClass.startsWith(intfNamespace)) { + intfClass = intfNamespace + "::" + intfClass; + } + } + + root.setAttribute("intfClass", intfClass); + + if (componentTypeXmlFileIntfHeaderNameWithPathAndExt == null) { + componentTypeXmlFileIntfHeaderNameWithPathAndExt = "componentTypeHeader"; + } + root.setAttribute("componentTypeHeader", + componentTypeXmlFileIntfHeaderNameWithPathAndExt); + + if (moduleXmlFileImplHeaderNameWithPathAndExt == null) { + moduleXmlFileImplHeaderNameWithPathAndExt = "moduleXmlFileImplHeader"; + } + root.setAttribute("moduleXmlFileHeader", + moduleXmlFileImplHeaderNameWithPathAndExt); + + if (moduleXmlFileHeaderNoExtorPath == null) { + moduleXmlFileHeaderNoExtorPath = "moduleXmlFileHeaderNoExt"; + } + root.setAttribute("moduleXmlFileHeaderNoExt", + moduleXmlFileHeaderNoExtorPath); + + } catch (ParserConfigurationException pce) { + // Parser with specified options can't be built + pce.printStackTrace(); + } + + return document; + + } + +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.java b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.java new file mode 100644 index 0000000000..047e1ab3f1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.java @@ -0,0 +1,202 @@ +/* + * + * 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. + */ +package org.apache.tuscany.sca.cpp.tools.services; + +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; + +import org.apache.tuscany.sca.cpp.tools.common.FileActor; +import org.apache.tuscany.sca.cpp.tools.common.Utils; +import org.w3c.dom.Document; +import org.xml.sax.SAXException; + +/** + * The purpose of this abstract class is to provide a home for the standard + * processing that is involved in turning a XML file into an internal DOM. + */ +public abstract class XMLFileActor implements FileActor { + + protected static Map handlers = new HashMap(); + + protected static Map parameters = new HashMap(); + + public boolean failed; + + private int filesActedOn=0; + + protected static TransformerFactory transformerFactory = TransformerFactory + .newInstance(); + + /** + * This method is the main FileActor method + * + * @see FileActor#actOnFile(File, File, int) Here we create an initial DOM + * and kick off the processing (using the handler map that has been set + * up by the concrete subclass). + * + * @param moduleXML + * the sca.module or fragment file + * @param target + * the target directory + * @param depth + * not uesed here but in the + * @see FileActor#actOnFile(File, File, int) interface to allow for + * recursive diving into a directory structure. + */ + public void actOnFile(File moduleXML, File target, int depth) + throws Exception { + + if (null == moduleXML || null == target) { + return; + } + + filesActedOn++; + + parameters.put("sourceFile", moduleXML); + parameters.put("targetFile", target); + + if (transformerFactory.getFeature(DOMSource.FEATURE) + && transformerFactory.getFeature(DOMResult.FEATURE)) { + Document dom = createDomFromXMLFile(moduleXML); + if (dom != null) { + parameters.put("targetDirectoryFile", target); + DomHandler.handleDom(dom, handlers, parameters); + } + } + } + + /** + * This method builds an in memory DOM from an XML file + * + * @param xmlSourceFile + * the XML file we are handling + * @return the resulting document + */ + protected Document createDomFromXMLFile(File xmlSourceFile) { + Document dom = null; + DocumentBuilderFactory f = DocumentBuilderFactory.newInstance(); + //We do not validate via f.setValidating(true); + f.setNamespaceAware(true); + + try { + DocumentBuilder parser = f.newDocumentBuilder(); + dom = parser.parse(xmlSourceFile); + } catch (SAXException sxe) { + String path; + try { + path = xmlSourceFile.getCanonicalPath(); + } catch (IOException e) { + path = xmlSourceFile.getPath(); + } + Utils.screenMessage("There has been a SAXException of type " + + sxe.getLocalizedMessage()); + if (null != xmlSourceFile) { + Utils.screenMessage(" when processing file " + path); + } else { + Utils.screenMessage(" as the input file is null."); + } + +// Leave for possible future debug option +// Utils.screenMessage(" The returned Java exception is below."); +// if (sxe.getException() != null) +// sxe.getException().printStackTrace(); +// else +// sxe.printStackTrace(); + } catch (ParserConfigurationException pce) { + String path; + try { + path = xmlSourceFile.getCanonicalPath(); + } catch (IOException e) { + path = xmlSourceFile.getPath(); + } + Utils + .screenMessage("There has been a ParserConfigurationException of type " + + pce.getLocalizedMessage()); + if (null != xmlSourceFile) { + Utils.screenMessage(" when processing file " + path); + } else { + Utils.screenMessage(" as the input file is null."); + } + +// Leave for possible future debug option +// Utils.screenMessage(" The returned Java exception is below."); +// pce.printStackTrace(); + + } catch (IOException ioe) { + String path; + try { + path = xmlSourceFile.getCanonicalPath(); + } catch (IOException e) { + path = xmlSourceFile.getPath(); + } + + Utils.screenMessage("Unable to open file " + path); + Utils.screenMessage(this.getContextMessage()); + + + + } + + return dom; + } + + /** + * @return an error message - usually over-ridden. + */ + private String getContextMessage() { + return "Check the file exists and can be read."; + } + + /** + * Set a parameter + * + * @param name + * @param value + */ + public void setParameter(String name, Object value) { + parameters.put(name, value); + } + + /** + * Get a parameter + * + * @param name + * @param value + * @return the value of the parameter + */ + public Object getParameter(String name, Object value) { + return parameters.get(name); + } + + + + /** + * @return Returns the filesActedOn. + */ + public int getFilesActedOn() { + return filesActedOn; + } +} \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/package.html b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/package.html new file mode 100644 index 0000000000..316e4cd56e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/package.html @@ -0,0 +1,140 @@ + + + +Design documentation for org\apache\tuscany\sca\cpp\tools\services + + + + +
      + +

      Overview

      + + + +

      This package contains classes that generate C++ wrappers and +proxies for C++ implementations of SCA services.

      + +

      What the package does

      + +

      The Scagen class main method will take in an input and +output directory name. The input directory is taken to be the SCA module root +directory.  The tool will generate the wrapper and proxy headers and methods +bodies in the output directory.

      + +

      These proxies and wrappers enable the SCA for C++ runtime to +act as a conduit for SCA C++ calls in a type free manner. Client code can call +the type specific functions that are in the generated proxy classes. The call +is marshalled into a generic format and a SCA for C++ runtime function with a +standard signature is invoked. The details of the call are passed as data.

      + +

      On the other end of the runtime, a generated function with a +standard signature is called, this function will inspect the data that +represents the call’s method name and call the appropriate type specific +function in the C++ implementation.

      + +

      The Input Data Used

      + +

      The input directory passed to the Scagen method is taken to +be the SCA module root directory. All the sca.module and .fragment files in +that directory are inspected to resolve all the <component/> elements +within them.

      + +

      Each <component/> element found is inspected to see if +it has a <implementation.cpp/> element within it.

      + +

      Each <implementation.cpp/> element should have a +header attribute that represents a C++ header file that contains function +prototypes for the C++ implementation of the service. An optional class +attribute can be used to select one class if more than one that is present in +the header file. The default class is the one with the same name as the header +file. The tool will verify that the implementation header contains an +appropriate class prototype.

      + + + +

      The directory that contains the implementation header should +also contain a matching .componentType file for the equivalent SCA component. So +for example, a MyServiceImpl.h file would have a corresponding MyServiceImpl.componentType +file in the same directory.

      + + + +

      Each componentType file is inspected for <service/> +and <reference/> elements. For each <service/> element that is +found that contains a <interface.cpp/> element within it,

      + +

      the header attribute of the <interface.cpp/> is taken +as the filename of the C++ interface header for the SCA service.  This C++ +header file is opened and used as a means for specifying the SCA service +resulting in an appropriate wrapper and proxy being generated for this service +interface. Both method bodies and headers are generated in the given output +directory. The processing of a <reference/> element is the same except +that only a proxy header and implementation are generated.

      + + + + + +

      Outline Design: How it Works

      + + + +

      The basic approach is to scan in the XML files by first +creating a DOM document tree of them and then recursively rifling through the DOM  +with some generic code in the XMLFileActorClass by default this processing will +build up a map which maps the XPath location of attributes to their values. +Additionally subclasses can add to a “handlers map” which maps from the name of +a particular element to an object that implements the DomNodeHandler interface. +If the XMLFileActor code comes across any element that has an equivalent handler +in the handler map the objects handleNode method will be called.

      + +

      Typically the DomNodeHandler’s handle node interface will +use XPath to pull out the parameters that it is interested in from the +parameters map that is being built up by the generic code.

      + +

      This design was chosen as the Java level specified for the +original implementation did not have direct XPath query of XML data but it was +known that this would be available in Java 1.5 onwards. The design allows the +DOM and parameters map handling to be replaced in the future with JRE 1.5 code +with less impact on the rest of the code.

      + + + +

      The processing leads to the parsing of the C++ interface +files using the org\apache\tuscany\sca\cpp\tools\common package. This results +in a Headers object

      + +

      that contains a List of Signature objects, each one +representing a function prototype found in the header.

      + + + +

      We are aiming to get all the semantic data we want to use +into a DOM document (this represents the model of our input data) and then use +XSLT to create the 4 different views of this data:

      + +

      Proxy C++ header

      + +

      Proxy C++  body

      + +

      Wrapper C++ header

      + +

      Wrapper C++ body

      + + + +

      So we prepopulate the DOM with parameter data that comes +from the XML files and then iterate through the Signatures that are returned +from the C++ header parser transferring the useful data into the DOM.

      + + + +

      We than use 4 XSLT stylesheets to generate the C++ output +files as required.

      + +
      + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl new file mode 100644 index 0000000000..bc98f3a970 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl @@ -0,0 +1,398 @@ + + + + + + + + + + + + + + + + + + +/* + * 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. + */ + + + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + + + + + + + + + + _ + + _Proxy + + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + +* + +_Factory(ServiceWrapper* target) + { + return new (target); + } + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + void + +_Destructor(void* proxy) + { + delete (*)proxy; + } +} + + +::(ServiceWrapper* targ) : target(targ) +{ +} + +::~() +{ + if (target) + delete target; +} + + + + + + + + + + + + _ + + _Proxy + +#include " + +.h" + + + + + + + + + + + _ + + _Proxy + + + + + + + +:: +( + +) +{ + + +} + + + + + + +) +{ + + +} + + + + + + + + + + + const + + + + + ) +{ + + +} + + + + , + + + + + + + + + + + + + + + +0 + + + + + + + + Operation operation(" + + ", + + ); + + + + + + + + + + target->invoke(operation); + + + + + + + + + + Operation operation(" + + ", + + ); + + + + target->invoke(operation); + + + + + + + + + + + + return; + + + + + + + return *(*)operation.getReturnValue(); + + + + return ()operation.getReturnValue(); + + + + return ret; + + + + return ret; + + + + + + + + + + + + return; + + + + + + + return *(*)operation.getReturnValue(); + + + + return ()operation.getReturnValue(); + + + + return ret; + + + + return ret; + + + + + + + + + + + + + + + + + + + + + commonj::sdo::DataObjectPtr ret = 0; + operation.setReturnValue((void*)&ret); + + + + + + ret; + + operation.setReturnValue((void*)&ret); + + + + + + + + + + + + + + + + + + + + commonj::sdo::DataObjectPtr ret = 0; + operation.setReturnValue((void*)&ret); + + + + + + ret; + + operation.setReturnValue((void*)&ret); + + + + + + + + + + + + + operation.setParameter(, (void*) +& + +); + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl new file mode 100644 index 0000000000..3df2f83d53 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + +/* + * 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. + */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #ifndef _h + + + + #define _h + + + + + + + + + + #include "" + + + + #include "tuscany/sca/core/ServiceWrapper.h" + + + + + + + + + + +class + + : public + +{ +public: + (tuscany::sca::ServiceWrapper*); + + virtual ~(); + + + +private: + tuscany::sca::ServiceWrapper* target; +}; + + + + + + + +#endif // _h + + + + + + + + + + + + + + + virtual + + +( + + + + + + + + const + + + + + + + , + + + +); + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl new file mode 100644 index 0000000000..912df6cf03 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl @@ -0,0 +1,278 @@ + + + + + + + + + + + + + + + + + + + + +/* + * 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. + */ + + + +#include "osoa/sca/sca.h" +using namespace osoa::sca; +using namespace tuscany::sca; + + + + + + + + + + + + + + + _ + + _Wrapper + +extern "C" +{ + + #if defined(WIN32) || defined(_WINDOWS) + __declspec(dllexport) + #endif + +* + +_Factory(tuscany::sca::model::Service* target) + { + return new (target); + } +} + + +::(Service* target) : ComponentServiceWrapper(target) +{ + impl = (*)getImplementation(); +} + + +::~() +{ + releaseImplementation(); +} + +void* +::newImplementation() +{ + return new ; +} + +void +::deleteImplementation() +{ + delete impl; +} + +void ::invokeService(Operation& operation) +{ + const string& operationName = operation.getName(); + + + + + + throw ServiceRuntimeException("Invalid operation"); + +} + + + + + + _ + + _Wrapper + +#include " + +.h" + + + + + + + + + if (operationName == " + +") + { + + + + } + + + + + + + + + + + + + + + + + + return; + + + + + + + + + + + + + + + + p = *( + *)operation.getParameter(); + + + + const + p = ( + const + + )operation.getParameter(); + + + + DataObjectPtr& p = *(DataObjectPtr*)operation.getParameter(); + + + const & p = *( + const + + *)operation.getParameter(); + + + + + + + + + + + + + + + ; + + + ret = ; + + operation.setReturnValue((void*)&ret); + + + + operation.setReturnValue((void*) ); + + + *(DataObjectPtr*)operation.getReturnValue() = ; + + + *(*)operation.getReturnValue() = ; + + + + + + impl->( + + + + + + + + + +) + + + +p + + + + , + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl new file mode 100644 index 0000000000..72dc1fc5a6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + +/* + * 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. + */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #ifndef _h + + + + #define _h + + + + + + + + + + #include "" + + + + #include "tuscany/sca/core/ComponentServiceWrapper.h" + + + + + + + + + + +class + + : public tuscany::sca::ComponentServiceWrapper +{ +public: + (tuscany::sca::model::Service* target); + + virtual ~(); + virtual void invokeService(tuscany::sca::Operation& operation); + virtual void* newImplementation(); + virtual void deleteImplementation(); + +private: + + * impl; +}; + + + + + + + +#endif // _h + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/xsd/readme.txt b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/readme.txt new file mode 100644 index 0000000000..7252f56a11 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/readme.txt @@ -0,0 +1,2 @@ +The XSDs describing the SCA model + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-binding-sca.xsd b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-binding-sca.xsd new file mode 100644 index 0000000000..293c63e83a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-binding-sca.xsd @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-binding-webservice.xsd b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-binding-webservice.xsd new file mode 100644 index 0000000000..95052a52aa --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-binding-webservice.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-core.xsd b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-core.xsd new file mode 100644 index 0000000000..48fac92913 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-core.xsd @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-implementation-cpp.xsd b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-implementation-cpp.xsd new file mode 100644 index 0000000000..970549176f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-implementation-cpp.xsd @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-implementation-java.xsd b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-implementation-java.xsd new file mode 100644 index 0000000000..7745b4ffb7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-implementation-java.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-cpp.xsd b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-cpp.xsd new file mode 100644 index 0000000000..dd286afef6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-cpp.xsd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-java.xsd b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-java.xsd new file mode 100644 index 0000000000..a1955a2795 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-java.xsd @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-wsdl.xsd b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-wsdl.xsd new file mode 100644 index 0000000000..e857a77d84 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca-interface-wsdl.xsd @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca.xsd b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca.xsd new file mode 100644 index 0000000000..619c38aaac --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/sca.xsd @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sca/xsd/tuscany.xsd b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/tuscany.xsd new file mode 100644 index 0000000000..335db42475 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sca/xsd/tuscany.xsd @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/AUTHORS b/sca-cpp/tags/cpp-stable-20060304/sdo/AUTHORS new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/COPYING b/sca-cpp/tags/cpp-stable-20060304/sdo/COPYING new file mode 100755 index 0000000000..6b0b1270ff --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/COPYING @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/ChangeLog b/sca-cpp/tags/cpp-stable-20060304/sdo/ChangeLog new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/Committers Guide.txt b/sca-cpp/tags/cpp-stable-20060304/sdo/Committers Guide.txt new file mode 100644 index 0000000000..5f82e39c14 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/Committers Guide.txt @@ -0,0 +1,69 @@ +Tuscany SDO Committers Guide +============================ + +All classes should be in the commonj/sdo namespace. + +The Tuscany SDO codebase consists of a number of abstract classes representing the SDO API. These +are accompanied by a set of classes whose names end in Impl, which are the implementations of the +API. For example the DataObject API is represented by the DataObject class, and implemented by +the DataObjectImpl class. + +When pointers to classes are handed out by the library, they are really pointing at instances of +the Impl class, but the application must not make that assumption. + +DataObjects and DataFactories inherit from a base class which maintains a reference count on +itself (RefCountingObject). The pointers handed out are really classes holding a pointer to +the object, such that they can contribute to the reference count when copied. These RefCountingPointers +must not be deleted, they dispose of the underlying object when the reference count drops to +zero. + +There is trace commented out of RefCountingObject, which can count and report the references. It is +particularly useful to check that all instances are cleared at the end of a program run. + +The API for metadata consists of the DataFactory, Property and Type classes. All Properties and Types +handed out to the client are const, so setting up the modifying the types is done using APIS of the +data factory. + +The process of creating types is usually done by loading them from XSD, but can also be performed +by using the data factory. Properties and Types may both be defined, but the data factory 'locks' +itself as soon as the first DataObject is created. It does this because at that point it needs to +resolve the type hierarchy, and perform validation. For consistency a Type may not be modified once +an instance has been created. + +A data object contains properties, which are of a particular Type, however the API allows access to +all properties using any of the methods. getString() may be called on a Boolean property etc. The +conversion is attempted by the Type class, and either throws an exception or passes back a converted +value according to the tables in the specification. + +The get/set APIs of DataObject are supplied by a set of macros in DataObjectImpl.cpp. These are +duplicated for string and non-string, and also make it hard to debug effectively. They will be +removed and replaced by methods in the future. For now, the easiest way to debug them is to be +aware that each eventually calls the private no-params method, so for example all the getString(...) +methods eventually call getString(). + +The internal string handling is partially working with the SDOXMLString class, and partially still uses +allocated char* buffers, these will be replaced by SDOXMLStrings in the future. + +The parsers for XML are absed on the SAX2Parser class, but the bulk of the processing is done by the +startElementNS and similar methods in the SDOSchemaSAX2parser and SDOSAX2Parser classes. These are called +back by the libxml2 library, and build a picture of the information which it then decoded by the XSDhelper +or XMLHelper class into metadata or data. + +There are easy targets for improvements of performance, particularly in DataObject and parsing of XSD +input, here is a list of a few that I can think of: + +DataObject frequently maps from Property to index, and this could be re-organized to avoid most of these. + +The allocation of space for property values could in most cases be dropped - its usually s fixed size +element. + +The use of DataObject as a means of storing lists of primitives is not optimal, and should be replaced. + +The ChangeSummary class holds the previous value of any property when it is changed. At present, for many- +valued properties, it holds the entire list as it was before an addition. This could just keep a record of +the changes, and only save the old list when serializing. + +Parsing the XSD loops though types checking that all substitutes are covered, it would be good to +replace this. + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/INSTALL b/sca-cpp/tags/cpp-stable-20060304/sdo/INSTALL new file mode 100644 index 0000000000..8e2d591c43 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/INSTALL @@ -0,0 +1,17 @@ +Building Tuscany SDO on Linux. +============================== + +1. Extract the source to a folder. +2. You need to set the following two environment variables to point to libxml2. + LIBXML2_INCLUDE + LIBXML2_LIB +If you are using the default installation of libxml2, usually those are +LIBXML2_LIB=/usr/lib +LIBXML2_INCLUDE=/usr/include/libxml2 + +3. Build the source + ./build.sh + +4. Run the test + cd to runtime/core/test + ./tuscany_sdo_test \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/LICENSE b/sca-cpp/tags/cpp-stable-20060304/sdo/LICENSE new file mode 100755 index 0000000000..6b0b1270ff --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/LICENSE @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sdo/Makefile.am new file mode 100644 index 0000000000..66f0a318e8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = runtime diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/NEWS b/sca-cpp/tags/cpp-stable-20060304/sdo/NEWS new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/README b/sca-cpp/tags/cpp-stable-20060304/sdo/README new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/autogen.sh b/sca-cpp/tags/cpp-stable-20060304/sdo/autogen.sh new file mode 100755 index 0000000000..d40a2eb9d4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/autogen.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +for i in libtoolize aclocal autoconf autoheader +do + echo -n "Running $i..." + $i || exit 1 + echo 'done.' +done + +echo -n 'Running automake...' +automake --add-missing +echo 'done.' +exit 0 + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/build.sh b/sca-cpp/tags/cpp-stable-20060304/sdo/build.sh new file mode 100755 index 0000000000..d1d0978d57 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/build.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +# 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. + + +if [ x$LIBXML2_INCLUDE = x ]; then +echo "LIBXML2_INCLUDE not set" +exit; +fi +if [ x$LIBXML2_LIB = x ]; then +echo "LIBXML2_LIB not set" +exit; +fi + +./autogen.sh +TUSCANY_SDOCPP_HOME=`pwd` +./configure --prefix=${TUSCANY_SDOCPP_HOME} +make +make install diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/configure.ac b/sca-cpp/tags/cpp-stable-20060304/sdo/configure.ac new file mode 100644 index 0000000000..97db5fcb7a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/configure.ac @@ -0,0 +1,42 @@ +dnl run autogen.sh to generate the configure script. + +AC_PREREQ(2.59) +AC_INIT(tuscany_sdo, 1.0.0) +AC_CANONICAL_SYSTEM +AM_CONFIG_HEADER(config.h) +AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) + +# Checks for programs. +AC_PROG_CXX +AC_PROG_CC +AC_PROG_CPP +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET +AC_PROG_LIBTOOL + +# Checks for libraries. + +# Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS([inttypes.h stdlib.h string.h sys/time.h wchar.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_HEADER_STDBOOL +AC_C_CONST +AC_STRUCT_TM + +# Checks for library functions. +AC_FUNC_ERROR_AT_LINE +AC_FUNC_VPRINTF +AC_CHECK_FUNCS([strchr strrchr]) + +AC_CONFIG_FILES([Makefile + runtime/Makefile + runtime/core/Makefile + runtime/core/src/Makefile + runtime/core/src/commonj/Makefile + runtime/core/src/commonj/sdo/Makefile + runtime/core/test/Makefile]) +AC_OUTPUT + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/build_instructions.txt b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/build_instructions.txt new file mode 100644 index 0000000000..8db8e67e97 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/build_instructions.txt @@ -0,0 +1,29 @@ +Tuscany SDO Build Instructions +=============================== + +The project is dependent on libxml +(available here: http://www.zlatkovic.com/libxml.en.html) + +The versions required are these: + Hydra.sdo.build\libxml2-2.6.19.win32 + Hydra.sdo.build\iconv-1.9.1.win32 + Hydra.sdo.build\zlib-1.2.2.win32 + +By default, the projects are set up to look for these in a directory +called tuscany\cpp\sdo\dependencies, but you can put them anywhere you +like if you alter the project settings for extra includes and link input. +You would also have to alter the final copy which copies the dlls out to bin. +or the projects need to be altered to look whereever you put these files.. + +Open the build workspace tuscany\cpp\sdo\runtime\projects\tuscany_sdo\tuscany_sdo.dsw + +Build->Set Active Configuration->sdo_runtime - Win32 Release + +Build->Rebuild All + +The output of the build will be in runtime\core\Release. + +The executable ,required headers and lib are copied to tuscany\cpp\sdo\bin, include and lib. + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.dsp b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.dsp new file mode 100644 index 0000000000..29a67438bd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.dsp @@ -0,0 +1,718 @@ +# Microsoft Developer Studio Project File - Name="sdo_runtime" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=sdo_runtime - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "sdo_runtime.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "sdo_runtime.mak" CFG="sdo_runtime - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "sdo_runtime - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "sdo_runtime - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "sdo_runtime - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\runtime\core\Release" +# PROP Intermediate_Dir "..\..\..\runtime\core\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_RUNTIME_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\runtime\core\src" /I "..\..\..\dependencies\libxml2-2.6.19.win32\include" /I "..\..\..\dependencies\iconv-1.9.1.win32\include" /I "..\..\..\depdendencies\zlib-1.2.2.win32\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_EXPORTS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libxml2.lib /nologo /dll /machine:I386 /libpath:"..\..\..\dependencies\libxml2-2.6.19.win32\lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Desc=copyout +PostBuild_Cmds=copy ..\..\..\runtime\core\Release\tuscany_sdo.dll ..\..\..\bin copy ..\..\..\runtime\core\Release\tuscany_sdo.lib ..\..\..\lib copy ..\..\..\runtime\core\src\commonj\sdo\Property.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\CopyHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataFactory.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataGraph.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObject.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\export.h ..\..\..\include\commonj\sdo copy\ + ..\..\..\runtime\core\src\commonj\sdo\HelperProvider.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Logger.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Logging.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\LogWriter.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\PropertyList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDOCheck.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDODate.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntime.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDOUtils.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Sequence.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Setting.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SettingList.h ..\..\..\include\commonj\sdo copy\ + ..\..\..\runtime\core\src\commonj\sdo\Type.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\TypeList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XMLDocument.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XMLHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XSDHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDO.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DASValue.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XpathHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\TypeImpl.h ..\..\..\include\commonj\sdo copy ..\..\..\dependencies\libxml2-2.6.19.win32\bin\libxml2.dll ..\..\..\bin copy ..\..\..\dependencies\iconv-1.9.1.win32\bin\iconv.dll ..\..\..\bin copy ..\..\..\dependencies\zlib-1.2.2.win32\bin\zlib1.dll ..\..\..\bin +# End Special Build Tool + +!ELSEIF "$(CFG)" == "sdo_runtime - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\runtime\core\Debug" +# PROP Intermediate_Dir "..\..\..\runtime\core\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_RUNTIME_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\runtime\core\src" /I "..\..\..\dependencies\libxml2-2.6.19.win32\include" /I "..\..\..\dependencies\iconv-1.9.1.win32\include" /I "..\..\..\dependencies\zlib-1.2.2.win32\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_EXPORTS" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libxml2.lib /nologo /dll /debug /machine:I386 /out:"..\..\..\runtime\core\Debug\tuscany_sdo.dll" /pdbtype:sept /libpath:"..\..\..\dependencies\libxml2-2.6.19.win32\lib" +# SUBTRACT LINK32 /pdb:none +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Desc=copyout +PostBuild_Cmds=copy ..\..\..\runtime\core\Debug\tuscany_sdo.dll ..\..\..\bin copy ..\..\..\runtime\core\Debug\tuscany_sdo.lib ..\..\..\lib copy ..\..\..\runtime\core\src\commonj\sdo\Property.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\CopyHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataFactory.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataGraph.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObject.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\export.h ..\..\..\include\commonj\sdo copy\ + ..\..\..\runtime\core\src\commonj\sdo\HelperProvider.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Logger.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Logging.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\LogWriter.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\PropertyList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDOCheck.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDODate.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntime.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDOUtils.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Sequence.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Setting.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SettingList.h ..\..\..\include\commonj\sdo copy\ + ..\..\..\runtime\core\src\commonj\sdo\Type.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\TypeList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XMLDocument.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XMLHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XSDHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDO.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DASValue.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XpathHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\TypeImpl.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\Debug\tuscany_sdo.pdb ..\..\..\bin copy ..\..\..\dependencies\libxml2-2.6.19.win32\bin\libxml2.dll ..\..\..\bin copy ..\..\..\dependencies\iconv-1.9.1.win32\bin\iconv.dll ..\..\..\bin copy ..\..\..\dependencies\zlib-1.2.2.win32\bin\zlib1.dll ..\..\..\bin +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "sdo_runtime - Win32 Release" +# Name "sdo_runtime - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectListImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummaryBuilder.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummaryImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\CopyHelper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASProperty.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASType.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASValue.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASValues.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataFactory.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataFactoryImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataGraph.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataGraphImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectList.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectListImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\HelperProvider.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\Logger.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\LogWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\ParserErrorSetter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\Property.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyDefinition.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyList.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertySetting.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Attribute.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Attributes.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Namespaces.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Parser.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SchemaInfo.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SdoCheck.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDODate.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SdoRuntime.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOSAX2Parser.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOSchemaSAX2Parser.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOUtils.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLBufferWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLFileWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLStreamWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLString.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDBufferWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDFileWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDStreamWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDWriter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\Sequence.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SequenceImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\Setting.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SettingList.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\Type.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeDefinition.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeDefinitions.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeList.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLDocument.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLDocumentImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLHelper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLHelperImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLQName.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XpathHelper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDHelper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDHelperImpl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDPropertyInfo.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDTypeInfo.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectList.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectListImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummaryBuilder.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummaryImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\CopyHelper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASProperty.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASType.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASValue.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASValues.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataFactory.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataFactoryImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataGraph.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataGraphImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectList.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectListImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\disable_warn.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\export.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\HelperProvider.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\Logger.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\Logging.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\LogWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\ParserErrorSetter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\Property.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyDefinition.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyList.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertySetting.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Attribute.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Attributes.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Namespaces.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Parser.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SchemaInfo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDO.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SdoCheck.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDODate.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SdoRuntime.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOSAX2Parser.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOSchemaSAX2Parser.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOSPI.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOUtils.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLBufferWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLFileWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLStreamWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLString.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDBufferWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDFileWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDStreamWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDWriter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\Sequence.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SequenceImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\Setting.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\SettingList.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\Type.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeDefinition.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeDefinitions.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeList.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLDocument.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLDocumentImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLHelper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLHelperImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLQName.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XpathHelper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDHelper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDHelperImpl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDPropertyInfo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDTypeInfo.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE="..\..\..\Committers Guide.txt" +# End Source File +# Begin Source File + +SOURCE=..\..\..\readme.txt +# End Source File +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.plg b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.plg new file mode 100644 index 0000000000..18c112328f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.plg @@ -0,0 +1,333 @@ + + +
      +

      Build Log

      +

      +--------------------Configuration: sdo_runtime - Win32 Debug-------------------- +

      +

      Command Lines

      +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1838.tmp" with contents +[ +/nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\runtime\core\src" /I "..\..\..\dependencies\libxml2-2.6.19.win32\include" /I "..\..\..\dependencies\iconv-1.9.1.win32\include" /I "..\..\..\dependencies\zlib-1.2.2.win32\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_EXPORTS" /Fp"..\..\..\runtime\core\Debug/sdo_runtime.pch" /YX /Fo"..\..\..\runtime\core\Debug/" /Fd"..\..\..\runtime\core\Debug/" /FD /GZ /c +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangedDataObjectListImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangeSummary.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangeSummaryBuilder.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangeSummaryImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\CopyHelper.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DASProperty.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DASType.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DASValue.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DASValues.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataFactory.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataFactoryImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataGraph.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataGraphImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObject.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectInstance.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectList.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectListImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DefaultLogWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\EqualityHelper.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\HelperProvider.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\Logger.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\LogWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ParserErrorSetter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\Property.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertyDefinition.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertyImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertyList.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertySetting.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\RefCountingObject.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\RefCountingPointer.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Attribute.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Attributes.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Namespaces.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Parser.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SchemaInfo.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SdoCheck.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDODate.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SdoRuntime.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDORuntimeException.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOSAX2Parser.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOSchemaSAX2Parser.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOUtils.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLBufferWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLFileWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLStreamWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLString.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDBufferWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDFileWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDStreamWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\Sequence.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SequenceImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\Setting.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SettingList.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\Type.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeDefinition.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeDefinitions.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeList.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLDocument.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLDocumentImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLHelper.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLHelperImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLQName.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XpathHelper.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDHelper.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDHelperImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDPropertyInfo.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDTypeInfo.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1838.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1839.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libxml2.lib /nologo /dll /incremental:yes /pdb:"..\..\..\runtime\core\Debug/tuscany_sdo.pdb" /debug /machine:I386 /out:"..\..\..\runtime\core\Debug\tuscany_sdo.dll" /implib:"..\..\..\runtime\core\Debug/tuscany_sdo.lib" /pdbtype:sept /libpath:"..\..\..\dependencies\libxml2-2.6.19.win32\lib" +\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangedDataObjectListImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummary.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummaryBuilder.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummaryImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\CopyHelper.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASProperty.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASType.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASValue.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASValues.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataFactory.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataFactoryImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataGraph.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataGraphImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObject.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectInstance.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectList.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectListImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DefaultLogWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\EqualityHelper.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\HelperProvider.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\Logger.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\LogWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\ParserErrorSetter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\Property.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyDefinition.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyList.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertySetting.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\RefCountingObject.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\RefCountingPointer.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Attribute.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Attributes.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Namespaces.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Parser.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SchemaInfo.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SdoCheck.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDODate.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SdoRuntime.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDORuntimeException.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOSAX2Parser.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOSchemaSAX2Parser.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOUtils.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLBufferWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLFileWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLStreamWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLString.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDBufferWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDFileWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDStreamWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\Sequence.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SequenceImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\Setting.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SettingList.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\Type.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeDefinition.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeDefinitions.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeList.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLDocument.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLDocumentImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLHelper.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLHelperImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLQName.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XpathHelper.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDHelper.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDHelperImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDPropertyInfo.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDTypeInfo.obj +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1839.tmp" +

      Output Window

      +Compiling... +ChangedDataObjectListImpl.cpp +ChangeSummary.cpp +ChangeSummaryBuilder.cpp +ChangeSummaryImpl.cpp +CopyHelper.cpp +DASProperty.cpp +DASType.cpp +DASValue.cpp +DASValues.cpp +DataFactory.cpp +DataFactoryImpl.cpp +DataGraph.cpp +DataGraphImpl.cpp +DataObject.cpp +DataObjectImpl.cpp +DataObjectInstance.cpp +DataObjectList.cpp +DataObjectListImpl.cpp +DefaultLogWriter.cpp +EqualityHelper.cpp +HelperProvider.cpp +Logger.cpp +LogWriter.cpp +ParserErrorSetter.cpp +Property.cpp +PropertyDefinition.cpp +PropertyImpl.cpp +PropertyList.cpp +PropertySetting.cpp +RefCountingObject.cpp +RefCountingPointer.cpp +SAX2Attribute.cpp +SAX2Attributes.cpp +SAX2Namespaces.cpp +SAX2Parser.cpp +SchemaInfo.cpp +SdoCheck.cpp +SDODate.cpp +SdoRuntime.cpp +SDORuntimeException.cpp +SDOSAX2Parser.cpp +SDOSchemaSAX2Parser.cpp +SDOUtils.cpp +SDOXMLBufferWriter.cpp +SDOXMLFileWriter.cpp +SDOXMLStreamWriter.cpp +SDOXMLString.cpp +SDOXMLWriter.cpp +SDOXSDBufferWriter.cpp +SDOXSDFileWriter.cpp +SDOXSDStreamWriter.cpp +SDOXSDWriter.cpp +Sequence.cpp +SequenceImpl.cpp +Setting.cpp +SettingList.cpp +Type.cpp +TypeDefinition.cpp +TypeDefinitions.cpp +TypeImpl.cpp +TypeList.cpp +XMLDocument.cpp +XMLDocumentImpl.cpp +XMLHelper.cpp +XMLHelperImpl.cpp +XMLQName.cpp +XpathHelper.cpp +XSDHelper.cpp +XSDHelperImpl.cpp +XSDPropertyInfo.cpp +XSDTypeInfo.cpp +Linking... + Creating library ..\..\..\runtime\core\Debug/tuscany_sdo.lib and object ..\..\..\runtime\core\Debug/tuscany_sdo.exp +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP183D.bat" with contents +[ +@echo off +copy ..\..\..\runtime\core\Debug\tuscany_sdo.dll ..\..\..\bin +copy ..\..\..\runtime\core\Debug\tuscany_sdo.lib ..\..\..\lib +copy ..\..\..\runtime\core\src\commonj\sdo\Property.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectList.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\CopyHelper.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DataFactory.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DataGraph.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DataObject.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectList.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\export.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\HelperProvider.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\Logger.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\Logging.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\LogWriter.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\PropertyList.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDOCheck.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDODate.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntime.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDOUtils.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\Sequence.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\Setting.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SettingList.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\Type.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\TypeList.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\XMLDocument.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\XMLHelper.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\XSDHelper.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDO.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DASValue.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\XpathHelper.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\TypeImpl.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\Debug\tuscany_sdo.pdb ..\..\..\bin +copy ..\..\..\dependencies\libxml2-2.6.19.win32\bin\libxml2.dll ..\..\..\bin +copy ..\..\..\dependencies\iconv-1.9.1.win32\bin\iconv.dll ..\..\..\bin +copy ..\..\..\dependencies\zlib-1.2.2.win32\bin\zlib1.dll ..\..\..\bin +] +Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP183D.bat" +copyout + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + + + +

      Results

      +tuscany_sdo.dll - 0 error(s), 0 warning(s) +
      + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/tuscany_sdo.ilk b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/tuscany_sdo.ilk new file mode 100644 index 0000000000..f4fc233e2b Binary files /dev/null and b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/tuscany_sdo.ilk differ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.dsp b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.dsp new file mode 100644 index 0000000000..390590bccd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.dsp @@ -0,0 +1,129 @@ +# Microsoft Developer Studio Project File - Name="sdo_samples" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=sdo_samples - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "sdo_samples.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "sdo_samples.mak" CFG="sdo_samples - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "sdo_samples - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "sdo_samples - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "sdo_samples - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "sdo_samples - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\runtime\core\samples\Debug" +# PROP Intermediate_Dir "..\..\..\runtime\core\samples\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\runtime\core\samples\Debug/samples.exe" /pdbtype:sept /libpath:"..\..\..\lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=copy ..\..\..\runtime\core\samples\*.xsd ..\..\..\runtime\core\samples\Debug copy ..\..\..\runtime\core\samples\*.xml ..\..\..\runtime\core\samples\Debug copy ..\..\..\runtime\core\samples\*.wsdl ..\..\..\runtime\core\samples\Debug copy ..\..\..\bin\*.dll ..\..\..\runtime\core\samples\Debug copy ..\..\..\bin\*.pdb ..\..\..\runtime\core\samples\Debug +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "sdo_samples - Win32 Release" +# Name "sdo_samples - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\runtime\core\samples\ChangeSummarySave.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\samples\ObjectCreation.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\samples\Query.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\samples\samples.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\samples\Substitutes.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\samples\XSDLoading.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\runtime\core\samples\samples.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.plg b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.plg new file mode 100644 index 0000000000..c9e937ffcf --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.plg @@ -0,0 +1,64 @@ + + +
      +

      Build Log

      +

      +--------------------Configuration: sdo_samples - Win32 Debug-------------------- +

      +

      Command Lines

      +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A50.tmp" with contents +[ +/nologo /MLd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"..\..\..\runtime\core\samples\Debug/sdo_samples.pch" /YX /Fo"..\..\..\runtime\core\samples\Debug/" /Fd"..\..\..\runtime\core\samples\Debug/" /FD /GZ /c +"C:\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Query.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A50.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A51.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib /nologo /subsystem:console /incremental:yes /pdb:"..\..\..\runtime\core\samples\Debug/samples.pdb" /debug /machine:I386 /out:"..\..\..\runtime\core\samples\Debug/samples.exe" /pdbtype:sept /libpath:"..\..\..\lib" +\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\ChangeSummarySave.obj +\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\ObjectCreation.obj +\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\samples.obj +\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\Substitutes.obj +\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\XSDLoading.obj +\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\Query.obj +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A51.tmp" +

      Output Window

      +Compiling... +Query.cpp +Linking... +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A52.bat" with contents +[ +@echo off +copy ..\..\..\runtime\core\samples\*.xsd ..\..\..\runtime\core\samples\Debug +copy ..\..\..\runtime\core\samples\*.xml ..\..\..\runtime\core\samples\Debug +copy ..\..\..\runtime\core\samples\*.wsdl ..\..\..\runtime\core\samples\Debug +copy ..\..\..\bin\*.dll ..\..\..\runtime\core\samples\Debug +copy ..\..\..\bin\*.pdb ..\..\..\runtime\core\samples\Debug +] +Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A52.bat" + +..\..\..\runtime\core\samples\ChangeSummarySave.xsd +..\..\..\runtime\core\samples\companysubs.xsd +..\..\..\runtime\core\samples\XSDLoading.xsd + 3 file(s) copied. +..\..\..\runtime\core\samples\XSDLoading.xml + 1 file(s) copied. +..\..\..\runtime\core\samples\*.wsdl +The system cannot find the file specified. + 0 file(s) copied. +..\..\..\bin\iconv.dll +..\..\..\bin\libxml2.dll +..\..\..\bin\tuscany_sdo.dll +..\..\..\bin\zlib1.dll + 4 file(s) copied. +..\..\..\bin\tuscany_sdo.pdb + 1 file(s) copied. + + + +

      Results

      +samples.exe - 0 error(s), 0 warning(s) +
      + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.dsp b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.dsp new file mode 100644 index 0000000000..a214471157 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.dsp @@ -0,0 +1,117 @@ +# Microsoft Developer Studio Project File - Name="sdo_test" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=sdo_test - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "sdo_test.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "sdo_test.mak" CFG="sdo_test - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "sdo_test - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "sdo_test - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "sdo_test - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "sdo_test - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\runtime\core\test\Debug" +# PROP Intermediate_Dir "..\..\..\runtime\core\test\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /Zm200 /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=copy ..\..\..\runtime\core\test\*.xsd ..\..\..\runtime\core\test\Debug copy ..\..\..\runtime\core\test\*.xml ..\..\..\runtime\core\test\Debug copy ..\..\..\bin\*.dll ..\..\..\runtime\core\test\Debug copy ..\..\..\bin\*.pdb ..\..\..\runtime\core\test\Debug copy ..\..\..\runtime\core\test\*.wsdl ..\..\..\runtime\core\test\Debug +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "sdo_test - Win32 Release" +# Name "sdo_test - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\sdotest.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\sdotest2.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\runtime\core\test\sdotest.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE=..\build_instructions.txt +# End Source File +# End Target +# End Project diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.plg b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.plg new file mode 100644 index 0000000000..dbf7aec9cb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.plg @@ -0,0 +1,366 @@ + + +
      +

      Build Log

      +

      +--------------------Configuration: sdo_runtime - Win32 Debug-------------------- +

      +

      Command Lines

      +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2E.tmp" with contents +[ +/nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\runtime\core\src" /I "..\..\..\dependencies\libxml2-2.6.19.win32\include" /I "..\..\..\dependencies\iconv-1.9.1.win32\include" /I "..\..\..\dependencies\zlib-1.2.2.win32\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_EXPORTS" /Fp"..\..\..\runtime\core\Debug/sdo_runtime.pch" /YX /Fo"..\..\..\runtime\core\Debug/" /Fd"..\..\..\runtime\core\Debug/" /FD /GZ /c +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangedDataObjectListImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangeSummaryBuilder.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangeSummaryImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\CopyHelper.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataFactory.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataFactoryImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataGraphImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectListImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\HelperProvider.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertyDefinition.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertyImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertySetting.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Attribute.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Attributes.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Namespaces.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Parser.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SchemaInfo.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOSAX2Parser.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOSchemaSAX2Parser.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLBufferWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLFileWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLStreamWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLString.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDBufferWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDFileWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDStreamWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDWriter.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SequenceImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeDefinition.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeDefinitions.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLDocumentImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLHelperImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLQName.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDHelperImpl.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDPropertyInfo.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDTypeInfo.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2E.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2F.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libxml2.lib /nologo /dll /incremental:yes /pdb:"..\..\..\runtime\core\Debug/tuscany_sdo.pdb" /debug /machine:I386 /out:"..\..\..\runtime\core\Debug\tuscany_sdo.dll" /implib:"..\..\..\runtime\core\Debug/tuscany_sdo.lib" /pdbtype:sept /libpath:"..\..\..\dependencies\libxml2-2.6.19.win32\lib" +\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangedDataObjectListImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummary.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummaryBuilder.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummaryImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\CopyHelper.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASProperty.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASType.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASValue.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASValues.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataFactory.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataFactoryImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataGraph.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataGraphImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObject.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectInstance.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectList.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectListImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\DefaultLogWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\EqualityHelper.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\HelperProvider.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\Logger.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\LogWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\ParserErrorSetter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\Property.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyDefinition.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyList.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertySetting.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\RefCountingObject.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\RefCountingPointer.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Attribute.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Attributes.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Namespaces.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Parser.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SchemaInfo.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SdoCheck.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDODate.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SdoRuntime.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDORuntimeException.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOSAX2Parser.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOSchemaSAX2Parser.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOUtils.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLBufferWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLFileWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLStreamWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLString.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDBufferWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDFileWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDStreamWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDWriter.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\Sequence.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SequenceImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\Setting.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\SettingList.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\Type.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeDefinition.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeDefinitions.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeList.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLDocument.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLDocumentImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLHelper.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLHelperImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLQName.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XpathHelper.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDHelper.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDHelperImpl.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDPropertyInfo.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDTypeInfo.obj +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2F.tmp" +

      Output Window

      +Compiling... +ChangedDataObjectListImpl.cpp +ChangeSummaryBuilder.cpp +ChangeSummaryImpl.cpp +CopyHelper.cpp +DataFactory.cpp +DataFactoryImpl.cpp +DataGraphImpl.cpp +DataObjectImpl.cpp +DataObjectListImpl.cpp +HelperProvider.cpp +PropertyDefinition.cpp +PropertyImpl.cpp +PropertySetting.cpp +SAX2Attribute.cpp +SAX2Attributes.cpp +SAX2Namespaces.cpp +SAX2Parser.cpp +SchemaInfo.cpp +SDOSAX2Parser.cpp +SDOSchemaSAX2Parser.cpp +SDOXMLBufferWriter.cpp +SDOXMLFileWriter.cpp +SDOXMLStreamWriter.cpp +SDOXMLString.cpp +SDOXMLWriter.cpp +SDOXSDBufferWriter.cpp +SDOXSDFileWriter.cpp +SDOXSDStreamWriter.cpp +SDOXSDWriter.cpp +SequenceImpl.cpp +TypeDefinition.cpp +TypeDefinitions.cpp +XMLDocumentImpl.cpp +XMLHelperImpl.cpp +XMLQName.cpp +XSDHelperImpl.cpp +XSDPropertyInfo.cpp +XSDTypeInfo.cpp +Linking... + Creating library ..\..\..\runtime\core\Debug/tuscany_sdo.lib and object ..\..\..\runtime\core\Debug/tuscany_sdo.exp +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP33.bat" with contents +[ +@echo off +copy ..\..\..\runtime\core\Debug\tuscany_sdo.dll ..\..\..\bin +copy ..\..\..\runtime\core\Debug\tuscany_sdo.lib ..\..\..\lib +copy ..\..\..\runtime\core\src\commonj\sdo\Property.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectList.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\CopyHelper.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DataFactory.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DataGraph.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DataObject.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectList.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\export.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\HelperProvider.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\Logger.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\Logging.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\LogWriter.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\PropertyList.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDOCheck.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDODate.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntime.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDOUtils.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\Sequence.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\Setting.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SettingList.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\Type.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\TypeList.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\XMLDocument.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\XMLHelper.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\XSDHelper.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\SDO.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\DASValue.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\XpathHelper.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\src\commonj\sdo\TypeImpl.h ..\..\..\include\commonj\sdo +copy ..\..\..\runtime\core\Debug\tuscany_sdo.pdb ..\..\..\bin +copy ..\..\..\dependencies\libxml2-2.6.19.win32\bin\libxml2.dll ..\..\..\bin +copy ..\..\..\dependencies\iconv-1.9.1.win32\bin\iconv.dll ..\..\..\bin +copy ..\..\..\dependencies\zlib-1.2.2.win32\bin\zlib1.dll ..\..\..\bin +] +Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP33.bat" +copyout + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. + 1 file(s) copied. +

      +--------------------Configuration: sdo_test - Win32 Debug-------------------- +

      +

      Command Lines

      +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP34.tmp" with contents +[ +/nologo /MLd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"..\..\..\runtime\core\test\Debug/sdo_test.pch" /YX /Fo"..\..\..\runtime\core\test\Debug/" /Fd"..\..\..\runtime\core\test\Debug/" /FD /GZ /Zm200 /c +"C:\incubator\tuscany\cpp\sdo\runtime\core\test\sdotest.cpp" +"C:\incubator\tuscany\cpp\sdo\runtime\core\test\sdotest2.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP34.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP35.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib /nologo /subsystem:console /incremental:yes /pdb:"..\..\..\runtime\core\test\Debug/sdo_test.pdb" /debug /machine:I386 /out:"..\..\..\runtime\core\test\Debug/sdo_test.exe" /pdbtype:sept /libpath:"..\..\..\lib" +\incubator\tuscany\cpp\sdo\runtime\core\test\Debug\sdotest.obj +\incubator\tuscany\cpp\sdo\runtime\core\test\Debug\sdotest2.obj +\incubator\tuscany\cpp\sdo\runtime\core\Debug\tuscany_sdo.lib +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP35.tmp" +

      Output Window

      +Compiling... +sdotest.cpp +sdotest2.cpp +Linking... +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP37.bat" with contents +[ +@echo off +copy ..\..\..\runtime\core\test\*.xsd ..\..\..\runtime\core\test\Debug +copy ..\..\..\runtime\core\test\*.xml ..\..\..\runtime\core\test\Debug +copy ..\..\..\bin\*.dll ..\..\..\runtime\core\test\Debug +copy ..\..\..\bin\*.pdb ..\..\..\runtime\core\test\Debug +copy ..\..\..\runtime\core\test\*.wsdl ..\..\..\runtime\core\test\Debug +] +Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP37.bat" + +..\..\..\runtime\core\test\47293Catalog.xsd +..\..\..\runtime\core\test\47293Customer.xsd +..\..\..\runtime\core\test\47293Order.xsd +..\..\..\runtime\core\test\axis.xsd +..\..\..\runtime\core\test\b46617b.xsd +..\..\..\runtime\core\test\b46693.xsd +..\..\..\runtime\core\test\Catalog.xsd +..\..\..\runtime\core\test\company.xsd +..\..\..\runtime\core\test\companyabs.xsd +..\..\..\runtime\core\test\companyref.xsd +..\..\..\runtime\core\test\companysubs.xsd +..\..\..\runtime\core\test\company_with_nillable_SN.xsd +..\..\..\runtime\core\test\Customer.xsd +..\..\..\runtime\core\test\doctest.xsd +..\..\..\runtime\core\test\error1.xsd +..\..\..\runtime\core\test\g3.xsd +..\..\..\runtime\core\test\graham1.xsd +..\..\..\runtime\core\test\graham2.xsd +..\..\..\runtime\core\test\graham3.xsd +..\..\..\runtime\core\test\include.xsd +..\..\..\runtime\core\test\include1.xsd +..\..\..\runtime\core\test\include2.xsd +..\..\..\runtime\core\test\includeother3.xsd +..\..\..\runtime\core\test\many.xsd +..\..\..\runtime\core\test\my-core.xsd +..\..\..\runtime\core\test\my-implementation-local-java.xsd +..\..\..\runtime\core\test\my.xsd +..\..\..\runtime\core\test\openloadNS.xsd +..\..\..\runtime\core\test\openloadNS2.xsd +..\..\..\runtime\core\test\Order.xsd +..\..\..\runtime\core\test\sca-binding-sca.xsd +..\..\..\runtime\core\test\sca-binding-webservice.xsd +..\..\..\runtime\core\test\sca-binding-ws.xsd +..\..\..\runtime\core\test\sca-core.xsd +..\..\..\runtime\core\test\sca-implementation-dll.xsd +..\..\..\runtime\core\test\sca-implementation-java.xsd +..\..\..\runtime\core\test\sca-implementation-local-java.xsd +..\..\..\runtime\core\test\sca-interface-cpp.xsd +..\..\..\runtime\core\test\sca-interface-java.xsd +..\..\..\runtime\core\test\sca-interface-wsdl.xsd +..\..\..\runtime\core\test\sca-property-java.xsd +..\..\..\runtime\core\test\sca-property-xsd.xsd +..\..\..\runtime\core\test\sca.xsd + 43 file(s) copied. +..\..\..\runtime\core\test\47293Catalog.xml +..\..\..\runtime\core\test\b46617b.xml +..\..\..\runtime\core\test\company_with_nillable_SN.xml +..\..\..\runtime\core\test\doctest.xml +..\..\..\runtime\core\test\error1.xml +..\..\..\runtime\core\test\many.xml +..\..\..\runtime\core\test\openloadNS.xml +..\..\..\runtime\core\test\openloadNS2.xml +..\..\..\runtime\core\test\partial.xml +..\..\..\runtime\core\test\testopen3.xml + 10 file(s) copied. +..\..\..\bin\iconv.dll +..\..\..\bin\libxml2.dll +..\..\..\bin\tuscany_sdo.dll +..\..\..\bin\zlib1.dll + 4 file(s) copied. +..\..\..\bin\tuscany_sdo.pdb + 1 file(s) copied. +..\..\..\runtime\core\test\StockQuoteService.wsdl + 1 file(s) copied. + + + +

      Results

      +sdo_test.exe - 0 error(s), 0 warning(s) +
      + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.dsw b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.dsw new file mode 100644 index 0000000000..67b17a2514 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.dsw @@ -0,0 +1,56 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "sdo_runtime"=.\sdo_runtime\sdo_runtime.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "sdo_samples"=.\sdo_samples\sdo_samples.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "sdo_test"=.\sdo_test\sdo_test.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name sdo_runtime + End Project Dependency +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.ncb b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.ncb new file mode 100644 index 0000000000..25e0ffd8e8 Binary files /dev/null and b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.ncb differ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.opt b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.opt new file mode 100644 index 0000000000..7e3dff73a8 Binary files /dev/null and b/sca-cpp/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.opt differ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/readme.txt b/sca-cpp/tags/cpp-stable-20060304/sdo/readme.txt new file mode 100644 index 0000000000..dc1b841a6a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/readme.txt @@ -0,0 +1,72 @@ +Tuscany SDO for C++ +=================== + + +Tuscany SDO is an implmentation of the Service Data Objects 2.0 specification for C++ developers. + +The implmentation adheres closely to the specifcation, but there are a number of features which +did not make it into this release. These are documented below. + + +Generic get/set +=============== + +The C++ implementation defines a set of access methods directly appropriate to each Type. For example +getString(), setString(), getBoolean(), setBoolean(). There is no generic get() method as there is no +common base object to return - unlike the java implementation which can return an Object. + +Typesafe interface +================== + +There is no code generation in this version, so there is no interface such that a property called +"Name" can be accessed via object->getName(). The name must be accessed via object->getString("Name"); + +Change Summary Serialization. +============================= + +Change summaries contain creations, deletions and modifications to data graphs. The specification +indicates that these will be serialized to XML such that creations and deletions will become attributes +of the change summary element, whilst changes become elements within the change summary element. +This implementation saves all creations, deletions and changes as elements within the chang summary +element. + +Change Summary Undo +=================== + +The undo method of a change summary is not implemented. + +Read-Only +========= + +Read-only data elements are not supported by this implementation. Properties may be set read-only, but +the property may still be modified without an error. + +Opposites +========= + +Opposites are not supported by this implementation. + +Date and Time +============= +Date support is limited to using a time_t. There are no calendar or duration style objects, and no +helpers for conversions. + + +BigDecimal and BigInteger +========================= + +The equivalent of the java BigDecimal and BigInteger objects are not implmented. + +NLS support +=========== + +Data objects may contain multi-byte data in the form of an SDO string, but locale information is not +stored with the data. + +The creation API only allows properties and types to have ascii names (taking a char* as the name). + +Inheritance +=========== + +Type inheritance is single only. + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/Makefile.am new file mode 100644 index 0000000000..527708855b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = core diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/Makefile.am new file mode 100644 index 0000000000..b4b5bc3097 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = src test diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.cpp new file mode 100644 index 0000000000..b041b99d52 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.cpp @@ -0,0 +1,185 @@ +/* + * + * 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 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; +} diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.xsd new file mode 100644 index 0000000000..8c5ea4a7c1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ObjectCreation.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ObjectCreation.cpp new file mode 100644 index 0000000000..ab5dd74921 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/ObjectCreation.cpp @@ -0,0 +1,249 @@ +/* + * + * 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 ObjectCreation::sample() +{ + + + cout << " ********** Sample ObjectCreation **********" << endl; + + try { + + + /** + * Get a data factory. With it we can either create metadata + * or load it from an XSD. + */ + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + /** + * Add some Types to the data factory.. + * The booleans at on addType are: + * "isSequenced", "isOpen" "isAbstract" and "isDataType" + */ + + mdg->addType("myspace","Company"); + + mdg->addType("myspace","Department"); + + /** + * Manager is going to be a sequenced type... + */ + + mdg->addType("myspace","Manager", true, false); + + mdg->addType("myspace","Employee"); + + + /** + * We will make employee and manager sub-types of 'person' + */ + + mdg->addType("myspace","Person", true, false); + + + /** + * having all the types defined, we can now define the tree + * by giving properties to the types. + */ + + /** + * We could use the API passing in name and URI for each + * Type , or get the Types back and use them directly. + * Here we get back the types to use... + */ + + const Type& tc = mdg->getType("myspace","Company"); + const Type& ts = mdg->getType("commonj.sdo","String"); + const Type& ti = mdg->getType("commonj.sdo","Integer"); + const Type& tm = mdg->getType("myspace","Manager"); + const Type& td = mdg->getType("myspace","Department"); + const Type& te = mdg->getType("myspace","Employee"); + const Type& tp = mdg->getType("myspace","Person"); + + + /** + * Example 1 - add a property of type String to type company + */ + + mdg->addPropertyToType(tc,"name",ts); + + /** + * Example 2 - add using the name of the company instead of the + * type... + */ + + mdg->addPropertyToType("myspace","Company","address",ts); + + /** + * Example 3 - add a many valued property + */ + + mdg->addPropertyToType(tc,"departments", "myspace","Department", + true); + + + /** + * Example 4 - add a reference property + */ + + mdg->addPropertyToType(tc,"employee of the month", "myspace", + "Employee",false, false, false); + + + /** + * Add other department properties... + */ + + mdg->addPropertyToType(td,"name", ts); + mdg->addPropertyToType(td,"id", ti); + mdg->addPropertyToType(td,"manager", tm); + mdg->addPropertyToType(td,"employees",te,true,false,true); + + /** + * Add a name to the person + */ + + mdg->addPropertyToType(tp,"name", ts); + + + + /** + * Make employees and mamagers both substypes of person + */ + + mdg->setBaseType(te,tp); + mdg->setBaseType(tm,tp); + + /** + * And give them different properties of their own. + */ + + mdg->addPropertyToType(tm,"officeid", ts); + mdg->addPropertyToType(te,"cubelocation", ts); + + + + /** + * The data structure looks like this: + + * Company + * ----name (String) + * ----address *String) + * ----departments (Department, many valued) + * ----employee of the month ( Employee - reference) + + * Person + * ----name (String) + + * Employee + * ----name (String - inherited from Person) + * ----cubelocation (String) + + * Manager + * ----name (String - inherited from Person) + * ----officeid (String) + + * Department + * ----name (String) + * ----id (Integer) + * ---- manager (Manager) + * ---- employees (Employee - many valued) + + + /** + * create an object of type Company using the DataFactory + */ + + DataObjectPtr dor = mdg->create((Type&)tc); + + /** + * Set the company name to Acme + */ + + dor->setCString("name","Acme"); + + /** + * Set up the two departments - using the + * DataObject createDataObject API + */ + + DataObjectPtr dep1 = dor->createDataObject("departments"); + dep1->setCString("name","Development"); + dep1->setInteger("id",100); + + DataObjectPtr man1 = dep1->createDataObject("manager"); + man1->setCString("name","Herve Jones"); + + DataObjectPtr dep2= dor->createDataObject("departments"); + dep2->setCString("name","Marketing"); + dep2->setInteger("id",200); + + DataObjectPtr man2 = dep2->createDataObject("manager"); + man1->setCString("name","August Phan"); + + /** + * Give the departments some employees + */ + + DataObjectPtr emp1 = dep1->createDataObject("employees"); + emp1->setCString("name","Fred Appleby"); + emp1->setCString("cubelocation","100-A"); + + DataObjectPtr emp2 = dep1->createDataObject("employees"); + emp2->setCString("name","Jane Bloggs"); + emp2->setCString("cubelocation","100-B"); + + DataObjectPtr emp3 = dep2->createDataObject("employees"); + emp3->setCString("name","Robin Corbet"); + emp3->setCString("cubelocation","200-A"); + + DataObjectPtr emp4 = dep2->createDataObject("employees"); + emp4->setCString("name","Martha Denby"); + emp4->setCString("cubelocation","200-B"); + + cout << "Company Name:" << dor->getCString("name") << endl; + + DataObjectList& depts = dor->getList("departments"); + for (int i=0;igetCString("name") << endl; + + DataObjectList& emps = depts[i]->getList("employees"); + + for (int j=0;jgetCString("name") << endl; + } + } + } + catch (SDORuntimeException e) + { + cout << "Exception in ObjectCreation" <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." <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; +} diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/Substitutes.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/Substitutes.cpp new file mode 100644 index 0000000000..abf30ff2ca --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/Substitutes.cpp @@ -0,0 +1,118 @@ +/* + * + * 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 Substitutes::sample() +{ + cout << " ********** Substitutes sample *************" << endl; + try + { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("companysubs.xsd"); + + /** + * The companysubs xsd defines some types including a + * type which allows substitutions. The PublicationType is + * the base of BookType and MagazineType, and the substitutions + * are enabled so that properties can be either. + */ + + const Type& tstring = mdg->getType("commonj.sdo","String"); + const Type& tcomp = mdg->getType("companyNS","CompanyType"); + const Type& book = mdg->getType("companyNS","BookType"); + const Type& mag = mdg->getType("companyNS","MagazineType"); + const Type& pub = mdg->getType("companyNS","PublicationType"); + + + /** + * Create some data to work with + */ + + DataObjectPtr comp = mdg->create((Type&)tcomp); + comp->setCString("name","Puflet Publishing"); + + + DataObjectPtr book1 = mdg->create(book); + book1->setCString("author","Mr P B Writer"); + + /** + * book has a title property because it inherits from Publication + */ + book1->setCString("title","Nowhere Man"); + + + DataObjectPtr mag1 = mdg->create(mag); + + /** + * Magazine has an eidtor, and a title inherited from publication + */ + + mag1->setCString("editor","Mr B Picky"); + // inherited from publication + mag1->setCString("title","Bionicle Weekly"); + + + DataObjectPtr pub1 = mdg->create(pub); + pub1->setCString("title","Noddy In Toyland"); + + + /** + * The property "Publication" is defined as substitutable, so + * any of the book, magazine or publication should be + * acceptable values. When the type is queried, the type + * returned should correspond to the current type of the + * property... + */ + + comp->setDataObject("Publication",pub1); + const Type& tpub1 = comp->getDataObject("Publication")->getType(); + cout << "Publication is now of type " << tpub1.getName() << endl; + + comp->setDataObject("Publication",book1); + const Type& tpub2 = comp->getDataObject("Publication")->getType(); + cout << "Publication now is of type " << tpub2.getName() << endl; + + comp->setDataObject("Publication",mag1); + const Type& tpub3 = comp->getDataObject("Publication")->getType(); + cout << "Publication now is of type " << tpub3.getName() << endl; + + /** + * As the substitutes have names, they act as a sort of + * alias, so we can address Publication as Book or Magazine too + */ + + comp->setDataObject("Book",book1); + const Type& tpub4 = comp->getDataObject("Book")->getType(); + cout << "Book is of type " << tpub4.getName() << endl; + + comp->setDataObject("Magazine",mag1); + const Type& tpub5 = comp->getDataObject("Magazine")->getType(); + cout << "Magazine is of type " << tpub5.getName() << endl; + + } + catch (SDORuntimeException e) + { + cout << "Exception in Substitutes"<< endl; + cout<< e; + } + cout << " ********** Sample ends ********************" << endl; +} diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.cpp new file mode 100644 index 0000000000..d1b413d2b6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.cpp @@ -0,0 +1,108 @@ +/* + * + * 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 XSDLoading::sample() +{ + int i,j; + + cout << " ********** XSDLoading Sample **************" << endl; + try + { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + /** + * Get an XSD helper to load XSD information into the + * data factory + */ + + XSDHelperPtr myXSDHelper = HelperProvider::getXSDHelper(mdg); + myXSDHelper->defineFile("XSDLoading.xsd"); + + /** + * Check if there were any errors. The parse may still + * succeed, but errors indicate some elements were not + * understood + */ + + if ((i = myXSDHelper->getErrorCount()) > 0) + { + cout << "XSD Loading reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + + /** + * Use the same data factory to load XML corresponding to + * data objects adhering to the previously loaded schema + */ + + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("XSDLoading.xml", "companyNS"); + + /** + * Check if there were any errors. The parse may still + * succeed, but errors indicate some elements did not match + * the schema, or were malformed. + * + */ + + if ((i = myXMLHelper->getErrorCount()) > 0) + { + cout << "XML Loading reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + + DataObjectPtr newdob = myXMLDocument->getRootDataObject(); + + cout << "Company Name:" << newdob->getCString("name") << endl; + + DataObjectList& depts = newdob->getList("departments"); + for (int i=0;igetCString("name") << endl; + + DataObjectList& emps = depts[i]->getList("employees"); + + for (int j=0;jgetCString("name") << endl; + } + } + + } + catch (SDORuntimeException e) + { + cout << "Exception in XSD Loading test" << endl; + cout << e; + } + cout << " ********** Sample ends ********************" << endl; +} diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xml b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xml new file mode 100644 index 0000000000..cc6e93e4bb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xml @@ -0,0 +1,11 @@ + + + + + +Jane Doe + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xsd new file mode 100644 index 0000000000..3738da590f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/companysubs.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/companysubs.xsd new file mode 100644 index 0000000000..2ffb626e90 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/companysubs.xsd @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.cpp new file mode 100644 index 0000000000..1841d4f845 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.cpp @@ -0,0 +1,34 @@ +/* + * + * 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" + +/** + * C main to run the sample + */ + +int main (int argc, char** argv) +{ + ObjectCreation::sample(); + XSDLoading::sample(); + ChangeSummarySave::sample(); + Substitutes::sample(); + Query::sample(); + return 0; +} diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.h new file mode 100644 index 0000000000..c22e2cd1b4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.h @@ -0,0 +1,50 @@ +/* + * + * 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 "commonj/sdo/SDO.h" + + +using namespace commonj::sdo; + + + +class ObjectCreation { + public: + static void sample(); +}; + +class XSDLoading { + public: + static void sample(); +}; + +class ChangeSummarySave { + public: + static void sample(); +}; + +class Substitutes { + public: + static void sample(); +}; + +class Query { + public: + static void sample(); +}; \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtbuild b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtbuild new file mode 100644 index 0000000000..7c9117ffae --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtbuild @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtproject b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtproject new file mode 100644 index 0000000000..48a12e6664 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtproject @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.project b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.project new file mode 100644 index 0000000000..a24e25672e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.project @@ -0,0 +1,19 @@ + + + tuscany_sdo + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000000..37a23c6dd7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,9 @@ +#Wed Feb 15 15:54:27 GMT 2006 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.804736841=\n\n\n\n\n +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.1588435275=\n\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.804736841=\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.1588435275=\n\n\n\n +environment/project=\n\n +environment/project/cdt.managedbuild.config.gnu.so.debug.804736841=\n\n\n\n +environment/project/cdt.managedbuild.config.gnu.so.release.1588435275=\n\n\n\n diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/Makefile.am new file mode 100644 index 0000000000..4b2ab22e87 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/Makefile.am @@ -0,0 +1,81 @@ +SUBDIRS = commonj + +nobase_include_HEADERS = \ +commonj/sdo/ChangedDataObjectList.h \ +commonj/sdo/ChangedDataObjectListImpl.h \ +commonj/sdo/ChangeSummaryBuilder.h \ +commonj/sdo/ChangeSummary.h \ +commonj/sdo/ChangeSummaryImpl.h \ +commonj/sdo/CopyHelper.h \ +commonj/sdo/DASProperty.h \ +commonj/sdo/DASType.h \ +commonj/sdo/DASValue.h \ +commonj/sdo/DASValues.h \ +commonj/sdo/DataFactory.h \ +commonj/sdo/DataFactoryImpl.h \ +commonj/sdo/DataGraph.h \ +commonj/sdo/DataGraphImpl.h \ +commonj/sdo/DataObject.h \ +commonj/sdo/DataObjectImpl.h \ +commonj/sdo/DataObjectInstance.h \ +commonj/sdo/DataObjectList.h \ +commonj/sdo/DataObjectListImpl.h \ +commonj/sdo/DefaultLogWriter.h \ +commonj/sdo/disable_warn.h \ +commonj/sdo/EqualityHelper.h \ +commonj/sdo/export.h \ +commonj/sdo/HelperProvider.h \ +commonj/sdo/Logger.h \ +commonj/sdo/Logging.h \ +commonj/sdo/LogWriter.h \ +commonj/sdo/ParserErrorSetter.h \ +commonj/sdo/PropertyDefinition.h \ +commonj/sdo/Property.h \ +commonj/sdo/PropertyImpl.h \ +commonj/sdo/PropertyList.h \ +commonj/sdo/PropertySetting.h \ +commonj/sdo/RefCountingObject.h \ +commonj/sdo/RefCountingPointer.h \ +commonj/sdo/SAX2Attribute.h \ +commonj/sdo/SAX2Attributes.h \ +commonj/sdo/SAX2Namespaces.h \ +commonj/sdo/SAX2Parser.h \ +commonj/sdo/SchemaInfo.h \ +commonj/sdo/SdoCheck.h \ +commonj/sdo/SDODate.h \ +commonj/sdo/SDO.h \ +commonj/sdo/SDORuntimeException.h \ +commonj/sdo/SdoRuntime.h \ +commonj/sdo/SDOSAX2Parser.h \ +commonj/sdo/SDOSchemaSAX2Parser.h \ +commonj/sdo/SDOSPI.h \ +commonj/sdo/SDOUtils.h \ +commonj/sdo/SDOXMLBufferWriter.h \ +commonj/sdo/SDOXMLFileWriter.h \ +commonj/sdo/SDOXMLStreamWriter.h \ +commonj/sdo/SDOXMLString.h \ +commonj/sdo/SDOXMLWriter.h \ +commonj/sdo/SDOXSDBufferWriter.h \ +commonj/sdo/SDOXSDFileWriter.h \ +commonj/sdo/SDOXSDStreamWriter.h \ +commonj/sdo/SDOXSDWriter.h \ +commonj/sdo/Sequence.h \ +commonj/sdo/SequenceImpl.h \ +commonj/sdo/Setting.h \ +commonj/sdo/SettingList.h \ +commonj/sdo/TypeDefinition.h \ +commonj/sdo/TypeDefinitions.h \ +commonj/sdo/Type.h \ +commonj/sdo/TypeImpl.h \ +commonj/sdo/TypeList.h \ +commonj/sdo/XMLDocument.h \ +commonj/sdo/XMLDocumentImpl.h \ +commonj/sdo/XMLHelper.h \ +commonj/sdo/XMLHelperImpl.h \ +commonj/sdo/XMLQName.h \ +commonj/sdo/XpathHelper.h \ +commonj/sdo/XSDHelper.h \ +commonj/sdo/XSDHelperImpl.h \ +commonj/sdo/XSDPropertyInfo.h \ +commonj/sdo/XSDTypeInfo.h + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/Makefile.am new file mode 100644 index 0000000000..82055487b0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = sdo diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.cpp new file mode 100644 index 0000000000..42e45603ce --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.cpp @@ -0,0 +1,28 @@ +/* + * + * 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 "commonj/sdo/Logger.h" + +#include "commonj/sdo/ChangeSummary.h" +namespace commonj{ +namespace sdo{ + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.h new file mode 100644 index 0000000000..16c0ac64c8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.h @@ -0,0 +1,208 @@ +/* + * + * 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 $ */ + +#ifndef _CHANGESUMMARY_H_ +#define _CHANGESUMMARY_H_ +#include "commonj/sdo/export.h" + + +#include "commonj/sdo/SettingList.h" +#include "commonj/sdo/ChangedDataObjectList.h" + + +using namespace std; +namespace commonj{ +namespace sdo { + + /** + * + * A change summary is used to record changes to the objects in a data graph. + * This allows applications to efficiently and incrementally update + * back-end storage when required. + */ + + class ChangeSummary + { + public: + + /** getChangedDataObjects() returns a list of changed objects. + * + * The new and modified objects in the list are references to objects that + * are associated with this change summary. + * The deleted objects in the list are references to copies of the objects + * as they appeared at the time that event logging was enabled; + * if the deleted objects have references to other objects, + * the references will also refer to copies of the target objects. + * Return a list of changed data objects. + */ + + virtual SDO_API ChangedDataObjectList& getChangedDataObjects() = 0; + + + /** getOldValues returns a list of old values as settings. + * + * Returns a list of Settings + * that represent the property values of the given dataObject + * at the point when logging began. + * In the case of a deleted object, + * the list will include Settings for all the properties. + * An old value Setting indicates the value at the + * point logging begins. A setting is only produced for + * modified objects if either the old value differs from the current value or + * if the isSet differs from the current value. + * No Settings are produced for created objects. + * Param dataObject the object in question. + * Return a list of settings. + */ + + virtual SDO_API SettingList& getOldValues(DataObjectPtr dataObject) = 0; + + /** getOldXpath returns the old path before the setting. + * + * Returns a path where the object was located before the setting took place. + */ + + + virtual SDO_API const char* getOldXpath(RefCountingPointer dol) = 0; + + /** beginLogging() sets the change summary in logging mode. + * + * The change summary is initially inactive. Setting it to logging mode + * starts the process of recording all the settings made. + */ + + virtual SDO_API void beginLogging() = 0; + + /** endLogging() stops logging. + * + * This method stops logging, but does not clear out the change summary. + * The changes are valid until the summary is next set to logging, at which time + * all old settings are lost. + */ + + virtual SDO_API void endLogging() = 0; + + + + /** isLogging() returns true if logging is enabled. + * + * Indicates whether change logging is on (true) or off (false). + */ + + virtual SDO_API bool isLogging() = 0; + + + + /** isCreated() returns true if the object was created during logging. + * + * Returns whether or not the specified data object was created while logging. + * Any object that was added to the data graph + * but was not in the data graph when logging began, + * will be considered created. + * Param dataObject the data object in question. + * Return true if the specified data object was created. + */ + + virtual SDO_API bool isCreated(DataObjectPtr dataObject) = 0; + + /** isDeleted() - true if the object was deleted during logging. + * + * Returns whether or not the specified data object was deleted while logging. + * Any object that is not contained by the data graph will be considered + * deleted. + * Param dataObject the data object in question. + * Return true if the specified data object was deleted. + */ + + virtual SDO_API bool isDeleted(DataObjectPtr dataObject) = 0; + + + /** isModified() - true if the object was changed during logging. + * + * Returns whether or not the specified data object was updated while logging. + * An object that was contained in the data graph when logging began, + * and remains in the graph when logging ends will be considered for changes. + * An object considered modified must have at least one old value Setting. + * Param dataObject the data object in question. + * Return true if the specified data object was modified. + */ + + virtual SDO_API bool isModified(DataObjectPtr dataObject) = 0; + + /** getOldValue() gets the setting showing the old value. + * + * Returns a setting for the specified property + * representing the property value of the given dataObject + * at the point when logging began. + * Returns null if the property has not changed and + * has not been deleted. + * Param dataObject the object in question. + * Param property the property of the object. + * Return the Setting for the specified property. + */ + + virtual SDO_API const Setting& getOldValue(DataObjectPtr dataObject, const Property& property) = 0; + + /** getOldContainer() gets the container before the setting. + * + * Returns the value of the container data object + * at the point when logging began. + * Param dataObject the object in question. + * Return the old container data object. + */ + + virtual SDO_API DataObjectPtr getOldContainer(DataObjectPtr dataObject) = 0; + + /** getOldContainmentProperty() - gives the property before setting. + * + * Returns the value of the containment property data object property + * at the point when logging began. + * Param dataObject the object in question. + * Return the old containment property. + */ + + virtual SDO_API const Property& getOldContainmentProperty(DataObjectPtr dataObject) = 0; + + /** undoChanges() - Not Implemented. + * + * NOT IMPLEMENTED + * + * Undoes all changes in the log to restore the tree of + * DataObjects to its original state when logging began. + * isLogging() is unchanged. The log is cleared. + */ + + virtual SDO_API void undoChanges() = 0; + + /** getOldSequence() - Not Implemented. + * + * NOT IMPLEMENTED + * + * This method gives back the sequence of a data object as it + * appeared when logging was switched on. The data object may be + * a deleted data object or a changed data object. If the + * data object was not sequenced, this returns null. + */ + + virtual SDO_API SequencePtr getOldSequence(DataObjectPtr dataObject) = 0; + +}; +}; +}; +#endif //_CHANGESUMMARY_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.cpp new file mode 100644 index 0000000000..46146d0045 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.cpp @@ -0,0 +1,1144 @@ +/* + * + * 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 "commonj/sdo/ChangeSummaryBuilder.h" + +#include "commonj/sdo/SDORuntimeException.h" +#include "commonj/sdo/ChangeSummary.h" +#include "commonj/sdo/XSDPropertyInfo.h" +#include "commonj/sdo/XMLQName.h" +#include "commonj/sdo/DASProperty.h" +#include "commonj/sdo/Logging.h" + +namespace commonj +{ + namespace sdo + { + +// ======================================================================== +// Constructor/Destructor +// ======================================================================== + + ChangeSummaryBuilder::ChangeSummaryBuilder( + DataFactoryPtr df, + DataObjectPtr& rootDO) + + : dataFactory(df), + rootDataObject(rootDO) + + + { + LOGINFO(INFO,"CSBuilder constructor"); + currentState = baseState; + } + + ChangeSummaryBuilder::~ChangeSummaryBuilder() + { + LOGINFO(INFO,"CSBuilder destructor"); + } + + +// ======================================================================== +// Deletion handling +// ======================================================================== + + void ChangeSummaryBuilder::populateDeletion(ChangeSummaryImpl* csi,DataObjectPtr dob, + int currentIndex) + { + LOGENTRY(INFO,"CSBuilder populateDeletion"); + try { + + std::list::iterator attributesiter; + std::list::iterator elementsiter; + + for (attributesiter= deletions[currentIndex].attributes.begin(); + attributesiter!= deletions[currentIndex].attributes.end(); + ++attributesiter) + { + + LOGINFO_1(INFO,"CSBuilder Populate deletion attribute:%s", + (const char*)((*attributesiter).name)); + + dob->setCString((const char*)((*attributesiter).name), + (const char*)((*attributesiter).value)); + } + for (elementsiter= deletions[currentIndex].elements.begin(); + elementsiter!= deletions[currentIndex].elements.end(); + ++elementsiter) + { + + LOGINFO_1(INFO,"CSBuilder:Populate deletion element:%s", + (const char*)((*elementsiter).name)); + + SDOXMLString value = (*elementsiter).value; + SDOXMLString prop = (*elementsiter).name; + + if ((*elementsiter).isDeletion) + { + for (int i = 0; i < deletions.size(); i++) + { + if (value.equals (deletions[i].reference)) + { + if (deletions[i].dob == 0) + { + handleDeletion(csi,i,dob,(*elementsiter).value, + (*elementsiter).name); + } + // dob may have been set by the line above. + if (deletions[i].dob != 0) + { + DataObjectList& dli = dob->getList(prop); + dli.insert(0,deletions[i].dob); + } + break; + } + } + } + else + { + DataObjectList& dli = dob->getList(prop); + dli.append((const char*)value); + } + } + } + catch (SDORuntimeException e) + { + LOGSDOEXCEPTION(ERROR,"Error populating a deletion record",e); + } + LOGEXIT(INFO,"CSBuilder populateDeletion"); + return; + } + + +// ======================================================================== +// Deletion handling +// ======================================================================== + + void ChangeSummaryBuilder::handleDeletion( + ChangeSummaryImpl* csi, + int currentIndex, + DataObjectPtr cont, + SDOXMLString path, + SDOXMLString prop) + { + LOGENTRY(INFO,"CSBuilder handleDeletion(2)"); + + if (deletions[currentIndex].completedprocessing) + { + LOGEXIT(INFO,"CSBuilder handleDeletion(2) - Exit1"); + return; + } + + const Property& p = cont->getProperty(prop); + DataObjectPtr dob = dataFactory->create( + p.getType()); + populateDeletion(csi,dob,currentIndex); + deletions[currentIndex].dob = dob; + deletions[currentIndex].completedprocessing=true; + csi->appendToDeletions(p,dob,cont,path); + + LOGEXIT(INFO,"CSBuilder handleDeletion(2) - Exit2"); + + return; + } + +// ======================================================================== +// Deletion handling +// ======================================================================== + + void ChangeSummaryBuilder::handleDeletion( + ChangeSummaryImpl* csi, + int currentIndex, + SDOXMLString path) + { + + // find the original container - and see if it + // still exists. + // supposing the container doesnt exist, we need + // to process the deletion of that one first, or + // locate it in the already deleted elements. + + LOGENTRY(INFO,"CSBuilder:handleDeletion"); + + if (deletions[currentIndex].completedprocessing) + { + LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit1"); + return; + } + + int index = path.lastIndexOf('/'); + if (index < 0) + { + LOGERROR(WARNING,"CSBuilder logs deletion of the root object - not possible"); + LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit2"); + return; + } + + SDOXMLString prop = + path.substring(index+1); + SDOXMLString contpath = + path.substring(0,index); + + index = prop.lastIndexOf('.'); + if (index >= 0) prop = prop.substring(0,index); + + index = prop.lastIndexOf('['); + if (index >= 0) prop = prop.substring(0,index); + + DataObjectPtr cont; + + if (contpath.isNull()) + { + cont = rootDataObject; + + LOGINFO_1(INFO,"Handling deletion from root of %s",(const char*)prop); + } + else + { + try { + cont = rootDataObject->getDataObject(contpath); + LOGINFO_2(INFO,"Handling deletion from %s of %s", + (const char*)contpath,(const char*)prop); + } + catch (SDORuntimeException e) + { + cont = 0; + LOGINFO(INFO,"Container was a deleted object"); + } + } + + if (cont != 0) + { + handleDeletion(csi,currentIndex,cont,path,prop); + LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit3"); + return; + } + else + { + // this data object was also deleted + cont = csi->matchDeletedObject(contpath); + if (cont != 0) + { + // we found a previously deleted object for + // the container. + handleDeletion(csi,currentIndex,cont,path,prop); + LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit4"); + return; + } + + } + + // it could be a deletion which has not been processed yet + for (int i = 0; i < deletions.size(); i++) + { + if (contpath.equals (deletions[i].reference)) + { + // matching deletion found + if (i == currentIndex) + { + LOGERROR(WARNING,"Loop detected in handling deletes"); + LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit5"); + return; + } + // Handle the deletion first + handleDeletion(csi,i,contpath); + LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit6"); + return; + } + } + LOGERROR(WARNING,"Failed to find a matching delete "); + LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit7"); + return; + } + +// ======================================================================== +// Deletion handling +// ======================================================================== + + SDOXMLString ChangeSummaryBuilder::shiftedIndex(int index) + { + int pos = createDeletes[index].value.lastIndexOf('.'); + if (pos < 0) return createDeletes[index].value; + + int val = atoi((const char*)(createDeletes[index]. + value.substring(pos+1))); + + char buf[10]; + + sprintf(buf, ".%d", val + createDeletes[index].indexshift); + + return createDeletes[index].value.substring(0,pos) + buf; + } + +// ======================================================================== +// Deletion handling +// ======================================================================== + + void ChangeSummaryBuilder::shiftIndices(int index, int delta) + { + int pos = createDeletes[index].value.lastIndexOf('.'); + if (pos < 0) return; + + SDOXMLString refstring = createDeletes[index].value.substring(0,pos); + pos = atoi((const char*)(createDeletes[index].value.substring(pos+1))); + + for (int k=index+1;k= pos) + { + createDeletes[k].indexshift += delta; + } + } + } + +// ======================================================================== +// Rebuilding of a change summary from the lists +// ======================================================================== + + void ChangeSummaryBuilder::buildChangeSummary( + DataObjectPtr changeSummaryDO) + { + LOGENTRY(INFO,"CSBuilder:buildChangeSummary"); + + int i; + + try { + if (changeSummaryDO == 0) + { + // there is no summary data object to rebuild + LOGEXIT(INFO,"CSBuilder:buildChangeSummary Exit1"); + return; + } + ChangeSummary* cs = changeSummaryDO->getChangeSummary(); + if (cs == 0) + { + // there is no change summary - this shouldnt happen + LOGEXIT(INFO,"CSBuilder:buildChangeSummary Exit2"); + return; + } + + ChangeSummaryImpl* csi = (ChangeSummaryImpl*)cs; + + // add the creations and deletions in order + + for (i = 0; i < createDeletes.size(); i++) + { + + LOGINFO_1(INFO,"CSBuilder:create/delete:%s", + (const char*)(createDeletes[i].value)); + + SDOXMLString thispath; + + if (createDeletes[i].indexshift != 0) + { + thispath = shiftedIndex(i); + } + else + { + thispath = createDeletes[i].value; + } + + if (!createDeletes[i].type.equals("delete")) + { + DataObjectPtr dob; + if (thispath.isNull()) + { + dob = rootDataObject; + } + else + { + dob = rootDataObject->getDataObject(thispath); + } + if (dob != 0) { + + LOGINFO(INFO,"CSBuilder:add create to change summary"); + + csi->appendToCreations(dob->getContainmentProperty(), + dob, dob->getContainer()); + shiftIndices(i,-1); + } + else + { + LOGERROR_1(WARNING,"Failed to find object at %s", + (const char*)createDeletes[i].value); + } + } + else + { + // its a deletion - match it. + for (int j = 0; j < deletions.size(); j++) + { + if (deletions[j].completedprocessing)continue; + + if (thispath.equals (deletions[j].reference)) + { + // matching deletion found + LOGINFO_1(INFO,"CSBuilder:matched delete:%s", + (const char*)deletions[j].reference); + + handleDeletion(csi, j,createDeletes[i].value); + // update the path on any higher items in the current + // many-valued property. + shiftIndices(i,1); + + break; + } + } + } + } + + // add the changes + + std::list::iterator a; + std::list::iterator e; + + for (i = 0; i< changes.size(); i++) + { + DataObjectPtr dob; + if (changes[i].reference.isNull()) + { + dob = rootDataObject; + } + else + { + dob = rootDataObject->getDataObject(changes[i].reference); + } + if (dob != 0) + { + LOGINFO_1(INFO,"Located a change at %s", + (const char*)changes[i].reference); + + // Need to get the changelogitem, and append settings to + // it.Append attributes + + for (a=changes[i].attributes.begin(); + a != changes[i].attributes.end();++a) + { + const Property& p = dob->getProperty((const char*)((*a).name)); + if (p.getType().isDataType()) + { + csi->appendToChanges( + p,dob,(*a).value,0); + } + else + { + for (int j = 0; j < deletions.size(); j++) + { + if ((*a).value.equals (deletions[j].reference)) + { + csi->appendToChanges( + p,dob,deletions[j].dob,0); + break; + } + } + } + } + for (e=changes[i].elements.begin(); + e != changes[i].elements.end();++e) + { + const Property& p = dob->getProperty + ((const char*)((*e).name)); + if ((*e).isDeletion) + { + + LOGINFO_1(INFO,"CSBuilder Change was a deletion of:%s", + (const char*)((*e).path)); + + for (int j = 0; j < deletions.size(); j++) + { + if ((*e).path.equals (deletions[j].reference)) + { + // matching deletion found + if (deletions[j].dob != 0) + { + csi->appendToChanges( + p,dob,deletions[j].dob,(*e).index); + } + break; + } + } + } + else if ((*e).isReference) + { + LOGINFO_2(INFO,"CSBuilder:Change was a reference from:%s to %s" , + (const char*)((*e).path), + (const char*)((*e).value)); + + DataObjectPtr pdob = rootDataObject->getDataObject((*e).value); + if (pdob != 0) + { + csi->appendToChanges(p,dob,pdob,(*e).index); + } + } + else + { + LOGINFO_1(INFO,"CSBuilder:Change was a many valued item:%s" , + (const char*)((*e).name)); + + csi->appendToChanges(p,dob,(*e).value,(*e).index); + } + + } + } + else + { + LOGERROR_1(WARNING,"CSBuilder:Failed to find object at %s", + (const char*)(changes[i].reference)); + } + } + } + catch (SDORuntimeException e) + { + LOGSDOEXCEPTION(ERROR,"CSBuilder:Error rebuilding change summary",e); + } + LOGEXIT(INFO,"CSBuilder:buildChangeSummary Exit3"); + } + +// ======================================================================== +// Parsing code +// ======================================================================== + + void ChangeSummaryBuilder::processStart( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + char cbuf[32]; + int i; + + LOGENTRY(INFO,"CSBuilder:processStart"); + + if (currentState == baseState) + { + if (localname.equalsIgnoreCase("create") || + localname.equalsIgnoreCase("delete")) + { + currentState = dealingWithCreateDelete; + // will be expecting a chars message to give the + // contents + + createDeletes.insert( + createDeletes.end(),createDelete(localname)); + + LOGINFO_1(INFO,"CSBuilder: Processing a %s",(const char*)localname); + LOGEXIT(INFO,"CSBuilder:processStart Exit1"); + return; + } + else + { + // we are starting a new change record here + currentState = dealingWithChange; + + // we expect the entry to have an sdo:ref, and possibly + // some attributes for the changed single-values + SDOXMLString ref = attributes.getValue("ref"); + + if (ref.isNull()) + { + LOGERROR(INFO,"CSBuilder:Problem with change reference"); + ref = SDOXMLString("Unknown"); + } + + currentChange = change(localname, ref); + + LOGINFO_2(INFO,"CSBuilder: Processing a change:%s:%s", + (const char*)localname, + (const char*)ref); + + currentLocation.clear(); + + if (ref.equals("#/")) + { + ref = SDOXMLString("#"); + } + + currentLocation.push_back(ref); + + // clear out the change state - if there was any. + + changeIndex = 0; + previousChange = SDOXMLString(""); + + // now insert any remaining attributes of this change + + for (i=0; i < attributes.size(); i++) + { + // push all the attributes into the change record. + SDOXMLString name = attributes[i].getName(); + if (!name.equalsIgnoreCase("ref")) + { + SDOXMLString value = attributes[i].getValue(); + currentChange.addAttribute( + changeAttribute(name,value)); + } + } + } + LOGEXIT(INFO,"CSBuilder:processStart Exit2"); + return; + } + + // We are not in the base state - we could be in a change or a deletion + // We are now dropping into an element, which could be either a many-valued + // primitive type, or a placeholder in list of deletions, or a deletion + // record. + + if (currentState == dealingWithChange) + { + + if (!previousChange.equals(localname)) + { + changeIndex = 0; + previousChange = localname; + } + else + { + changeIndex++; + } + + + sprintf(cbuf,"%d",changeIndex); + currentLocation.push_back(localname + "." + cbuf); + + // build the current location... + SDOXMLString curr_loc = ""; + + if (currentLocation.size() > 0) + { + for (int pi = 0; pi < currentLocation.size()-1; pi++) + { + curr_loc = curr_loc + currentLocation[pi]; + curr_loc = curr_loc + "/"; + } + curr_loc = curr_loc + currentLocation[currentLocation.size()-1]; + } + + LOGINFO_1(INFO,"CSBuilder: Dropping into an element of a change:%s", + (const char*)localname); + LOGINFO_1(INFO,"CSBuilder:currentLocation:%s", + (const char*)curr_loc); + + // First case - its a placeholder for an element in a list + // all we have to do is keep track of the list index. + + if (attributes.size() == 1) + { + SDOXMLString name = attributes[0].getName(); + if (name.equalsIgnoreCase("ref")) + { + currentState = dealingWithChangeElement; + currentChange.addElement( + changeElement(localname, curr_loc, + attributes[0].getValue(), true, false)); + + LOGEXIT(INFO,"CSBuilder:processStart Exit3"); + return; + } + } + + if (attributes.size() == 0) + { + // It could be a many-valued primitive, or + // a deletion with no attributes + // can we match the current path to a known deletion? + + bool isDelete = false; + + for (int i = 0; i < createDeletes.size(); i++) + { + if (createDeletes[i].type.equals("delete")) + { + if (curr_loc.equals(createDeletes[i].value)) + { + LOGINFO(INFO,"CSBuilder: An existing delete was found"); + + isDelete = true; + break; // out of the for loop + } + } + } + if (!isDelete) + { + LOGINFO(INFO,"CSBuilder: Change with no atts and not deletion- an element"); + + // and will get picked up by the 'characters' method. + currentState = dealingWithChangeElement; + currentLocalName = SDOXMLString(localname); + + LOGEXIT(INFO,"CSBuilder:processStart Exit4"); + return; + } + } + + currentChange.addElement(changeElement(localname, curr_loc, false, true)); + currentDeletion = deletion(localname, curr_loc); + + LOGINFO_2(INFO,"CSBuilder: Found a deletion:%s:%s", + (const char*)localname, + (const char*)curr_loc); + + + // clear out the change state - if there was any. + deletionLevel = 0; + deletionIndex = 0; + previousDeletion = SDOXMLString(""); + + currentState = dealingWithDeletion; + + // Now add the attributes if there are any. + + for (int i=0; i < attributes.size(); i++) + { + // push all the attributes into the deletion record. + SDOXMLString name = attributes[i].getName(); + if (!name.equalsIgnoreCase("ref")) + { + SDOXMLString value = attributes[i].getValue(); + currentDeletion.addAttribute( + deletionAttribute(name,value)); + } + } + + LOGEXIT(INFO,"CSBuilder:processStart Exit5"); + return; + } + if (currentState == dealingWithDeletion) + { + // we are already in a deletion, and entering an element + if (!previousDeletion.equals(localname)) + { + deletionIndex = 0; + previousDeletion = localname; + } + else + { + deletionIndex++; + } + + sprintf(cbuf,"%d",deletionIndex); + currentLocation.push_back(localname + "." + cbuf); + + // First case - its a placeholder for an element in a list + // all we have to do is keep track of the list index. + + if (attributes.size() == 1) + { + SDOXMLString name = attributes[0].getName(); + if (name.equalsIgnoreCase("ref")) + { + LOGINFO(INFO,"CSBuilder: The element is a reference to an existing entry in a list"); + + currentState = dealingWithDeletionElement; + + LOGEXIT(INFO,"CSBuilder:processStart Exit6"); + return; + } + } + + SDOXMLString curr_loc = ""; + if (currentLocation.size() > 0) + { + for (int pi = 0; pi < currentLocation.size()-1; pi++) + { + curr_loc = curr_loc + currentLocation[pi]; + curr_loc = curr_loc + "/"; + } + curr_loc = curr_loc + currentLocation[currentLocation.size()-1]; + } + + if (attributes.size() == 0) + { + // It could be a many-valued primitive, or + // a deletion with no attributes + // can we match the current path to a known deletion? + bool isDelete = false; + + for (int i = 0; i < createDeletes.size(); i++) + { + if (createDeletes[i].type.equals("delete")) + { + if (curr_loc.equals(createDeletes[i].value)) + { + LOGINFO(INFO,"CSBuilder: An existing delete was found - its a delete"); + + isDelete = true; + break; // out of the for loop + } + } + } + if (!isDelete) + { + LOGINFO(INFO,"CSBuilder: Found a change with no atts, and no deletion matches - its an element"); + + // and will get picked up by the 'characters' method. + currentState = dealingWithDeletionElement; + + LOGEXIT(INFO,"CSBuilder:processStart Exit7"); + return; + } + } + + + // We are starting a new deletion record + + LOGINFO_2(INFO,"CSBuilder: Found a deletion within a deletion:%s:%s", + (const char*)localname, (const char*)curr_loc); + + deletionList.push_back(deletionListElement(currentDeletion,deletionIndex, + previousDeletion)); + + currentDeletion = deletion(localname, curr_loc); + + // we are in a nested delete - so record the level such that we can pop state + // from the deletionList on coming back out of this. + + deletionLevel++; + //deletionIndex = 0; + previousDeletion = SDOXMLString(""); + + currentState = dealingWithDeletion; + + // Now add the attributes if there are any. + + for (int i=0; i < attributes.size(); i++) + { + // push all the attributes into the deletion record. + SDOXMLString name = attributes[i].getName(); + if (!name.equalsIgnoreCase("ref")) + { + SDOXMLString value = attributes[i].getValue(); + currentDeletion.addAttribute( + deletionAttribute(name,value)); + } + } + + LOGEXIT(INFO,"CSBuilder:processStart Exit8"); + return; + + } + } + +// ======================================================================== +// Parser ends an element +// ======================================================================== + + void ChangeSummaryBuilder::processEnd( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI) + { + + LOGENTRY(INFO,"CSBuilder:processEnd"); + + if (currentState == dealingWithCreateDelete) + { + // its already been completed by the characters message + currentState = baseState; + LOGEXIT(INFO,"CSBuilder:processEnd Exit1"); + return; + } + else if (currentState == dealingWithChangeElement) + { + // its already been completed by the characters message + currentState = dealingWithChange; + currentLocation.pop_back(); + LOGEXIT(INFO,"CSBuilder:processEnd Exit2"); + return; + } + else if (currentState == dealingWithDeletionElement) + { + // its already been completed by the characters message + currentState = dealingWithDeletion; + currentLocation.pop_back(); + LOGEXIT(INFO,"CSBuilder:processEnd Exit3"); + return; + } + else if (currentState == dealingWithChange) + { + // we should have finished, there are no nested changes + currentState = baseState; + changes.insert(changes.end(),currentChange); + currentLocation.clear(); + LOGEXIT(INFO,"CSBuilder:processEnd Exit4"); + return; + } + else if (currentState == dealingWithDeletion) + { + currentLocation.pop_back(); + deletions.insert(deletions.end(),currentDeletion); + if (deletionLevel > 0) + { + deletionLevel--; + if (deletionList.size() > 0) + { + int index = deletionIndex; + SDOXMLString path = currentDeletion.reference; + SDOXMLString name = currentDeletion.name; + + deletionListElement dl = deletionList[deletionList.size()-1]; + currentDeletion = dl.del; + deletionIndex = dl.index; + previousDeletion = dl.previous; + deletionList.pop_back(); + // and insert the inside deletion in the outside one. + currentDeletion.insertElement(deletionElement( + name, path,index)); + } + + LOGEXIT(INFO,"CSBuilder:processEnd Exit5"); + return; + } + else + { + currentState = dealingWithChange; + + LOGEXIT(INFO,"CSBuilder:processEnd Exit6"); + return; + } + } + } + +// ======================================================================== +// Parse characters +// ======================================================================== + + + void ChangeSummaryBuilder::processChars( + const SDOXMLString& chars) + { + LOGENTRY(INFO,"CSBuilder:processChars"); + + if (currentState == dealingWithCreateDelete) + { + // this is text within a create/delete indicating the + // value of the item deleted/created. + if (createDeletes.size() > 0) + { + createDeletes[createDeletes.size()-1].value = chars; + LOGINFO_1(INFO,"CSBuilder:characters create/delete:%s", + (const char*)chars); + } + LOGEXIT(INFO,"CSBuilder:processChars Exit1"); + return; + } + else if (currentState == dealingWithChangeElement) + { + changeElement ce = changeElement(currentLocalName, previousChange, false, false); + ce.value = chars; + ce.index = changeIndex; + currentChange.addElement(ce); + + LOGINFO_1(INFO,"CSBuilder: Characters in a change element:%s", + (const char *)chars); + + LOGEXIT(INFO,"CSBuilder:processChars Exit2"); + return; + } + else if (currentState == dealingWithDeletionElement) + { + deletionElement ce = deletionElement(previousDeletion); + ce.value = chars; + ce.index = deletionIndex; + currentDeletion.addElement(ce); + + LOGINFO_1(INFO,"CSBuilder: Characters in a deletion element:%s", + (const char *)chars); + + LOGEXIT(INFO,"CSBuilder:processChars Exit3"); + return; + } + + LOGINFO_1(INFO,"CSBuilder: Characters in nothing!!:%s", + (const char *)chars); + LOGEXIT(INFO,"CSBuilder:processChars Exit4"); + } + + +// ======================================================================== +// Classes holding temporary parsed information +// ======================================================================== + + + ///////////////////////////////////////////////// + // An element in the list of creates/deletes + ///////////////////////////////////////////////// + + createDelete::createDelete() + { + } + + createDelete::createDelete(SDOXMLString intype) : + type(intype) + { + indexshift = 0; + } + + createDelete::~createDelete() + { + } + + ///////////////////////////////////////////////// + // An element in the list of changes + ///////////////////////////////////////////////// + + changeAttribute::changeAttribute() + { + } + + changeAttribute::changeAttribute(SDOXMLString inname, + SDOXMLString invalue): name(inname), value(invalue) + { + } + + changeAttribute::~changeAttribute() + { + } + + changeElement::changeElement() + { + } + + changeElement::changeElement(SDOXMLString inname, + SDOXMLString inpath, bool isRef, bool isDel) + : name(inname) , path(inpath) + { + isReference=isRef; + isDeletion= isDel; + } + + changeElement::changeElement(SDOXMLString inname, + SDOXMLString inpath, + SDOXMLString invalue, bool isRef, bool isDel) + : name(inname), value(invalue), path(inpath) + { + isReference=isRef; + isDeletion= isDel; + } + + changeElement::~changeElement() + { + } + + change::change() + { + } + + change::change(SDOXMLString inname, SDOXMLString ref): + name(inname), reference(ref) + { + } + + void change::addAttribute(changeAttribute ca) + { + attributes.insert(attributes.end(),ca); + } + + void change::addElement(changeElement ce) + { + elements.insert(elements.end(),ce); + } + + ///////////////////////////////////////////////// + // An element in the list of deletions + ///////////////////////////////////////////////// + + deletionAttribute::deletionAttribute() + { + } + + deletionAttribute::deletionAttribute(SDOXMLString inname, + SDOXMLString invalue): name(inname), value(invalue) + { + } + + deletionAttribute::~deletionAttribute() + { + } + + deletionElement::deletionElement() + { + } + + deletionElement::deletionElement(SDOXMLString inname) + : name(inname) + { + isDeletion = false; + } + + deletionElement::deletionElement(SDOXMLString inname, + SDOXMLString inpath, int inindex) + : name(inname), value(inpath), index(inindex) + { + isDeletion = true; + } + + deletionElement::~deletionElement() + { + } + + deletion::deletion() + { + } + + deletion::deletion(SDOXMLString inname, SDOXMLString ref): + name(inname), reference(ref) + { + completedprocessing=false; + } + + void deletion::addAttribute(deletionAttribute ca) + { + attributes.insert(attributes.end(),ca); + } + + void deletion::addElement(deletionElement ce) + { + elements.insert(elements.end(),ce); + } + + void deletion::insertElement(deletionElement ce) + { + elements.insert(elements.begin(),ce); + } + + deletionListElement::deletionListElement() + { + } + + deletionListElement::deletionListElement( + deletion in_del, + int in_index, + SDOXMLString in_prev): + del(in_del), index(in_index), previous(in_prev) + { + } + + } // End - namespace sdo +} // End - namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.h new file mode 100644 index 0000000000..903ef0f427 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.h @@ -0,0 +1,300 @@ +/* + * + * 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 $ */ + +#ifndef _CHANGESUMMARYBUILDER_H_ +#define _CHANGESUMMARYBUILDER_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SAX2Parser.h" +#include "commonj/sdo/DataFactory.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/SAX2Namespaces.h" +#include "commonj/sdo/PropertySetting.h" +#include "commonj/sdo/ChangeSummaryImpl.h" + + +#include + +namespace commonj +{ + namespace sdo + { + +/** + * createDelete is a class holding a creation or deletion in + * a change summary builder. + * When rebuilding a change summary from the serialized version + * creates and deletes are stored in these until they can be + * converted into a change summary. + */ + + + class createDelete + { + public: + createDelete(); + createDelete(SDOXMLString intype); + virtual ~createDelete(); + SDOXMLString type; + SDOXMLString value; + int indexshift; + }; + +/** + * changeAttribute is a class holding a changed attribute in a + * change summary builder. + * When rebuilding a change summary from the serialized version + * changes are stored in these until they can be + * converted into a change summary. + */ + + class changeAttribute + { + public: + changeAttribute(); + changeAttribute(SDOXMLString inname, + SDOXMLString invalue); + virtual ~changeAttribute(); + SDOXMLString name; + SDOXMLString value; + }; + +/** + * changeElement is a class holding a changed element in a change summary builder. + * When rebuilding a change summary from the serialized version + * changes are stored in these until they can be + * converted into a change summary. + */ + class changeElement + { + public: + changeElement(); + changeElement(SDOXMLString inname, + SDOXMLString inpath, bool isRef, bool isDel); + changeElement(SDOXMLString inname, + SDOXMLString inpath, + SDOXMLString invalue, bool isRef, bool isDel); + virtual ~changeElement(); + SDOXMLString name; + SDOXMLString value; + SDOXMLString path; + bool isReference; + bool isDeletion; + int index; + }; + +/** + * change is a class holding a change in a change summary builder. + * When rebuilding a change summary from the serialized version + * changes are stored in these until they can be + * converted into a change summary. + * Changes consist of changeAttributes and changeElements + */ + + + class change + { + public: + change(); + change(SDOXMLString inname, SDOXMLString ref); + void addAttribute(changeAttribute ca); + void addElement(changeElement ce); + std::list attributes; + std::list elements; + SDOXMLString name; + SDOXMLString reference; + }; + +/** + * deletionAttribute is a class holding a deletion attribute in a change summary builder. + * When rebuilding a change summary from the serialized version + * deletions are stored in these until they can be + * converted into a change summary. + * Changes consist of deletionAttributes and deletionElements + */ + class deletionAttribute + { + public: + deletionAttribute(); + deletionAttribute(SDOXMLString inname, + SDOXMLString invalue); + virtual ~deletionAttribute(); + SDOXMLString name; + SDOXMLString value; + }; + +/** + * deletionElement is a class holding a deletion element in a change summary builder. + * When rebuilding a change summary from the serialized version + * deletions are stored in these until they can be + * converted into a change summary. + * Changes consist of deletionAttributes and deletionElements + */ + class deletionElement + { + public: + deletionElement(); + deletionElement(SDOXMLString inname); + deletionElement(SDOXMLString inname, + SDOXMLString inpath, int inindex); + virtual ~deletionElement(); + SDOXMLString name; + SDOXMLString value; + bool isDeletion; + int index; + }; + + +/** + * deletions is a class holding a deletion in a change summary builder. + * When rebuilding a change summary from the serialized version + * deletions are stored in these until they can be + * converted into a change summary. + * Changes consist of deletionAttributes and deletionElements + */ + + class deletion + { + public: + deletion(); + deletion(SDOXMLString inname, SDOXMLString ref); + void addAttribute(deletionAttribute ca); + void addElement(deletionElement ce); + void insertElement(deletionElement ce); + SDOXMLString name; + SDOXMLString reference; + DataObjectPtr dob; /* the recreated one*/ + std::list attributes; + std::list elements; + bool completedprocessing; + }; + + /** deletionListElement is an item in a list of deletions in a change summary builder. + * + * All the deletions are stored whilst rebuilding a change + * summary, then applied. These list elements hold them. + */ + + class deletionListElement + { + public: + deletionListElement(); + deletionListElement(deletion in_del, int in_index, SDOXMLString in_prev); + SDOXMLString previous; + deletion del; + int index; + }; + +/** + * The ChangeSummaryBuilder recreates a change summary from the + * XML representations of the changes, creations and deletions. + * It does this by populating a list of changes as though they had + * been applied to the current data graph. + */ + + class ChangeSummaryBuilder + { + + + public: + + enum CsState + { + baseState, + dealingWithCreateDelete, + dealingWithChange, + dealingWithChangeElement, + dealingWithDeletion, + dealingWithDeletionElement + }; + + + ChangeSummaryBuilder( + DataFactoryPtr df, + DataObjectPtr& rootDO); + + virtual ~ChangeSummaryBuilder(); + + + virtual void processStart( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void processChars( + const SDOXMLString& chars); + + virtual void processEnd( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI); + + virtual void buildChangeSummary( + DataObjectPtr changeSummaryDO); + + virtual void populateDeletion(ChangeSummaryImpl* csi, DataObjectPtr dob, + int index); + + virtual void handleDeletion( + ChangeSummaryImpl* csi, + int currentIndex, + DataObjectPtr cont, + SDOXMLString path, + SDOXMLString prop); + + virtual void handleDeletion(ChangeSummaryImpl* csi, + int index, + SDOXMLString path); + + void shiftIndices(int index, int delta); + + SDOXMLString shiftedIndex(int index); + + + private: + DataFactoryPtr dataFactory; + DataObjectPtr& rootDataObject; + + CsState currentState; + + std::vector deletionList; + std::vector currentLocation; + std::vector createDeletes; + + std::vector changes; + change currentChange; + SDOXMLString previousChange; + SDOXMLString currentLocalName; + int changeIndex; + + std::vector deletions; + deletion currentDeletion; + SDOXMLString previousDeletion; + int deletionIndex; + int deletionLevel; + + + }; + } // End - namespace sdo +} // End - namespace commonj + +#endif //_CHANGESUMMARYBUILDER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.cpp new file mode 100644 index 0000000000..1b2023a746 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.cpp @@ -0,0 +1,1587 @@ +/* + * + * 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: 2006/02/17 16:01:05 $ */ + +#include "commonj/sdo/ChangeSummaryImpl.h" + +#include "commonj/sdo/DataObjectImpl.h" + +#include "commonj/sdo/Property.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/TypeList.h" +#include "commonj/sdo/Sequence.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/DataObjectList.h" +#include "commonj/sdo/SDORuntimeException.h" +#include "commonj/sdo/Logging.h" + + +namespace commonj{ +namespace sdo{ + + + // Initializes an empty change summary, so we know one is required + ChangeSummaryImpl::ChangeSummaryImpl() + { + logging = false; + } + + ChangeSummaryImpl::~ChangeSummaryImpl() + { + //Force logging off or bad things will happen! + logging = false; + + /** + * These remove the logitems, so cause the + * refcounts of the data objects to drop, and + * delete the settings lists. + */ + deletedMap.clear(); + createdMap.clear(); + changedMap.clear(); + changedDataObjects.clear(); + } + + SequencePtr ChangeSummaryImpl::getOldSequence(DataObjectPtr dob) + { + DELETELOG_MAP::iterator deleteLogIter; + + DataObject* ob = dob; + deleteLogIter = deletedMap.find((DataObjectImpl*)ob); + + if (deleteLogIter != deletedMap.end()) + { + return (deleteLogIter->second).getSequence(); + } + + CHANGELOG_MAP::iterator changeLogIter; + + changeLogIter = changedMap.find((DataObjectImpl*)ob); + + if (changeLogIter != changedMap.end()) + { + return (changeLogIter->second).getSequence(); + } + return NULL; + + } + + void ChangeSummaryImpl::removeFromChanges(DataObjectImpl* ob) + { + int i = changedDataObjects.size(); + + /** + * this is used to remove only the most recent change. + * A deletion has occurred, and there was a creation, so + * we remove the creation. There cannot be a change after the + * creation, so the last entry in changes is the creation. + * there could be a previous deletion of the same object, so + * we should not clear the whole list. + */ + while (i > 0) + { + i--; + + + if (changedDataObjects.get(i) == ob) + { + changedDataObjects.remove(i); + return; + } + } + } + + DataObjectPtr ChangeSummaryImpl::matchDeletedObject(SDOXMLString path) + { + DELETELOG_MAP::iterator deleteLogIter; + + for (deleteLogIter = deletedMap.begin(); + deleteLogIter != deletedMap.end(); ++deleteLogIter) + { + if ( + path.equals( + SDOXMLString((deleteLogIter->second).getOldXpath()) + ) + ) + { + return deleteLogIter->first; + } + } + return DataObjectPtr(0); + } + + + + void ChangeSummaryImpl::logDeletion(DataObjectImpl* ob, + DataObjectImpl* container, const Property& prop, + const char* oldpath, bool loggingChildren) + { + LOGINFO_1(INFO,"ChangeSummary:LogDelete:%s", + ob->getType().getName()); + + /** + * The object is about to be deleted, so we need + * all its property Settings recorded in the list + * of changed data objects. We also need to know + * its old container, container property, and + * value. + */ + + // find any properties which are data objects, log their + // deletion first. + + int i; + + // Trace for change summaries + + LOGINFO_2(INFO,"ChangeSummary logs a deletion of property %s type %s", + prop.getName(), prop.getType().getName()); + + + CREATELOG_MAP::iterator createLogIter; + CHANGELOG_MAP::iterator changeLogIter; + + createLogIter = createdMap.find(ob); + if (createLogIter != createdMap.end()) + { + // would need to remove it from the created list. + LOGINFO(INFO,"ChangeSummary: The deletion was already created - just removing it"); + + removeFromChanges(ob); + createdMap.erase(ob); + // find the container in the change map. + + changeLogIter = changedMap.find(container); + if (changeLogIter != changedMap.end()) + { + // would hope there was an entry + int index; + if (prop.isMany()) + { + DataObjectList& dl = container->getList(prop); + for (index=0;indexsecond).getSettings(); + + for (int j=0 ; j < slist.size();j++) + { + if (!strcmp(slist.get(j)->getProperty().getName(), + prop.getName()) + + + && slist.get(j)->getIndex() == + index) + { + // these are settings of the same prop/index, we + // need to remove this entry + slist.remove(j); + // and if this was the only change, then we + // need to remoe the container from the changes + if (slist.size() == 0) + { + changedMap.erase(container); + removeFromChanges(container); + } + break; // must not continue - size is now wrong + } + } + } + return; + } + + DELETELOG_MAP::iterator deleteLogIter; + + deleteLogIter = deletedMap.find(ob); + + if (deleteLogIter != deletedMap.end()) + { + LOGINFO(INFO,"ChangeSummary - delete an already deleted object"); + return; + } + + PropertyList pl = ob->getInstanceProperties(); + DataObject* dob; + + if (loggingChildren) + { + for (i=0; i < pl.size(); i++) + { + if (pl[i].getType().isDataObjectType()) + { + if (pl[i].isMany()) { + DataObjectList& dl = ob->getList(pl[i]); + for (int j = dl.size() - 1; j>=0; j--) + { + dob = dl[j]; + if (dob)logDeletion((DataObjectImpl*)dob,ob,pl[i], + dob->objectToXPath(), true); + } + } + else { + dob = ob->getDataObject(pl[i]); + if (dob)logDeletion((DataObjectImpl*)(dob),ob,pl[i], + dob->objectToXPath(), true); + } + } + } + } + + + // build a Setting list for the set properties + + deletedMap.insert(make_pair(ob,deleteLogItem( + (DataObject*)ob, prop,ob->getSequence(), + oldpath, + container))); + deleteLogIter = deletedMap.find(ob); + SettingList& sl = (deleteLogIter->second).getSettings(); + + void* value; + unsigned int len; + + for (i=0; i < pl.size(); i++) + { + //if (!pl[i].getType().isDataType()) continue; + + if (!ob->isSet(pl[i])) + { + sl.append(new Setting(false,false, 0,0,pl[i],0)); + continue; + } + if (pl[i].isMany()) + { + + DataObjectList& dol = ob->getList(pl[i]); + for (int j=dol.size()-1;j >= 0; j--) + { + // needs to be the data object in cases where... + if (pl[i].getType().isDataType()) { + setPropValue(&value,&len,ob,pl[j]); + sl.append(new Setting(true,false,value,len,pl[i],j)); + } + else { + value = (void*)dol[j]; + sl.append(new Setting(true,false,value,0,pl[i],j)); + } + } + } + else + { + setPropValue(&value,&len,ob,pl[i]); + sl.append(new Setting(true,ob->isNull(pl[i]),value,len,pl[i],0)); + } + + } + + + changeLogIter = changedMap.find(ob); + if (changeLogIter != changedMap.end()) + { + // we have already changed this object, so we need the old values + // from the change, and to remove the changed map entry + LOGINFO(INFO,"ChangeSummary found a deleted item in then changes"); + + (deleteLogIter->second).setSequence((changeLogIter->second).getSequence()); + + SettingList& slist = (changeLogIter->second).getSettings(); + + for (int j=0 ; j < slist.size();j++) + { + for (int i=0;igetProperty().getName(), + sl.get(i)->getProperty().getName()) + + + && slist.get(j)->getIndex() == + sl.get(i)->getIndex()) + { + // these are settings of the same prop/index, we + // need the old value to get transferred. + sl.remove(i); + sl.insert(i,new Setting(*(slist.get(j)))); + + } + } + } + LOGINFO(INFO, "ChangeSummary: Erasing from changes"); + changedMap.erase(ob); + } + // We append deleted objects to the changed list - this list gives + // those data objects which have been affected - we then look at their + // current and old property values to find out whether they have been + // deleted or created. + else + { + changedDataObjects.append(ob, ChangedDataObjectList::Delete); + } + + LOGINFO(INFO,"ChangeSummary: Deletion being added to the list"); + + return; + } + + void ChangeSummaryImpl::logCreation(DataObjectImpl* ob, + DataObjectImpl* container, const Property& prop) + { + + LOGINFO_1(INFO,"ChangeSummary:LogCreate of type:%s",ob->getType().getName()); + + // These we just need to record the fact that they + // are present. We dont have an original value to + // store. + // log a change to the container of this object + // + + DELETELOG_MAP::iterator deleteLogIter; + + deleteLogIter = deletedMap.find(ob); + if (deleteLogIter != deletedMap.end()) + { + // can happen - a delete is really a removal from the tree. + // Adding back an object which you held a pointer to is just + // a re-creation. + LOGINFO(INFO,"ChangeSummary: Adding in a pre-deleted object"); + } + + // we should check if this object has sub-objects, they will + // need to be created too + + PropertyList pl = ob->getInstanceProperties(); + for (int p=0;pisSet(thisprop)) + { + DataObject* dp; + + if (thisprop.isMany()) + { + DataObjectList& dol = ob->getList(thisprop); + for (int ds = 0; ds < dol.size(); ds++) + { + dp = dol[ds]; + if (!dp) continue; + logCreation((DataObjectImpl*)dp,ob,thisprop); + } + } + else + { + dp = ob->getDataObject(thisprop); + if (dp) + { + logCreation((DataObjectImpl*)dp,ob,thisprop); + } + } + } + } + } + + CREATELOG_MAP::iterator createLogIter; + + createLogIter = createdMap.find(ob); + if (createLogIter != createdMap.end()) + { + // this could be a reference - we dont add it twice. + LOGINFO(INFO,"ChangeSummary: No need to log creation twice"); + return; + } + + // We append created objects to the changed list - this list gives + // those data objects which have been affected - we then look at their + // current and old property values to find out whether they have been + // deleted or created. + changedDataObjects.append(ob, ChangedDataObjectList::Create); + + createdMap.insert(make_pair(ob,createLogItem(ob->getType(),prop,container))); + return; + } + + + void ChangeSummaryImpl::setPropValue(void** value, unsigned int* len, DataObjectImpl* ob, const Property& prop) + { + + switch (prop.getTypeEnum()) + { + case Type::BooleanType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = 0; + } + else + { + *(long*)*value = (long)ob->getBoolean(prop); + } + break; + case Type::ByteType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = 0; + } + else + { + *(long*)*value = (long)ob->getByte(prop); + } + break; + case Type::CharacterType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = 0; + } + else + { + *(long*)*value = (long)ob->getCharacter(prop); + } + break; + case Type::IntegerType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = 0; + } + else + { + *(long*)*value = (long)ob->getInteger(prop); + } + break; + case Type::ShortType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = 0; + } + else + { + *(long*)*value = (long)ob->getShort(prop); + } + break; + case Type::DoubleType: + *value = new long double; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long double*)value = (long double)0; + } + else + { + *(long double*)*value = (long double)ob->getDouble(prop); + } + break; + case Type::FloatType: + *value = new float; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(float*)value = (float)0; + } + else + { + *(float*)*value = (float)ob->getFloat(prop); + } + break; + case Type::LongType: + *value = new int64_t; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(int64_t*)value = (int64_t)0; + } + else + { + *(int64_t*)*value = (int64_t)ob->getLong(prop); + } + break; + case Type::DateType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = (long)0; + } + else + { + *(long*)*value = (long)(ob->getDate(prop).getTime()); + } + break; + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::StringType: + case Type::UriType: + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *value = 0; + *len = 0; + } + else + { + unsigned int siz = ob->getLength(prop); + if (siz > 0) { + *value = new wchar_t[siz]; + *len = ob->getString(prop,(wchar_t*)*value, siz); + } + else { + *value = 0; + *len = 0; + } + } + break; + case Type::BytesType: + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *value = 0; + *len = 0; + } + else + { + unsigned int siz = ob->getLength(prop); + if (siz > 0) { + *value = new char[siz]; + *len = ob->getBytes(prop,(char*)*value, siz); + } + else { + *value = 0; + *len = 0; + } + } + break; + case Type::OtherTypes: + case Type::DataObjectType: + case Type::ChangeSummaryType: + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *value = 0; + } + else + { + *value = (void*)ob->getDataObject(prop); + } + break; + default: + SDO_THROW_EXCEPTION("(ChangeSummary)setPropValue" , + SDOUnsupportedOperationException, "Type is not recognised and cannot be saved"); + break; + } + } + + void ChangeSummaryImpl::setManyPropValue(void** value, unsigned int *len, DataObjectImpl* ob, + DataObjectImpl* listob, const Property& prop) + { + + switch (prop.getTypeEnum()) + { + case Type::BooleanType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = (long)0; + } + else + { + *(long*)*value = (long)listob->getBoolean(); + } + break; + case Type::ByteType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = (long)0; + } + else + { + *(long*)*value = (long)listob->getByte(); + } + break; + case Type::CharacterType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = (long)0; + } + else + { + *(long*)*value = (long)listob->getCharacter(); + } + break; + case Type::IntegerType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = (long)0; + } + else + { + *(long*)*value = (long)listob->getInteger(); + } + break; + case Type::ShortType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = (long)0; + } + else + { + *(long*)*value = (long)listob->getShort(); + } + break; + case Type::DoubleType: + *value = new long double; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long double*)value = (long double)0; + } + else + { + *(long double*)*value = (long double)listob->getDouble(); + } + break; + case Type::FloatType: + *value = new float; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(float*)value = (float)0; + } + else + { + *(float*)*value = (float)listob->getFloat(); + } + break; + case Type::LongType: + *value = new int64_t; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(int64_t*)value = (int64_t)0; + } + else + { + *(int64_t*)*value = (int64_t)listob->getLong(); + } + break; + case Type::DateType: + *value = new long; + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *(long*)value = (long)0; + } + else + { + *(long*)*value = (long)(listob->getDate().getTime()); + } + break; + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::StringType: + case Type::UriType: + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *value = 0; + *len = 0; + } + else + { + unsigned int siz = listob->getLength(prop); + if (siz > 0) + { + *value = new wchar_t[siz]; + *len = listob->getString((wchar_t*)*value, siz); + } + } + break; + case Type::BytesType: + if (!ob->isSet(prop) && !prop.isDefaulted()) + { + *value = 0; + *len = 0; + } + else + { + unsigned int siz = listob->getLength(prop); + if (siz > 0) + { + *value = new char[siz]; + *len = listob->getBytes((char*)*value, siz); + } + } + break; + + case Type::OtherTypes: + case Type::DataObjectType: + case Type::ChangeSummaryType: + SDO_THROW_EXCEPTION("(ChangeSummary)setManyPropValue" , + SDOUnsupportedOperationException, "A many prop data object value is being set"); + //*value = (void*)ob; + break; + default: + SDO_THROW_EXCEPTION("(ChangeSummary)setManyPropValue" , + SDOUnsupportedOperationException, "Type is not recognised and cannot be saved"); + break; + } + } + + void ChangeSummaryImpl::logChange(DataObjectImpl* ob, + const Property& prop) + { + // need to record the old value, unless the object + // is in the created list, in which case we store + // nothing. + + LOGINFO_1(INFO,"ChangeSummary:LogChange %s",prop.getName()); + + CREATELOG_MAP::iterator createLogIter; + + unsigned int len; + + createLogIter = createdMap.find(ob); + if (createLogIter != createdMap.end()) + { + LOGINFO(INFO,"ChangeSummary: no need to log change"); + return; + } + + DELETELOG_MAP::iterator deleteLogIter; + + deleteLogIter = deletedMap.find(ob); + if (deleteLogIter != deletedMap.end()) + { + LOGINFO(INFO,"ChangeSummary: no need to log change - already deleted"); + return; + } + + CHANGELOG_MAP::iterator changeLogIter; + + changeLogIter = changedMap.find(ob); + if (changeLogIter == changedMap.end()) + { + LOGINFO(INFO,"ChangeSummary: A change to an object which was not previously changed"); + changedMap.insert(make_pair(ob, changeLogItem(ob->getType(),prop, + ob->getSequence(), ob))); + changedDataObjects.append(ob, ChangedDataObjectList::Change); + } + else + { + LOGINFO(INFO,"ChangeSummary: A change to an object which has already been changed"); + } + + changeLogIter = changedMap.find(ob); + if (changeLogIter == changedMap.end()) + { + LOGINFO(INFO,"ChangeSummary: Problem - no changes to append to"); + return; + } + + SettingList& slist = (changeLogIter->second).getSettings(); + + void* value; + + for (int i=0;igetProperty().getName(),prop.getName())) + { + LOGINFO(INFO,"ChangeSummary: Change of a property which was already changed - ignore"); + return; + } + } + + // need to check if the property has already been set, + // There could be many Settings if the item was a list, + // but we dont care here about that. + + if (!ob->isSet(prop)) + { + slist.append(new Setting(false,false,0,0,prop,0)); + return; + } + + if (prop.isMany()) + { + // We are appending, not modifying + // we need to store the list as it was. + + LOGINFO(INFO,"ChangeSummary: logging a change to a many valued property"); + + DataObjectList& dol = ob->getList(prop); + if (dol.size() == 0) + { + slist.append(new Setting(false,false,0,0,prop,0)); + return; + } + for (int i=0;i< dol.size(); i++) + { + DataObject* dob = dol[i]; + if (prop.getType().isDataType()) { + setManyPropValue(&value, &len, (DataObjectImpl*)ob, + (DataObjectImpl*)dob, prop); + slist.append(new Setting(true,false,value,len,prop,i)); + } + else{ + value = (void*)dob; + slist.append(new Setting(true,false,value,0,prop,i)); + } + } + } + else + { + setPropValue(&value,&len,ob,prop); + slist.append(new Setting(true,ob->isNull(prop),value,len,prop,0)); + } + + return; + } + + + + void ChangeSummaryImpl::undoChanges() + { + // TODO + /* Plan for undoChanges: + + There are three lists of information. + The created list is a list of data objects which were created during logging. + These data objects will have current state, and will represent the value of a + property of their containing object. As they had no state before they were + created, the undoChanges needs to unSet the property values for these first. + + The deleted list contains a list of objects which were deleted. The objects + themselves are not valid, but can be used to obtain a list of settings + representing the values of the properties at the time the object was + deleted. Here are recursive create is needed to re-create an object + similar to the deleted one, and set its properties using the settings. + The deleted object may well contain other deleted objects as its + property values, so these too will have entries in the deleted list, and + need to be found and re-created. + + The changed list holds a list of settings for properties of data objects + which have been changed. These objects may also be in the deleted list, so# + may not be valid. They will not be in the created list. First check that + the object is not in the deleted list. If it is, then the changes need to + be applied to the data object which we created when undoing the deleted list, + otherwise we just apply the change to a data object which exists. + */ + + /* what about items in many-valued properties? I guess we need to check and + search the values returned for the list to find the object to delete*/ + LOGINFO(INFO,"ChangeSummary UndoChanges not implemented"); + return; + } + + + void ChangeSummaryImpl::beginLogging() + { + + // Clear down the lists and their contents, if there was already + // some activity. + + if (logging) endLogging(); + changedMap.clear(); + deletedMap.clear(); + createdMap.clear(); + changedDataObjects.clear(); + + LOGINFO(INFO,"ChangeSummary: logging switched on"); + + logging = true; + return; + } + + void ChangeSummaryImpl::endLogging() + { + logging = false; + + LOGINFO(INFO,"ChangeSummary: logging switched off"); + + return; + } + + bool ChangeSummaryImpl::isLogging() + { + return logging; + } + +/////////////////////////////////////////////////////////////////////////////////////// + void ChangeSummaryImpl::debugPrint(){} +// { +// ChangedDataObjectList& dol = getChangedDataObjects(); +// +// CREATELOG_MAP::iterator createLogIter; +// DELETELOG_MAP::iterator deleteLogIter; +// CHANGELOG_MAP::iterator changeLogIter; +// +// for (int i=0;igetLongValue(); +// break; +// case Type::DateType: +// cout << "Date:" << sl[j].getDateValue().getTime(); +// break; +// case Type::BigDecimalType: +// case Type::BigIntegerType: +// case Type::StringType: +// case Type::UriType: +// { +// unsigned int len = sl[j].getLength(); +// if (len > 0) { +// wchar_t* buf = new wchar_t[len]; +// len = sl[j].getStringValue(buf,len); +// cout <<"String type" ; +// for (int i=0;i 0) { +// char* buf = new char[len]; +// len = sl[j].getBytesValue(buf,len); +// cout <<"Bytes type" ; +// for (int i=0;isecond).getSettings()); + } + changeLogIter = changedMap.find((DataObjectImpl*)dob); + if (changeLogIter != changedMap.end()){ + return ((changeLogIter->second).getSettings()); + } + SDO_THROW_EXCEPTION("(ChangeSummary(getOldValues" , + SDOIndexOutOfRangeException, "Data object is not in the change summary"); + } + + + + const char* ChangeSummaryImpl::getOldXpath(RefCountingPointer dol) + { + DELETELOG_MAP::iterator deleteLogIter; + DataObject* dob = dol; + deleteLogIter = deletedMap.find((DataObjectImpl*)dob); + if (deleteLogIter != deletedMap.end()){ + return ((deleteLogIter->second).getOldXpath()); + } + return 0; + } + + + const Setting& ChangeSummaryImpl::getOldValue(DataObjectPtr dol, const Property& property) + { + DELETELOG_MAP::iterator deleteLogIter; + CHANGELOG_MAP::iterator changeLogIter; + DataObject* dob = dol; + + deleteLogIter = deletedMap.find((DataObjectImpl*)dob); + if (deleteLogIter != deletedMap.end()) + { + SettingList& sl = (deleteLogIter->second).getSettings(); + for (int i=0;i < sl.size(); i++) + { + if (!strcmp(property.getName(), + sl.get(i)->getProperty().getName())) + return (*sl.get(i)); + } + } + + changeLogIter = changedMap.find((DataObjectImpl*)dob); + if (changeLogIter != changedMap.end()) + { + SettingList& sl = (changeLogIter->second).getSettings(); + for (int i=0;i < sl.size(); i++) + { + if (!strcmp(property.getName(), + sl.get(i)->getProperty().getName())) + return (*sl.get(i)); + } + } + + SDO_THROW_EXCEPTION("(ChangeSummary(getOldValue)" , + SDOIndexOutOfRangeException, "Data object is not in the change summary"); + } + + DataObjectPtr ChangeSummaryImpl::getOldContainer(DataObjectPtr dol) + { + CHANGELOG_MAP::iterator changeLogIter; + DataObject* dob = dol; + changeLogIter = changedMap.find((DataObjectImpl*)dob); + + if (changeLogIter != changedMap.end()) + { + return (changeLogIter->second).getOldContainer(); + } + return 0; + } + + const Property& ChangeSummaryImpl::getOldContainmentProperty(DataObjectPtr dol) + { + CHANGELOG_MAP::iterator changeLogIter; + DataObject* dob = dol; + changeLogIter = changedMap.find((DataObjectImpl*)dob); + + if (changeLogIter == changedMap.end()) + { + SDO_THROW_EXCEPTION("(ChangeSummary(getOldContainmentProperty)" , + SDOIndexOutOfRangeException, "Data object is not in the change summary"); + } + return (changeLogIter->second).getOldContainmentProperty(); + } + + + // + // Creations and deletions can be just logged in the normal + // way. Changes have to be handled specially, because we + // need the old value, but the data object now contains the + // current value. + // + + void ChangeSummaryImpl::appendToCreations(const Property& p, + DataObjectPtr dob, DataObjectPtr cont) + { + LOGINFO(INFO,"ChangeSummary: Appending to creations list"); + DataObject* pdob = (DataObject*)dob; + DataObject* pcont = (DataObject*)cont; + logCreation((DataObjectImpl*)pdob,(DataObjectImpl*)pcont,p); + return; + } + + + void ChangeSummaryImpl::appendToDeletions(const Property& p, + DataObjectPtr dob, DataObjectPtr cont, const char* oldpath ) + { + DELETELOG_MAP::iterator deleteLogIter; + + LOGINFO_1(INFO,"ChangeSummary:Appending to deletions list %s",oldpath); + + DataObject* pdob = (DataObject*)dob; + DataObject* pcont = (DataObject*)cont; + logDeletion((DataObjectImpl*)pdob,(DataObjectImpl*)pcont,p, + oldpath, false); + return; + } + + + unsigned int ChangeSummaryImpl::stringConvert(char** value, const char* c, const Property& p) + { + // code duplicated from typeimpl + switch (p.getTypeEnum()) + { + case Type::BooleanType: + *value = new char[sizeof(long)]; + if ((c == 0) || strcmp(c,"true")) + { + *(long*)*value = 0; + } + else + { + *(long*)*value = 1; + } + return sizeof(long); + + case Type::ByteType: + case Type::CharacterType: + case Type::IntegerType: + case Type::ShortType: + *value = new char[sizeof(long)]; + *(long*)*value = atoi(c); + return sizeof(long); + + case Type::DoubleType: + *value = new char[sizeof(long double)]; + // TODO - atof not suitable here + *(long double*)*value = (long double)atof(c); + return sizeof(long double); + + case Type::FloatType: + *value = new char[sizeof(float)]; + *(float*)*value = (float)atof(c); + return sizeof(float); + + case Type::LongType: + *value = new char[sizeof(int64_t)]; +#if defined(WIN32) || defined (_WINDOWS) + *(int64_t*)*value = (int64_t)_atoi64(c); +#else + *(int64_t*)*value = (int64_t)strtoll(c, NULL, 0); +#endif + return sizeof(int64_t); + + case Type::DateType: + *value = new char[sizeof(time_t)]; + *(time_t*)*value = (time_t)atoi(c); + return sizeof(time_t); + + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::StringType: + case Type::UriType: + { + char* vw = new char[(strlen(c)+1)*sizeof(wchar_t)]; + wchar_t* pvw = (wchar_t*)vw; + for (int i=0;i< strlen(c);i++) + { + pvw[i] = (wchar_t)c[i]; + } + pvw[strlen(c)] = 0; + *value = vw; + return strlen(c); + } + break; + case Type::BytesType: + { + char* vc = new char[strlen(c)+1]; + for (int i=0;i< strlen(c);i++) + { + vc[i] = (char)c[i]; + } + vc[strlen(c)] = 0; + *value = vc; + return strlen(c); + } + break; + + case Type::OtherTypes: + case Type::DataObjectType: + case Type::ChangeSummaryType: + default: + { + string msg("Cannot set CString on object of type:"); + msg += p.getType().getName(); + SDO_THROW_EXCEPTION("setString" , + SDOInvalidConversionException, msg.c_str()); + break; + } + } + return 0; + } + + void ChangeSummaryImpl::appendToChanges(const Property& p, + DataObjectPtr dob , SDOXMLString value, int index) + { + CHANGELOG_MAP::iterator changeLogIter; + + LOGINFO(INFO,"ChangeSummary Appending to changes list"); + + DataObject* pdob = (DataObject*)dob; + + + changeLogIter = changedMap.find((DataObjectImpl*)pdob); + if (changeLogIter == changedMap.end()) + { + + LOGINFO(INFO,"ChangeSummary: A change to an object which was not previously changed"); + + changedMap.insert(make_pair((DataObjectImpl*)pdob, + changeLogItem(dob->getType(),p, + dob->getSequence(), (DataObjectImpl*)pdob))); + changedDataObjects.append((DataObjectImpl*)pdob, + ChangedDataObjectList::Change); + } + + changeLogIter = changedMap.find((DataObjectImpl*)pdob); + if (changeLogIter == changedMap.end()) + { + + LOGINFO(INFO,"ChangeSummary: no changes to append to"); + + return; + } + + SettingList& slist = (changeLogIter->second).getSettings(); + + // simply need to insert a setting - no requirement to validate + // against existing settings + + char* datavalue = 0; + + unsigned int len = stringConvert(&datavalue, (const char*)value , p); + + slist.append(new Setting(true,false,datavalue,len,p,index)); + + // The datavalue will be freed by the deletion of the setting later + } + + + void ChangeSummaryImpl::appendToChanges(const Property& p, + DataObjectPtr dob , DataObjectPtr indob, int index) + { + CHANGELOG_MAP::iterator changeLogIter; + + LOGINFO(INFO,"ChangeSummary Appending to changes list (2)"); + + DataObject* pdob = (DataObject*)dob; + + changeLogIter = changedMap.find((DataObjectImpl*)pdob); + if (changeLogIter == changedMap.end()) + { + LOGINFO(INFO,"ChangeSummary: A change to an object which was not previously changed"); + + changedMap.insert(make_pair((DataObjectImpl*)pdob, + changeLogItem(dob->getType(),p, + dob->getSequence(), (DataObjectImpl*)pdob))); + changedDataObjects.append((DataObjectImpl*)pdob, + ChangedDataObjectList::Change); + } + + changeLogIter = changedMap.find((DataObjectImpl*)pdob); + if (changeLogIter == changedMap.end()) + { + LOGINFO(INFO,"ChangeSummary: Problem - no changes to append to"); + + return; + } + + SettingList& slist = (changeLogIter->second).getSettings(); + + // simply need to insert a setting - no requirement to validate + // against existing settings + + + slist.append(new Setting(true,false,(void*)indob,0,p,index)); + + } + + + + + ///////////////////////////////////////////////////////////// + // log items are for all lists, but contain different things + // depending on whether they are deletions, additions... + ///////////////////////////////////////////////////////////// + + createLogItem::createLogItem(const Type& tp, const Property& prop, + DataObjectImpl* cont) : + theOldContainmentProperty(prop), theOldContainer(cont), + theType(tp) + { + } + + DataObjectImpl* createLogItem::getOldContainer() + { + return theOldContainer; + } + + const Type& createLogItem::getOldType() + { + return theType; + } + + const Property& createLogItem::getOldContainmentProperty() + { + return theOldContainmentProperty; + } + + + + changeLogItem::changeLogItem(const Type& tp, + const Property& prop, + SequencePtr seq, + DataObjectImpl* cont) : + theOldContainmentProperty(prop), theOldContainer(cont), + theType(tp) + { + if (seq) + { + theSequence = new SequenceImpl((SequenceImpl*)seq); + } + else + { + theSequence = 0; + } + } + + changeLogItem::changeLogItem(const changeLogItem& cin) : + theOldContainmentProperty(cin.theOldContainmentProperty), + theType(cin.theType) + { + if (cin.theSequence) theSequence = new SequenceImpl((SequenceImpl*)cin.theSequence); + else theSequence = 0; + theOldContainer = cin.theOldContainer; + theSettings = cin.theSettings; + + } + + changeLogItem::~changeLogItem() + { + if (theSequence) delete theSequence; + } + + DataObjectImpl* changeLogItem::getOldContainer() + { + return theOldContainer; + } + + const Type& changeLogItem::getOldType() + { + return theType; + } + + const Property& changeLogItem::getOldContainmentProperty() + { + return theOldContainmentProperty; + } + + SettingList& changeLogItem::getSettings() + { + return theSettings; + } + + SequencePtr changeLogItem::getSequence() + { + return theSequence; + } + + + deleteLogItem::deleteLogItem(DataObject* dob, + const Property& prop, SequencePtr seq , + const char* oldpath, DataObjectImpl* cont + ) : + theOldContainmentProperty(prop), theOldContainer(cont), + theActualObject(dob), + theType(dob->getType()) + { + if (seq) + { + theSequence = new SequenceImpl((SequenceImpl*)seq); + } + else + { + theSequence = 0; + } + if (oldpath !=0 && strlen(oldpath) != 0) + { + theOldXpath = new char[strlen(oldpath)+1]; + strcpy(theOldXpath,oldpath); + } + else + { + theOldXpath = 0; + } + } + + const char* deleteLogItem::getOldXpath() + { + return theOldXpath; + } + + DataObjectImpl* deleteLogItem::getOldContainer() + { + return theOldContainer; + } + + deleteLogItem::deleteLogItem(const deleteLogItem& cin): + theOldContainmentProperty(cin.theOldContainmentProperty), + theType(cin.theType), theActualObject(cin.theActualObject) + { + if (cin.theSequence) theSequence = new SequenceImpl((SequenceImpl*)cin.theSequence); + else theSequence = 0; + theOldContainer = cin.theOldContainer; + theSettings = cin.theSettings; + if (cin.theOldXpath != 0) + { + theOldXpath = new char[strlen(cin.theOldXpath) + 1]; + strcpy(theOldXpath, cin.theOldXpath); + } + else + { + theOldXpath = 0; + } + } + + deleteLogItem::~deleteLogItem() + { + theActualObject = 0; + if (theSequence) delete theSequence; + if (theOldXpath != 0) + { + delete theOldXpath; + } + } + + const Type& deleteLogItem::getOldType() + { + return theType; + } + + const Property& deleteLogItem::getOldContainmentProperty() + { + return theOldContainmentProperty; + } + + SettingList& deleteLogItem::getSettings() + { + return theSettings; + } + + SequencePtr deleteLogItem::getSequence() + { + return theSequence; + } + + void deleteLogItem::setSequence(SequencePtr s) + { + if (theSequence) delete theSequence; + if (s) { + theSequence = new SequenceImpl((SequenceImpl*)s); + } + else { + theSequence = 0; + } + return; + } + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h new file mode 100644 index 0000000000..ad63a65cc1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h @@ -0,0 +1,404 @@ +/* + * + * 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 $ */ + +#ifndef _CHANGESUMMARYIMPL_H_ +#define _CHANGESUMMARYIMPL_H_ + +#include "commonj/sdo/disable_warn.h" + + +#include "commonj/sdo/ChangedDataObjectListImpl.h" +#include "commonj/sdo/SettingList.h" +#include "commonj/sdo/ChangeSummary.h" +#include "commonj/sdo/RefCountingPointer.h" +#include "commonj/sdo/SDOXMLString.h" + +#include + +using namespace std; +namespace commonj{ +namespace sdo { + + + /** + * ChangeLogItem is a part of a change summary. + * The change summary consisists of change items, + * deletion items and creation items. They are held in three + * lists as they have slightly different contents. + * The change log items hold old values for all the changes to + * properties of the data object concerned. + */ + + class changeLogItem { + + public: + + changeLogItem(const Type& tp, const Property& prop,SequencePtr seq, + DataObjectImpl* cont = 0 ); + changeLogItem(const changeLogItem& cin); + ~changeLogItem(); + DataObjectImpl* getOldContainer(); + const Property& getOldContainmentProperty(); + const Type& getOldType(); + SettingList& getSettings(); + SequencePtr getSequence(); + + private: + + const Property& theOldContainmentProperty; + DataObjectImpl* theOldContainer; + const Type& theType; + SettingList theSettings; + SequencePtr theSequence; + }; + + /** + * CreateLogItem is a part of a change summary. + * The change summary consisists of change items, + * deletion items and creation items. They are held in three + * lists as they have slightly different contents. + * The create log items hold the data object itself, + * and details of its container. + */ + + + class createLogItem { + + public: + + createLogItem(const Type& tp, const Property& prop, DataObjectImpl* cont = 0); + + + DataObjectImpl* getOldContainer(); + const Property& getOldContainmentProperty(); + const Type& getOldType(); + + private: + + const Property& theOldContainmentProperty; + DataObjectImpl* theOldContainer; + const Type& theType; + }; + + /** + * DeleteLogItem is a part of a change summary. + * The change summary consisists of change items, + * deletion items and creation items. They are held in three + * lists as they have slightly different contents. + * The delete log items hold the old data object , and + * details of the properties as they were before deletion + */ + + class deleteLogItem { + + public: + + + deleteLogItem(DataObject* dob, const Property& prop, + SequencePtr seq,const char *oldpath, + DataObjectImpl* cont = 0); + + + deleteLogItem(const deleteLogItem& cin); + ~deleteLogItem(); + DataObjectImpl* getOldContainer(); + const Property& getOldContainmentProperty(); + const Type& getOldType(); + const char* getOldXpath(); + SettingList& getSettings(); + SequencePtr getSequence(); + void setSequence(SequencePtr s); + + private: + + const Property& theOldContainmentProperty; + DataObjectImpl* theOldContainer; + + /** theActualObject + * A counting pointer to the object is held, such that the + * object is not freed, even if deleted. This rcp will not + * be used to refer to the object, but makes sure that the + * object does not reuse a memory address of a previously + * deleted object until the change summary is destroyed. + */ + + RefCountingPointer theActualObject; + const Type& theType; + SettingList theSettings; + SequencePtr theSequence; + char * theOldXpath; + }; + + + /** ChangeSummaryImpl implements the abstract class ChangeSummary. + * The change summary consisists of change items, + * deletion items and creation items. They are held in three + * lists as they have slightly different contents. + */ + + class ChangeSummaryImpl : public ChangeSummary + { + public: + ChangeSummaryImpl(); + + virtual ~ChangeSummaryImpl(); + + /** + * The new and modified objects in the list are references to objects that + * are associated with this change summary. + * The deleted objects in the list are references to copies of the objects + * as they appeared at the time that event logging was enabled; + * if the deleted objects have references to other objects, + * the references will also refer to copies of the target objects. + * Return a list of changed data objects. + */ + + virtual ChangedDataObjectList& getChangedDataObjects(); + + + /** getOldSettings returns a list of settings. + * Returns a list of Settings + * that represent the property values of the given dataObject + * at the point when logging began. + * In the case of a deleted object, + * the list will include Settings for all the properties. + * An old value Setting indicates the value at the + * point logging begins. A setting is only produced for + * modified objects if either the old value differs from the current value or + * if the isSet differs from the current value. + * No Settings are produced for created objects. + * Param dataObject the object in question. + * Return a list of settings. + */ + virtual SettingList& getOldValues(DataObjectPtr dataObject); + + /** getOldXpath returns the old path before the setting. + * + * Returns a path where the object was located before the setting took place. + */ + virtual const char* getOldXpath(RefCountingPointer dol); + + + /** beginLogging() sets the change summary in logging mode. + * + * The change summary is initially inactive. Setting it to logging mode + * starts the process of recording all the settings made. + */ + + virtual void beginLogging(); + + /** endLogging() stops logging. + * + * This method stops logging, but does not clear out the change summary. + * The changes are valid until the summary is next set to logging, at which time + * all old settings are lost. + */ + virtual void endLogging(); + + + + /** isLogging() returns true if logging is enabled. + * + * Indicates whether change logging is on (true) or off (false). + */ + + virtual bool isLogging(); + + + + /** isCreated() returns true if the object was created during logging. + * + * Returns whether or not the specified data object was created while logging. + * Any object that was added to the data graph + * but was not in the data graph when logging began, + * will be considered created. + * Param dataObject the data object in question. + * Return true if the specified data object was created. + */ + virtual bool isCreated(DataObjectPtr dataObject); + + /** isDeleted() - true if the object was deleted during logging. + * + * Returns whether or not the specified data object was deleted while logging. + * Any object that is not contained by the data graph will be considered + * deleted. + * Param dataObject the data object in question. + * Return true if the specified data object was deleted. + */ + virtual bool isDeleted(DataObjectPtr dataObject); + + + /** isModified() - true if the object was changed during logging. + * + * Returns whether or not the specified data object was updated while logging. + * An object that was contained in the data graph when logging began, + * and remains in the graph when logging ends will be considered for changes. + * An object considered modified must have at least one old value Setting. + * Param dataObject the data object in question. + * Return true if the specified data object was modified. + */ + virtual bool isModified(DataObjectPtr dataObject); + + /** getOldValue() gets the setting showing the old value. + * + * Returns a setting for the specified property + * representing the property value of the given dataObject + * at the point when logging began. + * Returns null if the property has not changed and + * has not been deleted. + * Param dataObject the object in question. + * Param property the property of the object. + * Return the Setting for the specified property. + */ + + virtual const Setting& getOldValue(DataObjectPtr dataObject, const Property& property); + + /** getOldContainer() gets the container before the setting. + * + * Returns the value of the container data object + * at the point when logging began. + * Param dataObject the object in question. + * Return the old container data object. + */ + virtual DataObjectPtr getOldContainer(DataObjectPtr dataObject); + + /** getOldContainmentProperty() - gives the property before setting. + * + * Returns the value of the containment property data object property + * at the point when logging began. + * Param dataObject the object in question. + * Return the old containment property. + */ + virtual const Property& getOldContainmentProperty(DataObjectPtr dataObject); + + /** undoChanges() - Not Implemented. + * + * NOT IMPLEMENTED + * + * Undoes all changes in the log to restore the tree of + * DataObjects to its original state when logging began. + * isLogging() is unchanged. The log is cleared. + */ + virtual void undoChanges(); + + /** getOldSequence() - Not Implemented. + * + * NOT IMPLEMENTED + * + * This method gives back the sequence of a data object as it + * appeared when logging was switched on. The data object may be + * a deleted data object or a changed data object. If the + * data object was not sequenced, this returns null. + */ + + virtual SDO_API SequencePtr getOldSequence(DataObjectPtr dataObject); + + bool isInCreatedMap(DataObjectImpl* ob); + + void logDeletion(DataObjectImpl* ob, + DataObjectImpl* cont, const Property& prop, + const char* oldpath, + bool loggingChildren = true + ); + + void logCreation(DataObjectImpl* ob, + DataObjectImpl* cont, const Property& prop + ); + + void logChange(DataObjectImpl* ob, const Property& prop + ); + + + SDO_API void debugPrint(); + + void removeFromChanges(DataObjectImpl* ob); + + + /** + * appendToCreations is used by deserialization + * This method helps to rebuild a change summary by populating the + * lists without the changes actually being logged. + */ + + void appendToCreations(const Property& p, + DataObjectPtr dob, + DataObjectPtr cont); + + + /** + * appendToDeletions is used by deserialization + * This method helps to rebuild a change summary by populating the + * lists without the changes actually being logged. + */ + void appendToDeletions(const Property& p, + DataObjectPtr dob, + DataObjectPtr cont, + const char* oldpath); + + + unsigned int stringConvert( + char** value, + const char* c, + const Property& p); + + /** + * appendToChangesis used by deserialization + * This method helps to rebuild a change summary by populating the + * lists without the changes actually being logged. + */ + + void appendToChanges(const Property& p, + DataObjectPtr dob, + SDOXMLString value, + int index); + + void appendToChanges(const Property& p, + DataObjectPtr dob, + DataObjectPtr pdob, + int index); + + DataObjectPtr matchDeletedObject(SDOXMLString path); + + + private: + + + void setPropValue(void** value, unsigned int *len, DataObjectImpl* ob, const Property& prop); + void setManyPropValue(void** value, unsigned int *len, DataObjectImpl* ob, + DataObjectImpl* listob, const Property& prop); + bool logging; + + typedef std::map CREATELOG_MAP; + typedef std::map DELETELOG_MAP; + typedef std::map CHANGELOG_MAP; + + CHANGELOG_MAP changedMap; + CREATELOG_MAP createdMap; + DELETELOG_MAP deletedMap; + + ChangedDataObjectListImpl changedDataObjects; + + + + + +}; +}; +}; +#endif //_CHANGESUMMARYIMPL_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectList.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectList.h new file mode 100644 index 0000000000..e28973041f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectList.h @@ -0,0 +1,91 @@ +/* + * + * 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 $ */ + +#ifndef _CHANGEDDATAOBJECTLIST_H_ +#define _CHANGEDDATAOBJECTLIST_H_ + + +#include "commonj/sdo/RefCountingPointer.h" + +#include + +/** + * namespace commonj is the root namespace for SDO + */ + +namespace commonj{ + +/** + * sdo is the namespace holding the SDO core + */ + +namespace sdo{ + +class DataObject; + +/** + * + * A list for holding a record of changes which have happened + * during logging in a change summary. + */ + +class ChangedDataObjectList +{ + +public: + +/** \enum ChangeType + * + * An enum for create, change or delete types in a change record + */ + enum ChangeType + { + Undefined, + Create, + Change, + Delete + }; + +/** [] is the index operator. + * + * Gets the nth element of a list + */ + virtual SDO_API DataObjectPtr operator[] (int pos) = 0; + virtual SDO_API const DataObjectPtr operator[] (int pos) const = 0; + +/** size() returns the number of list elements. + * + * Returns the number of list elements + */ + + virtual SDO_API int size () const = 0; + +/** getType() returns the type of a list element. + * + * The type of change is one of the enum ChangeType, being a + * creation, a deletion or an update. + */ + + virtual SDO_API ChangeType getType(unsigned int index) = 0; + +}; +}; +}; +#endif + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.cpp new file mode 100644 index 0000000000..c1f4e7ccc1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.cpp @@ -0,0 +1,248 @@ +/* + * + * 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 "commonj/sdo/ChangedDataObjectListImpl.h" + + +#include +#include "commonj/sdo/Property.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/Logger.h" +#include "commonj/sdo/SDORuntimeException.h" +#include "commonj/sdo/DataObjectImpl.h" + + +namespace commonj{ +namespace sdo { + + /** CDOListElement + * + * constructor + */ + + CDOListElement::CDOListElement() + { + theObject = 0; + theType = ChangedDataObjectList::Undefined; + } + + /** CDOListElement + * + * constructor from a data object and a change + */ + + CDOListElement::CDOListElement(DataObject* in, ChangedDataObjectList::ChangeType type) + { + theObject = in; + theType = type; + } + + /** ~CDOListElement() + * + * destructor + */ + + CDOListElement::~CDOListElement() + { + } + + /** getObject() + * + * return the changed data object + */ + + DataObject* CDOListElement::getObject() const + { + return theObject; + } + + /** + * + * return the type of change getType() + */ + + ChangedDataObjectList::ChangeType CDOListElement::getType() const + { + return theType; + } + + /** ChangedDataObjectListImpl + * + * constructor + */ + + ChangedDataObjectListImpl::ChangedDataObjectListImpl(CHANGEDDATAOBJECT_VECTOR p) : plist (p) + { + } + + /** ChangedDataObjectListImpl + * + * copy constructor + */ + + ChangedDataObjectListImpl::ChangedDataObjectListImpl(const ChangedDataObjectListImpl &pin) + { + plist = std::vector< CDOListElement >(pin.getVec()); + } + + /** ChangedDataObjectListImpl + * + * default constructor + */ + + ChangedDataObjectListImpl::ChangedDataObjectListImpl() + { + } + + + /** ~ChangedDataObjectListImpl + * + * destructor + */ + + ChangedDataObjectListImpl::~ChangedDataObjectListImpl() + { + } + + /** [] index operator + * + * + */ + + RefCountingPointer ChangedDataObjectListImpl::operator[] (int pos) + { + validateIndex(pos); + return plist[pos].getObject(); + } + + /** [] index operator + * + * + */ + + const RefCountingPointer ChangedDataObjectListImpl::operator[] (int pos) const + { + validateIndex(pos); + return plist[pos].getObject(); + } + + /** get() gets an element at the index. + * + */ + + DataObject* ChangedDataObjectListImpl::get(unsigned int pos) + { + validateIndex(pos); + return plist[pos].getObject(); + } + + /** size() returns the length of the list. + * + * + */ + + int ChangedDataObjectListImpl::size () const + { + return plist.size(); + } + + /** getVec() + * gets the vector which actually stores the data objects. + */ + + CHANGEDDATAOBJECT_VECTOR ChangedDataObjectListImpl::getVec() const + { + return plist; + } + + /** getType() + * returns the type of the change. + */ + + ChangedDataObjectList::ChangeType ChangedDataObjectListImpl::getType(unsigned int pos) + { + validateIndex(pos); + return plist[pos].getType(); + } + + + /** insert() + * inserts an element into the list. + */ + + void ChangedDataObjectListImpl::insert (unsigned int index, + DataObject *d, ChangedDataObjectList::ChangeType type) + { + plist.insert(plist.begin()+index, CDOListElement((DataObject*)d,type)); + } + + /** append() + * appends to the end of the list. + */ + + void ChangedDataObjectListImpl::append (DataObject *d, ChangedDataObjectList::ChangeType type) + { + plist.insert(plist.end(),CDOListElement((DataObject*)d, type)); + } + + /** clear() + * empties the list. + */ + + void ChangedDataObjectListImpl::clear () + { + plist.clear(); + } + + + /** remove() + * removes an item from the list. + */ + + void ChangedDataObjectListImpl::remove(unsigned int index) + { + validateIndex(index); + plist.erase(plist.begin() +index); + return ; + } + + /** validateIndex() + * checks that the index is in range. + */ + + void ChangedDataObjectListImpl::validateIndex(int index) const + { + if ((index < 0) || (index >= size())) + { + string msg("Invalid index : "); + msg += index; + SDO_THROW_EXCEPTION("(ChangeSummary)validateIndex", SDOIndexOutOfRangeException, + msg.c_str()); + + } + + } + + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.h new file mode 100644 index 0000000000..9587a8402d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.h @@ -0,0 +1,97 @@ +/* + * + * 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 $ */ + +#ifndef _ChangedDataObjectListImplIMPL_H_ +#define _ChangedDataObjectListImplIMPL_H_ + +#include "commonj/sdo/disable_warn.h" + + +#include + +#include "commonj/sdo/ChangedDataObjectList.h" +namespace commonj{ +namespace sdo{ + +class DataObjectImpl; +class DataObject; + +/** + * CDOListElement is an element of the changed data object list + * in a change summary,it may be a delete, addition or change. + */ + +class CDOListElement +{ +public: + CDOListElement (); + CDOListElement (DataObject* in, ChangedDataObjectList::ChangeType type); + virtual ~CDOListElement(); + virtual ChangedDataObjectList::ChangeType getType() const; + virtual DataObject* getObject() const; +private: + DataObject* theObject; + ChangedDataObjectList::ChangeType theType; +}; + +typedef std::vector< CDOListElement > CHANGEDDATAOBJECT_VECTOR; + + +/** + * ChangedDataObjectListImpl implements ChangedDataObjectList, part of a + * change summary. + * This is the list of objects which have been altered during + * logging of a change summary. + */ + +class ChangedDataObjectListImpl : public ChangedDataObjectList +{ + +public: + ChangedDataObjectListImpl(CHANGEDDATAOBJECT_VECTOR p); + ChangedDataObjectListImpl(const ChangedDataObjectListImpl &pin); + ChangedDataObjectListImpl(); + + virtual ~ChangedDataObjectListImpl(); + virtual DataObjectPtr operator[] (int pos); + virtual const DataObjectPtr operator[] (int pos) const; + virtual DataObject* get(unsigned int pos); + virtual ChangedDataObjectList::ChangeType getType(unsigned int pos); + + + virtual int size () const; + + virtual void insert (unsigned int index, DataObject *d, ChangedDataObjectList::ChangeType type); + + virtual void append (DataObject* d, ChangedDataObjectList::ChangeType type); + + virtual void clear(); + + virtual void remove (unsigned int index); + + +private: + CHANGEDDATAOBJECT_VECTOR plist; + CHANGEDDATAOBJECT_VECTOR getVec() const; + + void validateIndex(int index) const; +}; +}; +}; +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.cpp new file mode 100644 index 0000000000..19d2913fcc --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.cpp @@ -0,0 +1,258 @@ +/* + * + * 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 "commonj/sdo/Property.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/TypeList.h" +#include "commonj/sdo/Sequence.h" +#include "commonj/sdo/RefCountingPointer.h" +#include "commonj/sdo/DataObjectImpl.h" + + +#include "commonj/sdo/CopyHelper.h" + +namespace commonj{ +namespace sdo{ + + /** CopyHelper provides static copying helper functions. + * + * CopyHelper provides shallow and deep copy of data objects. + * copyShallow() copies the DataType members of the data object. + * copy() copies all the members and recurses downwards though + * the data graph + */ + + void CopyHelper::transferitem(DataObjectPtr to, DataObjectPtr from, const Property& p) + { + switch (p.getTypeEnum()) + { + case Type::BooleanType: + to->setBoolean( p, from->getBoolean(p)); + break; + case Type::ByteType: + to->setByte( p, from->getByte(p)); + break; + case Type::CharacterType: + to->setCharacter( p, from->getCharacter(p)); + break; + case Type::IntegerType: + to->setInteger( p, from->getInteger(p)); + break; + case Type::ShortType: + to->setShort( p,from->getShort(p)); + break; + case Type::DoubleType: + to->setDouble( p, from->getDouble(p)); + break; + case Type::FloatType: + to->setFloat( p, from->getFloat(p)); + break; + case Type::LongType: + to->setLong( p, from->getLong(p)); + break; + case Type::DateType: + to->setDate( p, from->getDate(p)); + break; + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::UriType: + case Type::StringType: + { + unsigned int siz = from->getLength(p); + if (siz > 0) + { + wchar_t * buf = new wchar_t[siz]; + from->getString(p,buf, siz); + to->setString(p, buf, siz); + delete buf; + } + } + break; + case Type::BytesType: + { + unsigned int siz = from->getLength(p); + if (siz > 0) + { + char * buf = new char[siz]; + from->getBytes(p,buf, siz); + to->setBytes(p, buf, siz); + delete buf; + } + } + break; + default: + break; + } // switch + } + + void CopyHelper::transferlist(DataObjectList& to, DataObjectList& from, Type::Types t) + { + for (int i=0;i< from.size(); i++) + { + switch (t) + { + case Type::BooleanType: + to.append(from.getBoolean(i)); + break; + case Type::ByteType: + to.append(from.getByte(i)); + break; + case Type::CharacterType: + to.append(from.getCharacter(i)); + break; + case Type::IntegerType: + to.append(from.getInteger(i)); + break; + case Type::ShortType: + to.append(from.getShort(i)); + break; + case Type::DoubleType: + to.append(from.getDouble(i)); + break; + case Type::FloatType: + to.append(from.getFloat(i)); + break; + case Type::LongType: + to.append(from.getLong(i)); + break; + case Type::DateType: + to.append(from.getDate(i)); + break; + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::UriType: + case Type::StringType: + { + unsigned int siz = from.getLength(i); + if (siz > 0) + { + wchar_t * buf = new wchar_t[siz]; + from.getString(i,buf,siz); + to.append(buf,siz); + delete buf; + } + } + break; + + case Type::BytesType: + { + unsigned int siz = from.getLength(i); + if (siz > 0) + { + char * buf = new char[siz]; + from.getBytes(i,buf,siz); + to.append(buf,siz); + delete buf; + } + } + break; + + default: + break; + } // case + } // for + } // method + + /** CopyHelper provides static copying helper functions. + * + * copyShallow() copies the DataType members of the data object. + * copy() copies all the members and recurses downwards though + * the data graph + */ + DataObjectPtr CopyHelper::copyShallow(DataObjectPtr dataObject) + { + return internalCopy(dataObject, false); + + } + + /** CopyHelper provides static copying helper functions. + * + * copyShallow() copies the DataType members of the data object. + * copy() copies all the members and recurses downwards though + * the data graph + */ + DataObjectPtr CopyHelper::copy(DataObjectPtr dataObject) + { + return internalCopy(dataObject, true); + } + + DataObjectPtr CopyHelper::internalCopy(DataObjectPtr dataObject, + bool fullCopy) + { + + DataObject* theob = dataObject; + DataFactoryPtr fac = ((DataObjectImpl*)theob)->getDataFactory(); + if (!fac) return 0; + + const Type& t = dataObject->getType(); + DataObjectPtr newob = fac->create(t); + if (!newob) return 0; + + PropertyList pl = dataObject->getInstanceProperties(); + for (int i=0;i < pl.size(); i++) + { + if (dataObject->isSet(pl[i])) + { + // data objects are only copied in the deep copy case + if (pl[i].getType().isDataObjectType()) + { + if (!fullCopy) + { + continue; + } + else + { + if (pl[i].isMany()) + { + DataObjectList& dolold = dataObject->getList(pl[i]); + DataObjectList& dolnew = newob->getList(pl[i]); + for (int i=0;i< dolold.size(); i++) + { + dolnew.append(internalCopy(dolold[i],true)); + } + } + else + { + DataObjectPtr dob = dataObject->getDataObject(pl[i]); + newob->setDataObject(pl[i],internalCopy(dob,true)); + } + } + } + else + { + if (pl[i].isMany()) + { + DataObjectList& dolold = dataObject->getList(pl[i]); + DataObjectList& dolnew = newob->getList(pl[i]); + transferlist(dolnew,dolold, pl[i].getTypeEnum()); + } + else + { + transferitem(newob,dataObject, pl[i]); + } + } // else + } + } + return newob; + } + + +} +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.h new file mode 100644 index 0000000000..954333a15b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.h @@ -0,0 +1,69 @@ +/* + * + * 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 $ */ + +#ifndef _COPYHELPER_H_ +#define _COPYHELPER_H_ + + +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/RefCountingPointer.h" + +namespace commonj{ +namespace sdo{ + + /** CopyHelper provides static copying helper functions. + * + * CopyHelper provides shallow and deep copy of data objects. + * copyShallow() copies the DataType members of the data object. + * copy() copies all the members and recurses downwards though + * the data graph + */ + +class CopyHelper +{ + public: + + /** CopyHelper provides static copying helper functions. + * + * CopyHelper provides shallow and deep copy of data objects. + * copyShallow() copies the DataType members of the data object. + * copy() copies all the members and recurses downwards though + * the data graph + */ + static SDO_API DataObjectPtr copyShallow(DataObjectPtr dataObject); + + /** CopyHelper provides static copying helper functions. + * + * CopyHelper provides shallow and deep copy of data objects. + * copyShallow() copies the DataType members of the data object. + * copy() copies all the members and recurses downwards though + * the data graph + */ + static SDO_API DataObjectPtr copy(DataObjectPtr dataObject); + + private: + static void transferlist(DataObjectList& to, DataObjectList& from, Type::Types t); + static void transferitem(DataObjectPtr to, DataObjectPtr from, const Property& p); + static DataObjectPtr internalCopy(DataObjectPtr dataObject, bool fullCopy); + +}; +}; +}; + +#endif //_COPYHELPER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.cpp new file mode 100644 index 0000000000..ed4dc5f8ba --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.cpp @@ -0,0 +1,32 @@ +/* + * + * 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 "commonj/sdo/DASProperty.h" + + +namespace commonj{ +namespace sdo{ + + + DASProperty::~DASProperty() + { + } +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.h new file mode 100644 index 0000000000..9cff3a7967 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.h @@ -0,0 +1,46 @@ +/* + * + * 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 $ */ + +#ifndef _DASPROPERTY_H_ +#define _DASPROPERTY_H_ +#include "commonj/sdo/Property.h" +#include "commonj/sdo/DASValues.h" + +#include "commonj/sdo/disable_warn.h" + +namespace commonj{ +namespace sdo{ + +/** + * DASProperty is a class to provide data access services + * with a more flexible Property + */ + + class DASProperty : public Property, public DASValues +{ + public: + + virtual ~DASProperty(); + + + +}; +}; +}; +#endif //_DMSDATAOBJECT_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.cpp new file mode 100644 index 0000000000..d249f1a2f0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.cpp @@ -0,0 +1,32 @@ +/* + * + * 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 "commonj/sdo/DASType.h" + + +namespace commonj{ +namespace sdo{ + + + DASType::~DASType() + { + } +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.h new file mode 100644 index 0000000000..75c55d0bf7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.h @@ -0,0 +1,53 @@ +/* + * + * 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 $ */ + +#ifndef _DASTYPE_H_ +#define _DASTYPE_H_ + +#include "commonj/sdo/disable_warn.h" + + +#include "commonj/sdo/Type.h" +#include "commonj/sdo/DASValues.h" +namespace commonj{ +namespace sdo{ + +/** + * DASType is a class to provide data access services + * with a more flexible Type + */ + +class DASType : public Type, public DASValues +{ + public: + + virtual ~DASType(); + + + + virtual void setOpen(bool set) = 0; + virtual void setSequenced( bool set) = 0; + virtual void setBaseType( const Type* type) = 0; + + + +}; +}; +}; +#endif //_DASDATAOBJECT_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.cpp new file mode 100644 index 0000000000..66f493b84e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.cpp @@ -0,0 +1,52 @@ +/* + * + * 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 "commonj/sdo/DASValue.h" + + +namespace commonj +{ + namespace sdo + { + + DASValue::DASValue() + { + } + + DASValue::DASValue(const char* val) + : value(val) + { + } + + DASValue::~DASValue() + { + + } + + const char* DASValue::getValue() const + { + return value.c_str(); + } + + + } +} +// end - namespace sdo + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.h new file mode 100644 index 0000000000..f15a24aae4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.h @@ -0,0 +1,52 @@ +/* + * + * 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 $ */ + +#ifndef _SDO_DASValue_H_ +#define _SDO_DASValue_H_ + + +#include "commonj/sdo/export.h" +#include "string" + + +namespace commonj +{ + namespace sdo + { + +/** + * DASValue is a class to hold information required by data + * access services but not required by the data factory. + */ + class DASValue + { + public: + SDO_API DASValue(); + SDO_API DASValue(const char* value); + SDO_API virtual ~DASValue(); + SDO_API const char* getValue() const; + + private: + std::string value; + + }; + + } +} +#endif //_SDO_DASValue_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.cpp new file mode 100644 index 0000000000..aac9702cfd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.cpp @@ -0,0 +1,68 @@ +/* + * + * 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 "commonj/sdo/DASValues.h" + +using namespace std; +namespace commonj +{ + namespace sdo + { + +/** + * DASValues is a class to hold list of information required by data + * access services but not required by the data factory. + */ + + DASValues::~DASValues() + { + DASValue_MAP::iterator propertyIter; + for (propertyIter = properties.begin() ; propertyIter != properties.end() ; ++propertyIter) + { + delete propertyIter->second; + } + } + + void DASValues::setDASValue(const char* name, DASValue* property) + { + DASValue* prop = getDASValue(name); + if (prop != 0 && prop != property) + { + delete prop; + } + properties[name] = property; + } + + DASValue* DASValues::getDASValue(const char* name) + { + DASValue_MAP::iterator propertyIter; + propertyIter = properties.find(name); + if(propertyIter != properties.end()) + { + return propertyIter->second; + } + return NULL; + + } + + } +} +// end - namespace sdo + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.h new file mode 100644 index 0000000000..6c5ba835c3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.h @@ -0,0 +1,57 @@ +/* + * + * 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 $ */ + +#ifndef _SDO_DASValues_H_ +#define _SDO_DASValues_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/export.h" +#include "commonj/sdo/DASValue.h" +#include "map" +#include "string" + + + +namespace commonj +{ + namespace sdo + { + +/** + * DASValues is a class to hold list of information required by data + * access services but not required by the data factory. + */ + + class DASValues + { + public: + SDO_API virtual ~DASValues(); + SDO_API virtual void setDASValue(const char* name, DASValue* value); + SDO_API virtual DASValue* getDASValue(const char* name); + private: + + typedef std::map DASValue_MAP; + DASValue_MAP properties; + + }; + + } +} +#endif //_SDO_DASValues_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.cpp new file mode 100644 index 0000000000..026ed5c871 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.cpp @@ -0,0 +1,52 @@ +/* + * + * 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 "commonj/sdo/DataFactory.h" +#include "commonj/sdo/DataFactoryImpl.h" + +namespace commonj{ +namespace sdo{ + +/** + * DataFactory holds metadata and creates DataObjects. + * + * The DataFactory holds properties and types loaded from XSD, or + * created using the DataFactory API. + */ + + DataFactory::~DataFactory() + { + } + + RefCountingPointer DataFactory::getDataFactory() + { + DataFactory* dob = (DataFactory*)(new DataFactoryImpl()); + return RefCountingPointer (dob); + } + + RefCountingPointer DataFactory::clone() + { + const DataFactoryImpl* df = (const DataFactoryImpl*)this; + DataFactory* dob = (DataFactory*)(new DataFactoryImpl(*df)); + return RefCountingPointer (dob); + } + +}; +}; diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.h new file mode 100644 index 0000000000..63a36ce8e4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.h @@ -0,0 +1,501 @@ +/* + * + * 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 $ */ + +#ifndef _DATAFACTORY_H_ +#define _DATAFACTORY_H_ + +#include "commonj/sdo/export.h" + +#include "commonj/sdo/TypeList.h" + +#include "commonj/sdo/RefCountingObject.h" +#include "commonj/sdo/RefCountingPointer.h" +#include "commonj/sdo/SDODate.h" +#include "commonj/sdo/DASValue.h" + + +namespace commonj{ +namespace sdo{ + +class DataObject; +class Type; + +/** + * DataFactory holds metadata and creates DataObjects. + * + * The DataFactory holds properties and types loaded from XSD, or + * created using the DataFactory API. + */ + +class DataFactory : public RefCountingObject +{ + public: + + + /** + * getDataFactory is static and gets a data factory + * + * Static method to get a new data factory, with a set of base Types defined. + * With the data factory returned, either load Type definitions + * from XSD, or use the DataFactory APIs to define the types. + */ + + static SDO_API DataFactoryPtr getDataFactory(); + + virtual SDO_API ~DataFactory(); + + + /** + * DataFactory::clone copies a data factory + * + * Copy the data factory, and return a new data factory which + * has the same properties and types, but is still able to have + * new types added to it. + */ + + SDO_API virtual DataFactoryPtr clone(); + + /** + * DataFactory::create creates a data object. + * + * Create a data object based on the type specified as a parameter + * Once a data object has been created by this factory, the metadata + * (types and properties) may no longer be altered. + */ + + SDO_API virtual DataObjectPtr create(const char* uri, const char* typeName) = 0; + + SDO_API virtual DataObjectPtr create(const Type& type) = 0; + + /** + * DataFactory::getType gets a type back from the factory. + * + * Get a type as specified in the data factory. Useful for creating + * data objects or querying properties. + */ + + virtual const Type& getType(const char* uri, const char* inTypeName) const = 0; + + + /** + * DataFactory::getTypes gets a list of types back from the factory. + * + * Get all the types available within this data factory. Useful for + * validating whether a data object is of the correct type to be + * usable. + */ + + virtual TypeList getTypes() const = 0; + + /** + * DataFactory::addType adds a type definition. + * + * Add a type defintion to the factory. (Properties may be added later). + * The type is defined by its uri and name. + * -# The type may be sequenced - and therefore work with a sequence API. + * -# The type may be open, indicating that it may have extra properties + * added at runtime. + * -# The type may be abstract, so the data factory will not permit creation + * of instances. + * -# The type may be a data type, indicating that is will not have properties. + * The Type may inherit from another type, but that is specified later with a + * call to setBaseType(). + */ + + + virtual SDO_API void addType(const char* uri, const char* inTypeName, + bool isSequenced = false, + bool isOpen = false, + bool isAbstract = false, + bool isDataType = false) = 0; + + + /** + * DataFactory::setBaseType allows inheritance + * + * The type specified second in the parameters becomes the basetype + * of the first parameter. + * The second type will have all the properties of its baser type, followed + * by any additional properties of its own. The property indices of the properties + * of the subclass will begin at one more than the total number of + * properties of the supertype + * This relationship is fixed when the first data object of any type is + * created by the factory. Up to that point the base type may be changed. + * + */ + + virtual SDO_API void setBaseType( + const Type& type, + const Type& base) = 0; + + virtual SDO_API void setBaseType( + const char* typeuri, + const char* typenam, + const char* baseuri, + const char* basename) = 0; + + /** + * DataFactory::setAlias sets an alternative name + * + * A Type may be known to the data factory by several different names. + * This method adds a new name for an existing property. + * + */ + + virtual SDO_API void setAlias(const char* typeuri, + const char* typenam, + const char* alias) = 0; + + /** + * DataFactory::addPropertyToType adds properties + * + * The various addPropertyToType methods add a property to an + * existing type in the factory, specifying the name of the new property, + * and the type of the new property - which must also be an existing type + * in this factory. + * -# The new property may be many-valued - so it will be a list of values. + * -# The property may be read-only , and may not be altered by user code - + * However the value may be changed by data access service code. + * -# The property may be containment. + * The type of a property may be DataType, or DataObjectType (see Types). + * If the property is a DataType, then the actual value of the property is held + * within the data object containing the property. + * If the property is a DataObjectType, it may be containment, or reference. + * Containment indicates that the value of the property is contained in the + * data object, whilst reference indicates that the property is only a pointer to + * a value somewhere else in the data graph. + * + */ + + + virtual SDO_API void addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool isMany , + bool isReadOnly , + bool isContainment ) = 0; + + virtual SDO_API void addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const Type& propType, + bool isMany , + bool isReadOnly , + bool isContainment ) = 0; + + virtual SDO_API void addPropertyToType(const Type& type, + const char* propname, + const Type& propType, + bool isMany , + bool isReadOnly , + bool isContainment ) = 0; + + virtual SDO_API void addPropertyToType(const Type& type, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool isMany , + bool isReadOnly , + bool isContainment ) = 0; + + + virtual SDO_API void addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool isMany = false) =0; + + virtual SDO_API void addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const Type& propType, + bool isMany = false) =0; + + virtual SDO_API void addPropertyToType(const Type& type, + const char* propname, + const Type& propType, + bool isMany = false) =0; + + virtual SDO_API void addPropertyToType(const Type& type, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool isMany = false) =0; + + /** + * DataFactory::setOpposite sets an opposite name + * + * NOT IMPLEMENTED. + * + */ + + virtual SDO_API void setOpposite( + const Type& type, + const char* propName, + const Type& oppositetype, + const char* oppositePropName) = 0; + + + /** + * DataFactory::setAlias sets a property alias name + * + * A property, like a type, may be known to the factory by several + * names. + */ + + virtual SDO_API void setAlias(const char* typeuri, + const char* typname, + const char* propname, + const char* alias) = 0; + + /** + * DataFactory::setPropertySubstitute sets a substitute for a property + * + * A property is of a specified type. However this method specifies another type + * which will be accepted by the data factory at runtime as a substitute for this + * property, and will be inserted into the parent data object as though it was + * a value for this property. The substitute name is then used for this property + * as a sort of alias. + * names. + */ + + virtual SDO_API void setPropertySubstitute( + const char* uri, + const char* inTypeName, + const char* propname, + const char* subname, + const char* subTypeUri, + const char* subTypeName) = 0; + + + virtual SDO_API void setPropertySubstitute( + const Type& containertype, + const char* propname, + const char* subname, + const Type& subtype) = 0; + + + /** + * DataFactory::setDefault sets a default value for a property + * + * When querying the value of a property of a data object, that property + * may be set - indicating that a value has been assigned, or unset - indicating that + * no value has yet been assigned. + * If there is no value assigned, then a default value may be returned for that + * property. + * This method allows the data factory to define that default value. + * There is no default value for a DataObjectType. There are overloads for + * each of the primitive DataTypes. + */ + + virtual SDO_API void setDefault( + const Type& t, + const char* propname, + bool b ) = 0; + + virtual SDO_API void setDefault( + const Type& t, + const char* propname , + char c) = 0; + + virtual SDO_API void setDefault( + const Type& t, + const char* propname , + wchar_t c) = 0; + + virtual SDO_API void setDefault( + const Type& t, + const char* propname , + char* c) = 0; + + virtual SDO_API void setDefault( + const Type& t, + const char* propname , + short s) = 0; + + virtual SDO_API void setDefault( + const Type& t, + const char* propname , + long l) = 0; + + virtual SDO_API void setDefault( + const Type& t, + const char* propname , + int64_t i) = 0; + + virtual SDO_API void setDefault( + const Type& t, + const char* propname , + float f) = 0; + + virtual SDO_API void setDefault( + const Type& t, + const char* propname , + long double d) = 0; + + virtual SDO_API void setDefault( + const Type& t, + const char* propname , + const wchar_t* c, + unsigned int len) = 0; + + virtual SDO_API void setDefault( + const Type& t, + const char* propname , + const char* c, + unsigned int len) = 0; + + + virtual SDO_API void setDefault( + const Type& t, + const char* propname , + const SDODate dat) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname, + bool b ) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + char c) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + wchar_t c) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + char* c) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + short s) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + long l) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + int64_t i) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + float f) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + long double d) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + const wchar_t* c, + unsigned int len) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + const char* c, + unsigned int len) = 0; + + virtual SDO_API void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + const SDODate dat) = 0; + + + /** + * DAS values are used by a DAS implementation + */ + + virtual SDO_API void setDASValue( + const Type& type, + const char* name, + DASValue* value) = 0; + + virtual SDO_API void setDASValue( + const char* typeuri, + const char* typenam, + const char* name, + DASValue* value) = 0; + + virtual SDO_API DASValue* getDASValue( + const Type& type, + const char* name) const = 0; + + virtual SDO_API DASValue* getDASValue( + const char* typeuri, + const char* typenam, + const char* name) const = 0; + + virtual SDO_API void setDASValue( + const Type& type, + const char* propertyName, + const char* name, + DASValue* value) = 0; + + virtual SDO_API void setDASValue( + const char* typeuri, + const char* typenam, + const char* propertyName, + const char* name, + DASValue* value) = 0; + + virtual SDO_API DASValue* getDASValue( + const Type& type, + const char* propertyName, + const char* name) const = 0; + + virtual SDO_API DASValue* getDASValue( + const char* typeuri, + const char* typenam, + const char* propertyName, + const char* name) const = 0; + + virtual void resolve() = 0; + + }; +}; +}; +#endif //_DATAFACTORY_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.cpp new file mode 100644 index 0000000000..ac5d4f642f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.cpp @@ -0,0 +1,1237 @@ +/* + * + * 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: 2006/02/08 14:43:56 $ */ + +////////////////////////////////////////////////////////////////////// +// DataFactoryImpl.cpp: implementation of the DataFactory class. +// +////////////////////////////////////////////////////////////////////// +#include "commonj/sdo/SDORuntimeException.h" + +#include "commonj/sdo/DataFactoryImpl.h" +#include "commonj/sdo/DataObjectImpl.h" + +#include "commonj/sdo/Logger.h" + + +#include "commonj/sdo/PropertyList.h" + +#include +#include + + +using namespace std; +using namespace commonj::sdo; + +namespace commonj{ +namespace sdo { + +// =================================================================== +// Constructor +// =================================================================== +DataFactoryImpl::DataFactoryImpl() +{ + + /* add the primitives to every mdg - */ + + isResolved = false; + addType(Type::SDOTypeNamespaceURI,"BigDecimal"); + addType(Type::SDOTypeNamespaceURI,"BigInteger"); + addType(Type::SDOTypeNamespaceURI,"Boolean"); + + addType(Type::SDOTypeNamespaceURI,"Byte"); + addType(Type::SDOTypeNamespaceURI,"Bytes"); + addType(Type::SDOTypeNamespaceURI,"Character"); + + addType(Type::SDOTypeNamespaceURI,"String"); + addType(Type::SDOTypeNamespaceURI,"DataObject"); + addType(Type::SDOTypeNamespaceURI,"Date"); + addType(Type::SDOTypeNamespaceURI,"Double"); + addType(Type::SDOTypeNamespaceURI,"Float"); + addType(Type::SDOTypeNamespaceURI,"Integer"); + addType(Type::SDOTypeNamespaceURI,"Long"); + addType(Type::SDOTypeNamespaceURI,"Short"); + addType(Type::SDOTypeNamespaceURI,"URI"); + + // abstract + addType(Type::SDOTypeNamespaceURI,"ChangeSummary"); + + rootElementName = 0; + + +} + +// =================================================================== +// Destructor +// =================================================================== +DataFactoryImpl::~DataFactoryImpl() +{ + + TYPES_MAP::iterator typeIter; + for (typeIter = types.begin() ; typeIter != types.end() ; ++typeIter) + { + if (strncmp((typeIter->first).c_str(),"ALIAS::", 7)) + { + delete typeIter->second; + } + } + if (rootElementName != 0) + { + delete rootElementName; + rootElementName = 0; + } + +} + +// =================================================================== +// get the root element name +// =================================================================== +const char* DataFactoryImpl::getRootElementName() const +{ + return (const char*)rootElementName; +} + +// =================================================================== +// set the root element name +// =================================================================== +void DataFactoryImpl::setRootElementName(const char* ren) +{ + if (rootElementName != 0) + { + delete rootElementName; + rootElementName = 0; + } + if (ren != 0 && (strlen(ren) != 0)) + { + rootElementName = new char[strlen(ren) +1]; + strcpy(rootElementName, ren); + } +} + +// =================================================================== +// copy constructor +// =================================================================== +DataFactoryImpl::DataFactoryImpl(const DataFactoryImpl& inmdg) +{ + isResolved = false; + rootElementName = 0; + setRootElementName(inmdg.getRootElementName()); + copyTypes(inmdg); +} + +// =================================================================== +// Assignment operator +// =================================================================== +DataFactoryImpl& DataFactoryImpl::operator=(const DataFactoryImpl& inmdg) +{ + if (this != &inmdg) + { + rootElementName = 0; + copyTypes(inmdg); + setRootElementName(inmdg.getRootElementName()); + } + return *this; +} + +// =================================================================== +// copy Types to this DataFactory +// =================================================================== +void DataFactoryImpl::copyTypes(const DataFactoryImpl& inmdg) +{ + + if (isResolved) + { + SDO_THROW_EXCEPTION("copyTypes", + SDOUnsupportedOperationException, "Copying Type after data graph completed"); + } + + TYPES_MAP::const_iterator typeIter; + TYPES_MAP::iterator typeIter2; + char* fullTypeName; + + for (typeIter = inmdg.types.begin() ; typeIter != inmdg.types.end() ; ++typeIter) + { + // add this type to this metadata + addType((typeIter->second)->getURI(), (typeIter->second)->getName()); + + // re-find the type we just added. + fullTypeName = getFullTypeName( + (typeIter->second)->getURI(), + (typeIter->second)->getName()); + typeIter2 = types.find(fullTypeName); + if (fullTypeName)delete fullTypeName; + + // copy the aliases , if there are any. + + if ((typeIter->second)->getAliasCount() > 0) + { + for (int j=0;j<(typeIter->second)->getAliasCount();j++) + { + (typeIter2->second)->setAlias( + (typeIter->second)->getAlias()); + } + } + + + // Now add all the properties + PropertyList props = typeIter->second->getProperties(); + for (int i=0; i < props.size(); i++) + { + // Ensure the properties type is added + const Type& propType = props[i].getType(); + addType(propType.getURI(), propType.getName()); + + // Now add the property + addPropertyToType((typeIter->second)->getURI(), + (typeIter->second)->getName(), + props[i].getName(), + propType.getURI(), + propType.getName(), + props[i].isMany(), + props[i].isReadOnly(), + props[i].isContainment()); + + // copy the aliases if there are any. + if (props[i].getAliasCount() > 0) + { + + PropertyImpl* p = (typeIter2->second)-> + getPropertyImpl(props[i].getName()); + if (p != 0) + { + for (int j=0;jgetAliasCount();j++) + { + p->setAlias(props[i].getAlias(j)); + } + } + + } + + } // end - iterate over Properties + } // end - iterate over Types +} + +// =================================================================== +// addType - adds a new Type if it does not already exist +// =================================================================== +void DataFactoryImpl::addType(const char* uri, const char* inTypeName, + bool isSeq, + bool isOp, + bool isAbs, + bool isData) +{ + if (isResolved) + { + SDO_THROW_EXCEPTION("DataFactory::addType", + SDOUnsupportedOperationException, "Adding Type after data graph completed"); + } + + if (inTypeName == 0 || strlen(inTypeName) == 0) + { + SDO_THROW_EXCEPTION("DataFactory::addType", + SDOIllegalArgumentException, " Type has empty name"); + } + + + if (findType(uri, inTypeName) == 0) + { + char* fullTypeName = getFullTypeName(uri, inTypeName); + types[fullTypeName] = new TypeImpl(uri, inTypeName, isSeq, isOp, isAbs, isData); + if (fullTypeName)delete fullTypeName; + + } +} + +// =================================================================== +// Check whether a change summary would clash. +// =================================================================== + +bool DataFactoryImpl::recursiveCheck(TypeImpl* cs, TypeImpl* t) +{ + if (cs->isDataType()) return false; + + if (! strcmp(cs->getName(), t->getName()) && + ! strcmp(cs->getURI() , t->getURI()) ) + { + return true; + } + + PropertyList pl = cs->getProperties(); + + for (int i=0 ; i < pl.size() ; i++ ) + { + if (recursiveCheck((TypeImpl*)&(pl[i].getType()), t)) return true; + } + return false; +} + +// =================================================================== +// Check whether a change summary would clash. +// =================================================================== +bool DataFactoryImpl::checkForValidChangeSummary(TypeImpl* t) +{ + // None of the containing types can have a cs already. + // None of the properties of this type can hold a type + // which has a change summary. + if (isResolved) + { + SDO_THROW_EXCEPTION("DataFactory::addChangeSummary", + SDOUnsupportedOperationException, "Adding Change Summary after data graph completed"); + } + + if (cstypes.size() > 0) { + for (int i = 0 ;i < cstypes.size(); i++) + { + if (recursiveCheck(cstypes[i], t)) + { + return false; + + } + } + } + cstypes.push_back(t); + return true; +} + +// =================================================================== +// addPropertyToType - adds a Property to an existing Type +// =================================================================== +void DataFactoryImpl::addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool many) +{ + char* fullPropTypeName = getFullTypeName(propTypeUri, propTypeName); + TYPES_MAP::iterator typeIter; + typeIter = types.find(fullPropTypeName); + if (fullPropTypeName)delete fullPropTypeName; + if (typeIter != types.end()) + { + addPropertyToType(uri,inTypeName, + propname, + propTypeUri, + propTypeName, + many, + false, + !(typeIter->second)->isDataType()); + } +} + +void DataFactoryImpl::addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool many, + bool rdonly, + bool cont) +{ + if (isResolved) + { + SDO_THROW_EXCEPTION("DataFactory::addPropertyToType", + SDOUnsupportedOperationException, "Adding Properties after data graph completed"); + } + + TYPES_MAP::iterator typeIter, typeIter2; + + char* fullTypeName = getFullTypeName(uri, inTypeName); + typeIter = types.find(fullTypeName); + if (fullTypeName)delete fullTypeName; + + if(typeIter == types.end()) + { + string msg("Type not found: "); + if (uri != 0)msg += uri; + msg += " "; + if (inTypeName != 0)msg += inTypeName; + SDO_THROW_EXCEPTION("addPropertyToType", + SDOTypeNotFoundException, msg.c_str()); + + } + + if ((typeIter->second)->isDataType()) + { + string msg("Cannot add a properties to data types: "); + msg += (typeIter->second)->getName(); + SDO_THROW_EXCEPTION("addPropertyToType", + SDOIllegalArgumentException, msg.c_str()); + } + + fullTypeName = getFullTypeName(propTypeUri, propTypeName); + typeIter2 = types.find(fullTypeName); + if (fullTypeName)delete fullTypeName; + + if (typeIter2 == types.end()) + { + string msg("Type not found: "); + if (propTypeUri != 0)msg += propTypeUri; + msg += " "; + if (propTypeName != 0)msg += propTypeName; + SDO_THROW_EXCEPTION("addPropertyToType", + SDOTypeNotFoundException, msg.c_str()); + } + + // Check if its a ChangeSummary + if (propTypeUri != 0 && !strcmp(propTypeUri,Type::SDOTypeNamespaceURI) && + !strcmp(propTypeName,"ChangeSummary") ) + { + if (checkForValidChangeSummary(typeIter->second)) + { + // The change summary is allowable if we got to here - force the right params. + // we will not use this property - its just for compatibility. + // we have to use getChangeSummary to get the change summary, + // and isChangeSummaryType to see if this is a type which may have + // a change summary. + (typeIter->second)->addChangeSummary(); + // dont even show the property - its not needed + //((typeIter->second)->addProperty(propname, *(typeIter2->second),false,true, false)); + + } + return; + } + + + if ((typeIter->second)->isDataType()) + { + string msg("Cannot add property to a data type : "); + msg += (typeIter->second)->getName(); + SDO_THROW_EXCEPTION("addPropertyToType", + SDOIllegalArgumentException, msg.c_str()); + // cannot add a property to a primitive + } + + // @PGR@ containment should be ignored for DataType +/* if ((typeIter2->second)->isDataType() && cont == true) + { + string msg("Data types may not be containment : "); + msg += (typeIter2->second)->getName(); + SDO_THROW_EXCEPTION("addPropertyToType", + SDOIllegalArgumentException, msg.c_str()); + // cannot try to make a property containment on a data type + } +*/ + ((typeIter->second)->addProperty(propname, *(typeIter2->second),many,rdonly, cont)); + return; +} + +// =================================================================== +// addPropertyToType - adds a Property to an existing Type +// =================================================================== + +void DataFactoryImpl::addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const Type& tprop, + bool many) +{ + addPropertyToType(uri, + inTypeName, + propname, + tprop, + many, + false, + !tprop.isDataType()); +} + + +void DataFactoryImpl::addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const Type& tprop, + bool many, + bool rdonly, + bool cont) +{ + addPropertyToType(uri, + inTypeName, + propname, + tprop.getURI(), + tprop.getName(), + many, + rdonly, cont); +} + +// =================================================================== +// addPropertyToType - adds a Property to an existing Type +// =================================================================== +void DataFactoryImpl::addPropertyToType(const Type& cont, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool many) +{ + addPropertyToType(cont.getURI(), + cont.getName(), + propname, + propTypeUri, + propTypeName, + many); +} + +void DataFactoryImpl::addPropertyToType(const Type& cont, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool many, + bool rdonly, + bool contain) +{ + addPropertyToType(cont.getURI(), + cont.getName(), + propname, + propTypeUri, + propTypeName, + many, + rdonly, + contain); +} + +// =================================================================== +// addPropertyToType - adds a Property to an existing Type +// =================================================================== +void DataFactoryImpl::addPropertyToType(const Type& tp, + const char* propname, + const Type& tprop, + bool many) +{ + addPropertyToType(tp.getURI(), + tp.getName(), + propname, + tprop.getURI(), + tprop.getName(), + many); +} + +void DataFactoryImpl::addPropertyToType(const Type& tp, + const char* propname, + const Type& tprop, + bool many, + bool rdonly, + bool cont) +{ + addPropertyToType(tp.getURI(), + tp.getName(), + propname, + tprop.getURI(), + tprop.getName(), + many, + rdonly, + cont); +} + +// =================================================================== +// getFullTypeName - return the name used as a key in the types map +// =================================================================== +char* DataFactoryImpl::getFullTypeName(const char* uri, const char* inTypeName) const +{ + char* c; + if (uri != 0 && inTypeName != 0) + { + c = new char[strlen(uri) + strlen(inTypeName) + 2]; + sprintf(c,"%s#%s",uri,inTypeName); + return c; + } + if (uri != 0) + { + c = new char[strlen(uri) + 2]; + sprintf(c,"%s#",uri); + return c; + } + c = new char[strlen(inTypeName) + 2]; + sprintf(c,"#%s",inTypeName); + return c; +} + +// =================================================================== +// getFullTypeName - return the name used as a key in the types map +// =================================================================== +char* DataFactoryImpl::getAliasTypeName(const char* uri, const char* inTypeName) const +{ + char* c; + if (uri != 0 && inTypeName != 0) + { + c = new char[strlen(uri) + strlen(inTypeName) + 9]; + sprintf(c,"ALIAS::%s#%s",uri,inTypeName); + return c; + } + if (uri != 0) + { + c = new char[strlen(uri) + 9]; + sprintf(c,"ALIAS::%s#",uri); + return c; + } + c = new char[strlen(inTypeName) + 9]; + sprintf(c,"ALIAS::#%s",inTypeName); + return c; +} + +// =================================================================== +// getType - return a pointer to the required Type +// =================================================================== +const Type& DataFactoryImpl::getType(const char* uri, const char* inTypeName) const +{ + + const Type* type = findType(uri, inTypeName); + + if (type == 0) + { + string msg("Type not found :"); + if (uri != 0) msg += uri; + msg += " "; + if (inTypeName != 0) msg += inTypeName; + SDO_THROW_EXCEPTION("getType" , + SDOTypeNotFoundException, msg.c_str()); + } + + return *type; +} + +// =================================================================== +// setBaseType - sets the type from which this type inherits properties +// =================================================================== + +void DataFactoryImpl::setBaseType( const Type& type, + const Type& base) +{ + setBaseType(type.getURI(),type.getName(),base.getURI(), base.getName()); +} + +// =================================================================== +// setBaseType - sets the type from which this type inherits properties +// =================================================================== + +void DataFactoryImpl::setBaseType( const char* typeuri, + const char* typenam, + const char* baseuri, + const char* basename) +{ + const TypeImpl* base = findTypeImpl(baseuri, basename); + if (base == 0) + { + string msg("Type not found :"); + if (baseuri != 0) msg += baseuri; + msg += " "; + if (basename != 0) msg += basename; + SDO_THROW_EXCEPTION("setBaseType" , + SDOTypeNotFoundException, msg.c_str()); + } + + TYPES_MAP::const_iterator typeIter; + + char* fullTypeName = getFullTypeName(typeuri, typenam); + typeIter = types.find(fullTypeName); + if (fullTypeName)delete fullTypeName; + + if(typeIter == types.end()) + { + string msg("Type not found :"); + if (typeuri != 0) msg += typeuri; + msg += " "; + if (typenam != 0) msg += typenam; + SDO_THROW_EXCEPTION("setBaseType" , + SDOTypeNotFoundException, msg.c_str()); + } + + (typeIter->second)->setBaseType(base); +} + + +// =================================================================== +// setPropertySubstitute - additional type for a property +// =================================================================== + + void DataFactoryImpl::setPropertySubstitute( + const char* uri, + const char* inTypeName, + const char* propname, + const char* subname, + const char* subTypeUri, + const char* subTypeName) + { + const TypeImpl* cont = findTypeImpl(uri, inTypeName); + if (cont == 0) + { + string msg("Type not found :"); + if (uri != 0) msg += uri; + msg += " "; + if (inTypeName != 0) msg += inTypeName; + SDO_THROW_EXCEPTION("setPropertySubstitute" , + SDOTypeNotFoundException, msg.c_str()); + } + PropertyImpl* pi = cont->getPropertyImpl(propname); + const Type& tsub = getType(subTypeUri, + subTypeName); + if (pi != 0)pi->setSubstitution(this,subname,tsub); + } + + + + void DataFactoryImpl::setPropertySubstitute( + const Type& containertype, + const char* propname, + const char* subname, + const Type& subtype) + { + setPropertySubstitute( + containertype.getURI(), + containertype.getName(), + propname,subname, + subtype.getURI(),subtype.getName()); + } + +// =================================================================== +// setDefault - sets the default value for a property of a type +// =================================================================== + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname, bool b ) + { + setDefault(t.getURI(), t.getName(), propname, b); + } + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname , char c) + + { + setDefault(t.getURI(), t.getName(), propname, c); + } + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname , wchar_t c) + { + setDefault(t.getURI(), t.getName(), propname, c); + } + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname , char* c) + { + setDefault(t.getURI(), t.getName(), propname, c); + } + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname , short s) + { + setDefault(t.getURI(), t.getName(), propname, s); + } + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname , long l) + { + setDefault(t.getURI(), t.getName(), propname, l); + } + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname , int64_t i) + { + setDefault(t.getURI(), t.getName(), propname, i); + } + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname , float f) + { + setDefault(t.getURI(), t.getName(), propname, f); + } + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname , long double d) + { + setDefault(t.getURI(), t.getName(), propname, d); + } + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname , const SDODate d) + { + setDefault(t.getURI(), t.getName(), propname, d); + } + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname , const wchar_t* c, unsigned int len) + { + setDefault(t.getURI(), t.getName(), propname, c, len); + } + + void DataFactoryImpl::setDefault( + const Type& t, const char* propname , const char* c, unsigned int len) + { + setDefault(t.getURI(), t.getName(), propname, c, len); + } + + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname, bool b ) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(b); + } + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname , char c) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(c); + } + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname , wchar_t c) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(c); + } + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname , char* c) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(c); + } + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname , short s) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(s); + } + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname , long l) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(l); + } + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname , int64_t i) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(i); + } + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname , float f) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(f); + } + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname , long double d) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(d); + } + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname , const SDODate d) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(d); + } + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname , const wchar_t* c, unsigned int len) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(c,len); + } + + void DataFactoryImpl::setDefault( + const char* typuri, const char* typnam, + const char* propname , const char* c, unsigned int len) + { + const TypeImpl* ti = findTypeImpl(typuri,typnam); + PropertyImpl* pi = ti->getPropertyImpl(propname); + if (pi != 0)pi->setDefault(c,len); + } + + void DataFactoryImpl::setOpposite( + const Type& typ, + const char* propnam, + const Type& opptyp, + const char* opppropnam) + { + SDO_THROW_EXCEPTION("setOpposite" , + SDOUnsupportedOperationException, " Not implemented"); + } + +// =================================================================== +// getTypeImpl - return a pointer to the required TypeImpl +// =================================================================== +const TypeImpl& DataFactoryImpl::getTypeImpl(const char* uri, const char* inTypeName) const +{ + const TypeImpl* type = findTypeImpl(uri, inTypeName); + + if (type == 0) + { + string msg("Type not found :"); + if (uri != 0)msg += uri; + msg += " "; + if (inTypeName != 0)msg += inTypeName; + SDO_THROW_EXCEPTION("getTypeImpl" , + SDOTypeNotFoundException, msg.c_str()); + } + + return *type; +} + +// =================================================================== +// findType +// =================================================================== + +const Type* DataFactoryImpl::findType(const char* uri, const char* inTypeName) const +{ + return (Type*)findTypeImpl(uri,inTypeName); +} + +// =================================================================== +// findTypeImpl +// =================================================================== + +const TypeImpl* DataFactoryImpl::findTypeImpl(const char* uri, const char* inTypeName) const +{ + char* fullTypeName = getFullTypeName(uri, inTypeName); + TYPES_MAP::const_iterator typeIter; + typeIter = types.find(fullTypeName); + if (fullTypeName)delete fullTypeName; + if(typeIter != types.end()) + { + return typeIter->second; + } + else + { + // try alias names + fullTypeName = getAliasTypeName(uri, inTypeName); + typeIter = types.find(fullTypeName); + if (fullTypeName)delete fullTypeName; + if(typeIter != types.end()) + { + return typeIter->second; + } + } + return 0; +} + +// =================================================================== +// setAlias - sets a new alias for this type +// =================================================================== + +void DataFactoryImpl::setAlias(const char* typeuri, + const char* typenam, + const char* alias) +{ + + char* fullTypeName = getFullTypeName(typeuri, typenam); + TYPES_MAP::iterator typeIter; + typeIter = types.find(fullTypeName); + if (fullTypeName)delete fullTypeName; + if(typeIter != types.end()) + { + (typeIter->second)->setAlias(alias); + fullTypeName = getAliasTypeName(typeuri, alias); + types[fullTypeName] = typeIter->second; + } + +} + +// =================================================================== +// setAlias - sets a new alias for this type +// =================================================================== + +void DataFactoryImpl::setAlias(const char* typeuri, + const char* typenam, + const char* propname, + const char* alias) +{ + const TypeImpl& t = getTypeImpl(typeuri, typenam); + PropertyImpl* p = t.getPropertyImpl(propname); + if (p != 0)p->setAlias(alias); + +} + +// =================================================================== +// getTypes - gets the full list of types for this factory +// =================================================================== + +TypeList DataFactoryImpl::getTypes() const +{ + TYPES_MAP::const_iterator typeIter; + + + std::vector typeVector; + + for (typeIter = types.begin() ; typeIter != types.end(); + ++typeIter) { + if (strncmp((typeIter->first).c_str(),"ALIAS::", 7)) { + typeVector.insert(typeVector.end(),typeIter->second); + } + } + + + return typeVector; +} + + +// =================================================================== +// resolve - resolves the type and includes all the properties from +// the supertype. After this has been called, no further changes +// to the type hierarchy are allowed. +// =================================================================== + +void DataFactoryImpl::resolve() +{ + if (isResolved) return; + + TYPES_MAP::iterator typeIter; + for (typeIter = types.begin() ; typeIter != types.end(); + ++typeIter) + { + (typeIter->second)->initCompoundProperties(); + (typeIter->second)->validateChangeSummary(); + } + + isResolved = true; +} + +// =================================================================== +// create - creates a data object from the types available. +// This first resolves the type hierarchy, and thus no further changes +// to the type hierarchy are allowed. +// =================================================================== + + +RefCountingPointer DataFactoryImpl::create(const char* uri, const char* typeName) +{ + + if (!isResolved) + { + // Allow creation of types and properties before resolve. + if (uri != 0 && !strcmp(uri,Type::SDOTypeNamespaceURI)) { + if (!strcmp(typeName,"Type") || !strcmp(typeName,"Property")) + { + DataObject* dob = (DataObject*)(new DataObjectImpl(this, getTypeImpl(uri, typeName))); + return dob; + } + } + resolve(); + } + + const TypeImpl* ti = findTypeImpl(uri,typeName); + if (ti == 0) + { + string msg("Instantiation of unknown type :"); + if (uri != 0) msg += uri; + msg += " "; + if (typeName != 0)msg += typeName; + SDO_THROW_EXCEPTION("create" , + SDOTypeNotFoundException, msg.c_str()); + } + + if (ti->isAbstractType()) + { + string msg("Instantiation of abstract type :"); + if (uri != 0)msg += uri; + msg += " "; + if (typeName != 0)msg += typeName; + SDO_THROW_EXCEPTION("create" , + SDOUnsupportedOperationException, msg.c_str()); + } + + DataObject* dob = (DataObject*)(new DataObjectImpl(this, getTypeImpl(uri, typeName))); + return dob; +} + +// =================================================================== +// The openProperties map is a list of the curently present open +// properties as used by this factory. It will cause the +// open properties to be written out as attributes and elements +// of the root data object when a graph is serialized. +// =================================================================== + const propertyMap& DataFactoryImpl::getOpenProperties() + { + return openProperties; + } + + void DataFactoryImpl::addOpenProperty(const PropertyImpl& prop) + { + propertyMap::iterator i; + while ((i = openProperties.find(prop.getName())) != + openProperties.end()) + { + openProperties.erase(i); + } + openProperties.insert(make_pair(prop.getName(),prop)); + } + + void DataFactoryImpl::removeOpenProperty(const char* name) + { + propertyMap::iterator i = + openProperties.find(name); + if (i != openProperties.end()) + { + openProperties.erase(i); + } + } + + +// =================================================================== +// create - creates a data object from the types available. +// This first resolves the type hierarchy, and thus no further changes +// to the type hierarchy are allowed. +// =================================================================== + +RefCountingPointer DataFactoryImpl::create(const Type& type) +{ + return create( type.getURI(), type.getName()); +} + + +// =================================================================== +// setDASValue - Set a value on a Type +// =================================================================== +void DataFactoryImpl::setDASValue(const Type& type, + const char* name, + DASValue* value) +{ + setDASValue(type.getURI(), type.getName(), name, value); +} + + +void DataFactoryImpl::setDASValue(const char* typeuri, + const char* typenam, + const char* name, + DASValue* value) +{ + TypeImpl* type = (TypeImpl*)findTypeImpl(typeuri, typenam); + if (type != NULL) + { + type->setDASValue(name, value); + } +} + +// =================================================================== +// getDASValue - retrieve a value from a Type +// =================================================================== + +DASValue* DataFactoryImpl::getDASValue(const Type& type, + const char* name) const +{ + return getDASValue(type.getURI(), type.getName(), name); +} + +DASValue* DataFactoryImpl::getDASValue(const char* typeuri, + const char* typenam, + const char* name) const +{ + TypeImpl* type = (TypeImpl*)findTypeImpl(typeuri, typenam); + if (type != NULL) + { + return type->getDASValue(name); + } + + return NULL; +} + +// =================================================================== +// setDASValue - Set a value on a Property +// =================================================================== +void DataFactoryImpl::setDASValue( + const Type& type, + const char* propertyName, + const char* name, + DASValue* value) +{ + setDASValue(type.getURI(), type.getName(), propertyName, name, value); +} + + +void DataFactoryImpl::setDASValue( + const char* typeuri, + const char* typenam, + const char* propertyName, + const char* name, + DASValue* value) +{ + const TypeImpl* type = findTypeImpl(typeuri, typenam); + if (type != NULL) + { + PropertyImpl* prop = type->getPropertyImplPure(propertyName); + if (prop != 0)prop->setDASValue(name, value); + } +} + +// =================================================================== +// getDASValue - retrieve a value from a Property +// =================================================================== +DASValue* DataFactoryImpl::getDASValue( + const Type& type, + const char* propertyName, + const char* name) const +{ + return getDASValue(type.getURI(), type.getName(), propertyName, name); +} + +DASValue* DataFactoryImpl::getDASValue( + const char* typeuri, + const char* typenam, + const char* propertyName, + const char* name) const +{ + const TypeImpl* type = findTypeImpl(typeuri, typenam); + if (type != NULL) + { + try + { + PropertyImpl* prop = type->getPropertyImpl(propertyName); + if (prop != 0)return prop->getDASValue(name); + } + catch (const SDOPropertyNotFoundException&) + { + // Ignore - return null + } + } + + return NULL; +} + + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.h new file mode 100644 index 0000000000..7f17d4952b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.h @@ -0,0 +1,388 @@ +/* + * + * 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 $ */ + +#ifndef _DataFactoryIMPL_H_ +#define _DataFactoryIMPL_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/DataFactory.h" +#include "commonj/sdo/TypeImpl.h" +#include "commonj/sdo/RefCountingPointer.h" +#include "commonj/sdo/PropertyImpl.h" +#include "commonj/sdo/SDOXMLString.h" + + +#include +using namespace std; + + +namespace commonj{ +namespace sdo{ + +typedef map propertyMap; + +/** + * DataFactoryImpl implements the abstract class DataFactory. + * DataFactoryImpl holds metadata and creates DataObjects. + * + * The DataFactory holds properties and types loaded from XSD, or + * created using the DataFactory API. + */ +class DataFactoryImpl : public DataFactory +{ +public: + DataFactoryImpl(); + virtual ~DataFactoryImpl(); + + DataFactoryImpl(const DataFactoryImpl& inmdg); + DataFactoryImpl& operator=(const DataFactoryImpl& inmdg); + + virtual void addType(const char* uri, const char* inTypeName, + bool isSeqenced = false, + bool isOpen = false, + bool isAbstract = false, + bool isDataType = false); + + + virtual void addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool isMany = false); + + + virtual void addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const Type& propType, + bool isMany = false); + + virtual void addPropertyToType(const Type& type, + const char* propname, + const Type& propType, + bool isMany = false); + + virtual void addPropertyToType(const Type& type, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool isMany = false); + + virtual void addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool isMany , + bool isReadOnly, + bool isContainment); + + virtual void addPropertyToType(const char* uri, + const char* inTypeName, + const char* propname, + const Type& propType, + bool isMany, + bool isReadOnly, + bool isContainment); + + virtual void addPropertyToType(const Type& type, + const char* propname, + const Type& propType, + bool isMany, + bool isReadOnly, + bool isContainment); + + virtual void addPropertyToType(const Type& type, + const char* propname, + const char* propTypeUri, + const char* propTypeName, + bool isMany, + bool isReadOnly, + bool isContainment); + + + virtual void setBaseType( const Type& type, + const Type& base); + + virtual void setBaseType( const char* typeuri, + const char* typenam, + const char* baseuri, + const char* basename); + + virtual const Type& getType(const char* uri, const char* inTypeName) const; + + virtual TypeList getTypes() const; + + virtual DataObjectPtr create(const char* uri, const char* typeName) ; + + virtual DataObjectPtr create(const Type& type) ; + + virtual void setAlias(const char* typeuri, + const char* typenam, + const char* alias) ; + + virtual void setAlias(const char* typeuri, + const char* typname, + const char* propname, + const char* alias) ; + + virtual void setOpposite (const Type& type, + const char* propname, + const Type& opptype, + const char* opppropname) ; + + + virtual void setPropertySubstitute( + const char* uri, + const char* inTypeName, + const char* propname, + const char* subname, + const char* subTypeUri, + const char* subTypeName); + + + virtual void setPropertySubstitute( + const Type& containertype, + const char* propname, + const char* subname, + const Type& subtype); + + //////////////////////////////////////////////////////// + virtual void setDefault( + const Type& t, + const char* propname, + bool b ) ; + + virtual void setDefault( + const Type& t, + const char* propname , + char c) ; + + virtual void setDefault( + const Type& t, + const char* propname , + wchar_t c) ; + + virtual void setDefault( + const Type& t, + const char* propname , + char* c) ; + + virtual void setDefault( + const Type& t, + const char* propname , + short s) ; + + virtual void setDefault( + const Type& t, + const char* propname , + long l) ; + + virtual void setDefault( + const Type& t, + const char* propname , + int64_t i) ; + + virtual void setDefault( + const Type& t, + const char* propname , + float f) ; + + virtual void setDefault( + const Type& t, + const char* propname , + long double d) ; + + virtual void setDefault( + const Type& t, + const char* propname , + const SDODate d) ; + + virtual void setDefault( + const Type& t, + const char* propname , + const wchar_t* c, + unsigned int len) ; + + virtual void setDefault( + const Type& t, + const char* propname , + const char* c, + unsigned int len) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname, + bool b ) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + char c) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + wchar_t c) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + char* c) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + short s) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + long l) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + int64_t i) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + float f) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + long double d) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + const SDODate d) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + const wchar_t* c, + unsigned int len) ; + + virtual void setDefault( + const char* typuri, + const char* typnam, + const char* propname , + const char* c, + unsigned int len) ; + + virtual void setDASValue( + const Type& type, + const char* name, + DASValue* value); + + virtual void setDASValue( + const char* typeuri, + const char* typenam, + const char* name, + DASValue* value); + + virtual DASValue* getDASValue( + const Type& type, + const char* name) const; + + virtual DASValue* getDASValue( + const char* typeuri, + const char* typenam, + const char* name) const; + + virtual void setDASValue( + const Type& type, + const char* propertyName, + const char* name, + DASValue* value); + + virtual void setDASValue( + const char* typeuri, + const char* typenam, + const char* propertyName, + const char* name, + DASValue* value); + + virtual DASValue* getDASValue( + const Type& type, + const char* propertyName, + const char* name) const; + + virtual DASValue* getDASValue( + const char* typeuri, + const char* typenam, + const char* propertyName, + const char* name) const; + + virtual void resolve(); + + const Type* findType (const char* uri, const char* inTypeName) const; + const TypeImpl* findTypeImpl (const char* uri, const char* inTypeName) const; + + void addOpenProperty(const PropertyImpl& prop); + void removeOpenProperty(const char* name); + const propertyMap& getOpenProperties(); + virtual const TypeImpl& getTypeImpl(const char* uri, const char* inTypeName) const; + virtual const char* getRootElementName() const; + virtual void setRootElementName(const char* ren); + + +private: + typedef map TYPES_MAP; + TYPES_MAP types; + + char * rootElementName; + + propertyMap openProperties; + + // Need to validate and 'lock' the data model for base types to + // work properly. + + bool isResolved; + + bool recursiveCheck(TypeImpl* cs, TypeImpl* t); + bool checkForValidChangeSummary(TypeImpl* t); + + typedef vector TYPES_VECTOR; + TYPES_VECTOR cstypes; + + char* getFullTypeName(const char* uri, const char* inTypeName) const; + char* getAliasTypeName(const char* uri, const char* inTypeName) const; + + void copyTypes(const DataFactoryImpl& inmdg); +}; +}; +}; +#endif // _DataFactoryIMPL_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.cpp new file mode 100644 index 0000000000..a367853f06 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.cpp @@ -0,0 +1,33 @@ +/* + * + * 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 "commonj/sdo/disable_warn.h" +#include "commonj/sdo/DataGraph.h" +#include "commonj/sdo/SDORuntimeException.h" + +namespace commonj{ + namespace sdo { + + DataGraph::~DataGraph() + { + } + + + }; +}; diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.h new file mode 100644 index 0000000000..715223992a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.h @@ -0,0 +1,99 @@ +/* + * + * 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 $ */ + +#ifndef _DATAGRAPH_H_ +#define _DATAGRAPH_H_ + +#include "commonj/sdo/RefCountingObject.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/export.h" +#include "commonj/sdo/DataObject.h" + + +namespace commonj{ +namespace sdo{ + +/** + * DataGraph holds a whole graph of data objects, starting from + * a single root. This class is not currently used in the C++ + * implementation, but will be required by DAS implementations. + */ + +class DataGraph : public RefCountingObject +{ + public: + virtual ~DataGraph(); + + /** + * + * Gets the root data object of this graph. + */ + + + virtual SDO_API DataObjectPtr getRootObject() = 0; + + /** + * + * gets the name of the element from which the root + * object was loaded (The XML definition). + */ + virtual SDO_API const char* getRootElementName() = 0; + + /** + * Sets the Root data object. + * + */ + virtual SDO_API void setRootObject(DataObjectPtr dob) = 0; + + /** + * Creates a root data object - used by DAS implementations. + * + */ + + virtual SDO_API DataObjectPtr createRootObject(const char* uri, + const char* name) = 0; + + /** + * Creates a root data object - used by DAS implementations. + * + */ + + virtual SDO_API DataObjectPtr createRootObject(const Type& t) = 0; + + /** + * Gets the change summary if there is one. + * + */ + + virtual SDO_API ChangeSummaryPtr getChangeSummary() = 0; + + /** + * Gets a type from the data factory. + * + */ + + virtual SDO_API const Type& getType(const char* uri, + const char* name) = 0; + + +}; +}; +}; + +#endif //_DATAGRAPH_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.cpp new file mode 100644 index 0000000000..636dbed25f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.cpp @@ -0,0 +1,117 @@ +/* + * + * 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 "commonj/sdo/DataGraphImpl.h" +#include "commonj/sdo/DataObjectImpl.h" +#include "commonj/sdo/SDORuntimeException.h" + + + +namespace commonj{ + namespace sdo { + +/** + * DataGraphImpl implements DataGraph. + * DataGraph holds a whole graph of data objects, starting from + * a single root. This class is not currently used in the C++ + * implementation, but will be required by DAS implementations. + */ + DataGraphImpl::~DataGraphImpl() + { + } + + DataGraphImpl::DataGraphImpl(DataFactoryPtr fac) + { + factory = fac; + root = 0; + } + + + DataObjectPtr DataGraphImpl::getRootObject() + { + return root; + } + + const char* DataGraphImpl::getRootElementName() + { + if (root == 0) return 0; + return root->getInstanceProperties()[0].getName(); + } + + void DataGraphImpl::setRootObject(DataObjectPtr dob) + { + if (root != 0) + { + SDO_THROW_EXCEPTION("setRootObject",SDOUnsupportedOperationException, + "Root data object already exists"); + } + root = dob; + } + + + DataObjectPtr DataGraphImpl::createRootObject(const char* uri, + const char* name) + { + if (root != 0) + { + SDO_THROW_EXCEPTION("createRootObject",SDOUnsupportedOperationException, + "Root data object already exists"); + } + root = factory->create(uri,name); + if (root->getInstanceProperties()[0].getType().isDataType()) + { + SDO_THROW_EXCEPTION("createRootObject",SDOUnsupportedOperationException, + "Root data object cannot have a datatype property at element 0"); + } + return root; + } + + + DataObjectPtr DataGraphImpl::createRootObject(const Type& t) + { + if (root != 0) + { + SDO_THROW_EXCEPTION("createRootObject",SDOUnsupportedOperationException, + "Root data object already exists"); + } + root = factory->create(t); + if (root->getInstanceProperties()[0].getType().isDataType()) + { + SDO_THROW_EXCEPTION("createRootObject",SDOUnsupportedOperationException, + "Root data object cannot have a datatype property at element 0"); + } + return root; + } + + + ChangeSummaryPtr DataGraphImpl::getChangeSummary() + { + if (!root) return 0; + return root->getChangeSummary(); + } + + + const Type& DataGraphImpl::getType(const char* uri, + const char* name) + { + return factory->getType(uri,name); + } + + }; +}; diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.h new file mode 100644 index 0000000000..15cc994171 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.h @@ -0,0 +1,106 @@ +/* + * + * 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 $ */ + +#ifndef _DATAGRAPHIMPL_H_ +#define _DATAGRAPHIMPL_H_ +#include "commonj/sdo/export.h" +#include "commonj/sdo/DataGraph.h" +#include "commonj/sdo/disable_warn.h" + + +namespace commonj{ +namespace sdo{ + +/** + * DataGraphImpl implements the abstract class DataGraph. + * DataGraph holds a whole graph of data objects, starting from + * a single root. This class is not currently used in the C++ + * implementation, but will be required by DAS implementations. + */ + +class DataGraphImpl : public DataGraph +{ + public: + virtual ~DataGraphImpl(); + + SDO_API DataGraphImpl(DataFactoryPtr fac); + + /** + * Sets the root data object. + * + */ + + virtual SDO_API void setRootObject(DataObjectPtr dob); + + /** + * Gets the root data object. + * + */ + + virtual DataObjectPtr getRootObject(); + + /** + * Gets the name of the root data element (from the XML + * description). + * + */ + + virtual const char* getRootElementName(); + + /** + * Creates the root data object - for use by DAS implementations + * + */ + + virtual DataObjectPtr createRootObject(const char* uri, + const char* name); + + /** + * Creates the root data object - for use by DAS implementations + * + */ + + + virtual DataObjectPtr createRootObject(const Type& t); + + /** + * + * Gets the change summary if there is one. + */ + + virtual ChangeSummaryPtr getChangeSummary(); + + /** + * + * Gets a type from the data factory. + */ + + virtual const Type& getType(const char* uri, + const char* name); + + private: + + DataFactoryPtr factory; + DataObjectPtr root; + +}; +}; +}; + +#endif //_DATAGRAPHIMPL_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.cpp new file mode 100644 index 0000000000..190da0649e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.cpp @@ -0,0 +1,31 @@ +/* + * + * 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 "commonj/sdo/DataObject.h" + +namespace commonj{ +namespace sdo{ + + + DataObject::~DataObject() + { + } +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.h new file mode 100644 index 0000000000..39465c8c4c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.h @@ -0,0 +1,540 @@ +/* + * + * 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: 2006/02/02 16:41:30 $ */ + +#ifndef _DATAOBJECT_H_ +#define _DATAOBJECT_H_ +#include "commonj/sdo/export.h" + + +#include "commonj/sdo/Property.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/DataFactory.h" +#include "commonj/sdo/Sequence.h" +#include "commonj/sdo/DataObjectList.h" +#include "commonj/sdo/PropertyList.h" + + +namespace commonj{ +namespace sdo{ + +class DataGraph; +class DataObjectList; +class DataFactory; +class ChangeSummary; + + + /** + * DataObjects are the non-primitive members of a Data graph. + *

      + * A data object is a representation of some structured data. + * it is the fundamental component in the SDO (Service Data Objects) package. + * Data objects support reflection, path-based accesss, convenience creation + * and deletion methods,and the ability to be part of a data graph. + * Each data object holds its data as a series of properties. + * Properties can be accessed by name, property index, or using the property + * meta object itself. + *

      + * A data object can also contain references to other data objects, through + * reference-type properties. + *

      + * A data object has a series of convenience accessors for its properties. + * These methods either use a path (String), a property index, + * or the property's meta object itself, to identify the property. + * Some examples of the path-based accessors are as follows: + *

      + * DataObjectPtr company = ...;
      + * company->getString("name");
      + * company->setString("name", "acme");
      + * company->getString("department.0/name")
      + * company->getString("department[1]/name")
      + * (Note .n indexes from 0, whilst [] indexes from 1.
      + * company->getDataObject("department[number=123]") returns the department where number=123
      + * company->getDataObject("..") returns the containing data object
      + * company->getDataObject("/") returns the root containing data object
      + * There are specific accessors for the primitive types and commonly used + * data types like String. + */ + +class DataObject : public RefCountingObject +{ + public: + virtual ~DataObject(); + + /** + * + * Introspection - properties and types + */ + + /** getPropertyIndex gets the unique index of a property + * + * A property of a data object has a unique index associated with it. + * This method gets a property index for this object from the property, + * or throw SDOPropertyNotFoundException if the property is not part + * of this data object. + */ + + virtual unsigned int SDO_API getPropertyIndex(const Property& p) = 0; + + + /** getInstanceProperties gets the props of the current object. + * + * Returns a read-only List of the Properties currently used in this DataObject. + * This list will contain all of the properties in getType().getProperties() + * and any properties where isSet(property) is true. + * For example, properties resulting from the use of + * open or mixed XML content are present if allowed by the Type. + * The list does not contain duplicates. + * The order of the properties in the list begins with getType().getProperties() + * and the order of the remaining properties is determined by the implementation. + * The same list will be returned unless the DataObject is updated so that + * the contents of the list change + * Returns the list of Properties currently used in this DataObject. + */ + + virtual SDO_API PropertyList getInstanceProperties() = 0; + + /** + * See if the property currently exists + */ + + virtual SDO_API bool hasProperty(const char* name) = 0; + /** + * These are just like getType().getProperty(), but may return + * values other than the property list for open types. + */ + + virtual const Property& getProperty(unsigned int index) = 0; + + virtual const Property& getProperty(const char* prop) = 0; + + + + /** getContainer get the containing object + * + * Returns the containing data object + * or 0 if there is no container. + */ + + virtual SDO_API DataObjectPtr getContainer() = 0; + + /** getContainmentProperty returns the property containing this object + * + * Return the Property of the data object containing this data object + * or throw an SDOPropertyNotFoundException if there is no container. + */ + + virtual SDO_API const Property& getContainmentProperty() = 0; + + /** getType returns the data object's type. + * + * getType returns the data object's type. + * The type defines the properties available for reflective access. + */ + + virtual SDO_API const Type& getType() = 0; + + /* getTypeEnum returns an enumerator for the type + * + * Returns an enumerator for the type for easy switching on basic types. + * The enumerator is part of the Type class + */ + + virtual SDO_API const Type::Types getTypeEnum() = 0; + + + + + + /** getDataObject returns a data object by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual SDO_API DataObjectPtr getDataObject(const char* path) = 0; + virtual SDO_API DataObjectPtr getDataObject(unsigned int propertyIndex) = 0; + virtual SDO_API DataObjectPtr getDataObject(const Property& property) = 0; + + /** setDataObject sets a value by path, index or property + * + * Sets a property of either this object or an object reachable from it, + * as identified by the specified path, + * to the specified value. + */ + + + virtual SDO_API void setDataObject(const char* path, DataObjectPtr value) = 0; + virtual SDO_API void setDataObject(unsigned int propertyIndex, DataObjectPtr value) = 0; + virtual SDO_API void setDataObject(const Property& property, DataObjectPtr value) = 0; + + /** getBoolean returns a boolean by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual SDO_API bool getBoolean(const char* path) = 0; + virtual SDO_API bool getBoolean(unsigned int propindex) = 0; + virtual SDO_API bool getBoolean(const Property& p) = 0; + + virtual SDO_API void setBoolean(const char* path, bool b) = 0; + virtual SDO_API void setBoolean(unsigned int propindex, bool b) = 0; + virtual SDO_API void setBoolean(const Property& p, bool b) = 0; + + /** getByte returns a char by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual SDO_API char getByte(const char* path) = 0; + virtual SDO_API char getByte(unsigned int propindex) = 0; + virtual SDO_API char getByte(const Property& p) = 0; + + virtual SDO_API void setByte(const char* path, char c) = 0; + virtual SDO_API void setByte(unsigned int propindex, char c) = 0; + virtual SDO_API void setByte(const Property& p, char c) = 0; + + /** getCharacter returns a wchar_t by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual SDO_API wchar_t getCharacter(const char* path) = 0; + virtual SDO_API wchar_t getCharacter(unsigned int propindex) = 0; + virtual SDO_API wchar_t getCharacter(const Property& p) = 0; + + virtual SDO_API void setCharacter(const char* path, wchar_t c) = 0; + virtual SDO_API void setCharacter(unsigned int propindex, wchar_t c) = 0; + virtual SDO_API void setCharacter(const Property& p, wchar_t c) = 0; + + + /** getlength returns the length of a string + * + * Specific to Bytes and Characters data objects. This returns the + * length of the buffer required to hold the contents of the object. + * len = do->getLength("name"); + * buf = new char[len]; + * reallen = do->getBytes("name",buf,len); + */ + virtual SDO_API unsigned int getLength(const char* path) = 0; + virtual SDO_API unsigned int getLength(unsigned int propindex) = 0; + virtual SDO_API unsigned int getLength(const Property& p) = 0; + virtual SDO_API unsigned int getLength() = 0; + + + /** getBytes returns a byte buffer + * + * A DataObject of type Bytes holds an array of bytes as its value. These + * methods transfer the contents of that buffer into an array of chars allocated + * by the users program. The return value is the number of bytes actually + * copied. + * The byte array is not necessarily null terminated. If a null terminated + * C style string is required, then getCString is an alternative. + * The third paarameter is the length of the allocated buffer, which may be more + * than the length of the byte array. If the length specified is less than the + * length of the byte array, then only a portion of the + * byte array is returned. + */ + + + virtual SDO_API unsigned int getBytes(const char* path, char* buf, unsigned int max) = 0; + virtual SDO_API unsigned int getBytes(unsigned int propindex, char* buf, unsigned int max) = 0; + virtual SDO_API unsigned int getBytes(const Property& p, char* buf, unsigned int max) = 0; + + virtual SDO_API void setBytes(const char* path, const char* c, unsigned int length) = 0; + virtual SDO_API void setBytes(unsigned int propindex, const char* c, unsigned int length) = 0; + virtual SDO_API void setBytes(const Property& p, const char* c, unsigned int length) = 0; + + /** getString returns a wide char buffer + * + * A DataObject of type String holds an array of wide characters as its value. These + * methods transfer the contents of that buffer into an array of wchar_t allocated + * by the users program. The return value is the number of wchar_t actually + * copied. + * The array is not necessarily null terminated. + * The third paarameter is the length of the allocated buffer, which may be more + * than the length of the array. If the length specified is less than the + * length of the array, then only a portion of the array is returned. + */ + + virtual SDO_API unsigned int getString(const char* path , wchar_t* c, unsigned int max) = 0; + virtual SDO_API unsigned int getString(unsigned int propindex, wchar_t* c, unsigned int max) = 0; + virtual SDO_API unsigned int getString(const Property& p, wchar_t* c, unsigned int max) = 0; + + virtual SDO_API void setString(const char* path, const wchar_t* c, unsigned int length) = 0; + virtual SDO_API void setString(unsigned int propindex, const wchar_t* c, unsigned int length) = 0; + virtual SDO_API void setString(const Property& p, const wchar_t* c, unsigned int length) = 0; + + /** getDate returns an SDODate by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + virtual SDO_API const SDODate getDate(const char* path) = 0; + virtual SDO_API const SDODate getDate(unsigned int propindex) = 0; + virtual SDO_API const SDODate getDate(const Property& p) = 0; + + virtual SDO_API void setDate(const char* path, const SDODate d) = 0; + virtual SDO_API void setDate(unsigned int propindex, const SDODate d) = 0; + virtual SDO_API void setDate(const Property& p, const SDODate d) = 0; + + /** getDouble returns a long double by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual SDO_API long double getDouble(const char* path) = 0; + virtual SDO_API long double getDouble(unsigned int propindex) = 0; + virtual SDO_API long double getDouble(const Property& p) = 0; + + virtual SDO_API void setDouble(const char* path, long double d) = 0; + virtual SDO_API void setDouble(unsigned int propindex, long double d) = 0; + virtual SDO_API void setDouble(const Property& p, long double d) = 0; + + /** getFloat returns a float by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual SDO_API float getFloat(const char* path) = 0; + virtual SDO_API float getFloat(unsigned int propindex) = 0; + virtual SDO_API float getFloat(const Property& p) = 0; + + virtual SDO_API void setFloat(const char* path, float f) = 0; + virtual SDO_API void setFloat(unsigned int propindex, float f) = 0; + virtual SDO_API void setFloat(const Property& p, float f) = 0; + + /** getInteger returns a long by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual SDO_API long getInteger(const char* path) = 0; + virtual SDO_API long getInteger(unsigned int propindex) = 0; + virtual SDO_API long getInteger(const Property& p) = 0; + + virtual SDO_API void setInteger(const char* path, long i) = 0; + virtual SDO_API void setInteger(unsigned int propindex, long i) = 0; + virtual SDO_API void setInteger(const Property& p, long i) = 0; + + /** getLong returns a int64_t by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual SDO_API int64_t getLong(const char* path) = 0; + virtual SDO_API int64_t getLong(unsigned int propindex) = 0; + virtual SDO_API int64_t getLong(const Property& p) = 0; + + virtual SDO_API void setLong(const char* path, int64_t l) = 0; + virtual SDO_API void setLong(unsigned int propindex, int64_t l) = 0; + virtual SDO_API void setLong(const Property& p, int64_t l) = 0; + + /** getShort returns a short by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual SDO_API short getShort(const char* path) = 0; + virtual SDO_API short getShort(unsigned int propindex) = 0; + virtual SDO_API short getShort(const Property& p) = 0; + + virtual SDO_API void setShort(const char* path, short s) = 0; + virtual SDO_API void setShort(unsigned int propindex, short s) = 0; + virtual SDO_API void setShort(const Property& p, short s) = 0; + + + /** getCString returns a null terminated string by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual SDO_API const char* getCString(const char* path) = 0; + virtual SDO_API const char* getCString(unsigned int propertyIndex) = 0; + virtual SDO_API const char* getCString(const Property& prop) = 0; + + virtual SDO_API void setCString(const char* path, const char* value) = 0; + virtual SDO_API void setCString(unsigned int propertyIndex, const char* value) = 0; + virtual SDO_API void setCString (const Property& prop, const char* value) = 0; + + + /** setNull sets a data object value to null. + * + * A DataObjectType or DataType value may be set or unset. If it is set, then + * it may have a value, or it may be set to null. A distinction is drawn between + * being unset, having the default value, being set and being null. + * When the value of an integer (for example) is returned as zero, it could have + * been set to zero, or it could be null. Use isNull() to verify. + */ + + virtual SDO_API void setNull(const char* path) = 0; + virtual SDO_API void setNull(unsigned int propertyIndex) = 0; + virtual SDO_API void setNull(const Property& prop) = 0; + + virtual SDO_API bool isNull(const char* path) = 0; + virtual SDO_API bool isNull(unsigned int propertyIndex) = 0; + virtual SDO_API bool isNull(const Property& prop) = 0; + + /** isSet test whether the value has been set + * + * Returns whether a property of either this object or an object reachable + * from it, as identified by the specified path, + * is considered to be set. + */ + + virtual SDO_API bool isSet(const char* path) = 0; + virtual SDO_API bool isSet(unsigned int propertyIndex) = 0; + virtual SDO_API bool isSet(const Property& property) = 0; + + + /** isValid shows true if the value is set or defaulted. + * + * A property can be set, null, or have a default value - all + * of these are valid. It can also be unset, and have no default + * in which case this returns false. + */ + + virtual SDO_API bool isValid(const char* path) = 0; + virtual SDO_API bool isValid(unsigned int propertyIndex) = 0; + virtual SDO_API bool isValid(const Property& property ) =0; + + /** unset unsets a value previously set. + * + * unsets a property of either this object or an object reachable + * from it, as identified by the specified path. + */ + + virtual SDO_API void unset(const char* path) = 0; + virtual SDO_API void unset(unsigned int propertyIndex) = 0; + virtual SDO_API void unset(const Property& property) = 0; + + /** setUserData sets a reserved field in the data object. + * + * Each data object has precisely one 32 bit slot available to + * be used by applications. This is not part of the data, its + * just a place to store anything for later retrieval. + */ + + virtual SDO_API void setUserData(const char* path,void* value) = 0; + virtual SDO_API void setUserData(unsigned int propertyIndex, void* value) = 0; + virtual SDO_API void setUserData(const Property& property, void* value) = 0; + virtual SDO_API void setUserData(void* value) = 0; + virtual SDO_API void* getUserData(const char* path) = 0; + virtual SDO_API void* getUserData(unsigned int propertyIndex) = 0; + virtual SDO_API void* getUserData(const Property& property) = 0; + virtual SDO_API void* getUserData() = 0; + + + /** getSequence returns the sequence for a data object + * + * Returns the value of a Sequence property identified by + * the specified path. See Sequence. + */ + + virtual SDO_API SequencePtr getSequence() = 0; + virtual SDO_API SequencePtr getSequence(const char* path) = 0; + virtual SDO_API SequencePtr getSequence(unsigned int propertyIndex) = 0; + virtual SDO_API SequencePtr getSequence(const Property& property) = 0; + + + + /** createDataObject creates a data object value + * + * Returns a new data object contained by this object using the + * specified property,which must be a containment property. + * The type of the created object is the declared type + * of the specified property. + * If the property is many valued, this method adds an element to the + * list, otherwise it sets the value, removing any old value. + */ + + virtual SDO_API DataObjectPtr createDataObject(const char* propertyName) = 0; + virtual SDO_API DataObjectPtr createDataObject(unsigned int propertyIndex) = 0; + virtual SDO_API DataObjectPtr createDataObject(const Property& property) = 0; + + + + /** detach detaches an object from the graph + * + * This method removes the current data object from the graph, but does + * not destroy it. The DataObject can be re-attached to the graph later. + */ + + virtual SDO_API void detach() = 0; + + /** clear unsets all the properties + * + * This method unsets all the properties, and deletes all the data object + * propertiy values from this data object. + */ + + virtual SDO_API void clear() = 0; + + + /** getList gets the value of a many-valued property + * + * Many valued properties are returned as lists of DataObjects. + * These lists may contain primitives or data objects, but they behave + * like data objects. + * Getting a many valued integer consists of getting the list, then + * using the DataObjectList API to getInteger() for each list element. + */ + + virtual SDO_API DataObjectList& getList(const char* path) = 0; + virtual SDO_API DataObjectList& getList(unsigned int propIndex) = 0; + virtual SDO_API DataObjectList& getList(const Property& p) = 0; + virtual DataObjectList& getList() = 0; + + + /** getChangeSummary get the applicable change summary + * + * This method gets the applicable change summary for a data object. + * The summary is not necessarily attached to the data object, it may be + * the summary for a parent data object. No object with a summary attached + * may be a child of another object with a summary attached. + * See the ChangeSummary API for details of using the change sumamry. + */ + + virtual SDO_SPI ChangeSummaryPtr getChangeSummary() = 0; + virtual SDO_SPI ChangeSummaryPtr getChangeSummary(const char* path) = 0; + virtual SDO_SPI ChangeSummaryPtr getChangeSummary(unsigned int propIndex) = 0; + virtual SDO_SPI ChangeSummaryPtr getChangeSummary(const Property& prop) = 0; + + /** objectToXPath - utility to find the xpath from the root. + * + * objectToXPath returns a string which could be used to locate this data + * object from the root data object of the graph. + */ + + virtual SDO_SPI const char* objectToXPath() = 0; + + +}; +}; +}; + +#endif //_DATAOBJECT_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.cpp new file mode 100644 index 0000000000..93758cf7ea --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.cpp @@ -0,0 +1,3633 @@ +/* + * + * 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: 2006/02/02 16:41:30 $ */ + +#include "commonj/sdo/disable_warn.h" +#include "commonj/sdo/DataObjectImpl.h" + + + +#include "commonj/sdo/SDORuntimeException.h" + +#include "commonj/sdo/Property.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/TypeList.h" +#include "commonj/sdo/Sequence.h" +#include "commonj/sdo/SequenceImpl.h" + +#include "commonj/sdo/PropertyList.h" + +#include "commonj/sdo/Logging.h" + +#include "commonj/sdo/TypeImpl.h" + +#include "commonj/sdo/ChangeSummaryImpl.h" +#include "commonj/sdo/DataFactoryImpl.h" + +#include +#include +using std::string; + + + + +namespace commonj{ +namespace sdo { + + /** + * RDO is an internal class holding a property value + */ + + rdo::rdo(unsigned int infirst, DataObjectImpl* insecond) + : first(infirst), second(insecond) + { + } + + rdo::rdo() + { + first = 0; + second = 0; + } + + rdo::rdo (const rdo& inrdo) + { + first = inrdo.first; + second = inrdo.second; + } + + rdo::~rdo() + { + } + + +/** @def getPrimitive + * + * A macro for the getting of primitive values from a data object + */ + +#define getPrimitive(primval,retval,defval)\ + retval DataObjectImpl::get ##primval (unsigned int propertyIndex)\ + {\ + validateIndex(propertyIndex);\ + PropertyImpl* p = getPropertyImpl(propertyIndex);\ + if (p != 0 ) \ + {\ + if (p->isMany())\ + {\ + string msg("Get value not available on many valued property:");\ + msg += p->getName();\ + SDO_THROW_EXCEPTION("get value", SDOUnsupportedOperationException,\ + msg.c_str());\ + }\ + DataObjectImpl* d = getDataObjectImpl(propertyIndex);\ + if (d != 0) \ + {\ + if (d->isNull())return (retval)0;\ + return d->get ##primval ();\ + }\ + if (isSet(propertyIndex)) return (retval)0;\ + return p->get ##primval ##Default();\ + }\ + return (retval)0;\ + } + +/** @def getCharsBasic + * + * A macro for the getting of primitive characters from a data object + */ + +#define getCharsBasic(primval,retval,defval)\ + unsigned int DataObjectImpl::get ##primval (unsigned int propertyIndex, retval valptr , unsigned int max)\ + {\ + validateIndex(propertyIndex);\ + PropertyImpl* p = getPropertyImpl(propertyIndex);\ + if (p != 0) \ + {\ + if (p->isMany())\ + {\ + string msg("Get value not available on many valued property:");\ + msg += p->getName();\ + SDO_THROW_EXCEPTION("character getter", SDOUnsupportedOperationException,\ + msg.c_str());\ + }\ + DataObjectImpl* d = getDataObjectImpl(propertyIndex);\ + if (d != 0) \ + { \ + if (d->isNull()) return 0;\ + return d->get ##primval ( valptr , max);\ + }\ + if (isSet(propertyIndex))return 0;\ + return p->get ##primval ##Default( valptr , max);\ + }\ + return 0;\ + } + + +/** @def setPrimitive + * + * A macro for the setting of primitive values in a data object + */ + +#define setPrimitive(primval,primtype,primnam)\ + void DataObjectImpl::set ##primval (unsigned int propertyIndex, primtype value)\ + {\ + validateIndex(propertyIndex);\ + PropertyImpl* pl = getPropertyImpl(propertyIndex);\ + if (pl != 0) \ + {\ + if (pl->isMany())\ + {\ + string msg("Set value not available on many valued property:");\ + msg += pl->getName();\ + SDO_THROW_EXCEPTION("set value",SDOUnsupportedOperationException,\ + msg.c_str());\ + }\ + PropertyValueMap::iterator i;\ + for (i = PropertyValues.begin(); i != PropertyValues.end();++i)\ + {\ + if ((*i).first == propertyIndex)\ + {\ + logChange(propertyIndex);\ + (*i).second->unsetNull();\ + (*i).second->set ##primval (value);\ + return;\ + }\ + }\ + DataFactory* df = getDataFactory();\ + DataObjectImpl* b = new DataObjectImpl(df, df->getType(Type::SDOTypeNamespaceURI, primnam));\ + b->setContainer(this);\ + b->setApplicableChangeSummary();\ + logChange(propertyIndex);\ + PropertyValues.insert(PropertyValues.end(), rdo(propertyIndex,b));\ + b->set ##primval (value);\ + }\ + return;\ + } + + +/** @def setCharsBasic + * + * A macro for the setting of primitive characters in a data object + */ + +#define setCharsBasic(primval,primtype,primnam)\ + void DataObjectImpl::set ##primval (unsigned int propertyIndex, primtype value, unsigned int len)\ + {\ + validateIndex(propertyIndex);\ + PropertyImpl* pl = getPropertyImpl(propertyIndex);\ + if (pl != 0) \ + {\ + if (pl->isMany())\ + {\ + string msg("Set value not available on many valued property:");\ + msg += pl->getName();\ + SDO_THROW_EXCEPTION("setter",SDOUnsupportedOperationException,\ + msg.c_str());\ + }\ + PropertyValueMap::iterator i;\ + for (i = PropertyValues.begin(); i != PropertyValues.end();++i)\ + {\ + if ((*i).first == propertyIndex)\ + {\ + logChange(propertyIndex);\ + (*i).second->unsetNull();\ + (*i).second->set ##primval (value, len);\ + return;\ + }\ + }\ + DataFactory* df = getDataFactory();\ + DataObjectImpl* b = new DataObjectImpl(df, df->getType(Type::SDOTypeNamespaceURI, primnam));\ + b->setContainer(this);\ + b->setApplicableChangeSummary();\ + logChange(propertyIndex);\ + PropertyValues.insert(PropertyValues.end(),rdo(propertyIndex,b));\ + b->set ##primval (value, len);\ + }\ + return;\ + } + + +/** @def getPrimitiveFromPath + * + * A macro for the getting of primitive values from a data object by path + */ + +#define getPrimitiveFromPath(primval, retval, defval)\ + retval DataObjectImpl::get ##primval (const char* path)\ + {\ + DataObjectImpl* d;\ + char *spath = 0;\ + char* prop = 0;\ + try {\ + spath = DataObjectImpl::stripPath(path);\ + prop = findPropertyContainer(spath,&d);\ + if (spath){\ + delete spath;\ + spath = 0;\ + }\ + if (d != 0) {\ + if (prop == 0 || (strlen(prop) == 0)) {\ + return d->get ##primval ();\ + }\ + else {\ + PropertyImpl* p = d->getPropertyImpl(prop);\ + if (p != 0) \ + {\ + if (p->isMany())\ + {\ + long l;\ + DataObjectImpl* doi = d->findDataObject(prop,&l);\ + delete prop;\ + prop = 0;\ + if (doi != 0) {\ + return doi->get ## primval();\ + }\ + string msg("Get value - index out of range:");\ + msg += path;\ + SDO_THROW_EXCEPTION("getter", SDOIndexOutOfRangeException,\ + msg.c_str());\ + }\ + else\ + {\ + delete prop;\ + prop = 0;\ + if (!isSet(*p)) {\ + return p->get ##primval ##Default();\ + }\ + return d->get ##primval (*p);\ + }\ + }\ + }\ + if (prop) {\ + delete prop;\ + prop = 0;\ + }\ + }\ + string msg("Get value - path not found");\ + SDO_THROW_EXCEPTION("getter", SDOPathNotFoundException,\ + msg.c_str());\ + }\ + catch (SDORuntimeException e) {\ + if (spath)delete spath;\ + if (prop) delete prop;\ + SDO_RETHROW_EXCEPTION("getter", e);\ + }\ + } + + +/** @def getCharsFromPath + * + * A macro for the getting of primitive characters from a data object by path + */ + +#define getCharsFromPath(primval, retval, defval)\ + unsigned int DataObjectImpl::get ##primval (const char* path, retval valptr , unsigned int max)\ + {\ + DataObjectImpl* d;\ + char *spath = 0;\ + char* prop = 0;\ + try {\ + spath = DataObjectImpl::stripPath(path);\ + prop = findPropertyContainer(spath,&d);\ + if (spath){\ + delete spath;\ + spath = 0;\ + }\ + if (d != 0) {\ + if (prop == 0 || (strlen(prop) == 0)) {\ + return d->get ##primval ( valptr , max);\ + }\ + else {\ + PropertyImpl* p = d->getPropertyImpl(prop);\ + if (p != 0)\ + {\ + if (p->isMany())\ + {\ + long l;\ + DataObjectImpl* doi = d->findDataObject(prop,&l);\ + delete prop;\ + prop = 0;\ + if (doi != 0) {\ + return doi->get ## primval (valptr, max);\ + }\ + string msg("Get value - index out of range");\ + msg += path;\ + SDO_THROW_EXCEPTION("getChars", SDOIndexOutOfRangeException,\ + msg.c_str());\ + }\ + else { \ + delete prop;\ + prop = 0;\ + if (!isSet(*p)) {\ + return p->get ##primval ##Default( valptr , max );\ + }\ + return d->get ##primval (*p, valptr , max);\ + }\ + }\ + }\ + if (prop) {\ + delete prop;\ + prop = 0;\ + }\ + }\ + string msg("Get value - path not found");\ + SDO_THROW_EXCEPTION("getCString", SDOPathNotFoundException,\ + msg.c_str());\ + }\ + catch (SDORuntimeException e) {\ + if (spath)delete spath;\ + if (prop) delete prop;\ + SDO_RETHROW_EXCEPTION("character getter", e);\ + }\ + } + + + +/** @def setPrimitiveFromPath + * + * A macro for the setting of primitive values in a data object by path + */ + +#define setPrimitiveFromPath(primval,setval)\ + void DataObjectImpl::set ##primval (const char* path, setval value)\ + {\ + DataObjectImpl *d;\ + char* spath = 0;\ + char* prop = 0;\ + try {\ + spath = DataObjectImpl::stripPath(path);\ + prop = findPropertyContainer(spath,&d);\ + if (spath) {\ + delete spath;\ + spath = 0;\ + }\ + if (d != 0)\ + {\ + if (prop == 0 || (strlen(prop) == 0)) {\ + d->set ##primval (value);\ + }\ + else {\ + const PropertyImpl* p = d->getPropertyImpl(prop);\ + if (p == 0 && d->getType().isOpenType()) \ + {\ + p = d->define ##primval (prop);\ + }\ + if (p->isMany())\ + {\ + long l;\ + DataObjectList& dol = d->getList((Property&)*p);\ + DataObjectImpl* doi = d->findDataObject(prop,&l);\ + delete prop;\ + prop = 0;\ + if (doi != 0) {\ + doi->set ## primval (value);\ + }\ + else {\ + dol.append(value);\ + }\ + }\ + else {\ + delete prop;\ + prop = 0;\ + d->set ##primval ((Property&)*p,value);\ + }\ + }\ + }\ + if (prop){\ + delete prop;\ + prop = 0;\ + }\ + }\ + catch (SDORuntimeException e) {\ + if (spath) delete spath;\ + if (prop) delete prop;\ + SDO_RETHROW_EXCEPTION("setter",e);\ + }\ + } + +/** @def setCharsFromPath + * + * A macro for the setting of primitive characters in a data object by path + */ + +#define setCharsFromPath(primval,setval)\ + void DataObjectImpl::set ##primval (const char* path, setval value, unsigned int len)\ + {\ + DataObjectImpl *d;\ + char* spath = 0;\ + char* prop = 0;\ + try {\ + spath = DataObjectImpl::stripPath(path);\ + prop = findPropertyContainer(spath,&d);\ + if (spath) {\ + delete spath;\ + spath = 0;\ + }\ + if (d != 0)\ + {\ + if (prop == 0 || (strlen(prop) == 0)) {\ + d->set ##primval (value, len);\ + }\ + else {\ + const PropertyImpl* p = d->getPropertyImpl(prop);\ + if (p == 0 && d->getType().isOpenType())\ + {\ + p = d->define ##primval (prop);\ + }\ + if (p->isMany())\ + {\ + long l;\ + DataObjectList& dol = d->getList((Property&)*p);\ + DataObjectImpl* doi = d->findDataObject(prop,&l);\ + delete prop;\ + prop = 0;\ + if (doi != 0) {\ + doi->set ## primval (value, len);\ + }\ + else {\ + dol.append(value,len);\ + }\ + }\ + else { \ + delete prop;\ + prop = 0;\ + d->set ##primval ((Property&)*p,value, len);\ + }\ + }\ + }\ + if (prop){\ + delete prop;\ + prop = 0;\ + }\ + }\ + catch (SDORuntimeException e) {\ + if (spath) delete spath;\ + if (prop) delete prop;\ + SDO_RETHROW_EXCEPTION("setter",e);\ + }\ + } + + + + +/** @def getPrimitiveFromProperty + * + * A macro for the getting of primitive values in a data object by property + */ + +#define getPrimitiveFromProperty(primval,retval)\ + retval DataObjectImpl::get ##primval (const Property& property)\ + {\ + return get ##primval (getPropertyIndex(property));\ + } + + +/** @def getCharsFromProperty + * + * A macro for the getting of primitive characters in a data object by property + */ + +#define getCharsFromProperty(primval,retval)\ + unsigned int DataObjectImpl::get ##primval (const Property& property, retval val, unsigned int max)\ + {\ + return get ##primval (getPropertyIndex(property), val, max);\ + } + + +/** @def setPrimitiveFromProperty + * + * A macro for the setting of primitive values in a data object by property + */ + +#define setPrimitiveFromProperty(primval,primtype)\ + void DataObjectImpl::set ##primval (const Property& property, primtype value)\ + {\ + set ##primval (getPropertyIndex(property),value);\ + } + +/** @def setCharsFromProperty + * + * A macro for the setting of primitive characters in a data object by property + */ + +#define setCharsFromProperty(primval,primtype)\ + void DataObjectImpl::set ##primval (const Property& property, primtype value, unsigned int len)\ + {\ + set ##primval (getPropertyIndex(property),value, len);\ + } + + + + /** DataObject + * DataObjects are the non-primitive members of a Data graph. + * + * A data object is a representation of some structured data. + * it is the fundamental component in the SDO (Service Data Objects) package. + * Data objects support reflection, path-based accesss, convenience creation + * and deletion methods,and the ability to be part of a data graph. + * Each data object holds its data as a series of properties. + * Properties can be accessed by name, property index, or using the property + * meta object itself. + * A data object can also contain references to other data objects, through + * reference-type properties. + * A data object has a series of convenience accessors for its properties. + * These methods either use a path (String), a property index, + * or the property's meta object itself, to identify the property. + * Some examples of the path-based accessors are as follows: + * DataObjectPtr company = ...; + * company->getString("name"); + * company->setString("name", "acme"); + * company->getString("department.0/name") + * .n indexes from 0. + * company->getString("department[1]/name") [] indexes from 1. + * company->getDataObject("department[number=123]") returns the department where number=123 + * company->getDataObject("..") returns the containing data object + * company->getDataObject("/") returns the root containing data object + * There are specific accessors for the primitive types and commonly used + * data types like String. + */ + + +void DataObjectImpl::handlePropertyNotSet(const char* name) +{ + // change of behaviour - no longer throw for this. + +// string msg("Get value on unset and undefaulted property:"); +// msg += name; +// SDO_THROW_EXCEPTION("get value", SDOPropertyNotSetException, +// msg.c_str()); +} + + + + // setters and getters from a path specification + + getCharsFromPath(String, wchar_t* , 0); + getCharsFromPath(Bytes, char* , 0); + setCharsFromPath(String, const wchar_t*); + setCharsFromPath(Bytes, const char*); + getCharsFromProperty(String,wchar_t*); + getCharsFromProperty(Bytes,char*); + setCharsFromProperty(String,const wchar_t*); + setCharsFromProperty(Bytes,const char*); + getCharsBasic(String,wchar_t*,0); + getCharsBasic(Bytes,char*,0); + setCharsBasic(String,const wchar_t*,"String"); + setCharsBasic(Bytes,const char*,"Bytes"); + + + // Convenience methods for string/bytes length + + unsigned int DataObjectImpl::getLength(const Property& p) + { + switch (p.getType().getTypeEnum()) { + case Type::BooleanType: + return BOOL_SIZE; + case Type::CharacterType: + case Type::ByteType: + return BYTE_SIZE; + case Type::ShortType: + case Type::IntegerType: + case Type::LongType: + return MAX_LONG_SIZE; + case Type::FloatType: + return MAX_FLOAT_SIZE; + case Type::DoubleType: + return MAX_DOUBLE_SIZE; + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::UriType: + case Type::StringType: + return getString(p,0,0); + case Type::BytesType: + return getBytes(p,0,0); + default: + return 0; + } + } + + unsigned int DataObjectImpl::getLength() + { + switch (getType().getTypeEnum()) { + case Type::BooleanType: + return BOOL_SIZE; + case Type::CharacterType: + case Type::ByteType: + return BYTE_SIZE; + case Type::ShortType: + case Type::IntegerType: + case Type::LongType: + return MAX_LONG_SIZE; + case Type::FloatType: + return MAX_FLOAT_SIZE; + case Type::DoubleType: + return MAX_DOUBLE_SIZE; + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::UriType: + case Type::StringType: + return getString(0,0); + case Type::BytesType: + return getBytes(0,0); + default: + return 0; + } + } + + unsigned int DataObjectImpl::getLength(const char* path) + { + DataObjectImpl* d; + char * spath = DataObjectImpl::stripPath(path); + char * prop = findPropertyContainer(spath,&d); + if (spath) delete spath; + if (d != 0) { + if (prop == 0 || (strlen(prop) == 0)) { + return 0; + } + else + { + const Property& p = d->getProperty(prop); + delete prop; + return getLength(p); + } + } + else + { + if (prop) + { + const Property& p = getProperty(prop); + delete prop; + + return getLength(p); + } + else + { + return 0; + } + } + } + + unsigned int DataObjectImpl::getLength(unsigned int index) + { + return getLength(getProperty(index)); + } + + getPrimitiveFromPath(Boolean,bool,false); + getPrimitiveFromPath(Byte,char,0); + getPrimitiveFromPath(Character,wchar_t,0); + getPrimitiveFromPath(Short,short,0); + getPrimitiveFromPath(Integer,long,0); + getPrimitiveFromPath(Long,int64_t,0L); + getPrimitiveFromPath(Double,long double,0.0); + getPrimitiveFromPath(Float,float,0.0); + getPrimitiveFromPath(Date,const SDODate,0); + + + setPrimitiveFromPath(Boolean,bool); + setPrimitiveFromPath(Byte,char); + setPrimitiveFromPath(Character,wchar_t); + setPrimitiveFromPath(Short,short); + setPrimitiveFromPath(Integer,long); + setPrimitiveFromPath(Long,int64_t); + setPrimitiveFromPath(Float,float); + setPrimitiveFromPath(Double,long double); + setPrimitiveFromPath(Date,const SDODate); + + + getPrimitiveFromProperty(Boolean,bool); + getPrimitiveFromProperty(Byte,char); + getPrimitiveFromProperty(Character,wchar_t); + getPrimitiveFromProperty(Short,short); + getPrimitiveFromProperty(Integer,long); + getPrimitiveFromProperty(Long,int64_t); + getPrimitiveFromProperty(Double,long double); + getPrimitiveFromProperty(Float,float); + getPrimitiveFromProperty(Date,const SDODate); + + setPrimitiveFromProperty(Boolean,bool); + setPrimitiveFromProperty(Byte,char); + setPrimitiveFromProperty(Character,wchar_t); + setPrimitiveFromProperty(Short,short); + setPrimitiveFromProperty(Integer,long); + setPrimitiveFromProperty(Long,int64_t); + setPrimitiveFromProperty(Float,float); + setPrimitiveFromProperty(Double,long double); + setPrimitiveFromProperty(Date,const SDODate); + + getPrimitive(Boolean,bool,false); + getPrimitive(Byte,char,0); + getPrimitive(Character,wchar_t,0); + getPrimitive(Short,short,0); + getPrimitive(Integer,long,0); + getPrimitive(Long,int64_t,0L); + getPrimitive(Double,long double,0.0); + getPrimitive(Float,float,0.0); + getPrimitive(Date,const SDODate,0); + + setPrimitive(Boolean,bool,"Boolean"); + setPrimitive(Byte,char, "Byte"); + setPrimitive(Character,wchar_t,"Character"); + setPrimitive(Short,short,"Short"); + setPrimitive(Integer,long,"Integer"); + setPrimitive(Long,int64_t,"Long"); + setPrimitive(Float,float,"Float"); + setPrimitive(Double,long double,"Double"); + setPrimitive(Date,const SDODate,"Date"); + + + + // open type support + + const PropertyImpl* DataObjectImpl::defineProperty(const char* propname, + const Type& t) + { + openProperties.insert( + openProperties.end(), PropertyImpl(getType(),propname, + (TypeImpl&)t, false, false, true)); + DataFactory* df = factory; + ((DataFactoryImpl*)df)->addOpenProperty( + PropertyImpl(getType(),propname, + (TypeImpl&)t, false, false, true)); + + return getPropertyImpl(propname); + } + + void DataObjectImpl::undefineProperty(unsigned int index) + { + int point = index - openBase; + if (point < 0 || point >= openProperties.size()) return; + + // downgrade all the property settings above this one + + PropertyValueMap::iterator pit; + for (pit = PropertyValues.begin(); pit != PropertyValues.end();++pit) + { + if ((*pit).first > index) + { + if (getPropertyImpl((*pit).first)->isMany()) + { + DataObjectListImpl* dl = (*pit).second->getListImpl(); + if (dl != 0) dl->decrementPindex(); + } + (*pit).first-=1; + } + } + + // then remove this property from the list + + std::list::iterator it = + openProperties.begin(); + for (int i=0;iremoveOpenProperty((*it).getName()); + + openProperties.erase(it); + + return; + } + + const PropertyImpl* DataObjectImpl::defineList(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "DataObject"); + openProperties.insert( + openProperties.end(), PropertyImpl(getType(),propname, + (TypeImpl&)t, true, false, true)); + + DataFactory* df = factory; + ((DataFactoryImpl*)df)->addOpenProperty(PropertyImpl(getType(),propname, + (TypeImpl&)t, true, false, true)); + + return getPropertyImpl(propname); + } + + const PropertyImpl* DataObjectImpl::defineBoolean(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Boolean"); + return defineProperty(propname,t); + } + + const PropertyImpl* DataObjectImpl::defineByte(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Byte"); + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineCharacter(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Character"); + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineString(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "String"); + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineBytes(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Bytes"); + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineShort(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Short"); + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineInteger(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Integer"); + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineLong(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Long"); + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineFloat(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Float"); + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineDouble(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Double"); + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineDate(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Date"); + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineCString(const char* propname) + { + const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Bytes"); + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineDataObject(const char* propname, + const Type& t) + { + return defineProperty(propname,t); + } + const PropertyImpl* DataObjectImpl::defineDataObject(const char* propname, + const char* typeURI, const char* typeName) + { + const Type& t = factory->getType(typeURI, typeName); + return defineProperty(propname,t); + } + + // Used to return empty values - remove when defaults are there. + const char* DataObjectImpl::emptyString = ""; + + // Useful for debug, so not included in the macros above - but + // could be. + // getters and setters for strings + + const char* DataObjectImpl::getCString(unsigned int propertyIndex) + { + validateIndex(propertyIndex); + if ((getProperty(propertyIndex).isMany())) + { + string msg("Get value not available on many valued property:"); + msg += getProperty(propertyIndex).getName(); + SDO_THROW_EXCEPTION("getCString", SDOUnsupportedOperationException, + msg.c_str()); + } + DataObjectImpl* d = getDataObjectImpl(propertyIndex); + if (d != 0) { + if (!d->isNull()) return d->getCString (); + return 0; + } + PropertyImpl* p = (PropertyImpl*)getPropertyImpl(propertyIndex); + if (p != 0) + { + if (isSet(propertyIndex)) return 0; + //if (p->isDefaulted()) + //{ + return p->getCStringDefault(); + //} + //else + //{ + // handlePropertyNotSet(p->getName()); + //} + } + return 0; + } + + + void DataObjectImpl::setCString (unsigned int propertyIndex, const char* value) + { + validateIndex(propertyIndex); + PropertyValueMap::iterator i; + if ((getProperty(propertyIndex).isMany())) + { + string msg("Set value not available on many valued property:"); + msg += getProperty(propertyIndex).getName(); + SDO_THROW_EXCEPTION("setString", SDOUnsupportedOperationException, + msg.c_str()); + } + for (i = PropertyValues.begin(); i != PropertyValues.end();++i) + { + if ((*i).first == propertyIndex) + { + logChange(propertyIndex); + (*i).second->unsetNull(); + (*i).second->setCString(value); + return; + } + } + DataFactory* df = getDataFactory(); + DataObjectImpl* b = new DataObjectImpl(df, df->getType(Type::SDOTypeNamespaceURI,"String")); + b->setContainer(this); + b->setApplicableChangeSummary(); + logChange(propertyIndex); + PropertyValues.insert(PropertyValues.end(),rdo(propertyIndex,b)); + b->setCString(value); + return; + } + + + const char* DataObjectImpl::getCString (const char* path) + { + DataObjectImpl* d = 0; + char* spath = 0; + char *prop = 0; + try { + spath = DataObjectImpl::stripPath(path); + prop = findPropertyContainer(spath,&d); + if (spath) { + delete spath; + spath = 0; + } + if (d != 0) { + if (prop == 0 || (strlen(prop) == 0)) { + return d->getCString(); + } + else { + PropertyImpl* p = d->getPropertyImpl(prop); + if (p != 0) + { + if (p->isMany()) + { + long l; + DataObjectImpl* doi = d->findDataObject(prop,&l); + delete prop; + prop = 0; + if (doi != 0) { + return doi->getCString(); + } + string msg("Get CString - index out of range"); + msg += path; + SDO_THROW_EXCEPTION("getter", SDOIndexOutOfRangeException, + msg.c_str()); + } + else { + delete prop; + prop = 0; + if (!d->isSet(*p)) { + //if (p->isDefaulted()) + //{ + return p->getCStringDefault(); + //} + //else + //{ + // handlePropertyNotSet(p->getName()); + //} + } + return d->getCString(*p); + } + } + } + } + if (prop){ + delete prop; + prop = 0; + } + string msg("Get CString - object not found"); + SDO_THROW_EXCEPTION("getCString", SDOPathNotFoundException, + msg.c_str()); + } + catch (SDORuntimeException e) { + if (spath) delete spath; + if (prop) delete prop; + SDO_RETHROW_EXCEPTION("getCString",e); + } + } + + + + void DataObjectImpl::setCString(const char* path, const char* value) + { + DataObjectImpl *d = 0; + char* spath = 0; + char* prop = 0; + try { + spath = DataObjectImpl::stripPath(path); + prop = findPropertyContainer(spath,&d); + if (spath) { + delete spath; + spath = 0; + } + if (d != 0) { + if (prop == 0 || (strlen(prop) == 0)) { + d->setCString(value); + } + else { + const PropertyImpl* p = d->getPropertyImpl(prop); + if (p == 0 && d->getType().isOpenType()) + { + p = d->defineBytes(prop); + } + if (p != 0) + { + if (p->isMany()) { + long l; + DataObjectList& dol = d->getList((Property&)*p); + DataObjectImpl* doi = d->findDataObject(prop,&l); + if (doi != 0) + { + doi->setCString(value); + } + else + { + dol.append(value); + } + } + else { + d->setCString((Property&)*p,value); + } + } + delete prop; + prop = 0; + } + } + if (prop) { + delete prop; + prop = 0; + } + } + catch (SDORuntimeException e) { + if (spath) delete spath; + if (prop) delete prop; + SDO_RETHROW_EXCEPTION("setCString",e); + } + } + + + + const char* DataObjectImpl::getCString (const Property& property) + { + return getCString(getPropertyIndex(property)); + } + + + void DataObjectImpl::setCString(const Property& property, const char* value) + { + setCString(getPropertyIndex(property),value); + } + + // null support + + bool DataObjectImpl::isNull(const unsigned int propertyIndex) + { + validateIndex(propertyIndex); + if ((getProperty(propertyIndex).isMany())) + { + return false; + } + + PropertyValueMap::iterator i; + for (i = PropertyValues.begin(); i != PropertyValues.end();++i) + { + if ((*i).first == propertyIndex) + { + return (*i).second->isNull(); + } + } + return false; + } + + bool DataObjectImpl::isNull(const Property& property) + { + return isNull(getPropertyIndex(property)); + } + + bool DataObjectImpl::isNull(const char* path) + { + DataObjectImpl *d = 0; + char* spath = 0; + char* prop = 0; + try { + spath = DataObjectImpl::stripPath(path); + prop = findPropertyContainer(spath,&d); + if (spath) { + delete spath; + spath = 0; + } + if (d != 0) { + if (prop == 0 || (strlen(prop) == 0)) { + return d->isNull(); + } + else { + const Property& p = d->getProperty(prop); + delete prop; + return d->isNull(p); + } + } + if (prop) { + delete prop; + prop = 0; + } + return false; + } + catch (SDORuntimeException e) { + if (spath) delete spath; + if (prop) delete prop; + SDO_RETHROW_EXCEPTION("isNull",e); + } + + } + void DataObjectImpl::setNull(const unsigned int propertyIndex) + { + validateIndex(propertyIndex); + if ((getProperty(propertyIndex).isMany())) + { + string msg("Setting a list to null is not supported:"); + msg += getProperty(propertyIndex).getName(); + SDO_THROW_EXCEPTION("setNull", SDOUnsupportedOperationException, + msg.c_str()); + } + + PropertyValueMap::iterator i; + for (i = PropertyValues.begin(); i != PropertyValues.end();++i) + { + if ((*i).first == propertyIndex) + { + logChange(propertyIndex); + (*i).second->setNull(); + return; + } + } + // The property was not set yet... + logChange(propertyIndex); + DataFactory* df = getDataFactory(); + DataObjectImpl* b = new DataObjectImpl(df, + getProperty(propertyIndex).getType()); + b->setContainer(this); + b->setApplicableChangeSummary(); + PropertyValues.insert(PropertyValues.end(),rdo(propertyIndex,b)); + b->setNull(); + + + } + void DataObjectImpl::setNull(const Property& property) + { + setNull(getPropertyIndex(property)); + } + + void DataObjectImpl::setNull(const char* path) + { + DataObjectImpl *d = 0; + char* spath = 0; + char* prop = 0, *pc = 0; + try { + spath = DataObjectImpl::stripPath(path); + prop = findPropertyContainer(spath,&d); + if (spath) { + delete spath; + spath = 0; + } + if (d != 0) { + if (prop == 0 || (strlen(prop) == 0)) { + try { + DataObjectImpl* cont = d->getContainerImpl(); + if (cont != 0) + { + pc = strrchr(path,'/'); + if (pc != 0)pc++; + } + const Property& pcont = cont->getProperty(pc); + cont->logChange(pcont); + } + catch (SDORuntimeException&) + { + } + d->setNull(); + } + else { + const PropertyImpl* p = d->getPropertyImpl(prop); + if (p == 0) + { + if(d->getType().isOpenType()) + { + string msg("Cannot set unassigned open property to null:"); + msg += prop; + SDO_THROW_EXCEPTION("setNull", SDOUnsupportedOperationException, + msg.c_str()); + } + else + { + string msg("Property Not Found:"); + msg += prop; + SDO_THROW_EXCEPTION("setNull", SDOPropertyNotFoundException, + msg.c_str()); + } + } + delete prop; + d->setNull((Property&)*p); + return; + } + } + if (prop) { + delete prop; + prop = 0; + } + return; + } + catch (SDORuntimeException e) { + if (spath) delete spath; + if (prop) delete prop; + SDO_RETHROW_EXCEPTION("setNull",e); + } + + } + + + + // getters and setters for a List data object + + DataObjectList& DataObjectImpl::getList(const char* path) + { + DataObjectImpl *d; + char* spath = DataObjectImpl::stripPath(path); + char* prop = findPropertyContainer(spath,&d); + if (spath) delete spath; + if (d != 0) { + if (prop == 0 || (strlen(prop) == 0)) { + return d->getList(); + } + else { + const PropertyImpl* p = d->getPropertyImpl(prop); + if (p == 0 && d->getType().isOpenType()) + { + p = d->defineList(prop); + } + if (p != 0) + { + delete prop; + return d->getList((Property&)*p); + } + } + } + if (prop) delete prop; + + string msg("Invalid path:"); + msg += path; + SDO_THROW_EXCEPTION("getList",SDOPathNotFoundException, msg.c_str()); + + } + + + + DataObjectList& DataObjectImpl::getList(unsigned int propIndex) + { + if (!(getProperty(propIndex).isMany())) + { + string msg("Get list not available on single valued property:"); + msg += getProperty(propIndex).getName(); + SDO_THROW_EXCEPTION("getList", SDOUnsupportedOperationException, + msg.c_str()); + } + DataObjectImpl* d = getDataObjectImpl(propIndex); + if (d == 0) + { + string msg("Property Not Found:"); + msg += getType().getProperty(propIndex).getName(); + SDO_THROW_EXCEPTION("getList", SDOPropertyNotFoundException, + msg.c_str()); + } + return d->getList(); + } + + DataObjectList& DataObjectImpl::getList(const Property& p) + { + if (!p.isMany()) + { + string msg("Get list not available on single valued property:"); + msg += p.getName(); + SDO_THROW_EXCEPTION("getList", SDOUnsupportedOperationException, + msg.c_str()); + } + + int propIndex = getPropertyIndex(p); + DataObjectImpl* d = getDataObjectImpl(propIndex); + if (d == 0) { + // There is no list yet, so we need to create an + // empty data object to hold the list + DataFactory* df = getDataFactory(); + d = new DataObjectImpl(df, df->getType(Type::SDOTypeNamespaceURI,"DataObject")); + PropertyValues.insert(PropertyValues.end(),rdo(propIndex,d)); + d->setContainer(this); + d->setApplicableChangeSummary(); + + DataObjectListImpl* list = new DataObjectListImpl(df,this, + propIndex,p.getType().getURI(),p.getType().getName()); + d->setList(list); + + } + return d->getList(); + } + + + + DataObjectList& DataObjectImpl::getList() + { + return *listValue; + } + + DataObjectListImpl* DataObjectImpl::getListImpl() + { + return listValue; + } + + + + ///////////////////////////////////////////////////////////////////////////// + // Utilities + ///////////////////////////////////////////////////////////////////////////// + + + // get an index, or throw if the prop is not part of this DO + + unsigned int DataObjectImpl::getPropertyIndex(const Property& p) + { + PropertyList props = getType().getProperties(); + + for (int i = 0; i < props.size() ; ++i) + { + if (!strcmp(props[i].getName(),p.getName()) ) + { + return i; + } + } + if (getType().isOpenType()) + { + std::list::iterator j; + int count = 0; + for (j = openProperties.begin() ; + j != openProperties.end() ; ++j) + { + if (!strcmp((*j).getName(),p.getName())) + { + return count+openBase; + } + count++; + } + } + string msg("Cannot find property:"); + msg += p.getName(); + SDO_THROW_EXCEPTION("getPropertyIndex", SDOPropertyNotFoundException, + msg.c_str()); + } + + const Property& DataObjectImpl::getProperty(unsigned int index) + { + PropertyImpl* pi = getPropertyImpl(index); + if (pi == 0) + { + string msg("Index out of range"); + SDO_THROW_EXCEPTION("getProperty", SDOIndexOutOfRangeException, + msg.c_str()); + } + return (Property&)*pi; + } + + /** + * See if the property currently exists + */ + + bool DataObjectImpl::hasProperty(const char* name) + { + PropertyImpl* pi = getPropertyImpl(name); + if (pi == 0) return false; + return true; + } + + + PropertyImpl* DataObjectImpl::getPropertyImpl(unsigned int index) + { + PropertyList props = getType().getProperties(); + if (index < props.size()) + { + return (PropertyImpl*)&props[index]; + } + + if (getType().isOpenType()) + { + if (index >= openBase && index - openBase < openProperties.size()) + { + std::list::iterator j; + int val = 0; + j = openProperties.begin(); + while (val < index-openBase && j != openProperties.end()) + { + val++; + j++; + } + if (j != openProperties.end()) return &(*j); + } + } + return 0; + } + + + ////////////////////////////////////////////////////////////////////// + // TODO - this is rubbish, but gets us by until XPATH is done + // trip the path down to characters which I am going to + // recognise later (a-z, A-Z _ [ ] .) + ////////////////////////////////////////////////////////////////////// + + const char* DataObjectImpl::templateString = + " /abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890=[]._#"; + + char* DataObjectImpl::stripPath(const char* path) + { + int pos = 0; + char* s = 0; + if (path == 0) return s; + + s = new char[strlen(path)+1]; + + for (int i=0;i < strlen(path); i++) + { + if (strchr(templateString,path[i]) != 0) { + s[pos++] = path[i]; + } + } + s[pos++] = 0; + return s; + } + + + ////////////////////////////////////////////////////////////////////// + // Find a data object or return 0 if not found + ////////////////////////////////////////////////////////////////////// + + DataObjectImpl* DataObjectImpl::findDataObject(char* token, long* index) + { + // name , name[int], name[x=y] name.int + char c = 0; + char* beginbrace = strchr(token,'['); + char* endbrace = strchr(token,']'); + char* dot = strchr(token,'.'); + char* breaker = 0; + + + if (dot != 0) + { + if (beginbrace != 0) + { + breaker = (beginbrace < dot)? beginbrace:dot; + } + else + { + breaker = dot; + } + } + else + { + breaker = beginbrace; + } + + if (breaker == 0){ + // its this object, and a property thereof + *index = -1; + const Property& p = getProperty(token); + return getDataObjectImpl(p); + + } + + c = *breaker; + *breaker = 0; + const Property& p = getProperty(token); + *breaker = c; + + + breaker++; + + if (endbrace != 0) + { + *endbrace = 0; + } + + char* eq = strchr(breaker,'='); + + if (eq == 0) + { + int val = atoi(breaker); + DataObjectList& list = getList(p); + + // The spec says that depts[1] is the first element, + // as is depts.0 + + if (beginbrace != 0)val--; + + if (endbrace != 0)*endbrace = ']'; + + if (val >=0 && val < list.size()) + { + DataObject* dob = list[val]; + *index = val; + return (DataObjectImpl*)dob; + } + *index = -1; + return 0; + } + *eq = 0; + // breaker is now propname + eq++; + // eq is now propval + + DataObjectList& list = getList(p); + for (int li = 0 ; li < list.size() ; ++li) + { + // TODO comparison for double not ok + + const Type & t = list[li]->getType(); + const Property& p = list[li]->getProperty(breaker); + int ok = 0; + + switch (p.getTypeEnum()) + { + case Type::BooleanType: + { + // getCString will return "true" or "false" + if (!strcmp(eq,list[li]->getCString(p))) ok = 1; + } + break; + + case Type::ByteType: + { + char cc = (char)eq[0]; + // getByte return a char + if (cc == list[li]->getByte(p)) ok = 1; + } + break; + + case Type::CharacterType: + { + wchar_t wc = (wchar_t)((wchar_t*)eq)[0]; + // TODO - this is not a very accesible way of storing a wchar + if (wc == list[li]->getCharacter(p)) ok = 1; + } + break; + + case Type::IntegerType: + { + long ic = atol(eq); + if (ic == list[li]->getInteger(p)) ok = 1; + } + break; + + case Type::DateType: + { + long dc = atol(eq); + if (dc == (long)(list[li]->getDate(p).getTime())) ok = 1; + } + break; + + case Type::DoubleType: + { + // TODO - double needs a bigger size than float + long double ldc = (long double)atof(eq); + if (ldc == list[li]->getDouble(p)) ok = 1; + } + break; + + case Type::FloatType: + { + float fc = atof(eq); + if (fc == list[li]->getFloat(p)) ok = 1; + } + break; + + case Type::LongType: + { +#if defined(WIN32) || defined (_WINDOWS) + int64_t lic = (int64_t)_atoi64(eq); +#else + int64_t lic = (int64_t)strtoll(eq, NULL, 0); +#endif + + if (lic == list[li]->getLong(p)) ok = 1; + } + break; + + case Type::ShortType: + { + short sic = atoi(eq); + if (sic == list[li]->getShort(p)) ok = 1; + } + break; + + + case Type::BytesType: + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::StringType: + case Type::UriType: + { + + if (!strcmp(eq, list[li]->getCString(p))) ok = 1; + // try with quotes too + char *firstquote = strchr(eq,'"'); + char *firstsingle = strchr(eq,'\''); + char searchchar = 0; + + if (firstsingle == 0) + { + if (firstquote != 0) + { + searchchar = '"'; + } + } + else + { + if (firstquote != 0 && firstquote < firstsingle) + { + searchchar = '"'; + } + else + { + searchchar = '\''; + firstquote = firstsingle; + } + } + + if (searchchar != 0) + { + char* ender = strchr(firstquote+1,searchchar); + if (ender != 0) + { + *ender = 0; + if (!strcmp(firstquote+1, list[li]->getCString(p))) ok = 1; + *ender = searchchar; + } + } + } + break; + + case Type::DataObjectType: + break; + + default: + break; + } + + if (ok == 1) + { + *--eq='='; + if (endbrace != 0)*endbrace = ']'; + DataObject* dob = list[li]; + *index = li; + return (DataObjectImpl*)dob; + } + } + if (endbrace != 0)*endbrace = ']'; + *--eq='='; + return 0; + } + + + ////////////////////////////////////////////////////////////////////// + // Find a data object and a property name within it. + ////////////////////////////////////////////////////////////////////// + + char* DataObjectImpl::findPropertyContainer(const char* path, DataObjectImpl** din) + { + + // initially check for "#/" which indicates that we need to find the root + // object first + if (path == 0) return 0; + + if (strlen(path) <= 2) + { + if (path[0] == '#') + { + DataObjectImpl* root = this; + while (root->getContainerImpl() != 0) + { + root = root->getContainerImpl(); + } + *din = root; + return 0; + } + } + + if (path[0] == '#' && path[1] == '/') + { + DataObjectImpl* root = this; + while (root->getContainerImpl() != 0) + { + root = root->getContainerImpl(); + } + return root->findPropertyContainer(&path[2],din); + } + + DataObjectImpl* d; + char* i = strchr(path,'/'); + char* remaining = 0; + char* token = 0; + + if (i != 0) + { + int j = strlen(path) - strlen(i); + if (j > 0) + { + token = new char[j + 1]; + strncpy(token,path, j); + token[j] = 0; + } + if (strlen(i) > 1) + { + remaining = new char[strlen(i)]; + strcpy(remaining, i+1); + } + } + else + { + remaining = new char[strlen(path) + 1]; + strcpy(remaining,path); + } + + if (token == 0) + { + if (remaining != 0 && !strcmp(remaining,"..")) + { + /* Its the container itself */ + *din = getContainerImpl(); + delete remaining; + return 0; + } + + /* Its this data object - property could be empty or + valid or invalid - user must check */ + *din = this; + return remaining; + } + + if (!strcmp(token,"..")) { + /* Its derived from the container */ + d = getContainerImpl(); + /* carry on trying to find a property */ + if (d != 0) { + char* ret = d->findPropertyContainer(remaining, din); + delete token; + if (remaining) delete remaining; + return ret; + } + /* Give up - no container */ + delete token; + if (remaining) delete remaining; + *din = 0; + return 0; + } + + + /* Try to find a property ....*/ + long l; + d = findDataObject(token,&l); + if (d != 0) { + char* ret = d->findPropertyContainer(remaining,din); + delete token; + if (remaining) delete remaining; + return ret; + } + + /* Give up its not in the tree */ + + delete token; + if (remaining) delete remaining; + *din = 0; + return 0; + } + + + + + // Returns a read-only List of the Properties currently used in thIs DataObject. + // ThIs list will contain all of the properties in getType().getProperties() + // and any properties where isSet(property) is true. + // For example, properties resulting from the use of + // open or mixed XML content are present if allowed by the Type. + // The list does not contain duplicates. + // The order of the properties in the list begins with getType().getProperties() + // and the order of the remaining properties is determined by the implementation. + // The same list will be returned unless the DataObject is updated so that + // the contents of the list change + // @return the list of Properties currently used in thIs DataObject. + + PropertyList /* Property */ DataObjectImpl::getInstanceProperties() + { + std::vector theVec; + PropertyList propList = getType().getProperties(); + for (int i = 0 ; i < propList.size() ; ++i) + { + Property& p = propList[i]; + theVec.insert(theVec.end(),(PropertyImpl*)&p); + } + std::list::iterator j; + for (j = openProperties.begin() ; + j != openProperties.end() ; ++j) + { + theVec.insert(theVec.end(),&(*j)); + } + return PropertyList(theVec); + } + + void DataObjectImpl::setInstancePropertyType(unsigned int index, + const Type* t) + { + if (index >= openBase && index - openBase < openProperties.size()) + { + std::list::iterator j; + unsigned int count = openBase; + for (j = openProperties.begin() ; + j != openProperties.end() ; ++j) + { + if (count == index) + { + openProperties.insert(j, + PropertyImpl(getType(), + (*j).getName(), + (TypeImpl&)*t, + (*j).isMany(), + (*j).isReadOnly(), + (*j).isContainment())); + + DataFactory* df = factory; + ((DataFactoryImpl*)df)->addOpenProperty( + PropertyImpl(getType(), + (*j).getName(), + (TypeImpl&)*t, + (*j).isMany(), + (*j).isReadOnly(), + (*j).isContainment())); + + openProperties.erase(j); + + return; + } + count++; + } + } + return; + } + + // Returns the Sequence for thIs DataObject. + // When Type.isSequencedType() == true, + // the Sequence of a DataObject corresponds to the + // XML elements representing the values of its properties. + // Updates through DataObject and the Lists or Sequences returned + // from DataObject operate on the same data. + // When Type.isSequencedType() == false, null is returned. + // @return the Sequence or null. + + SequenceImpl* DataObjectImpl::getSequenceImpl() + { + + return sequence; + } + + SequencePtr DataObjectImpl::getSequence() + { + return (SequencePtr)sequence; + } + + SequencePtr DataObjectImpl::getSequence(const char* path) + { + DataObject* d = (DataObject*)getDataObject(path); + if (d) return d->getSequence(); + return 0; + } + + SequencePtr DataObjectImpl::getSequence(unsigned int propertyIndex) + { + DataObject* d = (DataObject*)getDataObject(propertyIndex); + if (d) return d->getSequence(); + return 0; + } + + SequencePtr DataObjectImpl::getSequence(const Property& property) + { + DataObject* d = (DataObject*)getDataObject(property); + if (d) return d->getSequence(); + return 0; + } + + + + ChangeSummaryPtr DataObjectImpl::getChangeSummary(const char* path) + { + DataObjectImpl* d = getDataObjectImpl(path); + return d->getChangeSummary(); + } + + ChangeSummaryPtr DataObjectImpl::getChangeSummary(unsigned int propIndex) + { + DataObjectImpl* d = getDataObjectImpl(propIndex); + return d->getChangeSummary(); + } + + ChangeSummaryPtr DataObjectImpl::getChangeSummary(const Property& prop) + { + DataObjectImpl* d = getDataObjectImpl(prop); + return d->getChangeSummary(); + + } + + ChangeSummaryPtr DataObjectImpl::getChangeSummary() + { + if (getType().isChangeSummaryType()) + { + return (ChangeSummaryPtr)localCS; + } + // The changesummaryobject MUST be a change summary type + // but as an additional check against looping, I will use + // a redundent getSummary() method. + // TODO - remove this. + if (changesummaryobject != 0) return + (ChangeSummaryPtr)(changesummaryobject->getSummary()); + return 0; + } + + + ChangeSummaryImpl* DataObjectImpl::getChangeSummaryImpl() + { + if (getType().isChangeSummaryType()) + { + return localCS; + } + // The changesummaryobject MUST be a change summary type + // but as an additional check against looping, I will use + // a redundent getSummary() method. + // TODO - remove this. + if (changesummaryobject != 0) return changesummaryobject->getSummary(); + return 0; + } + + ChangeSummaryImpl* DataObjectImpl::getSummary() + { + return localCS; + } + + // sets a property of either this object or an object reachable from it, + // as identified by the specified path, + // to the specified value. + // @param path the path to a valid object and property. + // @param value the new value for the property. + + void DataObjectImpl::setDataObject(const char* path, DataObjectPtr value) + { + DataObjectImpl* d; + char* prop = findPropertyContainer(path, &d); + if (d != 0) + { + if (prop != 0) { + const PropertyImpl* p = d->getPropertyImpl(prop); + if (p == 0 && d->getType().isOpenType()) + { + if (value != 0) + { + p = d->defineDataObject(prop, value->getType()); + } + } + if (p != 0) + { + if (p->isMany()) + { + DataObjectList& dol = d->getList((Property&)*p); + long index; + DataObjectImpl* dx = d->findDataObject(prop,&index); + if (index >= 0) + { + if(index < dol.size()) + { + dol.setDataObject((unsigned int)index,value); + } + else + { + dol.append(value); + } + delete prop; + return; + } + string msg("Set of data object on many valued item"); + msg += path; + SDO_THROW_EXCEPTION("setDataObject", SDOUnsupportedOperationException, + msg.c_str()); + } + else + { + d->setDataObject((Property&)*p,value); + delete(prop); + return; + } + } + } + } + if (prop != 0)delete prop; + + string msg("Path not valid:"); + msg += path; + SDO_THROW_EXCEPTION("setDataObject", SDOPathNotFoundException, + msg.c_str()); + } + + void DataObjectImpl::validateIndex(unsigned int index) + { + PropertyList pl = getType().getProperties(); + + if (index >= pl.size()) { + + // open type support + if (getType().isOpenType()) + { + if (index < openBase + openProperties.size()) + { + return; + } + } + string msg("Index of property out of range:"); + msg += index; + SDO_THROW_EXCEPTION("Index Validation", SDOIndexOutOfRangeException, + msg.c_str()); + } + } + + void DataObjectImpl::checkFactory(DataObjectPtr dob) + { + + DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dob; + + if (d->getDataFactory() == getDataFactory()) return; + + string msg("Insertion from incompatible factory "); + const Type& t = d->getType(); + msg += t.getURI(); + msg += "#"; + msg += t.getName(); + msg += " into data object "; + msg += getType().getURI(); + msg += "#"; + msg += getType().getName(); + SDO_THROW_EXCEPTION("checkFactory", SDOInvalidConversionException, + msg.c_str()); + } + + + void DataObjectImpl::checkType( const Property& prop, + const Type& objectType) + { + const Type& propType = prop.getType(); + if (propType.equals(objectType)) return; + + DataFactory* df = (DataFactory*)factory; + + const TypeImpl* ti = ((DataFactoryImpl*)df)->findTypeImpl + (objectType.getURI(),objectType.getName()); + if (ti != 0) + { + do + { + ti = (const TypeImpl*)ti->getBaseType(); + if (ti == 0) break; + if (propType.equals(*ti)) return; + } while (ti != 0); + + // allow types of any substitutes + const PropertyImpl* pi = + getPropertyImpl(getPropertyIndex(prop)); + if (pi != 0) + { + unsigned int subcount = pi->getSubstitutionCount(); + for (int i=0;igetSubstitutionType(i); + if (tsub != 0 && tsub->equals(objectType)) return; + } + } + } + + // no match.. + string msg("Insertion of object of incompatible type "); + msg += objectType.getURI(); + msg += "#"; + msg += objectType.getName(); + msg += " into property of type "; + msg += propType.getURI(); + msg += "#"; + msg += propType.getName(); + SDO_THROW_EXCEPTION("TypeCheck", SDOInvalidConversionException, + msg.c_str()); + } + + void DataObjectImpl::setDataObject(unsigned int propertyIndex, DataObjectPtr value) + { + setDataObject(getProperty(propertyIndex), value); + } + + void DataObjectImpl::setDataObject(const Property& prop, DataObjectPtr value) + { + unsigned int propertyIndex = getPropertyIndex(prop); + + + if (value != 0) + { + checkFactory(value); + checkType(prop,value->getType()); + } + + validateIndex(propertyIndex); + + if (prop.isReference() && value != 0) + { + // just need to make sure that the object is already part of our + // tree. + DataObjectImpl* r1 = this; + while (r1->getContainerImpl() != 0) + { + r1 = r1->getContainerImpl(); + } + DataObjectImpl* r2 = (DataObjectImpl*)(DataObject*)value; + while (r2->getContainerImpl() != 0) + { + r2 = r2->getContainerImpl(); + } + if (r1 != r2) + { + string msg("Set of a reference to an object outside the graph"); + SDO_THROW_EXCEPTION("setDataObject", SDOUnsupportedOperationException, + msg.c_str()); + } + } + + if ((prop.isMany())) + { + string msg("Set operation on a many valued property:"); + msg += prop.getName(); + SDO_THROW_EXCEPTION("setDataObject", SDOUnsupportedOperationException, + msg.c_str()); + } + + + if (value == 0) + { + PropertyValueMap::iterator j; + for (j = PropertyValues.begin(); j != PropertyValues.end(); ++j) + { + if ((*j).first == propertyIndex) { + if (prop.isReference()) + { + ((*j).second)->unsetReference(this, prop); + } + else + { + // log both deletion and change - change is not + // automatically recorded by deletion. + ((*j).second)->logDeletion(); + } + logChange(prop); + (*j).second = RefCountingPointer(0); + + return; + } + } + logChange(prop); + PropertyValues.insert(PropertyValues.end(),rdo(propertyIndex,(DataObjectImpl*)0)); + return; + } + + DataObject* dob = value; + PropertyValueMap::iterator i; + for (i = PropertyValues.begin(); i != PropertyValues.end(); ++i) + { + if ((*i).first == propertyIndex) { + + if (prop.isReference()) + { + ((*i).second)->unsetReference(this, prop); + } + else + { + // log both deletion and change - change is not + // automatically recorded by deletion. + ((*i).second)->logDeletion(); + } + logChange(prop); + + (*i).second = RefCountingPointer((DataObjectImpl*)dob); + + + if (prop.isReference()) + { + ((DataObjectImpl*)dob)->setReference(this, prop); + } + else + { + logCreation((*i).second, this, prop); + } + return; + } + } + if (prop.isReference()) + { + ((DataObjectImpl*)dob)->setReference(this, prop); + } + else + { + ((DataObjectImpl*)dob)->setContainer(this); + ((DataObjectImpl*)dob)->setApplicableChangeSummary(); + // log creation before putting into property values. + // also log change - not done by logCreation + logCreation((DataObjectImpl*)dob, this, prop); + } + + logChange(prop); + + PropertyValues.insert(PropertyValues.end(),rdo(propertyIndex,(DataObjectImpl*)dob)); + return; + } + + + bool DataObjectImpl::isValid(const char* path) + { + DataObjectImpl* d; + char* prop = findPropertyContainer(path,&d); + if (d != 0) { + if (prop != 0) { + const Property& p = d->getProperty(prop); + delete prop; + return d->isValid(p); + } + } + if (prop != 0)delete prop; + string msg("Invalid path:"); + msg += path; + SDO_THROW_EXCEPTION("isSet" ,SDOPathNotFoundException, + msg.c_str()); + } + + + // Returns whether a property of either this object or an object reachable + // from it, as identified by the specified path, + // is considered to be set. + // @param path the path to a valid Object* and property. + + bool DataObjectImpl::isSet(const char* path) + { + DataObjectImpl* d; + char* prop = findPropertyContainer(path,&d); + if (d != 0) { + if (prop != 0) { + const Property& p = d->getProperty(prop); + delete prop; + return d->isSet(p); + } + } + if (prop != 0)delete prop; + string msg("Invalid path:"); + msg += path; + SDO_THROW_EXCEPTION("isSet" ,SDOPathNotFoundException, + msg.c_str()); + } + + bool DataObjectImpl::isValid(unsigned int propertyIndex) + { + return isValid(getProperty(propertyIndex)); + } + + bool DataObjectImpl::isValid(const Property& p) + { + if (p.isDefaulted()) return true; + if (isSet(p))return true; + return false; + } + + bool DataObjectImpl::isSet(unsigned int propertyIndex) + { + return isSet(getProperty(propertyIndex), propertyIndex); + } + + bool DataObjectImpl::isSet(const Property& property) + { + return isSet(property, getPropertyIndex(property)); + } + + bool DataObjectImpl::isSet(const Property& prop, unsigned int propertyIndex) + { + PropertyValueMap::iterator i; + for (i = PropertyValues.begin(); i != PropertyValues.end(); ++i) + { + if ((*i).first == propertyIndex) { + if (prop.isMany()) + { + DataObjectImpl* dol = (*i).second; + if (dol != 0 && dol->getList().size() == 0) + { + return false; + } + } + return true; + } + } + return false; + } + + + // unSets a property of either this Object or an Object reachable from it, + // as identified by the specified path. + // @param path the path to a valid Object and property. + // @see #unSet(Property) + + void DataObjectImpl::unset(const char* path) + { + + DataObjectImpl* d; + char* prop = findPropertyContainer(path,&d); + if (d != 0) + { + if (prop != 0){ + const Property& p = d->getProperty(prop); + if (p.isMany()) + { + char *c; + if ((c = strchr(prop,'[')) != 0) + { + char *c1 = strchr(c,']'); + if (c1 != 0)*c1 = 0; + unsigned int i = atoi(++c); + if (i > 0){ + i--; + DataObjectList& li = d->getList(p); + li.remove(i); + } + delete prop; + return; + } + if ((c = strchr(prop,'.')) != 0) + { + unsigned int i = atoi(++c); + DataObjectList& li = d->getList(p); + li.remove(i); + delete prop; + return; + } + } + delete prop; + d->unset(p); + return; + } + } + if (prop != 0) delete prop; + + string msg("Invalid path:"); + msg += path; + SDO_THROW_EXCEPTION("unset", SDOPathNotFoundException, + msg.c_str()); + } + + void DataObjectImpl::unset(unsigned int propertyIndex) + { + unset(getProperty(propertyIndex)); + } + + void DataObjectImpl::unset(const Property& p) + { + PropertyValueMap::iterator i; + unsigned int index = getPropertyIndex(p); + + if (getType().isSequencedType()) + { + Sequence* sq = getSequence(); + sq->removeAll(p); + } + + for (i = PropertyValues.begin(); i != PropertyValues.end(); ++i) + { + if ((*i).first == index) { + DataObjectImplPtr dol = (*i).second; + if (p.getType().isDataType()) + { + dol->clearReferences(); + logChange(index); + if (p.isMany()) { + DataObjectList& dl = dol->getList(); + while (dl.size() > 0) + { + RefCountingPointer dli = dl.remove(0); + } + } + else + { + PropertyValues.erase(i); + } + } + else { + // if its a reference, we dont want to delete anything + if (!p.isReference()) + { + if (dol) { + dol->clearReferences(); + if (p.isMany()) { + DataObjectList& dl = dol->getList(); + while (dl.size() > 0) + { + if (p.getType().isDataObjectType()) + { + DataObject* dob = dl[0]; + ((DataObjectImpl*)dob)->logDeletion(); + } + // the remove will record a change + // remove will also clear the container. + RefCountingPointer dli = dl.remove(0); + } + } + else + { + PropertyValues.erase(i); + dol->logDeletion(); + logChange(index); + } + } + else + { + logChange(index); + PropertyValues.erase(i); + } + } + else { + logChange(index); + PropertyValues.erase(i); + } + } + if (getType().isOpenType() && index >= openBase) + { + if (p.isMany()) + { + PropertyValues.erase(i); + } + undefineProperty(index); + } + return; + } + } + return; + } + + + + // Returns the value of a DataObject property identified by + // the specified path. + // @param path the path to a valid object and property. + // @return the DataObject value of the specified property. + + RefCountingPointer DataObjectImpl::getDataObject(const char* path) + { + DataObjectImpl* ptr = getDataObjectImpl(path);; + return RefCountingPointer ((DataObject*)ptr); + } + + DataObjectImpl* DataObjectImpl::getDataObjectImpl(const char* path) + { + + DataObjectImpl* d = 0; + char* prop = findPropertyContainer(path,&d); + if (d != 0) { + if (prop != 0) { + if (strchr(prop,'[') || strchr(prop,'.')) { + /* Its a multlvalued property */ + long l; + DataObjectImpl* theob = d->findDataObject(prop,&l); + delete prop; + if (theob == 0) { + string msg("Get DataObject - index out of range:"); + msg += path; + SDO_THROW_EXCEPTION("getDataObject" ,SDOIndexOutOfRangeException, + msg.c_str()); + } + return theob; + } + else + { + if (strlen(prop) == 0) + { + delete prop; + prop = 0; + return d; + } + const Property& p = d->getProperty(prop); + delete prop; + prop = 0; + return d->getDataObjectImpl(p); + } + } + else { + return d; + } + } + if (prop != 0)delete prop; + + string msg("Invalid path:"); + msg += path; + SDO_THROW_EXCEPTION("getDataObject" ,SDOPathNotFoundException, + msg.c_str()); + } + + RefCountingPointer DataObjectImpl::getDataObject(unsigned int propertyIndex) + { + if ((getProperty(propertyIndex).isMany())) + { + string msg("get operation on a many valued property:"); + msg += getProperty(propertyIndex).getName(); + SDO_THROW_EXCEPTION("getDataObject", SDOUnsupportedOperationException, + msg.c_str()); + } + DataObjectImpl* ptr = getDataObjectImpl(propertyIndex);; + return RefCountingPointer((DataObject*)ptr); + } + + DataObjectImpl* DataObjectImpl::getDataObjectImpl(unsigned int propertyIndex) + { + PropertyValueMap::iterator i; + for (i = PropertyValues.begin(); i != PropertyValues.end(); ++i) + { + if ((*i).first == propertyIndex) + { + DataObject* dob = (*i).second; + if (dob == 0 || ((DataObjectImpl*)dob)->isNull())return 0; + return (DataObjectImpl*)dob; + } + } + return 0; + } + + + RefCountingPointer DataObjectImpl::getDataObject(const Property& property) + { + DataObjectImpl* ptr = getDataObjectImpl(property); + return RefCountingPointer((DataObject*)ptr); + } + + DataObjectImpl* DataObjectImpl::getDataObjectImpl(const Property& property) + { + return getDataObjectImpl(getPropertyIndex(property)); + } + + + + + + // Returns a new DataObject contained by this Object using the specified property, + // which must be a containment property. + // The type of the created Object is the declared type of the specified property. + + RefCountingPointer DataObjectImpl::createDataObject(const char* propertyName) + { + // Throws runtime exception for type or property not found + + const Property& p = getProperty(propertyName); + return createDataObject(p); + } + + // Returns a new DataObject contained by this Object using the specified property, + // which must be a containment property. + // The type of the created Object is the declared type of the specified property. + + RefCountingPointer DataObjectImpl::createDataObject(unsigned int propertyIndex) + { + const Property& p = getProperty(propertyIndex); + return createDataObject(p); + } + + // Returns a new DataObject contained by this Object using the specified property, + // which must be a containment property. + // The type of the created Object is the declared type of the specified property. + + RefCountingPointer DataObjectImpl::createDataObject(const Property& property) + { + const Type& tp = property.getType(); + return createDataObject(property,tp.getURI(), tp.getName()); + } + + + // Returns a new DataObject contained by this Object using the specified property, + // which must be a containment property. + // The type of the created Object is the declared type of the specified property. + + RefCountingPointer DataObjectImpl::createDataObject(const Property& property, const char* namespaceURI, + const char* typeName) + { + if (!property.isContainment()) + { + string msg("Create data object on non-containment property:"); + msg += property.getName(); + SDO_THROW_EXCEPTION("createDataObject", SDOUnsupportedOperationException, + msg.c_str()); + } + + DataFactory* df = getDataFactory(); + if (property.isMany()) { + /* add to the list */ + RefCountingPointer ptr = df->create(namespaceURI, typeName); + DataObject* dob = ptr; + ((DataObjectImpl*)dob)->setContainer(this); + ((DataObjectImpl*)dob)->setApplicableChangeSummary(); + + // log creation before adding to list - the change must record the old state + // of the list + logCreation(((DataObjectImpl*)dob), this, property); + //logChange(property); + + DataObjectImpl* theDO = getDataObjectImpl(property); + if ( theDO == 0) { /* No value set yet */ + unsigned int ind = getPropertyIndex(property); + RefCountingPointer listptr = + df->create(Type::SDOTypeNamespaceURI,"DataObject"); + + DataObject* doptr = listptr; + PropertyValues.insert(PropertyValues.end(),rdo(ind,(DataObjectImpl*)doptr)); + ((DataObjectImpl*)doptr)->setContainer(this); + ((DataObjectImpl*)doptr)->setApplicableChangeSummary(); + + DataObjectListImpl* list = new DataObjectListImpl(df, + this, ind, namespaceURI,typeName); + + ((DataObjectImpl*)doptr)->setList(list); + // the append will log a change to the property. + list->append(ptr); + + // now done by list append + //if (getType().isSequencedType()) + //{ + // SequenceImpl* sq = getSequenceImpl(); + // sq->push(property,0); + //} + } + else + { + DataObjectList& list = theDO->getList(); + // the append will log a change to the property, and update the + // sequence + list.append(ptr); + //if (getType().isSequencedType()) + //{ + // SequenceImpl* sq = getSequenceImpl(); + // sq->push(property,list.size()-1); + //} + + } + return ptr; + + } + else { + unset(property); + DataObjectImpl* ditem = + new DataObjectImpl(df, df->getType(namespaceURI, typeName)); + ditem->setContainer(this); + ditem->setApplicableChangeSummary(); + + // log both creation and change - creations no longer log + // changes automatically. + + logCreation(ditem, this, property); + logChange(property); + + PropertyValues.insert(PropertyValues.end(), + rdo(getPropertyIndex(property),ditem)); + if (getType().isSequencedType()) + { + SequenceImpl* sq = getSequenceImpl(); + sq->push(property,0); + } + return RefCountingPointer((DataObject*)ditem); + } + return 0; + } + + void DataObjectImpl::setList( DataObjectList* theList) + { + listValue = (DataObjectListImpl*)theList; + } + + + bool DataObjectImpl::remove(DataObjectImpl* indol) + { + PropertyValueMap::iterator i; + for (i = PropertyValues.begin(); i != PropertyValues.end(); ++i) + { + const Property& prop = getProperty((*i).first); + if (prop.isMany()) + { + DataObjectList& dol = ((*i).second)->getList(); + for (int j=0;j< dol.size(); j++) + { + if (dol[j] == indol) + { + indol->logDeletion(); + logChange(prop); + indol->setContainer(0); + dol.remove(j); + return true; + } + } + } + DataObjectImpl* tmp = (*i).second; + if (tmp == indol) { + indol->logDeletion(); + logChange(prop); + indol->setContainer(0); + PropertyValues.erase(i); + return true; + } + } + return false; + } + + // remove this Object from its container and dont unSet all its properties. + + void DataObjectImpl::detach() + { + // remove this data object from its tree + clearReferences(); + if (container == 0) return; + container->remove(this); + return ; + } + + void DataObjectImpl::clear() + { + // clear this objects state + PropertyValueMap::iterator i = PropertyValues.begin(); + + while (i != PropertyValues.end()) + { + unset((*i).first); + i = PropertyValues.begin(); + } + return ; + } + + // Returns the containing Object + // of 0 if there is no container. + + RefCountingPointer DataObjectImpl::getContainer() + { + DataObject* dob = (DataObject*)container; + return RefCountingPointer (dob); + } + + DataObjectImpl* DataObjectImpl::getContainerImpl() + { + return container; + } + + void DataObjectImpl::setContainer(DataObjectImpl* d) + { + container = d; + } + + const Property* DataObjectImpl::findInProperties(DataObject* ob) + { + PropertyValueMap::iterator i; + for (i = PropertyValues.begin() ;i != PropertyValues.end() ; ++i) + { + if (getProperty((*i).first).isReference()) continue; + if (getProperty((*i).first).isMany()) + { + DataObjectList& dl = ((*i).second)->getList(); + for (int j = 0 ; j < dl.size(); j++) + { + if (dl[j] == ob) + { + return &(getProperty((*i).first)); + } + } + } + else + { + if ((*i).second == ob) + { + return &(getProperty((*i).first)); + } + } + } + return 0; // this can happen if the object has been detached + + //string msg("Object cannot find its containing property"); + //SDO_THROW_EXCEPTION("FindInProperties" ,SDOPropertyNotFoundException, + // msg.c_str()); + } + + // Return the Property of the data Object containing this data Object + // or 0 if there is no container. + + const Property& DataObjectImpl::getContainmentProperty() + { + if (container != 0) { + const Property* p = container->findInProperties(this); + if (p != 0)return *p; + } + SDO_THROW_EXCEPTION("getContainmentProperty" ,SDOPropertyNotFoundException, + "Object cannot find its containment property"); + } + + + // Returns the data Object's type. + // The type defines the properties available for reflective access. + + const Type& DataObjectImpl::getType() + { + return ObjectType; + } + + const Type::Types DataObjectImpl::getTypeEnum() + { + return ObjectType.getTypeEnum(); + } + + const TypeImpl& DataObjectImpl::getTypeImpl() + { + return ObjectType; + } + + + // open type support + + const Property& DataObjectImpl::getProperty(const char* prop) + { + PropertyImpl* pi = getPropertyImpl(prop); + if (pi == 0) + { + string msg("Cannot find property:"); + msg += prop; + SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException, + msg.c_str()); + + } + return (Property&)*pi; + } + + PropertyImpl* DataObjectImpl::getPropertyImpl(const char* prop) + { + PropertyImpl* pi = getTypeImpl().getPropertyImpl(prop); + if (pi != 0) return pi; + + if (getType().isOpenType()) + { + std::list::iterator j; + for (j=openProperties.begin(); + j != openProperties.end(); ++j) + { + if (!strcmp((*j).getName(), prop)) + { + return (PropertyImpl*)&(*j); + } + } + } + return 0; + } + + DataFactory* DataObjectImpl::getDataFactory() + { + return factory; + } + + void DataObjectImpl::setDataFactory(DataFactory* df) + { + factory = df; + } + + /////////////////////////////////////////////////////////////////////////// + // These finally are the setters/getters for primitives given + // that the data object is a primitive type. + /////////////////////////////////////////////////////////////////////////// + + + bool DataObjectImpl::getBoolean() + { + return getTypeImpl().convertToBoolean(value, valuelength); + } + + + char DataObjectImpl::getByte() + { + return getTypeImpl().convertToByte(value,valuelength); + + } + + + wchar_t DataObjectImpl::getCharacter() + { + return getTypeImpl().convertToCharacter(value,valuelength); + + } + + long DataObjectImpl::getInteger() + { + return getTypeImpl().convertToInteger(value,valuelength); + + } + + + long double DataObjectImpl::getDouble() + { + return getTypeImpl().convertToDouble(value,valuelength); + } + + + float DataObjectImpl::getFloat() + { + return getTypeImpl().convertToFloat(value,valuelength); + + } + + + + int64_t DataObjectImpl::getLong() + { + return getTypeImpl().convertToLong(value,valuelength); + + } + + + short DataObjectImpl::getShort() + { + return getTypeImpl().convertToShort(value,valuelength); + + } + + unsigned int DataObjectImpl::getString( wchar_t* outptr, unsigned int max) + { + if (outptr == 0 || max == 0) return valuelength; + return getTypeImpl().convertToString(value, outptr, valuelength, max); + + } + unsigned int DataObjectImpl::getBytes( char* outptr, unsigned int max) + { + if (outptr == 0 || max == 0) return valuelength; + return getTypeImpl().convertToBytes(value, outptr, valuelength, max); + + } + + const char* DataObjectImpl::getCString() + { + return getTypeImpl().convertToCString(value, &asStringBuffer, valuelength); + + } + + const SDODate DataObjectImpl::getDate() + { + return getTypeImpl().convertToDate(value, valuelength); /* time_t == long*/ + + } + + DataObjectImpl* DataObjectImpl::getDataObject() + { + return (DataObjectImpl*)getTypeImpl().convertToDataObject(value, valuelength); + + } + + + void DataObjectImpl::setBoolean(bool invalue) + { + valuelength = getTypeImpl().convert(&value,invalue); + return; + } + + + void DataObjectImpl::setByte(char invalue) + { + valuelength = getTypeImpl().convert(&value,invalue); + return; + + } + + + void DataObjectImpl::setCharacter(wchar_t invalue) + { + valuelength = getTypeImpl().convert(&value,invalue); + return; + } + + void DataObjectImpl::setString(const wchar_t* invalue, unsigned int len) + { + valuelength = getTypeImpl().convert(&value,invalue, len); + return; + } + + void DataObjectImpl::setBytes(const char* invalue, unsigned int len) + { + valuelength = getTypeImpl().convert(&value,invalue, len); + return; + } + + void DataObjectImpl::setInteger(long invalue) + { + valuelength = getTypeImpl().convert(&value,invalue); + return; + } + + void DataObjectImpl::setDouble(long double invalue) + { + valuelength = getTypeImpl().convert(&value,invalue); + return; + } + + void DataObjectImpl::setFloat(float invalue) + { + valuelength = getTypeImpl().convert(&value,invalue); + return; + + } + + + void DataObjectImpl::setLong(int64_t invalue) + { + valuelength = getTypeImpl().convert(&value,invalue); + return; + } + + + void DataObjectImpl::setShort(short invalue) + { + valuelength = getTypeImpl().convert(&value,invalue); + return; + + } + + void DataObjectImpl::setCString(const char* invalue) + { + valuelength = getTypeImpl().convert(&value,invalue); + return; + } + + void DataObjectImpl::setDate(const SDODate invalue) + { + valuelength = getTypeImpl().convertDate(&value,invalue); /* time_t == long*/ + return; + } + + void DataObjectImpl::setDataObject(DataObject* invalue) + { + valuelength = getTypeImpl().convert(&value,invalue); + return; + } + + void DataObjectImpl::setNull() + { + isnull = true; + } + + bool DataObjectImpl::isNull() + { + return isnull; + } + + void DataObjectImpl::unsetNull() + { + isnull = false; + } + + + DataObjectImpl::DataObjectImpl(const TypeImpl& t) : ObjectType(t) + { + container = 0; + value = 0; /* Will be initialized when used */ + valuelength = 0; + asStringBuffer = 0; +// asXPathBuffer = 0; + isnull = false; + + // open type support + openBase = t.getPropertiesSize() ; + + userdata = (void*)0xFFFFFFFF; + + if (t.isChangeSummaryType()) + { + changesummaryobject = 0; + localCS = new ChangeSummaryImpl(); + } + else + { + changesummaryobject = 0; + localCS = 0; + } + + if (getType().isSequencedType()) sequence = new SequenceImpl(this); + else sequence = 0; + } + + + + DataObjectImpl::DataObjectImpl(DataFactory* df, const Type& t) : ObjectType((TypeImpl&)t), + factory(df) + { + container = 0; + value = 0; + valuelength = 0; + asStringBuffer = 0; +// asXPathBuffer = 0; + isnull = false; + + // open type support + openBase = ObjectType.getPropertiesSize() ; + + userdata = (void*)0xFFFFFFFF; + + if (ObjectType.isChangeSummaryType()) + { + changesummaryobject = 0; + localCS = new ChangeSummaryImpl(); + } + else + { + changesummaryobject = 0; + localCS = 0; + } + + if (getType().isSequencedType()) + { + sequence = new SequenceImpl(this); + } + else + { + sequence = 0; + } + } + + void DataObjectImpl::deleteValue() + { + switch (getTypeEnum()) + { + case Type::BooleanType: + case Type::ByteType: + case Type::CharacterType: + case Type::IntegerType: + case Type::DateType: + case Type::DoubleType: + case Type::FloatType: + case Type::LongType: + case Type::ShortType: + case Type::BytesType: + delete (char*)value; + return; + + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::StringType: + case Type::UriType: + delete (wchar_t*)value; + return; + + case Type::DataObjectType: + return; + + default: + return; + } + } + + DataObjectImpl::~DataObjectImpl() + { + // We do not want to log changes to our own deletion + // if this DO owns the ChangeSummary. Do not delete + // it here as contained DOs still have a reference to it. + + if (getTypeImpl().isChangeSummaryType()) + { + ChangeSummaryPtr c = getChangeSummary(); + if (c) { + if (c->isLogging()) + { + c->endLogging(); + } + } + } + + + clearReferences(); + PropertyValueMap::iterator i = PropertyValues.begin(); + while (i != PropertyValues.end()) + { + unset((*i).first); + if (i == PropertyValues.begin()) + { + // unset has not removed the item from the list - do it + // here instead + PropertyValues.erase(i); + } + i = PropertyValues.begin(); + } + + // Theory: A DO cant get here if its still attached to anything, + //so we dont need to detach.... + //detach(); + + + if (asStringBuffer != 0) delete asStringBuffer; +// if (asXPathBuffer != 0) delete asXPathBuffer; + + if (value != 0) + { + if (getType().isDataType())deleteValue(); + } + + + + if (getType().isSequencedType()) + { + if (sequence != 0) delete sequence; + } + + + if (getTypeImpl().isChangeSummaryType() ) + { + if (getChangeSummary() != 0) + { + delete localCS; + localCS = 0; + } + } + } + + void DataObjectImpl::setApplicableChangeSummary() + { + changesummaryobject = 0; + if (getType().isChangeSummaryType()) + { + changesummaryobject = 0; + return; + } + else { + DataObjectImpl* dob = getContainerImpl(); + while (dob != 0) { + if (dob->getType().isChangeSummaryType()) + { + changesummaryobject = dob; + return; + } + dob = dob->getContainerImpl(); + } + } + + } + + void DataObjectImpl::logCreation(DataObjectImpl* dol, DataObjectImpl* cont, + const Property& theprop) + { + if (getChangeSummaryImpl() != 0 && getChangeSummaryImpl()->isLogging()) + { + getChangeSummaryImpl()->logCreation(dol,cont,theprop); + } + } + + void DataObjectImpl::logDeletion() + { + // Only log if ChangeSummary is inherited from container + + if (getChangeSummaryImpl() != 0 && getChangeSummaryImpl()->isLogging() && !getType().isChangeSummaryType()) + { + DataObjectImpl* cont = getContainerImpl(); + if (cont != 0) // log if there is a container. If there is not, then + // this can only be the object with the CS, so logging + // would not make sense. + { + const Property* p = cont->findInProperties(this); + if ( p != 0) // if the object is not in the properties, then its been + // detached, and has already been logged as deleted + { + getChangeSummaryImpl()->logDeletion(this,cont,*p, + objectToXPath(), true); + } + } + } + } + + void DataObjectImpl::logChange(const Property& prop) + { + if (getChangeSummaryImpl() != 0 && getChangeSummaryImpl()->isLogging()) + { + getChangeSummaryImpl()->logChange(this,prop); + } + } + + void DataObjectImpl::logChange(unsigned int propIndex) + { + if (getChangeSummaryImpl() != 0 && getChangeSummaryImpl()->isLogging()) + { + getChangeSummaryImpl()->logChange(this,getProperty(propIndex)); + } + } + // reference support + + void DataObjectImpl::setReference(DataObject* dol, const Property& prop) + { + LOGINFO_1(INFO,"ChangeSummary:Setting a reference to %s",prop.getName()); + + refs.push_back(new Reference(dol,prop)); + } + void DataObjectImpl::unsetReference(DataObject* dol, const Property& prop) + { + LOGINFO_1(INFO,"ChangeSummary:Unsetting a reference to %s",prop.getName()); + + for (int i=0;i< refs.size();i++) + { + if (refs[i]->getDataObject() == dol) + { + if (!strcmp(refs[i]->getProperty().getName(), + prop.getName())) + { + delete refs[i]; + refs.erase(refs.begin() + i); + } + } + } + } + + + void DataObjectImpl::clearReferences() + { + for (int i=0;igetDataObject()->unset(refs[i]->getProperty()); + delete refs[i]; + } + refs.clear(); + } + + const char* DataObjectImpl::objectToXPath() + { + asXPathBuffer = ""; + + DataObjectImpl* dob = getContainerImpl(); + DataObject*thisob = this; + while (dob != 0){ + const Property& p = thisob->getContainmentProperty(); + if (asXPathBuffer != "") + { + asXPathBuffer = "/" + asXPathBuffer; + } + + if (p.isMany()) { + DataObjectList& dol = dob->getList(p); + for (int i=0;igetContainerImpl(); + } + + asXPathBuffer = "#/" + asXPathBuffer; + + return asXPathBuffer.c_str(); +/* + char* temp1; + char* temp2; + + if (asXPathBuffer == 0) + { + asXPathBuffer = new char[2]; + sprintf(asXPathBuffer,"#"); + } + + DataObjectImpl* dob = getContainerImpl(); + DataObject*thisob = this; + while (dob != 0){ + const Property& p = thisob->getContainmentProperty(); + const char* name = p.getName(); + temp1 = new char[strlen(name) + 34]; + temp1[0] = 0; + + + if (p.isMany()) { + DataObjectList& dol = dob->getList(p); + for (int i=0;igetContainerImpl(); + } + return asXPathBuffer; */ + } + + // user data support... + void* DataObjectImpl::getUserData(const char* path) + { + DataObjectImpl *d; + void* v = 0; + char *spath = 0; + char* prop = 0; + try { + spath = DataObjectImpl::stripPath(path); + prop = findPropertyContainer(spath,&d); + if (spath) + { + delete spath; + spath = 0; + } + if (d != 0) + { + if (prop != 0) + { + const Property& p = d->getProperty(prop); + if (p.getType().isDataType()) return 0; + if (p.isMany()) + { + DataObjectImpl* d2 = d->getDataObjectImpl(prop); + if (d2) v = d2->getUserData(); + delete prop; + prop = 0; + return v; + } + v = d->getUserData(p); + delete prop; + prop = 0; + return v; + } + return d->getUserData(); + } + return 0; + } + catch (SDORuntimeException e) + { + if (prop) delete prop; + if (spath) delete spath; + return 0; + } + + } + + void* DataObjectImpl::getUserData(unsigned int propertyIndex) + { + if ((getProperty(propertyIndex).isMany())) + { + return 0; + } + if ((getProperty(propertyIndex).getType().isDataType())) + { + return 0; + } + DataObjectImpl* ptr = getDataObjectImpl(propertyIndex); + if (ptr) return ptr->getUserData(); + return 0; + } + + void* DataObjectImpl::getUserData(const Property& property) + { + if (property.isMany()) + { + return 0; + } + if (property.getType().isDataType()) + { + return 0; + } + DataObjectImpl* ptr = getDataObjectImpl(property); + if (ptr) return ptr->getUserData(); + return 0; + } + + void* DataObjectImpl::getUserData() + { + return userdata; + } + + void DataObjectImpl::setUserData(const char* path, void* value) + { + char *spath = 0; + char* prop = 0; + DataObjectImpl *d; + try { + spath = DataObjectImpl::stripPath(path); + prop = findPropertyContainer(spath,&d); + if (spath) + { + delete spath; + spath = 0; + } + if (d != 0) + { + if (prop != 0) + { + const Property& p = d->getProperty(prop); + if (p.getType().isDataType()) return; + if (p.isMany()) + { + DataObjectImpl* d2 = d->getDataObjectImpl(prop); + if (d2) d2->setUserData(value); + delete prop; + prop = 0; + return; + } + d->setUserData(p,value); + delete prop; + prop = 0; + return; + } + d->setUserData(value); + return; + } + } + catch (SDORuntimeException e) + { + if (prop) delete prop; + if (spath) delete spath; + return; + } + + } + + void DataObjectImpl::setUserData(unsigned int propertyIndex, void* value) + { + if ((getProperty(propertyIndex).isMany())) + { + return; + } + if ((getProperty(propertyIndex).getType().isDataType())) + { + return; + } + DataObjectImpl* ptr = getDataObjectImpl(propertyIndex); + if (ptr) ptr->setUserData(value); + return; + } + + void DataObjectImpl::setUserData(const Property& property, void* value) + { + if (property.isMany()) + { + return; + } + if (property.getType().isDataType()) + { + return; + } + DataObjectImpl* ptr = getDataObjectImpl(property); + if (ptr) ptr->setUserData(value); + return; + } + + void DataObjectImpl::setUserData(void* value) + { + userdata = value; + } + +}; +}; diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.h new file mode 100644 index 0000000000..174e7b79c5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.h @@ -0,0 +1,668 @@ +/* + * + * 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: 2006/02/02 16:41:30 $ */ + +#ifndef _DATAOBJECTIMPL_H_ +#define _DATAOBJECTIMPL_H_ +#include "commonj/sdo/DataObject.h" + +#include "commonj/sdo/disable_warn.h" + +#include +#include +#include + +#include + + +#include "commonj/sdo/Property.h" +#include "commonj/sdo/TypeImpl.h" +#include "commonj/sdo/DataFactory.h" +#include "commonj/sdo/SequenceImpl.h" +#include "commonj/sdo/DataObjectListImpl.h" +#include "commonj/sdo/PropertyList.h" + +#include "commonj/sdo/RefCountingPointer.h" +#include "commonj/sdo/ChangeSummaryImpl.h" +#include "commonj/sdo/SDODate.h" + +namespace commonj{ +namespace sdo{ + +class DataGraph; +class DataObjectImpl; +class DataObjectListImpl; +class DataFactory; + + +#define DataObjectImplPtr RefCountingPointer +#define ChangeSummaryImplPtr RefCountingPointer + +/** + * rdo is an internal class holding a property value in a data object. + */ + +class rdo { +public: + unsigned int first; + DataObjectImplPtr second; + rdo(unsigned int infirst, DataObjectImpl* insecond); + rdo(); + rdo (const rdo& inrdo); + virtual ~rdo(); +}; + +typedef std::list< rdo > PropertyValueMap; + + + /** + * DataObjectImpl implements the abstract class DataObject. + * + * A data object is a representation of some structured data. + * it is the fundamental component in the SDO (Service Data Objects) package. + * Data objects support reflection, path-based accesss, convenience creation + * and deletion methods,and the ability to be part of a data graph. + * Each data object holds its data as a series of properties. + * Properties can be accessed by name, property index, or using the property + * meta object itself. + * A data object can also contain references to other data objects, through + * reference-type properties. + * A data object has a series of convenience accessors for its properties. + * These methods either use a path (String), a property index, + * or the property's meta object itself, to identify the property. + * Some examples of the path-based accessors are as follows: + * DataObjectPtr company = ...; + * company->getString("name"); + * company->setString("name", "acme"); + * company->getString("department.0/name") + * .n indexes from 0. + * company->getString("department[1]/name") [] indexes from 1. + * company->getDataObject("department[number=123]") returns the department where number=123 + * company->getDataObject("..") returns the containing data object + * company->getDataObject("/") returns the root containing data object + * There are specific accessors for the primitive types and commonly used + * data types like String. + */ + +class DataObjectImpl : public DataObject +{ + public: + + DataObjectImpl(); + DataObjectImpl(const TypeImpl& t); + DataObjectImpl(DataFactory* dataFactory, const Type& t); + + // This one only needs the values, and the type/prop info. The rest + // is not copied and would be unsafe to do so. This is used to + // store the cloned info in a change summary. + + DataObjectImpl(DataObjectImplPtr indo); + + virtual ~DataObjectImpl(); + + ///////////////////////////////////////////////////////////////////////// + // Introspection + ///////////////////////////////////////////////////////////////////////// + + + void handlePropertyNotSet(const char* name); + + /** getPropertyIndex gets the unique index of a property + * + * A property of a data object has a unique index associated with it. + * This method gets a property index for this object from the property, + * or throw SDOPropertyNotFoundException if the property is not part + * of this data object. + */ + + virtual unsigned int getPropertyIndex(const Property& p); + + /** + * These are just like getType().getProperty(), but may return + * values other than the property list for open types. + */ + + virtual const Property& getProperty(unsigned int index); + + virtual const Property& getProperty(const char* prop); + + virtual PropertyImpl* getPropertyImpl(const char* prop); + + virtual PropertyImpl* getPropertyImpl(unsigned int index); + + /** getInstanceProperties gets the props of the current object. + * + * Returns a read-only List of the Properties currently used in this DataObject. + * This list will contain all of the properties in getType().getProperties() + * and any properties where isSet(property) is true. + * For example, properties resulting from the use of + * open or mixed XML content are present if allowed by the Type. + * The list does not contain duplicates. + * The order of the properties in the list begins with getType().getProperties() + * and the order of the remaining properties is determined by the implementation. + * The same list will be returned unless the DataObject is updated so that + * the contents of the list change + * Returns the list of Properties currently used in this DataObject. + */ + + virtual PropertyList getInstanceProperties(); + + /** getContainer get the containing object + * + * Returns the containing data object + * or 0 if there is no container. + */ + + virtual DataObjectPtr getContainer(); + + /** getContainmentProperty returns the property containing this object + * + * Return the Property of the data object containing this data object + * or throw an SDOPropertyNotFoundException if there is no container. + */ + + virtual const Property& getContainmentProperty(); + + /** getType returns the data object's type. + * + * getType returns the data object's type. + * The type defines the properties available for reflective access. + */ + + virtual const Type& getType(); + + virtual const Type::Types getTypeEnum(); + + + + /////////////////////////////////////////////////////////////////////////// + // get/set + /////////////////////////////////////////////////////////////////////////// + + + /** getDataObject returns a data object by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual DataObjectPtr getDataObject(const char* path); + virtual DataObjectPtr getDataObject(unsigned int propertyIndex); + virtual DataObjectPtr getDataObject(const Property& property); + + /** setDataObject sets a value by path, index or property + * + * Sets a property of either this object or an object reachable from it, + * as identified by the specified path, + * to the specified value. + */ + + virtual void setDataObject(const char* path, DataObjectPtr value); + virtual void setDataObject(unsigned int propertyIndex, DataObjectPtr value); + virtual void setDataObject(const Property& property, DataObjectPtr value); + + /** getBoolean returns a boolean by path, index or property + * + * Returns the value of a property of either this object or an object + * reachable from it, as identified by the specified path. + */ + + virtual bool getBoolean(const char* path); + virtual bool getBoolean(unsigned int propindex); + virtual bool getBoolean(const Property& p); + + virtual void setBoolean(const char* path, bool b); + virtual void setBoolean(unsigned int propindex, bool b); + virtual void setBoolean(const Property& p, bool b); + + virtual char getByte(const char* path); + virtual char getByte(unsigned int propindex); + virtual char getByte(const Property& p); + + virtual void setByte(const char* path, char c); + virtual void setByte(unsigned int propindex, char c); + virtual void setByte(const Property& p, char c); + + virtual wchar_t getCharacter(const char* path); + virtual wchar_t getCharacter(unsigned int propindex); + virtual wchar_t getCharacter(const Property& p); + + virtual void setCharacter(const char* path, wchar_t c); + virtual void setCharacter(unsigned int propindex, wchar_t c); + virtual void setCharacter(const Property& p, wchar_t c); + + virtual unsigned int getLength(const char* path) ; + virtual unsigned int getLength(unsigned int propindex) ; + virtual unsigned int getLength(const Property& p) ; + virtual unsigned int getLength() ; + + virtual unsigned int getBytes(const char* path, char* buf, unsigned int max) ; + virtual unsigned int getBytes(unsigned int propindex, char* buf, unsigned int max) ; + virtual unsigned int getBytes(const Property& p, char* buf, unsigned int max) ; + + virtual void setBytes(const char* path, const char* c, unsigned int len) ; + virtual void setBytes(unsigned int propindex, const char* c,unsigned int len) ; + virtual void setBytes(const Property& p, const char* c,unsigned int len) ; + + virtual unsigned int getString(const char* path, wchar_t* buf, unsigned int max) ; + virtual unsigned int getString(unsigned int propindex,wchar_t* buf, unsigned int max) ; + virtual unsigned int getString(const Property& p,wchar_t* buf, unsigned int max) ; + + virtual void setString(const char* path, const wchar_t* c,unsigned int len) ; + virtual void setString(unsigned int propindex, const wchar_t* c,unsigned int len) ; + virtual void setString(const Property& p, const wchar_t* c,unsigned int len) ; + + virtual const SDODate getDate(const char* path); + virtual const SDODate getDate(unsigned int propindex); + virtual const SDODate getDate(const Property& p); + + virtual void setDate(const char* path, const SDODate d); + virtual void setDate(unsigned int propindex, const SDODate d); + virtual void setDate(const Property& p, const SDODate d); + + virtual long double getDouble(const char* path); + virtual long double getDouble(unsigned int propindex); + virtual long double getDouble(const Property& p); + + virtual void setDouble(const char* path, long double d); + virtual void setDouble(unsigned int propindex, long double d); + virtual void setDouble(const Property& p, long double d); + + virtual float getFloat(const char* path); + virtual float getFloat(unsigned int propindex); + virtual float getFloat(const Property& p); + + virtual void setFloat(const char* path, float f); + virtual void setFloat(unsigned int propindex, float f); + virtual void setFloat(const Property& p, float f); + + virtual long getInteger(const char* path); + virtual long getInteger(unsigned int propindex); + virtual long getInteger(const Property& p); + + virtual void setInteger(const char* path, long i); + virtual void setInteger(unsigned int propindex, long i); + virtual void setInteger(const Property& p, long i); + + virtual /*long long*/ int64_t getLong(const char* path); + virtual /*long long*/ int64_t getLong(unsigned int propindex); + virtual /*long long*/ int64_t getLong(const Property& p); + + virtual void setLong(const char* path, /*long long*/ int64_t l); + virtual void setLong(unsigned int propindex, /*long long*/ int64_t l); + virtual void setLong(const Property& p, /*long long*/ int64_t l); + + virtual short getShort(const char* path); + virtual short getShort(unsigned int propindex); + virtual short getShort(const Property& p); + + virtual void setShort(const char* path, short s); + virtual void setShort(unsigned int propindex, short s); + virtual void setShort(const Property& p, short s); + + virtual const char* getCString(const char* path); + virtual const char* getCString(unsigned int propertyIndex); + virtual const char* getCString(const Property& prop); + + virtual void setCString(const char* path, const char* value); + virtual void setCString(unsigned int propertyIndex, const char* value); + virtual void setCString (const Property& prop, const char* value); + + /** setNull sets a data object value to null. + * + * A DataObjectType or DataType value may be set or unset. If it is set, then + * it may have a value, or it may be set to null. A distinction is drawn between + * being unset, having the default value, being set and being null. + * When the value of an integer (for example) is returned as zero, it could have + * been set to zero, or it could be null. Use isNull() to verify. + */ + + virtual void setNull(const char* path); + virtual void setNull(unsigned int propertyIndex); + virtual void setNull(const Property& prop); + + virtual bool isNull(const char* path); + virtual bool isNull(unsigned int propertyIndex); + virtual bool isNull(const Property& prop); + + virtual bool isSet(const char* path); + virtual bool isSet(unsigned int propertyIndex); + virtual bool isSet(const Property& property); + + virtual bool isValid(const char* path); + virtual bool isValid(unsigned int propertyIndex); + virtual bool isValid(const Property& property); + + virtual void unset(const char* path); + virtual void unset(unsigned int propertyIndex); + virtual void unset(const Property& property); + + + /////////////////////////////////////////////////////////////////////////// + // Sequences + /////////////////////////////////////////////////////////////////////////// + + /** getSequence returns the sequence for a data object + * + * Returns the value of a Sequence property identified by + * the specified path. See Sequence. + */ + + virtual SequenceImpl* getSequenceImpl(); + virtual SequencePtr getSequence(); + virtual SequencePtr getSequence(const char* path); + virtual SequencePtr getSequence(unsigned int propertyIndex); + virtual SequencePtr getSequence(const Property& property); + + + /////////////////////////////////////////////////////////////////////////// + // Creation of dataobjects + /////////////////////////////////////////////////////////////////////////// + + /** createDataObject creates a data object value + * + * Returns a new data object contained by this object using the + * specified property,which must be a containment property. + * The type of the created object is the declared type + * of the specified property. + * If the property is many valued, this method adds an element to the + * list, otherwise it sets the value, removing any old value. + */ + + virtual DataObjectPtr createDataObject(const char* propertyName); + virtual DataObjectPtr createDataObject(unsigned int propertyIndex); + virtual DataObjectPtr createDataObject(const Property& property); + + + /** + * See if the property currently exists + */ + + virtual bool hasProperty(const char* name); + + + virtual void detach(); + + virtual void clear(); + + + /////////////////////////////////////////////////////////////////////////// + // Lists + /////////////////////////////////////////////////////////////////////////// + + /** getList gets the value of a many-valued property + * + * Many valued properties are returned as lists of DataObjects. + * These lists may contain primitives or data objects, but they behave + * like data objects. + * Getting a many valued integer consists of getting the list, then + * using the DataObjectList API to getInteger() for each list element. + */ + + virtual DataObjectList& getList(const char* path); + virtual DataObjectList& getList(unsigned int propIndex); + virtual DataObjectList& getList(const Property& p); + virtual DataObjectList& getList(); + virtual DataObjectListImpl* getListImpl(); + + void setList( DataObjectList* theList); + + /////////////////////////////////////////////////////////////////////////// + // Change Summary + /////////////////////////////////////////////////////////////////////////// + + /** getChangeSummary get the applicable change summary + * + * This method gets the applicable change summary for a data object. + * The summary is not necessarily attached to the data object, it may be + * the summary for a parent data object. No object with a summary attached + * may be a child of another object with a summary attached. + * See the ChangeSummary API for details of using the change sumamry. + */ + + virtual SDO_API ChangeSummaryPtr getChangeSummary(const char* path); + virtual SDO_API ChangeSummaryPtr getChangeSummary(unsigned int propIndex); + virtual SDO_API ChangeSummaryPtr getChangeSummary(const Property& prop); + virtual SDO_API ChangeSummaryPtr getChangeSummary(); + + + virtual bool getBoolean(); + virtual void setBoolean(bool b); + virtual char getByte(); + virtual void setByte(char c); + virtual wchar_t getCharacter(); + virtual void setCharacter(wchar_t c); + virtual unsigned int getString(wchar_t* buf, unsigned int max); + virtual unsigned int getBytes(char* buf, unsigned int max); + virtual void setString(const wchar_t* buf, unsigned int len); + virtual void setBytes(const char* c, unsigned int len); + virtual short getShort(); + virtual void setShort(short s); + virtual long getInteger(); + virtual void setInteger(long s); + virtual /* long long*/ int64_t getLong(); + virtual void setLong(/* long long */ int64_t i); + virtual float getFloat(); + virtual void setFloat(float b); + virtual long double getDouble(); + virtual void setDouble(long double d); + virtual const SDODate getDate(); + virtual void setDate(const SDODate d); + virtual const char* getCString(); + virtual void setCString(const char* s); + virtual DataObjectImpl* getDataObject(); + virtual void setDataObject(DataObject* d); + + // null support + virtual bool isNull(); + virtual void setNull(); + virtual void unsetNull(); + + // change logging is used by the dataobjectlistimpl + virtual void logChange(const Property& prop); + virtual void logChange(unsigned int propIndex); + virtual void logDeletion(); + virtual void logCreation(DataObjectImpl* dol, + DataObjectImpl* cont, const Property& prop); + + // reference support + virtual void setReference(DataObject* dob, const Property& prop); + virtual void unsetReference(DataObject* dob, const Property& prop); + virtual void clearReferences(); + + // user data support + virtual void setUserData(const char* path,void* value); + virtual void setUserData(unsigned int propertyIndex, void* value); + virtual void setUserData(const Property& property, void* value); + virtual void setUserData(void* value); + virtual void* getUserData(const char* path); + virtual void* getUserData(unsigned int propertyIndex); + virtual void* getUserData(const Property& property); + virtual void* getUserData(); + + virtual void setContainer(DataObjectImpl* d); + DataObjectImpl* getContainerImpl(); + + // builds a temporary XPath for this object. + const char* objectToXPath(); + + // The data factory can be used to create new data objects within + // the Type system of this data object + // + + SDO_API DataFactory* getDataFactory(); + + + // cache a copy of the change summary in this data object, if there + // is one in the tree. + + virtual void setApplicableChangeSummary(); + + + // open type support + virtual void setInstancePropertyType(unsigned int index, + const Type* t); + + /** + * defineProperty is used by open type support. + * This method and its siblings define a new property on an + * open type when a setting is requested. + */ + + virtual const PropertyImpl* defineProperty(const char* propname, + const Type& t); + + virtual const PropertyImpl* defineBoolean(const char* propname); + virtual const PropertyImpl* defineByte(const char* propname); + virtual const PropertyImpl* defineCharacter(const char* propname); + virtual const PropertyImpl* defineString(const char* propname); + virtual const PropertyImpl* defineBytes(const char* propname); + virtual const PropertyImpl* defineShort(const char* propname); + virtual const PropertyImpl* defineInteger(const char* propname); + virtual const PropertyImpl* defineLong(const char* propname); + virtual const PropertyImpl* defineFloat(const char* propname); + virtual const PropertyImpl* defineDouble(const char* propname); + virtual const PropertyImpl* defineDate(const char* propname); + virtual const PropertyImpl* defineCString(const char* propname); + virtual const PropertyImpl* defineDataObject(const char* propname, + const Type&t ); + virtual const PropertyImpl* defineDataObject(const char* propname, + const char* typeURI, const char* typeName ); + virtual const PropertyImpl* defineList(const char* propname); + virtual void undefineProperty(unsigned int index); + virtual const TypeImpl& getTypeImpl(); + +private: + + void validateIndex(unsigned int index); + virtual void checkFactory(DataObjectPtr dob); + virtual void checkType( const Property& prop, + const Type& objectType); + + virtual bool remove(DataObjectImpl* indol); + virtual bool isSet(const Property& prop, unsigned int propertyIndex); + + + virtual DataObjectImpl* getDataObjectImpl(const char* path); + virtual DataObjectImpl* getDataObjectImpl(unsigned int propertyIndex); + virtual DataObjectImpl* getDataObjectImpl(const Property& property); + + virtual DataObjectPtr + createDataObject(const Property& property, + const char* namespaceURI, + const char* typeName); + + DataObjectImpl* findDataObject(char* token, long* index); + const Property* findInProperties(DataObject* ob); + char* findPropertyContainer(const char* path, DataObjectImpl** din); + char* stripPath(const char* path); + + + // Does not keep a reference counted pointer to the container. + DataObjectImpl* container; + + // remove the value from the data object. + void deleteValue(); + + + PropertyValueMap PropertyValues; + + const TypeImpl& ObjectType; + + DataObjectListImpl* listValue; + + // Holds the value , reallocated as necessary for strings + void* value; + + // In the case of a bytes/string - this holds the length; + unsigned int valuelength; + + // holds the value as a string - if requested. + char* asStringBuffer; + + // holds the Xpath to this object if requested. + std::string asXPathBuffer; + + // The data object holds a counted reference to the data factory. + DataFactoryPtr factory; + + void setDataFactory(DataFactory *df); + + // Support for open types + int openBase; + std::list openProperties; + + static const char* emptyString; + static const char* templateString; + + // Data may be set to null in any data object + bool isnull; + + // user supplied 32 bit value. + void* userdata; + + // + // The sequence, if this is a sequenced type - not + // reference counted by the data object + // + SequenceImpl* sequence; + + // + // The change summary if this is a summarised type + // not reference counted by the data object - only by + // clients + // + + ChangeSummaryImpl* getChangeSummaryImpl(); + ChangeSummaryImpl* getSummary(); + ChangeSummaryImpl* localCS; + DataObjectImpl* changesummaryobject; + + + // reference type support + + class Reference + { + public: + DataObject* getDataObject() + { + return referer; + } + const Property& getProperty() + { + return refprop; + } + Reference(DataObject* d, const Property& p) : refprop(p), referer(d) + { + } + private: + DataObject* referer; + const Property& refprop; + }; + + typedef std::vector REFERENCE_LIST; + + REFERENCE_LIST refs; + + + +}; +}; +}; + +#endif //_DATAOBJECTIMPL_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.cpp new file mode 100644 index 0000000000..67f54949c8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.cpp @@ -0,0 +1,69 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/DataObjectInstance.h" +using commonj::sdo::CopyHelper; + + + +namespace commonj +{ + namespace sdo + { + // ============ + // Constructors + // ============ + DataObjectInstance::DataObjectInstance() + { + } + + DataObjectInstance::DataObjectInstance(const DataObjectPtr& theDO) + { + dataObject = CopyHelper::copy(theDO); + } + + // ========== + // Destructor + // ========== + DataObjectInstance::~DataObjectInstance() + { + } + + // =================================== + // Copy constructor: deep copy the DO + // =================================== + DataObjectInstance::DataObjectInstance(const DataObjectInstance& doi) + { + dataObject = CopyHelper::copy(doi.dataObject); + } + + // ============================= + // operator= : deep copy the DO + // ============================= + DataObjectInstance& DataObjectInstance::operator=(const DataObjectInstance& doi) + { + if (this != &doi) + { + dataObject = CopyHelper::copy(doi.dataObject); + } + return *this; + } + + } // End namespace sca +} // End namespace osoa diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.h new file mode 100644 index 0000000000..766392fbaa --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.h @@ -0,0 +1,62 @@ +/* + * + * 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:15 $ */ + +#ifndef commonj_sdo_DataObjectInstance_h +#define commonj_sdo_DataObjectInstance_h + + +#include "commonj/sdo/export.h" +#include "commonj/sdo/SDO.h" +using commonj::sdo::DataObjectPtr; +using commonj::sdo::DataObject; + + +namespace commonj +{ + namespace sdo + { +/** + * DataObjectInstance is a class which allows DataObjects to be considered + * as instances rather than data object pointers. + */ + class DataObjectInstance + { + + public: + SDO_API DataObjectInstance(); + SDO_API virtual ~DataObjectInstance(); + + SDO_API DataObjectInstance(const DataObjectPtr& theDO); + SDO_API DataObjectInstance(const DataObjectInstance&); + + SDO_API DataObjectInstance& operator=(const DataObjectInstance&); + SDO_API bool operator!() {return (!dataObject);} + SDO_API operator bool() {return !!dataObject;} + + SDO_API DataObject* operator->() {return dataObject;} + + SDO_API DataObjectPtr getDataObject() {return dataObject;} + SDO_API operator DataObjectPtr() {return dataObject;} + private: + DataObjectPtr dataObject; + }; + } // End namespace sdo +} // End namespace commonj + +#endif // commonj_sdo_DataObjectInstance_h diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.cpp new file mode 100644 index 0000000000..7202833360 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.cpp @@ -0,0 +1,41 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/DataObjectList.h" + +namespace commonj{ +namespace sdo { + +/** + * + * List for retrieving many valued property values. + * + * DataObjectList provides an API for getting and setting values in + * many valued properties. The list deals with both DataType and + * DataObjectType properties. + */ + +DataObjectList::~DataObjectList() +{ + +} + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.h new file mode 100644 index 0000000000..a8d548ccc2 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.h @@ -0,0 +1,192 @@ +/* + * + * 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: 2006/02/02 16:41:30 $ */ + +#ifndef _DATAOBJECTLIST_H_ +#define _DATAOBJECTLIST_H_ + + +#include "commonj/sdo/export.h" +#include "commonj/sdo/RefCountingPointer.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/SDODate.h" +#include + + +namespace commonj{ +namespace sdo{ + +/** + * + * List for retrieving many valued property values, DataType or DataObjectType. + * + * DataObjectList provides an API for getting and setting values in + * many valued properties. The list deals with both DataType and + * DataObjectType properties. + */ + +class DataObjectList +{ +public: + virtual ~DataObjectList(); + + /** [] is a index operator, and returns a dataobject. + * + * The index operator returns a data object, even if the + * list is of a DataType. The data object can yield its true value using + * getInteger() etc. Alternatively, list elements can be accessed + * with their correct type using the list getInteger(index) api. + */ + + virtual SDO_API DataObjectPtr operator[] (int pos) = 0; + virtual SDO_API const DataObjectPtr operator[] (int pos) const = 0; + + /** size returns the number of elements. + * + * The size method returns the number of elements in the list + */ + + virtual SDO_API int size () const = 0; + + /** getBoolean returns a boolean at an index + * + * Each of the DataTypes has a corresponding getter and setter + * overload. getBoolean returns a bool, getByte returns a char + * etc + */ + + virtual SDO_API bool getBoolean(unsigned int index) const = 0; + virtual SDO_API char getByte(unsigned int index) const = 0; + virtual SDO_API wchar_t getCharacter(unsigned int index) const = 0; + virtual SDO_API unsigned int getString(unsigned int index, wchar_t* value, + unsigned int max) const = 0; + virtual SDO_API unsigned int getBytes(unsigned int index, char* value, + unsigned int max) const = 0; + virtual SDO_API short getShort(unsigned int index) const = 0; + virtual SDO_API long getInteger(unsigned int index) const = 0; + virtual SDO_API int64_t getLong(unsigned int index) const = 0; + virtual SDO_API float getFloat(unsigned int index) const = 0; + virtual SDO_API long double getDouble(unsigned int index) const = 0; + virtual SDO_API const SDODate getDate(unsigned int index) const = 0; + virtual SDO_API const char* getCString(unsigned int index) const = 0; + virtual SDO_API DataObjectPtr getDataObject(unsigned int index) const = 0; + + virtual SDO_API void setBoolean(unsigned int index, bool d) = 0; + virtual SDO_API void setByte(unsigned int index, char d) = 0; + virtual SDO_API void setCharacter(unsigned int index, wchar_t d) = 0; + virtual SDO_API void setString(unsigned int index, const wchar_t* d, unsigned int len) = 0; + virtual SDO_API void setBytes(unsigned int index, const char* d, unsigned int len) = 0; + virtual SDO_API void setShort(unsigned int index, short d) = 0; + virtual SDO_API void setInteger(unsigned int index, long d) = 0; + virtual SDO_API void setLong(unsigned int index, int64_t d) = 0; + virtual SDO_API void setFloat(unsigned int index, float d) = 0; + virtual SDO_API void setDouble(unsigned int index, long double d) = 0; + virtual SDO_API void setDate(unsigned int index, const SDODate d) = 0; + virtual SDO_API void setCString(unsigned int index, char* d) = 0; + virtual SDO_API void setDataObject(unsigned int index, DataObjectPtr dob) = 0; + + /** getLength returns the length of a string element + * + * getLength behaves like DataObject::getlength. It returns the length + * of a bytes or string buffer such that space can be allocated for the + * values from getBytes() and getString() + */ + + virtual SDO_API unsigned int getLength(unsigned int index) const = 0; + + /** insert and append put items into the list + * + * insert and append have overrides for each of the DataTypes, and + * for DataObject. Insert inserts before the element number given. If the insertion + * point is off the end of the list, then an append is performed. + * Append puts the element on the end of the list. + */ + + + virtual SDO_API void insert (unsigned int index, DataObjectPtr d) = 0; + virtual SDO_API void append (DataObjectPtr d) = 0; + + virtual SDO_API void insert (unsigned int index, bool d) = 0; + virtual SDO_API void append (bool d) = 0; + + virtual SDO_API void insert (unsigned int index, char d) = 0; + virtual SDO_API void append (char d) = 0; + + virtual SDO_API void insert (unsigned int index, wchar_t d) = 0; + virtual SDO_API void append (wchar_t d) = 0; + + virtual SDO_API void insert (unsigned int index, const wchar_t* d, unsigned int len) = 0; + virtual SDO_API void append (const wchar_t* d, unsigned int len) = 0; + + virtual SDO_API void insert (unsigned int index, const char* d, unsigned int len) = 0; + virtual SDO_API void append (const char* d, unsigned int len) = 0; + + virtual SDO_API void insert (unsigned int index, const char* d) = 0; + virtual SDO_API void append (const char* d) = 0; + + virtual SDO_API void insert (unsigned int index, short d) = 0; + virtual SDO_API void append (short d) = 0; + + virtual SDO_API void insert (unsigned int index, const SDODate d) = 0; + virtual SDO_API void append (const SDODate d) = 0; + + virtual SDO_API void insert (unsigned int index, long d) = 0; + virtual SDO_API void append (long d) = 0; + + virtual SDO_API void insert (unsigned int index, int64_t d) = 0; + virtual SDO_API void append (int64_t d) = 0; + + virtual SDO_API void insert (unsigned int index, float d) = 0; + virtual SDO_API void append (float d) = 0; + + + virtual SDO_API void insert (unsigned int index, long double d) = 0; + virtual SDO_API void append (long double d) = 0; + + /** remove removes an element from the list. + * + * Remove removes the element from the list, and passes out a + * DataObjectPtr to the old value. This can be attached to the list + * somewhere else, or discarded. + */ + + virtual SDO_API DataObjectPtr remove (unsigned int index) = 0; + + /* getType returns type + * + * Returns the type. + * May throw SDOTYpeNotFoundException for unset open types + */ + + + virtual SDO_API const Type& getType() = 0; + + /* getTypeEnum returns an enumerator for the type + * + * Returns an enumerator for the type for easy switching on basic types. + * The enumerator is part of the Type class + * May throw SDOTypeNotFoundException for open types + */ + + virtual SDO_API const Type::Types getTypeEnum() = 0; + +}; +}; +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.cpp new file mode 100644 index 0000000000..925d1ee1c5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.cpp @@ -0,0 +1,1027 @@ +/* + * + * 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: 2006/02/02 16:41:30 $ */ + +#include "commonj/sdo/DataObjectListImpl.h" + + +#include +#include "commonj/sdo/Property.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/Logger.h" +#include "commonj/sdo/SDORuntimeException.h" +#include "commonj/sdo/DataFactory.h" +#include "commonj/sdo/DataObjectImpl.h" +#include "commonj/sdo/DataFactoryImpl.h" + +#include + +namespace commonj{ +namespace sdo { + +/** + * DataObjectListImpl implements DataObjectList. + * List for retrieving many valued property values. + * + * DataObjectList provides an API for getting and setting values in + * many valued properties. The list deals with both DataType and + * DataObjectType properties. + */ +DataObjectListImpl::DataObjectListImpl(DATAOBJECT_VECTOR p) : plist (p) +{ + theFactory = 0; + container = 0; + pindex = 0; + isReference = false; +} + +DataObjectListImpl::DataObjectListImpl(const DataObjectListImpl &pin) +{ + plist = std::vector >(pin.getVec()); + theFactory = pin.theFactory; + container = pin.container; + pindex = pin.pindex; + typeUnset = pin.typeUnset; + isReference = pin.isReference; + if (pin.typeURI != 0) { + typeURI = new char[strlen(pin.typeURI) +1]; + strcpy(typeURI, pin.typeURI); + } + if (pin.typeName != 0) { + typeName = new char[strlen(pin.typeName) +1]; + strcpy(typeName, pin.typeName); + } +} + +DataObjectListImpl::DataObjectListImpl() +{ + theFactory = 0; + typeURI = 0; + typeName = 0; + theFactory = 0; + container = 0; + pindex = 0; + typeUnset = false; + isReference = false; +} + +DataObjectListImpl::DataObjectListImpl(DataFactory* df, + DataObjectImpl* cont, + unsigned int inpindex, + const char* intypeURI, + const char* intypeName) +{ + container = cont; + pindex = inpindex; + theFactory = df; + + + isReference = false; + if (container->getProperty(pindex).isReference()) + { + isReference = true; + } + typeUnset = false; + + if (container->getType().isOpenType()) + { + if (!strcmp(intypeURI,Type::SDOTypeNamespaceURI) && + !strcmp(intypeName,"DataObject")) + { + typeUnset = true; + } + } + + + if (intypeURI != 0) { + typeURI = new char[strlen(intypeURI) +1]; + strcpy(typeURI, intypeURI); + } + else { + typeURI = 0; + } + if (intypeName != 0) { + typeName = new char[strlen(intypeName) +1]; + strcpy(typeName, intypeName); + } + else { + typeName = 0; + theFactory = 0; + } +} + +DataObjectListImpl::~DataObjectListImpl() +{ + if (typeURI != 0) { + delete typeURI; + typeURI = 0; + } + if (typeName != 0) { + delete typeName; + typeName = 0; + } +} + +RefCountingPointer DataObjectListImpl::operator[] (int pos) +{ + validateIndex(pos); + return plist[pos]; +} + +const RefCountingPointer DataObjectListImpl::operator[] (int pos) const +{ + validateIndex(pos); + RefCountingPointer d = plist[pos]; + DataObjectImpl* dob = d; + return RefCountingPointer((DataObject*)dob); +} + + +int DataObjectListImpl::size () const +{ + return plist.size(); +} + +DATAOBJECT_VECTOR DataObjectListImpl::getVec() const +{ + return plist; +} + + + +const Type& DataObjectListImpl::getType() +{ + if (typeUnset) + { + string msg("The list property is open, and the type of the contents has not bee determined yet."); + SDO_THROW_EXCEPTION("Get Type", SDOTypeNotFoundException, + msg.c_str()); + } + return theFactory->getType(typeURI, typeName); +} + + +const Type::Types DataObjectListImpl::getTypeEnum() +{ + if (typeUnset) + { + return Type::UndefinedOpenPropertyType; + + } + return theFactory->getType(typeURI, typeName).getTypeEnum(); +} + + +void DataObjectListImpl::insert (unsigned int index, DataObjectPtr d) +{ + if (typeUnset)setType(d->getType().getURI(),d->getType().getName()); + + checkFactory(d); + + checkType(theFactory->getType(typeURI,typeName), + d->getType()); + + if (container != 0) + { + container->logChange(pindex); + } + for (int i=0;i < plist.size(); i++) + { + if (plist[i] == d) + { + string msg("Insertion of object which already exists in the list:"); + msg += typeURI; + msg += " "; + msg += typeName; + SDO_THROW_EXCEPTION("List insert", SDOUnsupportedOperationException, + msg.c_str()); + } + } + if (strcmp(typeURI,d->getType().getURI()) + || + strcmp(typeName,d->getType().getName())) + { + string msg("Insertion of object of the wrong type to a list:"); + msg += typeURI; + msg += " "; + msg += typeName; + msg += " not compatible with "; + msg += d->getType().getURI(); + msg += " "; + msg += d->getType().getName(); + SDO_THROW_EXCEPTION("List append", SDOInvalidConversionException, + msg.c_str()); + } + + DataObject* dob = d; // unwrap the data object ready for a downcasting hack. + DataObjectImpl* con = ((DataObjectImpl*)dob)->getContainerImpl(); + if (!isReference) + { + if (con != 0) + { + if (con != container) + { + /* this data object is already contained somewhere else */ + string msg("Insertion of object to list, object is already contained:"); + msg += d->getType().getURI(); + msg += " "; + msg += d->getType().getName(); + SDO_THROW_EXCEPTION("List append", SDOInvalidConversionException, + msg.c_str()); + } + } + else + { + ((DataObjectImpl*)dob)->setContainer(container); + ((DataObjectImpl*)dob)->setApplicableChangeSummary(); + ((DataObjectImpl*)dob)->logCreation((DataObjectImpl*)dob, + (DataObjectImpl*)container, + container->getProperty(pindex)); + } + } + + plist.insert(plist.begin()+index, RefCountingPointer((DataObjectImpl*)dob)); + + if (container != 0) + { + if (container->getType().isSequencedType()) + { + SequenceImpl* sq = container->getSequenceImpl(); + if (sq)sq->push(container->getProperty(pindex),index); + } + } + +} + + void DataObjectListImpl::checkFactory(DataObjectPtr dob) + { + + DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dob; + + if (d->getDataFactory() == theFactory) return; + + string msg("Insertion from incompatible factory "); + const Type& t = d->getType(); + msg += t.getURI(); + msg += "#"; + msg += t.getName(); + msg += " into list "; + msg += typeURI; + msg += "#"; + msg += typeName; + SDO_THROW_EXCEPTION("checkFactory", SDOInvalidConversionException, + msg.c_str()); + } + + +void DataObjectListImpl::checkType(const Type& listType, const Type& objectType) + { + if (listType.equals(objectType)) return; + + const TypeImpl* ti = ((DataFactoryImpl*)theFactory)->findTypeImpl + (objectType.getURI(),objectType.getName()); + if (ti != 0) + { + do + { + ti = (const TypeImpl*)ti->getBaseType(); + if (ti == 0) break; + if (listType.equals(*ti)) return; + } while (ti != 0); + + // allow types of any substitutes + if (container != 0) + { + PropertyImpl* pi = + container->getPropertyImpl(pindex); + if (pi != 0) + { + unsigned int subcount = pi->getSubstitutionCount(); + for (int i=0;igetSubstitutionType(i); + if (tsub != 0 && tsub->equals(objectType)) return; + } + } + } + } + + // no match.. + string msg("Insertion of object of incompatible type "); + msg += objectType.getURI(); + msg += "#"; + msg += objectType.getName(); + msg += " into list of type "; + msg += listType.getURI(); + msg += "#"; + msg += listType.getName(); + SDO_THROW_EXCEPTION("TypeCheck", SDOInvalidConversionException, + msg.c_str()); + } + + +void DataObjectListImpl::setType(const char* uri, const char* name) +{ + // need to check for an opentype list which has not been set up yet + if (name == 0) return; + + const TypeImpl* t = ((DataFactoryImpl*)theFactory)->findTypeImpl(uri,name); + if (t == 0) return; // cannot set to a type which is not avilable + + // need to modify the instance property of the container + container->setInstancePropertyType(pindex,t); + + delete typeName; + typeName = new char[strlen(name)+1]; + strcpy(typeName, name); + delete typeURI; + if (uri == 0) + { + typeURI = new char[1]; + typeURI[0] = 0; + } + else + { + typeURI = new char[strlen(uri)+1]; + strcpy(typeURI, uri); + } + typeUnset = false; +} + + +void DataObjectListImpl::append (DataObjectPtr d) +{ + + if (typeUnset)setType(d->getType().getURI(),d->getType().getName()); + + if (container != 0) + { + container->logChange(pindex); + } + + for (int i=0;i < plist.size(); i++) + { + if (plist[i] == d) + { + string msg("Append of object which already exists in the list:"); + msg += typeURI; + msg += " "; + msg += typeName; + SDO_THROW_EXCEPTION("List append", SDOUnsupportedOperationException, + msg.c_str()); + } + } + + checkFactory(d); + + checkType(theFactory->getType(typeURI,typeName), + d->getType()); + + DataObject* dob = d; // unwrap the data object ready for a downcasting hack. + DataObjectImpl* con = ((DataObjectImpl*)dob)->getContainerImpl(); + + if (!isReference) + { + if (con != 0) + { + if (con != container) + { + /* this data object is already contained somewhere else */ + string msg("Append of object to list, object is already contained:"); + msg += d->getType().getURI(); + msg += " "; + msg += d->getType().getName(); + SDO_THROW_EXCEPTION("List append", SDOInvalidConversionException, + msg.c_str()); + } + } + else + { + ((DataObjectImpl*)dob)->setContainer(container); + ((DataObjectImpl*)dob)->setApplicableChangeSummary(); + if (!container->getProperty(pindex).getType().isDataType()) + { + ((DataObjectImpl*)dob)->logCreation((DataObjectImpl*)dob, + container,container->getProperty(pindex)); + } + + } + } + plist.insert(plist.end(),RefCountingPointer((DataObjectImpl*)dob)); + + if (container != 0) { + if (container->getType().isSequencedType()) + { + SequenceImpl* sq = container->getSequenceImpl(); + if (sq)sq->push(container->getProperty(pindex),plist.size()-1); + } + } +} + +void DataObjectListImpl::insert (unsigned int index, bool d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Boolean"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setBoolean(d); + insert(index, dol); +} + +void DataObjectListImpl::append (bool d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Boolean"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setBoolean(d); + append( dol); +} + +void DataObjectListImpl::insert (unsigned int index, char d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Byte"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setByte(d); + insert(index, dol); +} + +void DataObjectListImpl::append (char d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Byte"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setByte(d); + append( dol); +} + +void DataObjectListImpl::insert (unsigned int index, wchar_t d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Character"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setCharacter(d); + insert(index, dol); +} + +void DataObjectListImpl::append (wchar_t d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Character"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setCharacter(d); + append( dol); +} + +void DataObjectListImpl::insert (unsigned int index, const wchar_t* d, unsigned int length) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "String"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setString(d, length); + insert(index, dol); +} + +void DataObjectListImpl::append (const wchar_t* d, unsigned int length) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "String"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setString(d, length); + append( dol); +} +void DataObjectListImpl::insert (unsigned int index, const char* d, unsigned int length) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Bytes"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setBytes(d, length); + insert(index, dol); +} + +void DataObjectListImpl::append (const char* d, unsigned int length) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Bytes"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setBytes(d, length); + append( dol); +} +void DataObjectListImpl::insert (unsigned int index, const char* d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Bytes"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setCString(d); + insert(index, dol); +} + +void DataObjectListImpl::append (const char* d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Bytes"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setCString(d); + append( dol); +} + +void DataObjectListImpl::insert (unsigned int index, short d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Short"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setShort(d); + insert(index, dol); +} + +void DataObjectListImpl::append (short d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Short"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setShort(d); + append( dol); +} + +void DataObjectListImpl::insert (unsigned int index, long d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Integer"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setInteger(d); + insert(index, dol); +} + +void DataObjectListImpl::append (long d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Integer"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setInteger(d); + append( dol); +} + + +void DataObjectListImpl::insert (unsigned int index, const SDODate d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Date"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setDate(d); + insert(index, dol); +} + +void DataObjectListImpl::append (const SDODate d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Date"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setDate(d); + append( dol); +} + +void DataObjectListImpl::insert (unsigned int index, int64_t d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Long"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setLong(d); + insert(index, dol); +} + +void DataObjectListImpl::append (int64_t d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Long"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setLong(d); + append( dol); +} + +void DataObjectListImpl::insert (unsigned int index, float d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Float"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setFloat(d); + insert(index, dol); +} + +void DataObjectListImpl::append (float d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Float"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setFloat(d); + append( dol); +} + +void DataObjectListImpl::insert (unsigned int index, long double d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Double"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setDouble(d); + insert(index, dol); +} + +void DataObjectListImpl::append (long double d) +{ + if (theFactory == 0) return; + + if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Double"); + + RefCountingPointer dol = theFactory->create(typeURI, typeName); + DataObject* dob = dol; + ((DataObjectImpl*)dob)->setDouble(d); + append( dol); +} + + +void DataObjectListImpl::decrementPindex() +{ + pindex--; +} + + +RefCountingPointer DataObjectListImpl::remove(unsigned int index) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer d = (*this)[index]; + + // log deletion only if the list is of data objects. + if (theFactory != 0) + { + const Type& t = theFactory->getType(typeURI,typeName); + const Property& p = container->getProperty(pindex); + if (!t.isDataType() && !p.isReference()) + { + (getVec()[index])->logDeletion(); + } + } + plist.erase(plist.begin()+index); + DataObject* dob = d; + ((DataObjectImpl*)dob)->setContainer(0); + return d; +} + +void DataObjectListImpl::validateIndex(int index) const +{ + if ((index < 0) || (index >= size())) + { + char val[32]; + string msg("Index out of range:"); + sprintf(val,"%d",index); + msg += val; + SDO_THROW_EXCEPTION("validateIndex", SDOIndexOutOfRangeException, + msg.c_str()); + + } + +} + +bool DataObjectListImpl::getBoolean(unsigned int index) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getBoolean(); +} +char DataObjectListImpl::getByte(unsigned int index) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getByte(); +} +wchar_t DataObjectListImpl::getCharacter(unsigned int index) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getCharacter(); +} +unsigned int DataObjectListImpl::getBytes(unsigned int index, char* value, unsigned int max) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getBytes(value, max); +} +unsigned int DataObjectListImpl::getString(unsigned int index, wchar_t* value, unsigned int max) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getString(value, max); +} +short DataObjectListImpl::getShort(unsigned int index) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getShort(); +} +long DataObjectListImpl::getInteger(unsigned int index) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getInteger(); +} +int64_t DataObjectListImpl::getLong(unsigned int index) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getLong(); +} +float DataObjectListImpl::getFloat(unsigned int index) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getFloat(); +} +long double DataObjectListImpl::getDouble(unsigned int index) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getDouble(); +} +const SDODate DataObjectListImpl::getDate(unsigned int index) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getDate(); +} +const char* DataObjectListImpl::getCString(unsigned int index) const +{ + validateIndex(index); + RefCountingPointer d = ((*this)[index]); + DataObject* dob = d; + return ((DataObjectImpl*)dob)->getCString(); +} + +DataObjectPtr DataObjectListImpl::getDataObject(unsigned int index) const +{ + validateIndex(index); + return (*this)[index]; +} + +void DataObjectListImpl::setBoolean(unsigned int index, bool d) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setBoolean(d); +} +void DataObjectListImpl::setByte(unsigned int index, char d) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setByte(d); +} +void DataObjectListImpl::setCharacter(unsigned int index, wchar_t d) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setCharacter(d); +} + +void DataObjectListImpl::setString(unsigned int index, const wchar_t* d, unsigned int len) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setString(d, len); +} +void DataObjectListImpl::setBytes(unsigned int index, const char* d, unsigned int len) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setBytes(d, len); +} + +void DataObjectListImpl::setShort(unsigned int index, short d) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setShort(d); +} +void DataObjectListImpl::setInteger(unsigned int index, long d) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setInteger(d); +} +void DataObjectListImpl::setLong(unsigned int index, int64_t d) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setLong(d); +} +void DataObjectListImpl::setFloat(unsigned int index, float d) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setFloat(d); +} +void DataObjectListImpl::setDouble(unsigned int index, long double d) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setDouble(d); +} +void DataObjectListImpl::setDate(unsigned int index, const SDODate d) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setDate(d); +} +void DataObjectListImpl::setCString(unsigned int index, char* d) +{ + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + ((DataObjectImpl*)dob)->setCString(d); +} + +void DataObjectListImpl::setDataObject(unsigned int index, DataObjectPtr dob) +{ + + if (dob != 0) + { + checkFactory(dob); + + checkType(theFactory->getType(typeURI,typeName), + dob->getType()); + } + + validateIndex(index); + if (container != 0) + { + container->logChange(pindex); + } + + remove(index); + insert(index,dob); +} + +unsigned int DataObjectListImpl::getLength(unsigned int index) const +{ + validateIndex(index); + RefCountingPointer dd = ((*this)[index]); + DataObject* dob = dd; + return dob->getLength(); +} + +}; +}; diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.h new file mode 100644 index 0000000000..e5b7ebd2d5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.h @@ -0,0 +1,191 @@ +/* + * + * 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: 2006/02/02 16:41:30 $ */ + +#ifndef _DATAOBJECTLISTIMPL_H_ +#define _DATAOBJECTLISTIMPL_H_ + +#include "commonj/sdo/DataObjectList.h" +#include "commonj/sdo/SDODate.h" + +#include "commonj/sdo/disable_warn.h" + +#include + + +namespace commonj{ +namespace sdo{ + +class DataObjectImpl; +class DataFactory; + +typedef std::vector< RefCountingPointer > DATAOBJECT_VECTOR; + +/** + * DataObjectListImpl implements the abstract class DataObjectList. + * List for retrieving many valued property values. + * + * DataObjectList provides an API for getting and setting values in + * many valued properties. The list deals with both DataType and + * DataObjectType properties. + */ + +class DataObjectListImpl : public DataObjectList +{ + +public: + DataObjectListImpl(DATAOBJECT_VECTOR p); + DataObjectListImpl(const DataObjectListImpl &pin); + DataObjectListImpl(); + DataObjectListImpl(DataFactory* df, DataObjectImpl* cont, unsigned int inpindex, + const char* tURI, const char* tName); + + virtual ~DataObjectListImpl(); + + // open type support + virtual void decrementPindex(); + + virtual DataObjectPtr operator[] (int pos); + virtual const DataObjectPtr operator[] (int pos) const; + + // set/get primitive values + virtual bool getBoolean(unsigned int index) const; + virtual char getByte(unsigned int index) const; + virtual wchar_t getCharacter(unsigned int index) const; + virtual unsigned int getString(unsigned int index, wchar_t* buf, + unsigned int max) const; + virtual unsigned int getBytes(unsigned int index, char* buf, + unsigned int max) const; + virtual short getShort(unsigned int index) const; + virtual long getInteger(unsigned int index) const; + virtual int64_t getLong(unsigned int index) const; + virtual float getFloat(unsigned int index) const; + virtual long double getDouble(unsigned int index) const; + virtual const SDODate getDate(unsigned int index) const; + virtual const char* getCString(unsigned int index) const; + virtual DataObjectPtr getDataObject(unsigned int index) const; + + virtual void setBoolean(unsigned int index, bool d); + virtual void setByte(unsigned int index, char d); + virtual void setCharacter(unsigned int index, wchar_t d); + virtual void setString(unsigned int index, const wchar_t* d, unsigned int len); + virtual void setBytes(unsigned int index, const char* d, unsigned int len); + virtual void setShort(unsigned int index, short d); + virtual void setInteger(unsigned int index, long d); + virtual void setLong(unsigned int index, int64_t d); + virtual void setFloat(unsigned int index, float d); + virtual void setDouble(unsigned int index, long double d); + virtual void setDate(unsigned int index, const SDODate d); + virtual void setCString(unsigned int index, char* d); + virtual void setDataObject(unsigned int index, DataObjectPtr dob); + + virtual unsigned int getLength(unsigned int index) const; + + virtual int size () const; + + virtual void insert (unsigned int index, DataObjectPtr d); + virtual void append (DataObjectPtr d); + + virtual void insert (unsigned int index, bool d) ; + virtual void append (bool d) ; + + virtual void insert (unsigned int index, char d) ; + virtual void append (char d) ; + + virtual void insert (unsigned int index, wchar_t d) ; + virtual void append (wchar_t d) ; + + virtual void insert (unsigned int index, const wchar_t* d, unsigned int len) ; + virtual void append (const wchar_t* d, unsigned int len) ; + + virtual void insert (unsigned int index, const char* d, unsigned int len) ; + virtual void append (const char* d, unsigned int len) ; + + virtual void insert (unsigned int index, const char* d) ; + virtual void append (const char* d) ; + + virtual void insert (unsigned int index, short d) ; + virtual void append (short d) ; + + virtual void insert (unsigned int index, const SDODate d) ; + virtual void append (const SDODate d) ; + + virtual void insert (unsigned int index, long d) ; + virtual void append (long d) ; + + virtual void insert (unsigned int index, int64_t d) ; + virtual void append (int64_t d) ; + + virtual void insert (unsigned int index, float d) ; + virtual void append (float d) ; + + virtual void insert (unsigned int index, long double d) ; + virtual void append (long double d) ; + + + virtual DataObjectPtr remove (unsigned int index); + + virtual void checkFactory(DataObjectPtr dob); + virtual void checkType(const Type& listType, const Type& objectType); + virtual void setType(const char* uri, const char* name); + + /* getType returns type + * + * Returns the type. + * May throw SDOTYpeNotFoundException for unset open types + */ + + + virtual const Type& getType(); + + /* getTypeEnum returns an enumerator for the type + * + * Returns an enumerator for the type for easy switching on basic types. + * The enumerator is part of the Type class + * May throw SDOTypeNotFoundException for open types + */ + + virtual const Type::Types getTypeEnum(); + + +private: + DATAOBJECT_VECTOR plist; + DATAOBJECT_VECTOR getVec() const; + + // For creation of items via the insert/append api. + char* typeURI; + char* typeName; + + // for open types, the list may not have a type until the + // first item is entered + + bool typeUnset; + + // No reference count held on the factory + DataFactory* theFactory; + + // For logging a change in the change summary when appending + DataObjectImpl* container; + unsigned int pindex; + bool isReference; + + void validateIndex(int index) const; +}; +}; +}; +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.cpp new file mode 100644 index 0000000000..bfd75a18fb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.cpp @@ -0,0 +1,53 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/disable_warn.h" +#include "commonj/sdo/DefaultLogWriter.h" + +#include +using namespace std; + +namespace commonj +{ + namespace sdo + { + + DefaultLogWriter::DefaultLogWriter() + { + formatindent = 0; + } + + DefaultLogWriter::~DefaultLogWriter() + { + } + + void DefaultLogWriter::log(int indent, int level, const char* msg) + { + if (indent < 0) formatindent += indent; + for (int i=0; i < formatindent; i++) + { + cout << " "; + } + cout << msg < 0) formatindent += indent; + } + + } // End namespace sca +} // End namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.h new file mode 100644 index 0000000000..e9b5318c4e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.h @@ -0,0 +1,52 @@ +/* + * + * 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:15 $ */ + +#ifndef SDO_DefaultLOGWriter_H +#define SDO_DefaultLOGWriter_H + +#include "commonj/sdo/LogWriter.h" + + + +namespace commonj +{ + namespace sdo + { + +/** + * DefaultLogWriter is a basic log writer, part of the logger. + * The logging API holds a log writer , and uses it to send + * output whereever it is needed. The application writer would + * hook their own LogWriter in place of this simple one. + */ + class DefaultLogWriter : public LogWriter + { + public: + + DefaultLogWriter(); + virtual ~DefaultLogWriter(); + + virtual void log(int indent, int level, const char* msg); + private: + int formatindent; + }; + + } // End namespace sca +} // End namespace commonj +#endif // SDO_DefaultLOGWriter_H diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.cpp new file mode 100644 index 0000000000..603c24891e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.cpp @@ -0,0 +1,370 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/Property.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/TypeList.h" +#include "commonj/sdo/Sequence.h" + +#include "commonj/sdo/DataObject.h" + + + +#include "commonj/sdo/EqualityHelper.h" + +namespace commonj{ +namespace sdo{ + + bool EqualityHelper::compareitem(DataObjectPtr to, DataObjectPtr from, const Property& p) + { + switch (p.getTypeEnum()) + { + case Type::BooleanType: + return (to->getBoolean(p) == from->getBoolean(p)); + case Type::ByteType: + return (to->getByte(p) == from->getByte(p)); + case Type::CharacterType: + return (to->getCharacter(p) == from->getCharacter(p)); + case Type::IntegerType: + return (to->getInteger(p) == from->getInteger(p)); + case Type::ShortType: + return (to->getShort(p) == from->getShort(p)); + case Type::DoubleType: + return (to->getDouble(p) == from->getDouble(p)); + case Type::FloatType: + return (to->getFloat(p) == from->getFloat(p)); + case Type::LongType: + return (to->getLong(p) == from->getLong(p)); + case Type::DateType: + return (to->getDate(p).getTime() == from->getDate(p).getTime()); + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::UriType: + case Type::StringType: + { + unsigned int siz = from->getLength(p); + if (siz != to->getLength(p)) return false; + + if (siz > 0) + { + wchar_t * buff = new wchar_t[siz]; + wchar_t * buft = new wchar_t[siz]; + from->getString(p, buff, siz); + to->getString(p, buft, siz); + for (int i=0;i< siz; i++) + { + if (buff[i] != buft[i]) + { + delete buff; + delete buft; + return false; + } + } + delete buff; + delete buft; + } + return true; + } + case Type::BytesType: + { + unsigned int siz = from->getLength(p); + if (siz != to->getLength(p)) return false; + + if (siz > 0) + { + char * buff = new char[siz]; + char * buft = new char[siz]; + from->getBytes(p, buff, siz); + to->getBytes(p, buft, siz); + for (int i=0;i< siz; i++) + { + if (buff[i] != buft[i]) + { + delete buff; + delete buft; + return false; + } + } + delete buff; + delete buft; + } + return true; + } + default: + return true; + } // switch + } + + bool EqualityHelper::comparelist(DataObjectList& to, DataObjectList& from, Type::Types t) + { + switch (t) + { + case Type::BooleanType: + { + for (int i=0;i< from.size(); i++) + { + if (to.getBoolean(i) != from.getBoolean(i)) + { + return false; + } + } + return true; + } + + case Type::ByteType: + { + for (int i=0;i< from.size(); i++) + { + if (to.getByte(i) != from.getByte(i)) + { + return false; + } + } + return true; + } + + case Type::CharacterType: + { + for (int i=0;i< from.size(); i++) + { + if (to.getCharacter(i) != from.getCharacter(i)) + { + return false; + } + } + return true; + } + + case Type::IntegerType: + { + for (int i=0;i< from.size(); i++) + { + if (to.getInteger(i) != from.getInteger(i)) + { + return false; + } + } + return true; + } + + case Type::ShortType: + { + for (int i=0;i< from.size(); i++) + { + if (to.getShort(i) != from.getShort(i)) + { + return false; + } + } + return true; + } + case Type::DoubleType: + { + for (int i=0;i< from.size(); i++) + { + if (to.getDouble(i) != from.getDouble(i)) + { + return false; + } + } + return true; + } + + case Type::FloatType: + { + for (int i=0;i< from.size(); i++) + { + if (to.getFloat(i) != from.getFloat(i)) + { + return false; + } + } + return true; + } + + case Type::LongType: + { + for (int i=0;i< from.size(); i++) + { + if (to.getLong(i) != from.getLong(i)) + { + return false; + } + } + return true; + } + + case Type::DateType: + { + for (int i=0;i< from.size(); i++) + { + if (to.getDate(i).getTime() != from.getDate(i).getTime()) + { + return false; + } + } + return true; + } + + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::UriType: + case Type::StringType: + { + for (int i=0;i< from.size(); i++) + { + unsigned int siz = from.getLength(i); + if (siz != to.getLength(i)) return false; + + if (siz > 0) + { + wchar_t * buff = new wchar_t[siz]; + wchar_t * buft = new wchar_t[siz]; + from.getString(i,buff,siz); + to.getString(i,buft,siz); + for (int j=0;j 0) + { + char * buff = new char[siz]; + char * buft = new char[siz]; + from.getBytes(i,buff,siz); + to.getBytes(i,buft,siz); + for (int j=0;jgetInstanceProperties(); + for (int i=0;i < pl.size(); i++) + { + // data objects are only compared the deep equality case + if (pl[i].getType().isDataObjectType()) + { + if (!fullEqual) + { + continue; + } + else + { + if (pl[i].isMany()) + { + DataObjectList& dolold = dataObject1->getList(pl[i]); + DataObjectList& dolnew = dataObject2->getList(pl[i]); + if (dolnew.size() != dolold.size()) return false; + + for (int i=0;i< dolold.size(); i++) + { + if (!internalEqual(dolold[i], dolnew[i], true)) + { + return false; + } + } + } + else + { + if (!internalEqual( + dataObject1->getDataObject(pl[i]), + dataObject2->getDataObject(pl[i]), true)) + { + return false; + } + } + } + } + else + { + if (pl[i].isMany()) + { + DataObjectList& dolold = dataObject1->getList(pl[i]); + DataObjectList& dolnew = dataObject2->getList(pl[i]); + if (dolold.size() != dolnew.size()) return false; + if (!comparelist(dolold, dolnew, pl[i].getTypeEnum())) return false; + } + else + { + if (!compareitem(dataObject1,dataObject2, pl[i])) + { + return false; + } + } // else + } + } + return true; + } + +} +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.h new file mode 100644 index 0000000000..381564338c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.h @@ -0,0 +1,97 @@ +/* + * + * 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:15 $ */ + +#ifndef _EQUALITYHELPER_H_ +#define _EQUALITYHELPER_H_ + +#include "commonj/sdo/RefCountingPointer.h" + + + +namespace commonj{ +namespace sdo{ + +/** + * EqualityHelper provides static helper methods for equals. + * equalsShallow compares the DataType properties of the + * two data objects. + * equals performs a check on all the memebers and verifies that + * the same data objects are children. + */ + + class EqualityHelper +{ + public: + + /** + * Shallow compare of DataObjects + * + * Compares two DataObjects for each property where + * property.getType().isDataObjectType() is false. + * Compares dataObject1.get(property).equals(dataObject2.get(property)) + * Properties where property.getType().isDataObjectType() is true + * are not compared. + * DataObjects must have the same type + * dataObject1.getType() == dataObject2.getType() + * Returns true if all values of all compared properties are equal. + * @param dataObject1 DataObject to be compared + * @param dataObject2 DataObject to be compared + * @return true if equal + */ + static SDO_API bool equalShallow(DataObjectPtr dataObject1, DataObjectPtr dataObject2); + + /** + * Deep compare of DataObjects + * Compares dataObject1 and dataObject2 and all their contained + * DataObjects (property.isContainment() is true) recursively. + * Values of properties are comapred as in isEqualShallow, + * and values of properties where + * property.getType().isDataObjectType() is true + * are compared where each value copied must be a corresponding + * DataObject contained by the source dataObject. + * The dataObject trees must be closed. + * If any DataObject referenced in either tree is not part of the + * containment trees an IllegalArgumentException is thrown. + * If a ChangeSummary is part of the tree they must contain an + * identical summary for their respective trees. + * + * @param dataObject1 DataObject to be compared + * @param dataObject2 DataObject to be compared + * @return true if all compared aspects of all compared objects are equal + * @throws IllegalArgumentException if any referenced DataObject + * is not part of the containment trees. + */ + static SDO_API bool equal(DataObjectPtr dataObject1, DataObjectPtr dataObject2); + + private: + + static bool internalEqual(DataObjectPtr dataObject1, + DataObjectPtr dataObject2, + bool fullEqual); + + static bool comparelist(DataObjectList& to, DataObjectList& from, Type::Types t); + + static bool compareitem(DataObjectPtr to, DataObjectPtr from, const Property& p); + + + +}; +}; +}; +#endif //_EQUALITYHELPER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.cpp new file mode 100644 index 0000000000..b41c47a501 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.cpp @@ -0,0 +1,47 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/HelperProvider.h" +#include "commonj/sdo/XSDHelperImpl.h" +#include "commonj/sdo/XMLHelperImpl.h" +#include "commonj/sdo/export.h" +#include "commonj/sdo/DataFactory.h" + +namespace commonj +{ + namespace sdo + { + + ////////////////////////////////////////////////////////////////////// + // Create an XSDHelper + ////////////////////////////////////////////////////////////////////// + XSDHelperPtr HelperProvider::getXSDHelper(DataFactoryPtr dataFactory) + { + return new XSDHelperImpl(dataFactory); + } + ////////////////////////////////////////////////////////////////////// + // Create an XMLHelper + ////////////////////////////////////////////////////////////////////// + XMLHelperPtr HelperProvider::getXMLHelper(DataFactoryPtr dataFactory) + { + return new XMLHelperImpl(dataFactory); + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.h new file mode 100644 index 0000000000..7be271f128 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.h @@ -0,0 +1,65 @@ +/* + * + * 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:15 $ */ + +#ifndef _HELPERPROVIDER_H_ +#define _HELPERPROVIDER_H_ + + +#include "commonj/sdo/XSDHelper.h" +#include "commonj/sdo/XMLHelper.h" +#include "commonj/sdo/DataFactory.h" +#include "commonj/sdo/export.h" + + +namespace commonj +{ + namespace sdo + { + + +/** + * HelperProvider gives access to helpers (static methods). + * + * The helper provider gives back an XSD or XML helper associated + * with the given data factory + */ + class HelperProvider + { + public: + +/** + * + * The helper provider gives back an XSD helper associated + * with the given data factory + */ + SDO_API static XSDHelperPtr getXSDHelper(DataFactoryPtr dataFactory=0); + +/** + * + * The helper provider gives back an XML helper associated + * with the given data factory + */ + SDO_API static XMLHelperPtr getXMLHelper(DataFactoryPtr dataFactory=0); + + }; + + } // End - namespace sdo +} // End - namespace commonj + +#endif // _HELPERPROVIDER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.cpp new file mode 100644 index 0000000000..79f7d48671 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.cpp @@ -0,0 +1,32 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/LogWriter.h" + +namespace commonj +{ + namespace sdo + { + LogWriter::~LogWriter() + { + } + + } // End namespace sdo +} // End namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.h new file mode 100644 index 0000000000..9948c86ed9 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.h @@ -0,0 +1,44 @@ +/* + * + * 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:15 $ */ + +#ifndef SDO_LOGWriter_H +#define SDO_LOGWriter_H + +#include "commonj/sdo/export.h" + +namespace commonj +{ + namespace sdo + { + +/** + * LogWriter is an abstract class for implementers to inherit from. + * see DefaultLogWriter. + */ + class LogWriter + { + public: + virtual ~LogWriter(); + + SDO_API virtual void log(int indent, int level, const char* msg) = 0; + }; + + } // End namespace sdo +} // End namespace commonj +#endif // SDO_LOGWriter_H diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.cpp new file mode 100644 index 0000000000..6d799f2435 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.cpp @@ -0,0 +1,100 @@ +/* + * + * 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: 2006/01/23 16:39:24 $ */ + +#include "commonj/sdo/Logger.h" +#include +#include +#include "commonj/sdo/DefaultLogWriter.h" +#include + +using namespace std; + +namespace commonj +{ + namespace sdo + { + LogWriter* Logger::logWriter = getLogWriter(); + + LogWriter* Logger::getLogWriter() + { + if (logWriter == 0) + { + setLogWriter(0); + } + return logWriter; + } + + void Logger::setLogWriter(LogWriter* writer) + { + if (logWriter != writer) + { + delete logWriter; + } + + if (writer == 0) + { + logWriter = new DefaultLogWriter; + } + else + { + logWriter = writer; + } + } + + int Logger::loggingLevel = setLogging(); + + int Logger::setLogging() + { + char* loggingVar = 0; + loggingVar = getenv("SDO4CPP_LOGGING"); + if (loggingVar == 0) + return 0; + else + return atoi(loggingVar); + } + + void Logger::setLogging(int level) + { + loggingLevel = level; + } + + void Logger::log(int indent, int level, const char* msg) + { + if (level <= loggingLevel) + { + logWriter->log(indent, level, msg); + } + } + + void Logger::logArgs(int indent, int level, const char* msg, ...) + { + if (level <= loggingLevel) + { + va_list variableArguments; + va_start(variableArguments, msg); + char messageBuffer[1024]; + vsprintf(messageBuffer, msg, variableArguments); + logWriter->log(indent, level, messageBuffer); + va_end(variableArguments); + } + } + + } // End namespace sdo +} // End namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.h new file mode 100644 index 0000000000..ee566e9c44 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.h @@ -0,0 +1,69 @@ +/* + * + * 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:15 $ */ + +#ifndef SDO_LOGGER_H +#define SDO_LOGGER_H + + + +#include "commonj/sdo/export.h" +#include "commonj/sdo/LogWriter.h" +namespace commonj +{ + namespace sdo + { + +/** + * Logger is used for debug style logging such as method trace. + * The logger can log at different levels, and can log entry, exit + * and events. The log entries can take arguments or be just + * strings. + */ + class Logger { + + public: +/** + * attach a log writer. + */ + SDO_API static void setLogWriter(LogWriter* writer); +/** + * switch logging to a level. + */ + SDO_API static void setLogging(int level); + +/** + * log a message. + */ + SDO_API static void log(int indent, int level, const char* msg); +/** + * log a message with parameters. + */ + SDO_API static void logArgs(int indent, int level, const char* msg, ...); + + static int loggingLevel; + + private: + static LogWriter* logWriter; + static LogWriter* getLogWriter(); + static int setLogging(); + }; + + } // End namespace sdo +} // End namespace commonj +#endif // SDO_LOGGER_H diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logging.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logging.h new file mode 100644 index 0000000000..e2adac2d84 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logging.h @@ -0,0 +1,170 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/Logger.h" +#include "commonj/sdo/SDORuntimeException.h" + +# +#ifndef SDO_LOGGING_H +#define SDO_LOGGING_H + +/** + * logging level for stuff you rarely want to see, like + * memory allocations. + */ + +#define HIGHVOLUME 40 +/** + * logging level for normal path information + */ +#define INFO 30 + + /** + * logging level for something which is unusual. + */ + +#define WARNING 20 +/** + * logging level for a major problem + */ + +#define ERROR 10 + +#define INDENT 1 +#define OUTDENT -1 +#define NODENT 0 + + +/** + * Macro for simplifying addition of trace points + */ + +#ifdef _DEBUG +#define LOGENTRY(level, methodName) \ +if (Logger::loggingLevel >= level) \ +Logger::logArgs(INDENT, level, "Entering: %s", methodName); + +/** + * Macro for simplifying addition of trace points + */ +#define LOGEXIT(level, methodName) \ +if (Logger::loggingLevel >= level) \ +Logger::logArgs(OUTDENT, level, "Exiting: %s" ,methodName); + +/** + * Macro for simplifying addition of trace points + */ +#define LOGINFO(level, message) \ +if (Logger::loggingLevel >= level) \ +Logger::log(NODENT, level, message); + +/** + * Macro for simplifying addition of trace points + */ +#define LOGINFO_1(level, message, arg1) \ +if (Logger::loggingLevel >= level) \ +Logger::logArgs(NODENT,level, message, arg1); + +/** + * Macro for simplifying addition of trace points + */ +#define LOGINFO_2(level, message, arg1, arg2) \ +if (Logger::loggingLevel >= level) \ +Logger::logArgs(NODENT,level, message, arg1, arg2); + +/** + * Macro for simplifying addition of trace points + */ +#define LOGERROR(level, message) \ +if (Logger::loggingLevel >= level) \ +Logger::log(NODENT,level, message); + +/** + * Macro for simplifying addition of trace points + */ +#define LOGERROR_1(level, message, arg1) \ +if (Logger::loggingLevel >= level) \ +Logger::logArgs(NODENT,level, message, arg1); + +/** + * Macro for simplifying addition of trace points + */ +#define LOGERROR_2(level, message, arg1, arg2) \ +if (Logger::loggingLevel >= level) \ +Logger::logArgs(NODENT,level, message, arg1, arg2); + +/** + * Macro for simplifying addition of trace points + */ +#define LOGSDOEXCEPTION(level, message, arg1) \ +if (Logger::loggingLevel >= level) \ +Logger::log(NODENT,level, message);\ +Logger::logArgs(NODENT,level, "%s:%s\nIn %s\nAt %s line %ld\n",\ + ((SDORuntimeException)arg1).getEClassName(),\ + ((SDORuntimeException)arg1).getMessageText(),\ + ((SDORuntimeException)arg1).getFunctionName(),\ + ((SDORuntimeException)arg1).getFileName(),\ + ((SDORuntimeException)arg1).getLineNumber()); + +#else // Not DEBUG + +/** + * Macro for simplifying addition of trace points + */ +#define LOGSDOEXCEPTION(level, message, arg1) + +/** + * Macro for simplifying addition of trace points + */ +#define LOGENTRY(level, methodName) + +/** + * Macro for simplifying addition of trace points + */ +#define LOGEXIT(level, methodName) + +/** + * Macro for simplifying addition of trace points + */ +#define LOGINFO(level, message) + +/** + * Macro for simplifying addition of trace points + */ +#define LOGINFO_1(level, message, arg1) + +/** + * Macro for simplifying addition of trace points + */ +#define LOGINFO_2(level, message, arg1, arg2) +/** + * Macro for simplifying addition of trace points + */ +#define LOGERROR(level, message) +/** + * Macro for simplifying addition of trace points + */ +#define LOGERROR_1(level, message, arg1) +/** + * Macro for simplifying addition of trace points + */ +#define LOGERROR_2(level, message, arg1, arg2) + +#endif +#endif // SDO_LOGGING_H diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Makefile.am new file mode 100644 index 0000000000..46c66361e3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Makefile.am @@ -0,0 +1,81 @@ +lib_LTLIBRARIES = libtuscany_sdo.la +AM_CPPFLAGS = $(CPPFLAGS) + +libtuscany_sdo_la_SOURCES = \ + ChangedDataObjectListImpl.cpp \ + ChangeSummaryBuilder.cpp \ + ChangeSummary.cpp \ + ChangeSummaryImpl.cpp \ + CopyHelper.cpp \ + DASProperty.cpp \ + DASType.cpp \ + DASValue.cpp \ + DASValues.cpp \ + DataFactory.cpp \ + DataFactoryImpl.cpp \ + DataGraph.cpp \ + DataGraphImpl.cpp \ + DataObject.cpp \ + DataObjectImpl.cpp \ + DataObjectInstance.cpp \ + DataObjectList.cpp \ + DataObjectListImpl.cpp \ + DefaultLogWriter.cpp \ + EqualityHelper.cpp \ + HelperProvider.cpp \ + Logger.cpp \ + LogWriter.cpp \ + ParserErrorSetter.cpp \ + Property.cpp \ + PropertyDefinition.cpp \ + PropertyImpl.cpp \ + PropertyList.cpp \ + PropertySetting.cpp \ + RefCountingObject.cpp \ + RefCountingPointer.cpp \ + SAX2Attribute.cpp \ + SAX2Attributes.cpp \ + SAX2Namespaces.cpp \ + SAX2Parser.cpp \ + SchemaInfo.cpp \ + SdoCheck.cpp \ + SDODate.cpp \ + SdoRuntime.cpp \ + SDORuntimeException.cpp \ + SDOSAX2Parser.cpp \ + SDOSchemaSAX2Parser.cpp \ + SDOUtils.cpp \ + SDOXMLBufferWriter.cpp \ + SDOXMLFileWriter.cpp \ + SDOXMLStreamWriter.cpp \ + SDOXMLString.cpp \ + SDOXMLWriter.cpp \ + SDOXSDBufferWriter.cpp \ + SDOXSDFileWriter.cpp \ + SDOXSDStreamWriter.cpp \ + SDOXSDWriter.cpp \ + Sequence.cpp \ + SequenceImpl.cpp \ + Setting.cpp \ + SettingList.cpp \ + Type.cpp \ + TypeDefinition.cpp \ + TypeDefinitions.cpp \ + TypeImpl.cpp \ + TypeList.cpp \ + XMLDocument.cpp \ + XMLDocumentImpl.cpp \ + XMLHelper.cpp \ + XMLHelperImpl.cpp \ + XMLQName.cpp \ + XpathHelper.cpp \ + XSDHelper.cpp \ + XSDHelperImpl.cpp \ + XSDPropertyInfo.cpp \ + XSDTypeInfo.cpp + +libtuscany_sdo_la_LIBADD = -lstdc++ + +INCLUDES = -I$(top_builddir)/runtime/core/src \ + -I${LIBXML2_INCLUDE} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.cpp new file mode 100644 index 0000000000..2d9a99360f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.cpp @@ -0,0 +1,38 @@ +/* + * + * 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:15 $ */ + +// ParserErrorSetter.cpp: class allowing parser to push errors back. +// +////////////////////////////////////////////////////////////////////// +#include "commonj/sdo/ParserErrorSetter.h" +namespace commonj +{ + namespace sdo + { + ////////////////////////////////////////////////////////////////////// + // Construction/Destruction + ////////////////////////////////////////////////////////////////////// + ParserErrorSetter::~ParserErrorSetter() + { + } + + } // End - namespace sdo +} // End - namespace commonj + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.h new file mode 100644 index 0000000000..15dccc7eba --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.h @@ -0,0 +1,48 @@ +/* + * + * 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:15 $ */ + +#ifndef _PARSER_ERROR_SETTER_H_ +#define _PARSER_ERROR_SETTER_H_ + +#include "commonj/sdo/export.h" + +#include "commonj/sdo/disable_warn.h" + +#include +using namespace std; + +namespace commonj{ +namespace sdo{ + +/** + * The ParserErrorSetter builds a list of all the errors which + * occurred during a parse, so they can be displayed for the + * user of an XSDHelper or XMLHelper + */ + +class ParserErrorSetter +{ +public: + virtual ~ParserErrorSetter(); + virtual void setError(const char* message) = 0; +}; +}; +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.cpp new file mode 100644 index 0000000000..11fc167377 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.cpp @@ -0,0 +1,42 @@ +/* + * + * 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:15 $ */ + +#include +using namespace std; + + +#ifndef SDO_EXPORTS +#define SDO_EXPORTS +#endif +#include "commonj/sdo/export.h" + +#include "commonj/sdo/Sequence.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/TypeList.h" + +#include "commonj/sdo/Type.h" +#include "commonj/sdo/Property.h" +namespace commonj{ +namespace sdo{ + + // All delegated to the impl. + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.h new file mode 100644 index 0000000000..fb7e418de2 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.h @@ -0,0 +1,193 @@ +/* + * + * 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:15 $ */ + +#ifndef _PROPERTY_H_ +#define _PROPERTY_H_ + + +#include "commonj/sdo/export.h" + +#include "commonj/sdo/Type.h" +#include "commonj/sdo/SDODate.h" + +namespace commonj{ +namespace sdo{ + +class Type; +class TypeImpl; +class DataObject; + +/** + * + * A representation of a property in the type of a data object. + */ + +class Property +{ + public: + + /** getName gets the name of the property + * + * Returns the name of the property. + */ + + virtual const SDO_API char* getName() const = 0; + + /** getAlias returns the n'th alias + * + * This method returns a const char* corresponding to the + * alias at index n of the list of aliases. Use getAliasCount to + * discover the size of the list. + */ + + virtual SDO_API const char* getAlias(unsigned int index = 0) const = 0; + + /** getAliasCount returns the number of aliases + * + * This method returns the number of aliases for this type + */ + + virtual SDO_API unsigned int getAliasCount() const = 0; + + /** getType returns the type of this property + * + * This method returns the type, which may be a DataType or a + * DataObjectType + */ + + virtual SDO_API const Type& getType() const = 0; + + /** getTypeEnum gets the enum for this type. + * + * Each DataType has a defined value in the list of Types. + */ + + virtual SDO_API const Type::Types getTypeEnum() const = 0; + + /** isMany is true if the property is a list + * + * IsMany returns true if this property represents a list of + * values, and should be accessed via the getList DataObjectAPI. + */ + + virtual bool SDO_API isMany() const = 0; + + /** isContainment is true if the property value is contained + * + * IsContainment returns true if this property represents a DataObjectType, + * and that DataObjectType is contained. I.E the property value is not a pointer + * to a DataObject somewhere else in the graph, it is an actual value. + */ + + virtual bool SDO_API isContainment() const = 0; + + /** isReference is true if the property value is not contained + * + * IsReference returns true if this property represents a DataObjectType, + * and that DataObjectType is not contained. I.E the property value is a pointer + * to a DataObject somewhere else in the graph not an actual value. + */ + + virtual bool SDO_API isReference() const = 0; + + /** getContainingType give the type which holds this property. + * + * Although many types may have a property of the same name, any given + * instance of a property belongs to only one type. + * This method returns the type which holds this proeprty. + */ + + virtual SDO_API const Type& getContainingType() const = 0; + + + + /** isReadOnly returns true if the property is unmodifiable. + * + * NOT IMPLEMENTED + * Returns true if values for this Property cannot be modified using the SDO APIs. + * When true, DataObject.set(Property property, Object value) throws an exception. + * Values may change due to other factors, such as services operating on DataObjects. + */ + + virtual bool SDO_API isReadOnly() const = 0; + + /** getOpposite returns the opposite property or zero. + * + * NOT IMPLEMENTED + */ + + virtual SDO_API const Property* getOpposite() const = 0; + + /** isDefaulted is true if a default has been set. + * + * A property value may be set or unset. If unset, requests to the + * data object for the value will return a default if there is one. + * If the property is not defaulted, an un specified value will be + * returned. (Thism value will probably be zero). + */ + + virtual SDO_API bool isDefaulted() const = 0 ; + + /** setDefault sets the right sort of default. + * + * The many overrides of this method allow the setting + * of a default value for any DataType property. + */ + + virtual SDO_API void setDefault(bool b ) = 0; + virtual SDO_API void setDefault(char c) = 0; + virtual SDO_API void setDefault(wchar_t c) = 0; + virtual SDO_API void setDefault(char* c) = 0; + virtual SDO_API void setDefault(short s) = 0; + virtual SDO_API void setDefault(long l) = 0; + virtual SDO_API void setDefault(int64_t i) = 0; + virtual SDO_API void setDefault(float f) = 0; + virtual SDO_API void setDefault(long double d) = 0; + virtual SDO_API void setDefault(const SDODate d) = 0; + virtual SDO_API void setDefault(const wchar_t* c, unsigned int len) = 0; + virtual SDO_API void setDefault(const char* c, unsigned int len) = 0; + + /** getDefault gets the right sort of default. + * + * The many overrides of this method allow the getting + * of a default value for any DataType property. + */ + + virtual SDO_API unsigned int getStringDefault(wchar_t* val, unsigned int max) const = 0; + virtual SDO_API unsigned int getBytesDefault(char* val, unsigned int max) const = 0; + virtual SDO_API bool getBooleanDefault() const = 0; + virtual SDO_API char getByteDefault() const = 0; + virtual SDO_API wchar_t getCharacterDefault() const = 0; + virtual SDO_API short getShortDefault() const = 0; + virtual SDO_API long getIntegerDefault() const = 0; + virtual SDO_API int64_t getLongDefault() const = 0; + virtual SDO_API float getFloatDefault() const = 0; + virtual SDO_API long double getDoubleDefault() const = 0; + virtual SDO_API const SDODate getDateDefault() const = 0; + virtual SDO_API const char* getCStringDefault() const = 0; + virtual SDO_API unsigned int getDefaultLength() const = 0; + + +}; + + +}; +}; + +#endif //_PROPERTY_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.cpp new file mode 100644 index 0000000000..3b84204a0c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.cpp @@ -0,0 +1,44 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/PropertyDefinition.h" +namespace commonj +{ + namespace sdo + { + PropertyDefinition::PropertyDefinition() + : isMany(false), + isContainment(true), + isReadOnly(false), + isElement(false), + isReference(false), + isQName(false), + isID(false), + isIDREF(false), + isSubstitute(false) + + { + } + + PropertyDefinition::~PropertyDefinition() + { + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.h new file mode 100644 index 0000000000..e82a17da70 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.h @@ -0,0 +1,88 @@ +/* + * + * 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:15 $ */ + +#ifndef _PROPERTYDEFINITION_H_ +#define _PROPERTYDEFINITION_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SDOXMLString.h" +#include +using namespace std; + + + +namespace commonj +{ + namespace sdo + { + + +/** + * PropertyDefinition holds a property as defined by an XSD. + * The XSD holds more information than does the SDO Property. + * This class holds the extra information found as the XSD is + * parsed. + */ + class PropertyDefinition + { + + public: + PropertyDefinition(); + virtual ~PropertyDefinition(); + + // where this property is to be substituted for another + SDOXMLString substituteName; + SDOXMLString substituteUri; + + // where there are substitute names for this property. + std::vector substituteNames; + std::vector substituteLocalNames; + + SDOXMLString aliases; + + SDOXMLString name; + SDOXMLString localname; + + SDOXMLString typeUri; + SDOXMLString typeName; + SDOXMLString fullTypeName; + + SDOXMLString fullLocalTypeName; + + SDOXMLString defaultValue; + + bool isMany; + bool isContainment; + bool isReadOnly; + + bool isID; + bool isIDREF; + bool isReference; + bool isElement; + + bool isQName; + + bool isSubstitute; + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_PROPERTYDEFINITION_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.cpp new file mode 100644 index 0000000000..b549711217 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.cpp @@ -0,0 +1,536 @@ +/* + * + * 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: 2006/01/23 09:19:14 $ */ + +#include +using namespace std; + +#ifndef SDO_EXPORTS +#define SDO_EXPORTS +#endif +#include "commonj/sdo/export.h" + + +#include "commonj/sdo/Sequence.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/TypeList.h" + +#include "commonj/sdo/Type.h" +#include "commonj/sdo/TypeImpl.h" +#include "commonj/sdo/Property.h" +#include "commonj/sdo/PropertyImpl.h" +#include "commonj/sdo/DataFactoryImpl.h" +#include "commonj/sdo/SDORuntimeException.h" + +namespace commonj{ +namespace sdo{ + + + Substitution::Substitution() + { + name = 0; + type = 0; + } + + Substitution::Substitution(DataFactoryPtr mdg, const char* inname, + const Type& intype) + { + DataFactory* f = (DataFactory*)mdg; + + + if (inname != 0) + { + name = new char[strlen(inname) + 1]; + strcpy(name,inname); + } + else + { + name = 0; + } + + type = ((DataFactoryImpl*)f)->findType(intype.getURI(),intype.getName()); + } + + Substitution::Substitution(const Substitution& s) + { + type = s.type; + if (s.name != 0) + { + name = new char[strlen(s.name)+1]; + strcpy(name,s.name); + } + else + { + name = 0; + } + } + + Substitution::~Substitution() + { + if (name != 0) delete (char*)name; + } + + + /////////////////////////////////////////////////////////////////////////// + // construction by DAS + /////////////////////////////////////////////////////////////////////////// + + PropertyImpl::PropertyImpl( const Type& cont, + const char* inname, + const TypeImpl& intype, + bool many , + bool ro , + bool contain) : containertype(cont), type (intype) + { + name = new char[strlen(inname)+1]; + strcpy(name,inname); + defvalue = 0; + defvaluelength = 0; + opposite = 0; + stringdef = 0; + bisMany = many; + bisReadOnly = ro; + bisContainer = contain; + bDefaulted=false; + if (contain == false && intype.isDataObjectType()) + { + bisReference = true; + } + else + { + bisReference = false; + } + } + + + PropertyImpl::PropertyImpl(const PropertyImpl& p) : + type((*(p.getTypeImpl()))), + containertype (p.getContainingType()) + + + { + name = new char[strlen(p.getName())+1]; + strcpy(name,p.getName()); + defvalue = 0; + defvaluelength = 0; + stringdef = 0; + opposite = 0; + bisMany = p.bisMany; + bisReadOnly = p.bisReadOnly; + bisContainer = p.bisContainer; + bDefaulted=false; + if (bisContainer == false && type.isDataObjectType()) + { + bisReference = true; + } + else + { + bisReference = false; + } + } + + + PropertyImpl::~PropertyImpl() + { + if (name != 0) delete (char*)name; + if (defvalue != 0) delete (char*)defvalue; + if (stringdef != 0) delete stringdef; + for (int i = 0; i < aliases.size();i++) + { + delete ((char*)aliases[i]); + } + + } + + /////////////////////////////////////////////////////////////////////////// + // Setting of attributes by DAS + /////////////////////////////////////////////////////////////////////////// + + void PropertyImpl::setMany(bool many) + { + bisMany = many; + } + + void PropertyImpl::setReadOnly(bool readonly) + { + bisReadOnly = readonly; + } + + void PropertyImpl::setContainment(bool contains) + { + if (contains == true && type.isDataType()) + { + return; + } + bisContainer = contains; + if (bisContainer == false && type.isDataObjectType()) + { + bisReference = true; + } + else + { + bisReference = false; + } + } + + + /////////////////////////////////////////////////////////////////////////// + // Setting of defaults by DAS + /////////////////////////////////////////////////////////////////////////// + + void PropertyImpl::setDefault(bool b ) + { + setDefaultBoolean(b); + } + + void PropertyImpl::setDefault(char c ) + { + setDefaultByte(c); + } + + void PropertyImpl::setDefault(wchar_t c ) + { + setDefaultCharacter(c); + } + void PropertyImpl::setDefault(char* c ) + { + setDefaultCString(c); + } + void PropertyImpl::setDefault(short s ) + { + setDefaultShort(s); + } + void PropertyImpl::setDefault(long i ) + { + setDefaultInteger(i); + } + void PropertyImpl::setDefault(int64_t i ) + { + setDefaultLong(i); + } + void PropertyImpl::setDefault(float f ) + { + setDefaultFloat(f); + } + void PropertyImpl::setDefault(long double d ) + { + setDefaultDouble(d); + } + void PropertyImpl::setDefault(const SDODate d ) + { + setDefaultDate(d); + } + void PropertyImpl::setDefault(const char* c , unsigned int len) + { + setDefaultBytes(c, len); + } + + void PropertyImpl::setDefault(const wchar_t* c, unsigned int len ) + { + setDefaultString(c, len); + } + + /////////////////////////////////////////////////////////////////////////// + // Substitution groups. + /////////////////////////////////////////////////////////////////////////// + const Type* PropertyImpl::getSubstitutionType(const char* inname) const + { + for (int i=0;iconvertToCString(defvalue, &(p->stringdef), defvaluelength); + } + bool PropertyImpl::getBooleanDefault() const + { + return getTypeImpl()->convertToBoolean(defvalue,defvaluelength); + } + char PropertyImpl::getByteDefault() const + { + return getTypeImpl()->convertToByte(defvalue,defvaluelength); + } + wchar_t PropertyImpl::getCharacterDefault() const + { + return getTypeImpl()->convertToCharacter(defvalue,defvaluelength); + } + short PropertyImpl::getShortDefault() const + { + return getTypeImpl()->convertToShort(defvalue,defvaluelength); + } + long PropertyImpl::getIntegerDefault() const + { + return getTypeImpl()->convertToInteger(defvalue,defvaluelength); + } + int64_t PropertyImpl::getLongDefault() const + { + return getTypeImpl()->convertToLong(defvalue,defvaluelength); + } + float PropertyImpl::getFloatDefault() const + { + return getTypeImpl()->convertToFloat(defvalue,defvaluelength); + } + long double PropertyImpl::getDoubleDefault() const + { + return getTypeImpl()->convertToDouble(defvalue,defvaluelength); + } + const SDODate PropertyImpl::getDateDefault() const + { + return getTypeImpl()->convertToDate(defvalue,defvaluelength); + } + unsigned int PropertyImpl::getStringDefault(wchar_t* val, unsigned int max) const + { + if (val == 0 || max == 0) return defvaluelength; + return getTypeImpl()->convertToString(defvalue, val, defvaluelength, max); + + } + unsigned int PropertyImpl::getBytesDefault(char* val, unsigned int max) const + { + if (val == 0 || max == 0) return defvaluelength; + return getTypeImpl()->convertToBytes(defvalue, val, defvaluelength, max); + } + + unsigned int PropertyImpl::getDefaultLength() const + { + return defvaluelength; + } + + /////////////////////////////////////////////////////////////////////////// + // sets the default value by type + /////////////////////////////////////////////////////////////////////////// + + void PropertyImpl::setDefaultCString(const char* s) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convert(&defvalue,s); + } + void PropertyImpl::setDefaultString( const wchar_t* c , unsigned int len ) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convert(&defvalue,c, len); + } + void PropertyImpl::setDefaultBytes( const char* c , unsigned int len ) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convert(&defvalue,c, len); + } + void PropertyImpl::setDefaultBoolean( const bool b ) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convert(&defvalue,b); + } + void PropertyImpl::setDefaultByte( const char c ) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convert(&defvalue,c); + } + void PropertyImpl::setDefaultCharacter( const wchar_t c) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convert(&defvalue,c); + } + void PropertyImpl::setDefaultShort( const short s ) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convert(&defvalue,s); + } + void PropertyImpl::setDefaultInteger( const long i ) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convert(&defvalue,i); + } + void PropertyImpl::setDefaultLong(const int64_t l) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convert(&defvalue,l); + } + void PropertyImpl::setDefaultFloat( const float f ) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convert(&defvalue,f); + } + void PropertyImpl::setDefaultDouble( const long double d ) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convert(&defvalue,d); + } + void PropertyImpl::setDefaultDate( const SDODate d ) + { + bDefaulted=true; + defvaluelength = getTypeImpl()->convertDate(&defvalue,d); + } + + /////////////////////////////////////////////////////////////////////////// + // Returns true if values for this Property cannot be modified using the SDO APIs. + // When true, DataObject.set(Property property, Object value) throws an exception. + // Values may change due to other factors, such as services operating on DataObjects. + /////////////////////////////////////////////////////////////////////////// + bool PropertyImpl::isReadOnly() const + { + return bisReadOnly; + } + +}; +}; + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.h new file mode 100644 index 0000000000..d40fa58690 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.h @@ -0,0 +1,277 @@ +/* + * + * 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:15 $ */ + +#ifndef _PROPERTYIMPL_H_ +#define _PROPERTYIMPL_H_ + +#include "commonj/sdo/disable_warn.h" + +#include +using namespace std; + +#include "commonj/sdo/DASProperty.h" +#include "commonj/sdo/SDODate.h" +#include "commonj/sdo/DataFactory.h" + +namespace commonj{ +namespace sdo{ + +class Type; +class TypeImpl; +class DataObject; + +/** + * A substitution is a class which permits a property to be a substitute for + * another one. + * A substitution is a definition of a type which is allowed to be placed in the + * data object in place of a property of another type. + */ + + +class Substitution +{ +public: + Substitution(); + Substitution(DataFactoryPtr mdg, const char* inname, + const Type& intype); + Substitution(const Substitution& s); + virtual ~Substitution(); + const Type* type; + char* name; +}; + +/** PropertyImpl implements the abstract class Property. + * + * A representation of a property in the type of a data object. + */ + +class PropertyImpl :public DASProperty +{ + public: + + + /////////////////////////////////////////////////////////////////////////// + // Construction for the DAS + /////////////////////////////////////////////////////////////////////////// + + SDO_API PropertyImpl( + const Type& cont, + const char* name, + const TypeImpl& type, + bool many = false, + bool ro = false, + bool contain = false); + + + + virtual SDO_API ~PropertyImpl(); + + /** + * A Data access service may set the features of this property instead of + * passing them as construction parameters. + */ + + virtual SDO_API void setMany(bool many ); + + /** + * A Data access service may set the features of this property instead of + * passing them as construction parameters. + */ + virtual SDO_API void setReadOnly(bool rdonly); + + /** + * A Data access service may set the features of this property instead of + * passing them as construction parameters. + */ + virtual SDO_API void setContainment(bool contains); + + /** + * A Data access service may set the features of this property instead of + * passing them as construction parameters. + */ + + virtual SDO_API bool isDefaulted() const; + + /** + * A Data access service sets the default value. + */ + + virtual SDO_API void setDefault(bool b ); + virtual SDO_API void setDefault(char c); + virtual SDO_API void setDefault(wchar_t c); + virtual SDO_API void setDefault(char* c); + virtual SDO_API void setDefault(short s); + virtual SDO_API void setDefault(long l); + virtual SDO_API void setDefault(int64_t i); + virtual SDO_API void setDefault(float f); + virtual SDO_API void setDefault(long double d); + virtual SDO_API void setDefault(const SDODate d); + virtual SDO_API void setDefault(const wchar_t* c, unsigned int len); + virtual SDO_API void setDefault(const char* c, unsigned int len); + + + + + + /** + * Returns the name of the property. + */ + + virtual const SDO_API char* getName() const; + + /** getAlias returns the n'th alias + * + * This method returns a const char* corresponding to the + * alias at index n of the list of aliases. Use getAliasCount to + * discover the size of the list. + */ + + virtual const char* getAlias(unsigned int index = 0) const ; + virtual unsigned int getAliasCount() const ; + virtual void setAlias(const char* alias) ; + + /** + * + * SubstitutionGroup support. + */ + + virtual const Type* getSubstitutionType(const char* name) const ; + virtual unsigned int getSubstitutionCount(void) const ; + virtual const Type* getSubstitutionType(unsigned int index) const ; + virtual const char* getSubstitutionName(unsigned int index) const ; + virtual void setSubstitution(DataFactoryPtr mdg, const char* alias, + const Type& substype) ; + + + /** getType returns the type of this property + * + * This method returns the type, which may be a DataType or a + * DataObjectType + */ + + virtual SDO_API const Type& getType() const; + + virtual SDO_API const Type::Types getTypeEnum() const; + + virtual SDO_API const TypeImpl* getTypeImpl() const; + + /** + * Returns whether the property is many-valued. + */ + virtual bool SDO_API isMany() const; + + /** + * Returns whether the property is containment. + */ + virtual bool SDO_API isContainment() const; + + /** + * Returns whether the property is a reference. + */ + virtual bool SDO_API isReference() const; + + /** + * Returns the containing type of this property. + */ + virtual SDO_API const Type& getContainingType() const; + + /** + * returns the opposite property, or zero if there is none + */ + virtual SDO_API const Property* getOpposite() const; + + virtual void setOpposite(const Property* opp); + + + /** + * setters for type primitive types and 'an object' + */ + + SDO_API void setDefaultCString( const char* s); + SDO_API void setDefaultString( const wchar_t* c , unsigned int len ); + SDO_API void setDefaultBytes( const char* c , unsigned int len ); + SDO_API void setDefaultBoolean( const bool b ); + SDO_API void setDefaultByte( const char c ); + SDO_API void setDefaultCharacter( const wchar_t c); + SDO_API void setDefaultShort( const short s ); + SDO_API void setDefaultInteger( const long i ); + SDO_API void setDefaultLong(const int64_t l); + SDO_API void setDefaultFloat( const float f ); + SDO_API void setDefaultDouble( const long double d ); + SDO_API void setDefaultDate( const SDODate d ); + + SDO_API const char* getCStringDefault() const; + SDO_API unsigned int getStringDefault(wchar_t* val, unsigned int max) const; + SDO_API unsigned int getBytesDefault(char* val, unsigned int max) const; + SDO_API bool getBooleanDefault() const; + SDO_API char getByteDefault() const; + SDO_API wchar_t getCharacterDefault() const; + SDO_API short getShortDefault() const; + SDO_API long getIntegerDefault() const; + SDO_API int64_t getLongDefault() const; + SDO_API float getFloatDefault() const; + SDO_API long double getDoubleDefault() const; + SDO_API const SDODate getDateDefault() const; + SDO_API unsigned int getDefaultLength() const; + + /** + * Returns true if values for this Property cannot be modified using the SDO APIs. + * When true, DataObject.set(Property property, Object value) throws an exception. + * Values may change due to other factors, such as services operating on DataObjects. + */ + virtual bool SDO_API isReadOnly() const; + + SDO_API PropertyImpl(const PropertyImpl& p); + + private: + + // clear the default value + void deleteValue(); + + bool bisReadOnly; + bool bisContainer; + bool bisReference; + bool bisMany; + + bool bDefaulted; + + const TypeImpl& type; + const Type& containertype; + const Property* opposite; + char* name; + char* stringdef; + + void* defvalue; + // in the event of a bytes and string, this holds the length + unsigned int defvaluelength; + + // alias support + std::vector aliases; + + std::vector substitutions; + + typedef std::list REFEREE_LIST; + REFEREE_LIST references; + + +}; +}; +}; + +#endif //_PROPERTYIMPL_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.cpp new file mode 100644 index 0000000000..5da678f10b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.cpp @@ -0,0 +1,93 @@ +/* + * + * 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:15 $ */ + +#ifndef SDO_EXPORTS + #define SDO_EXPORTS +#endif + +#include "commonj/sdo/export.h" +#include +#include "commonj/sdo/Property.h" +#include "commonj/sdo/PropertyImpl.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/PropertyList.h" + +#include "commonj/sdo/Logger.h" + +namespace commonj{ +namespace sdo { + +class Property; + +SDO_API PropertyList::PropertyList(PROPERTY_LIST p) +{ + PROPERTY_LIST::iterator i; + for (i = p.begin(); i != p.end(); ++i) + { + plist.insert(plist.end(),(PropertyImpl*)(*i)); + } +} + +SDO_API PropertyList::PropertyList(PROPERTY_VECTOR p) +{ + plist = PROPERTY_VECTOR(p); +} + +SDO_API PropertyList::PropertyList(const PropertyList &pin) +{ + plist = PROPERTY_VECTOR(pin.getVec()); +} + +SDO_API PropertyList::PropertyList() +{ +} + +SDO_API PropertyList::~PropertyList() +{ +} + +SDO_API Property& PropertyList::operator[] (int pos) +{ + return *(plist[pos]); +} + +SDO_API const Property& PropertyList::operator[] (int pos) const +{ + return *(plist[pos]); +} + +SDO_API int PropertyList::size () +{ + return plist.size(); +} + +SDO_API void PropertyList::insert(const Property& p) +{ + PropertyImpl* pi = (PropertyImpl*)&p; + plist.insert(plist.end(),new PropertyImpl(*pi)); +} + +PROPERTY_VECTOR PropertyList::getVec() const +{ + return plist; +} + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.h new file mode 100644 index 0000000000..61146f18db --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.h @@ -0,0 +1,87 @@ +/* + * + * 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:15 $ */ + +#ifndef _PROPERTYLIST_H_ +#define _PROPERTYLIST_H_ + + +#include "commonj/sdo/export.h" + +#include +#include + + + + +namespace commonj{ +namespace sdo{ + + class PropertyImpl; + class Property; + typedef std::vector PROPERTY_VECTOR; +#ifndef PROPERTY_LIST + typedef std::list PROPERTY_LIST; +#endif + +/** + * This class provides for iteration over a collection of Properties + */ + +class PropertyList +{ +private: + PROPERTY_VECTOR plist; + PROPERTY_VECTOR getVec() const; +public: + SDO_API PropertyList(PROPERTY_VECTOR p); + SDO_API PropertyList(PROPERTY_LIST p); + SDO_API PropertyList(const PropertyList &pin); + SDO_API PropertyList(); + virtual SDO_API ~PropertyList(); + + /** [] + * + * Operator to allow reference to an element of the list. + * There are separate versions for const and variable lists + */ + + SDO_API Property& operator[] (int pos); + SDO_API const Property& operator[] (int pos) const; + + /** size gives the number of elements. + * + * size() returns the number of elements in the list. + */ + + SDO_API int size (); + + /** insert adds an element to the list + * + * insert appends an item to the list. This is not + * of any use to a client application, as these lists + * are always supplied by the library, and are const. + */ + + SDO_API void insert (const Property& p); +}; +}; +}; + + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.cpp new file mode 100644 index 0000000000..ee73d81d28 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.cpp @@ -0,0 +1,42 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/PropertySetting.h" +namespace commonj +{ + namespace sdo + { + PropertySetting::PropertySetting() + : dataObject(NULL), isNULL(false), isIDREF(false) + + { + } + + PropertySetting::PropertySetting(DataObjectPtr dataObj, const SDOXMLString& propertyName, + bool isNull, bool IDREF) + : dataObject(dataObj), name(propertyName), isNULL(isNull),isIDREF(IDREF) + { + } + + PropertySetting::~PropertySetting() + { + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.h new file mode 100644 index 0000000000..dfce988475 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.h @@ -0,0 +1,60 @@ +/* + * + * 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:15 $ */ + +#ifndef _PROPERTYSETTING_H_ +#define _PROPERTYSETTING_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SDOXMLString.h" +#include "commonj/sdo/DataObject.h" + + +namespace commonj +{ + namespace sdo + { + +/** + * PropertySetting holds some information about properties as + * they are read by the parser, for subsequent creation + */ + class PropertySetting + { + + public: + PropertySetting(); + PropertySetting(DataObjectPtr dataObj, + const SDOXMLString& propertyName, + bool isNull=false, + bool isIDREF=false); + virtual ~PropertySetting(); + + SDOXMLString name; + SDOXMLString value; + DataObjectPtr dataObject; + bool isIDREF; + bool isNULL; + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_PROPERTYSETTING_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.cpp new file mode 100644 index 0000000000..3c27a4b2bd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.cpp @@ -0,0 +1,74 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/RefCountingObject.h" +#include "commonj/sdo/Logging.h" + +#include +using namespace std; + +namespace commonj{ +namespace sdo{ + +long RefCountingObject::allObs = 0; + +RefCountingObject::RefCountingObject() +: refCount(0) +{ + LOGINFO_2(HIGHVOLUME,"RCO:CREATE:%p Count:%ld",this, ++allObs); +} + +RefCountingObject::RefCountingObject(const RefCountingObject& rc) +: refCount(0) +{ + LOGINFO_2(HIGHVOLUME,"RCO:COPCON:%p Count:%ld",this,++allObs); +} + +RefCountingObject& RefCountingObject::operator=(const RefCountingObject& rc) +{ + return *this; +} + +RefCountingObject::~RefCountingObject() +{ + LOGINFO_2(HIGHVOLUME,"RCO:DELETE:%p Count:%ld",this, --allObs); + // + //if (allObs < 0) + // LOGINFO(HIGHVOLUME,"RCO:More objects deleted than created"); + //if (allObs == 0) + // LOGINFO(HIGHVOLUME,"RCO: All data objects deleted");; +} + +void RefCountingObject::addRef() + +{ + + ++refCount; + LOGINFO_2(HIGHVOLUME,"RCO:ADDREF:%p:%ld",this,refCount); +} + +void RefCountingObject::releaseRef() +{ + LOGINFO_2(HIGHVOLUME,"RCO:DECREF:%p:%ld",this,refCount-1); + if (--refCount == 0) delete this; +} + + +}; +}; diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.h new file mode 100644 index 0000000000..2d5724a8f5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.h @@ -0,0 +1,59 @@ +/* + * + * 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:15 $ */ + +#ifndef _REFCOUNTINGOBJECT_H +#define _REFCOUNTINGOBJECT_H + + +#include "commonj/sdo/export.h" + + +namespace commonj { + namespace sdo { + +/** + * RefcountingObject is the base class for all objects in SDO + * These objects keep a count of references to themselves, then + * free themselves when they are unused. + */ + class RefCountingObject + { + public: + SDO_API RefCountingObject(); + SDO_API RefCountingObject(const RefCountingObject& rc); + SDO_API RefCountingObject& operator=(const RefCountingObject& rc); + SDO_API virtual ~RefCountingObject() = 0; +/** + * Add to the reference count - a new pointer has been created. + */ + SDO_API void addRef(); +/** + * Subtract from the the reference count - a reference has dropped. + */ + SDO_API void releaseRef(); + + private: + unsigned int refCount; + static long allObs; + }; + + }; +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.cpp new file mode 100644 index 0000000000..a9dabd10b4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.cpp @@ -0,0 +1,153 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/RefCountingPointer.h" +#include "commonj/sdo/DataFactory.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/DataGraph.h" +#include "commonj/sdo/ChangeSummary.h" +#include "commonj/sdo/XMLDocument.h" +#include "commonj/sdo/XSDHelper.h" +#include "commonj/sdo/XMLHelper.h" + +namespace commonj{ + namespace sdo{ + + // officially, there is nothing here- but if I dont use the overrides in + // the templates, then they dont get generated. + void Test () + { + +#if defined(WIN32) || defined (_WINDOWS) + /* 1) construct */ + DataFactoryPtr fptr = DataFactory::getDataFactory(); + + /* 2) use the & operator= */ + fptr = DataFactory::getDataFactory(); + + /* 3) copy */ + DataFactoryPtr fptr2 = fptr; + + /* 4) use the == and ! */ + if (fptr2 == fptr || !fptr){} + + /* 5) Use the T* and * */ + DataFactory* dmsf = fptr; + DataFactory& dmsr = *fptr; + + /* 1) construct */ + DataFactoryPtr dfptr(fptr); + + /* 3) copy */ + DataFactoryPtr dfptr2 = dfptr; + + /* 2) use the & operator= */ + dfptr = dfptr2; + + /* 4) use the == and ! */ + if (dfptr2 == dfptr || !dfptr){} + + /* 5) Use the T* and * */ + DataFactory* ddmsf = dfptr; + DataFactory& ddmsr = *dfptr; + + /* 6) Use the -> */ + DataObjectPtr dptr = dfptr->create("nothing","nowhere"); + + /* and agin to catch the = */ + dptr = fptr->create("nothing","nowhere"); + + DataObjectPtr dptr2 = dptr; + + /* Use the T* and * */ + DataObject* dof = dptr; + DataObject& dor = *dptr; + + if (dptr2 == dptr || !dptr){} + + + ChangeSummaryPtr cptr = dptr->getChangeSummary(); + cptr = dptr->getChangeSummary(); + ChangeSummaryPtr cptr2 = cptr; + + ChangeSummary* cof = cptr; + ChangeSummary& cop = *cptr; + + + if (cptr2 == cptr || !cptr){} + + cptr->endLogging(); + + SequencePtr sptr = dptr->getSequence(); + sptr = dptr->getSequence(); + SequencePtr sptr2 = sptr; + + Sequence* sof = sptr; + Sequence& sop = *sptr; + + + if (sptr2 == sptr || !sptr){} + + sptr->getBooleanValue(0); + + + // Generate code for XMLDocumentPtr + XMLDocumentPtr xmldocptr1 = 0; + XMLDocumentPtr xmldocptr2 = xmldocptr1; + xmldocptr1 = xmldocptr2; + if (xmldocptr2 == xmldocptr1 || !xmldocptr1){} + XMLDocument* xmldocp = xmldocptr1; + XMLDocument& xmldocref = *xmldocptr2; + xmldocptr1->getEncoding(); + + // Generate code for XSDHelperPtr + XSDHelperPtr xsdhptr1 = 0; + XSDHelperPtr xsdhptr2 = xsdhptr1; + xsdhptr1 = xsdhptr2; + if (xsdhptr2 == xsdhptr1 || !xsdhptr1){} + XSDHelper* xsdhp = xsdhptr1; + XSDHelper& xsdhref = *xsdhptr2; + xsdhptr1->define("dummy"); + + // Generate code for XMLHelperPtr + XMLHelperPtr xmlhptr1 = 0; + XMLHelperPtr xmlhptr2 = xmlhptr1; + xmlhptr1 = xmlhptr2; + if (xmlhptr2 == xmlhptr1 || !xmlhptr1){} + XMLHelper* xmlhp = xmlhptr1; + XMLHelper& xmlhref = *xmlhptr2; + xmlhptr1->load("dummy"); + + // Generate code for DataGraphPtr + DataGraphPtr dgptr1 = 0; + DataGraphPtr dgptr2 = dgptr1; + dgptr1 = dgptr2; + if (dgptr2 == dgptr1 || !dgptr1){} + DataGraph* dghp = dgptr1; + DataGraph& dgref = *dgptr2; + dgptr1->getRootObject(); + +#endif + + } + }; +}; + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.h new file mode 100644 index 0000000000..b5b97d9c04 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.h @@ -0,0 +1,179 @@ +/* + * + * 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:15 $ */ + +#ifndef _REFCOUNTINGPOINTER_H +#define _REFCOUNTINGPOINTER_H + + +#include "commonj/sdo/export.h" + +#include +using namespace std; + +namespace commonj{ +namespace sdo{ + +/** + * RefcountingPointer is a template for all SDO pointers. + * The ref count increases with each use, and drops when one of these + * goes out of scope. + * Refcounting pointers are a lot like smart pointers, however in this + * implementation there is a cast method to a void*, so unlike real + * smart pointers, a user might call "delete mypointer", which would + * compile, but cause a crash. + * RefCountingPointers do not need to be deleted. + */ + +template +class RefCountingPointer { + public: + SDO_API RefCountingPointer(T* realPtr = 0); + SDO_API RefCountingPointer(const RefCountingPointer& rhs); + SDO_API ~RefCountingPointer(); + SDO_API RefCountingPointer& operator=(const RefCountingPointer& rhs); + SDO_API bool operator==(RefCountingPointer& test) const; + SDO_API T* operator->() const; + SDO_API T& operator*() const; + SDO_API bool operator!() const; + +#ifdef MFT + // MFT == member function templates + // Notes on the items below. + // In our code, we use subclasses to expose the API, and super + // classes to implement. E,g DataObject and DataObjectImpl. + // In some cases, we know that the DataObject given to us is a + // DataObjectImpl, and cast it. With RefCountingPointers, however, + // the cast cannot work, as the RefCountingPointer to the superclass + // is not related to the RCP to the subclass. Recent changes in the + // C++ language allow this to work by defining an operator which + // causes a pointer of the other type to be returned, as long as pointee + // is acceptable as a parameter to the cosntructor of the other type + // of pointer. This works in C++.NET, but not in C++6: + operator RefCountingPointer() + { + return RefCountingPointer(pointee); + } + + // Since we are using C6, a possible workround is to provide a method + // which returns the dumb pointer, then construct a pointer to the + // base class from the pointer returned. This is that the operator T* does. + // The code in DataObject could be simpler if we used C7,and we should + // discusss changing. +#else + operator T*() {return pointee;} +#endif + + template + operator RefCountingPointer() + { + return RefCountingPointer(pointee); + } + + private: + T *pointee; + void init(); +}; + + + +template +void RefCountingPointer::init() +{ + if (pointee == 0) return; + pointee->addRef(); +} + +template +SDO_API RefCountingPointer::RefCountingPointer(T* realPtr) +:pointee(realPtr) +{ + init(); +} + +template +SDO_API RefCountingPointer::RefCountingPointer(const RefCountingPointer& rhs) +: pointee(rhs.pointee) +{ + init(); +} + +template +SDO_API RefCountingPointer::~RefCountingPointer() +{ + if (pointee)pointee->releaseRef(); +} + +template +SDO_API RefCountingPointer& RefCountingPointer::operator=(const RefCountingPointer& rhs) +{ + if (pointee != rhs.pointee) + { + T *oldP = pointee; + pointee = rhs.pointee; + init(); + if (oldP) oldP->releaseRef(); + } + return *this; +} + +template +SDO_API bool RefCountingPointer::operator!() const +{ + return (pointee == 0); +} + +template +SDO_API bool RefCountingPointer::operator==(RefCountingPointer& test) const +{ + return (pointee == test.pointee); +} + +template +SDO_API T* RefCountingPointer::operator->() const +{ + return pointee; +} + +template +SDO_API T& RefCountingPointer::operator*() const +{ + return *pointee; +} + +class DataObject; +typedef RefCountingPointer DataObjectPtr; +class DataGraph; +typedef RefCountingPointer DataGraphPtr; +class DataFactory; +typedef RefCountingPointer DataFactoryPtr; +class Sequence; +typedef Sequence* SequencePtr; +class ChangeSummary; +typedef ChangeSummary* ChangeSummaryPtr; +class XMLDocument; +typedef RefCountingPointer XMLDocumentPtr; +class XSDHelper; +typedef RefCountingPointer XSDHelperPtr; +class XMLHelper; +typedef RefCountingPointer XMLHelperPtr; + +}; +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.cpp new file mode 100644 index 0000000000..921b13fe02 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.cpp @@ -0,0 +1,49 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/SAX2Attribute.h" + + +namespace commonj +{ + namespace sdo + { + +/** + * SAX2Attribute holds an attribute supplied by the SAX2 parser. + */ + SAX2Attribute::SAX2Attribute() + { + } + + SAX2Attribute::SAX2Attribute(const xmlChar **attribute) // localname/prefix/URI/value/end + { + name = attribute[0]; + prefix = attribute[1]; + uri = attribute[2]; + value = SDOXMLString(attribute[3],0, (int)(attribute[4] - attribute[3])); + } + + SAX2Attribute::~SAX2Attribute() + { + } + + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.h new file mode 100644 index 0000000000..a8657ab6ef --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.h @@ -0,0 +1,64 @@ +/* + * + * 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:15 $ */ + +#ifndef _SAX2ATTRIBUTE_H_ +#define _SAX2ATTRIBUTE_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SDOXMLString.h" + +namespace commonj +{ + namespace sdo + { + +/** + * SAX2Attribute holds an attribute supplied by the SAX2 parser. + */ + + class SAX2Attribute + { + + public: + + SAX2Attribute(); + SAX2Attribute(const xmlChar **attribute); + + virtual ~SAX2Attribute(); + + const SDOXMLString& getName() const {return name;} + const SDOXMLString& getPrefix() const {return prefix;} + const SDOXMLString& getUri() const {return uri;} + const SDOXMLString& getValue() const {return value;} + + + private: + SDOXMLString name; + SDOXMLString prefix; + SDOXMLString uri; + SDOXMLString value; + + + + }; + } // End - namespace sdo +} // End - namespace commonj + +#endif //_SAX2ATTRIBUTE_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.cpp new file mode 100644 index 0000000000..8d7ea19349 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.cpp @@ -0,0 +1,92 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/SAX2Attributes.h" + +namespace commonj +{ + namespace sdo + { + +/** + * SAX2Attributes holds a list of attributes supplied by the SAX2 parser. + */ + SAX2Attributes::SAX2Attributes( + int nb_attributes, + int nb_defaulted, + const xmlChar **attrs) // localname/prefix/URI/value/end + { + for (int i=0; i < nb_attributes*5; i+=5) + { + attributes.insert(attributes.end(), SAX2Attribute(&attrs[i])); + } + } + + SAX2Attributes::~SAX2Attributes() + { + } + + const SAX2Attribute& SAX2Attributes::operator[] (int pos) const + { + return attributes[pos]; + } + + int SAX2Attributes::size () const + { + return attributes.size(); + } + + + const SDOXMLString SAX2Attributes::nullValue; + + const SDOXMLString& SAX2Attributes::getValue( + const SDOXMLString& attributeUri, + const SDOXMLString& attributeName) const + { + for (int i=0; i < attributes.size(); i++) + { + if (attributes[i].getUri().equalsIgnoreCase(attributeUri)) + { + if (attributes[i].getName().equalsIgnoreCase(attributeName)) + { + return attributes[i].getValue(); + } + } + } + + return nullValue; + } + + const SDOXMLString& SAX2Attributes::getValue( + const SDOXMLString& attributeName) const + { + for (int i=0; i < attributes.size(); i++) + { + if (attributes[i].getName().equalsIgnoreCase(attributeName)) + { + return attributes[i].getValue(); + } + } + + return nullValue; + } + + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.h new file mode 100644 index 0000000000..df32bada2a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.h @@ -0,0 +1,72 @@ +/* + * + * 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:15 $ */ + +#ifndef _SAX2ATTRIBUTES_H_ +#define _SAX2ATTRIBUTES_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SAX2Attribute.h" + +#include "vector" + + +namespace commonj +{ + namespace sdo + { + +/** + * SAX2Attributes holds a list of attributes supplied by the SAX2 parser. + */ + class SAX2Attributes + { + + public: + + SAX2Attributes( + int nb_attributes, + int nb_defaulted, + const xmlChar **attributes); + + virtual ~SAX2Attributes(); + + const SAX2Attribute& operator[] (int pos) const; + int size() const; + + const SDOXMLString& getValue( + const SDOXMLString& attributeUri, + const SDOXMLString& attributeName) const; + + const SDOXMLString& getValue( + const SDOXMLString& attributeName) const; + + private: + typedef std::vector ATTRIBUTE_LIST; + ATTRIBUTE_LIST attributes; + + static const SDOXMLString nullValue; + + + + }; + } // End - namespace sdo +} // End - namespace commonj + +#endif //_SAX2ATTRIBUTES_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.cpp new file mode 100644 index 0000000000..ae99c4949e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.cpp @@ -0,0 +1,93 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/SAX2Namespaces.h" + + +namespace commonj +{ + namespace sdo + { + + SAX2Namespaces::SAX2Namespaces() + { + } + + SAX2Namespaces::SAX2Namespaces(int nb_namespaces, const xmlChar** namespaces) + { + for (int i=0; isecond); + + } + + const SDOXMLString* SAX2Namespaces::findPrefix(const SDOXMLString& uri) const + { + NAMESPACE_MAP::const_iterator nsIter; + for (nsIter = namespaceMap.begin(); nsIter != namespaceMap.end(); nsIter++) + { + if (nsIter->second.equals(uri)) + return &(nsIter->first); + } + return 0; + } + + void SAX2Namespaces::merge(const SAX2Namespaces& inspaces) + { + NAMESPACE_MAP::const_iterator nsIter; + for (nsIter = inspaces.namespaceMap.begin(); + nsIter != inspaces.namespaceMap.end(); nsIter++) + { + // add will not overwrite if it already exists + namespaceMap[nsIter->first] = nsIter->second; + } + return; + } + + + + void SAX2Namespaces::add(const SDOXMLString& prefix, const SDOXMLString& uri) + { + namespaceMap[prefix] = uri; + } + + void SAX2Namespaces::empty() + { + namespaceMap.empty(); + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.h new file mode 100644 index 0000000000..d100889544 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.h @@ -0,0 +1,67 @@ +/* + * + * 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:15 $ */ + +#ifndef _SAX2NAMESPACES_H_ +#define _SAX2NAMESPACES_H_ +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SDOXMLString.h" +#include "map" + + +namespace commonj +{ + namespace sdo + { + +/** + * SAX2Namespaces holds a list of namespaces supplied by the SAX2 parser. + */ + + class SAX2Namespaces + { + + public: + + SAX2Namespaces(); + + SAX2Namespaces(int nb_namespaces, const xmlChar** namespaces); + + virtual ~SAX2Namespaces(); + + void add(const SDOXMLString& prefix, const SDOXMLString& uri); + + void merge(const SAX2Namespaces& inspaces); + + const SDOXMLString* find(const SDOXMLString& prefix) const; + const SDOXMLString* findPrefix(const SDOXMLString& uri) const; + + void empty(); + + private: + typedef std::map NAMESPACE_MAP; + NAMESPACE_MAP namespaceMap; + + + + }; + } // End - namespace sdo +} // End - namespace commonj + +#endif //_SAX2NAMESPACES_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.cpp new file mode 100644 index 0000000000..3a3dde3915 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.cpp @@ -0,0 +1,415 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/SAX2Parser.h" +#include "libxml/SAX2.h" +#include "commonj/sdo/SDORuntimeException.h" +using namespace commonj::sdo; + +/** + * SAX2Parser holds the methods which will be called back. + * The implementation uses libxml, which provides callbacks for + * errors, warnings , elements etc. These methods correspond to thos + * callbacks. + * Callbacks from libxml to these C methods are converted into calls + * to the C++ equivalent (with some parameter manipulation + * In the callback methods the void* ctx is a pointer to 'this' SAX2Parser + */ + + + +int sdo_isStandalone(void *ctx) +{ + return 0; +} + + +int sdo_hasInternalSubset(void *ctx) +{ + return(0); +} + +int sdo_hasExternalSubset(void *ctx) +{ + return(0); +} + +void sdo_internalSubset(void *ctx, const xmlChar *name, + const xmlChar *ExternalID, const xmlChar *SystemID) +{ +} + + +void sdo_externalSubset(void *ctx, const xmlChar *name, + const xmlChar *ExternalID, const xmlChar *SystemID) +{ +} + +xmlParserInputPtr sdo_resolveEntity(void *ctx, const xmlChar *publicId, const xmlChar *systemId) +{ + return(NULL); +} + + +xmlEntityPtr sdo_getEntity(void *ctx, const xmlChar *name) +{ + return(NULL); +} + + +xmlEntityPtr sdo_getParameterEntity(void *ctx, const xmlChar *name) +{ + return(NULL); +} + + +void sdo_entityDecl(void *ctx, const xmlChar *name, int type, + const xmlChar *publicId, const xmlChar *systemId, xmlChar *content) +{ +} + + +void sdo_attributeDecl(void *ctx, const xmlChar * elem, + const xmlChar * name, int type, int def, + const xmlChar * defaultValue, xmlEnumerationPtr tree) +{ +} + +void sdo_elementDecl(void *ctx, const xmlChar *name, int type, + xmlElementContentPtr content) +{ +} + + +void sdo_notationDecl(void *ctx, const xmlChar *name, + const xmlChar *publicId, const xmlChar *systemId) +{ +} + +void sdo_unparsedEntityDecl(void *ctx, const xmlChar *name, + const xmlChar *publicId, const xmlChar *systemId, + const xmlChar *notationName) +{ +} + + +void sdo_setDocumentLocator(void *ctx, xmlSAXLocatorPtr loc) +{ +} + + +void sdo_startDocument(void *ctx) +{ + if (!((SAX2Parser*)ctx)->parserError) + ((SAX2Parser*)ctx)->startDocument(); +} + + +void sdo_endDocument(void *ctx) +{ + if (!((SAX2Parser*)ctx)->parserError) + ((SAX2Parser*)ctx)->endDocument(); +} + + +void sdo_startElement(void *ctx, const xmlChar *name, const xmlChar **atts) +{ + // ((SAX2Parser*)ctx)->startElement(name, atts); +} + + +void sdo_endElement(void *ctx, const xmlChar *name) +{ + // ((SAX2Parser*)ctx)->endElement(name); +} + + +void sdo_characters(void *ctx, const xmlChar *ch, int len) +{ + if (!((SAX2Parser*)ctx)->parserError) + ((SAX2Parser*)ctx)->characters(SDOXMLString(ch, 0, len)); +} + + +void sdo_reference(void *ctx, const xmlChar *name) +{ +} + + +void sdo_ignorableWhitespace(void *ctx, const xmlChar *ch, int len) +{ +} + + +void sdo_processingInstruction(void *ctx, const xmlChar *target, + const xmlChar *data) +{ +} + + +void sdo_cdataBlock(void *ctx, const xmlChar *value, int len) +{ +} + +void sdo_comment(void *ctx, const xmlChar *value) +{ +} + + +void sdo_warning(void *ctx, const char *msg, ...) +{ + va_list args; + va_start(args, msg); + ((SAX2Parser*)ctx)->warning(msg, args); + va_end(args); +} + +void sdo_error(void *ctx, const char *msg, ...) +{ + va_list args; + va_start(args, msg); + ((SAX2Parser*)ctx)->error(msg, args); + va_end(args); + + +} + +void sdo_fatalError(void *ctx, const char *msg, ...) +{ + va_list args; + va_start(args, msg); + ((SAX2Parser*)ctx)->fatalError(msg, args); + va_end(args); +} + + + +// =============== +// SAX2 callbacks +// =============== +void sdo_startElementNs(void *ctx, + const xmlChar *localname, + const xmlChar *prefix, + const xmlChar *URI, + int nb_namespaces, + const xmlChar **namespaces, + int nb_attributes, + int nb_defaulted, + const xmlChar **attributes) +{ + if (!((SAX2Parser*)ctx)->parserError) + ((SAX2Parser*)ctx)->startElementNs( + localname, + prefix, + URI, + SAX2Namespaces(nb_namespaces, namespaces), + SAX2Attributes(nb_attributes, nb_defaulted, attributes)); +} + + +void sdo_endElementNs(void *ctx, + const xmlChar *localname, + const xmlChar *prefix, + const xmlChar *URI) +{ + if (!((SAX2Parser*)ctx)->parserError) + ((SAX2Parser*)ctx)->endElementNs(localname, prefix, URI); +} + + +// The callback method structure +xmlSAXHandler SDOSAX2HandlerStruct = { + sdo_internalSubset, + sdo_isStandalone, + sdo_hasInternalSubset, + sdo_hasExternalSubset, + sdo_resolveEntity, + sdo_getEntity, + sdo_entityDecl, + sdo_notationDecl, + sdo_attributeDecl, + sdo_elementDecl, + sdo_unparsedEntityDecl, + sdo_setDocumentLocator, + sdo_startDocument, + sdo_endDocument, + sdo_startElement, + sdo_endElement, + sdo_reference, + sdo_characters, + sdo_ignorableWhitespace, + sdo_processingInstruction, + sdo_comment, + sdo_warning, + sdo_error, + sdo_fatalError, + sdo_getParameterEntity, + sdo_cdataBlock, + sdo_externalSubset, + XML_SAX2_MAGIC, + NULL, + sdo_startElementNs, + sdo_endElementNs, + NULL +}; + + +namespace commonj +{ + namespace sdo + { + + + + + SAX2Parser::SAX2Parser() + { + setter = 0; + parserError = false; + currentFile = 0; + } + + SAX2Parser::SAX2Parser(ParserErrorSetter* insetter) + { + setter = insetter; + parserError = false; + currentFile = 0; + } + + SAX2Parser::~SAX2Parser() + { + // xmlCleanupParser(); + if (currentFile != 0)delete currentFile; + + } + + const char* SAX2Parser::getCurrentFile() const + { + return currentFile; + } + + int SAX2Parser::parse(const char* filename) + { + + parserError = false; + xmlSAXHandlerPtr handler = &SDOSAX2HandlerStruct; + + if (currentFile != 0) + { + delete currentFile; + } + currentFile = new char[strlen(filename)+1]; + strcpy(currentFile,filename); + + int rc = xmlSAXUserParseFile(handler, this, filename); + if (rc == -1) + { + sdo_error(this, "xmlSAXUserParseFile returned an error %d", rc); + SDO_THROW_EXCEPTION("parse", SDOFileNotFoundException,messageBuffer); + } + return rc; + } + + void SAX2Parser::startDocument() + { + } + + void SAX2Parser::endDocument() + { + } + + void SAX2Parser::startElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + } + + void SAX2Parser::endElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI) + { + } + + void SAX2Parser::characters(const SDOXMLString& chars) + { + } + + + void SAX2Parser::warning(const char* msg, va_list args) + { + // warnings are perhaps too frequent + // vsprintf(messageBuffer, msg, args); + // if (setter != 0)setter->setError(messageBuffer); + } + + void SAX2Parser::fatalError(const char* msg, va_list args) + { + parserError = true; + vsprintf(messageBuffer, msg, args); + if (setter != 0)setter->setError(messageBuffer); + } + + void SAX2Parser::error(const char* msg, va_list args) + { + vsprintf(messageBuffer, msg, args); + if (setter != 0)setter->setError(messageBuffer); + } + + void SAX2Parser::stream(std::istream& input) + { + char buffer[100]; + parserError = false; + xmlSAXHandlerPtr handler = &SDOSAX2HandlerStruct; + xmlParserCtxtPtr ctxt; + + input.read(buffer,4); + ctxt = xmlCreatePushParserCtxt(handler, this, + buffer, input.gcount(), NULL); + + while (input.read(buffer,100)) + { + xmlParseChunk(ctxt, buffer, input.gcount(), 0); + + } + + xmlParseChunk(ctxt, buffer, input.gcount(), 1); + xmlFreeParserCtxt(ctxt); + + if (parserError) + { + SDO_THROW_EXCEPTION("stream", SDOXMLParserException,messageBuffer); + } + + } + + + std::istream& operator>>(std::istream& input, SAX2Parser& parser) + { + parser.stream(input); + return input; + } + + + } // End - namespace sdo +} // End - namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.h new file mode 100644 index 0000000000..603a89b5f2 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.h @@ -0,0 +1,103 @@ +/* + * + * 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:15 $ */ + +#ifndef _SAX2PARSER_H_ +#define _SAX2PARSER_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SDOXMLString.h" +#include "commonj/sdo/SAX2Namespaces.h" +#include "commonj/sdo/SAX2Attributes.h" +#include "commonj/sdo/ParserErrorSetter.h" + + + +#include "sstream" +namespace commonj +{ + namespace sdo + { + +/** + * SAX2Parser holds the methods which will be called back. + * The implementation uses libxml, which provides callbacks for + * errors, warnings , elements etc. These methods correspond to thos + * callbacks. + * Callbacks from libxml to these C methods are converted into calls + * to the C++ equivalent (with some parameter manipulation + * In the callback methods the void* ctx is a pointer to 'this' SAX2Parser + */ + class SAX2Parser + { + + public: + + SAX2Parser(); + + SAX2Parser(ParserErrorSetter* insetter); + + virtual ~SAX2Parser(); + + virtual int parse (const char* filename); + + virtual void startDocument(); + virtual void endDocument(); + + virtual void startElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void endElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI); + + virtual void characters(const SDOXMLString& chars); + + virtual void warning(const char* msg, va_list args); + + virtual void fatalError(const char* msg, va_list args); + + virtual void error(const char* msg, va_list args); + + virtual void stream(std::istream& input); + + friend std::istream& operator>>(std::istream& input, SAX2Parser& parser); + + ParserErrorSetter* setter; + bool parserError; + + char messageBuffer[1024]; + + virtual const char* getCurrentFile() const; + private: + + char* currentFile; + + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_SAX2PARSER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDO.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDO.h new file mode 100644 index 0000000000..bdcb87d5c3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDO.h @@ -0,0 +1,56 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/Property.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/SDORuntimeException.h" +#include "commonj/sdo/PropertyList.h" +#include "commonj/sdo/Sequence.h" +#include "commonj/sdo/TypeList.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/DataObjectList.h" +#include "commonj/sdo/XSDHelper.h" +#include "commonj/sdo/XMLHelper.h" +#include "commonj/sdo/EqualityHelper.h" +#include "commonj/sdo/CopyHelper.h" +#include "commonj/sdo/SdoRuntime.h" +#include "commonj/sdo/HelperProvider.h" +#include "commonj/sdo/SDODate.h" +#include "commonj/sdo/DataGraph.h" +#include "commonj/sdo/ChangeSummary.h" +#include "commonj/sdo/export.h" +#include "commonj/sdo/SDOUtils.h" +#include "commonj/sdo/ChangedDataObjectList.h" +#include "commonj/sdo/DataFactory.h" +#include "commonj/sdo/DataObjectInstance.h" +#include "commonj/sdo/DefaultLogWriter.h" +#include "commonj/sdo/Logger.h" +#include "commonj/sdo/LogWriter.h" +#include "commonj/sdo/RefCountingPointer.h" +#include "commonj/sdo/RefCountingObject.h" +#include "commonj/sdo/SdoCheck.h" +#include "commonj/sdo/Setting.h" +#include "commonj/sdo/SettingList.h" +#include "commonj/sdo/XMLDocument.h" +#include "commonj/sdo/DASValue.h" +#include "commonj/sdo/XpathHelper.h" + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.cpp new file mode 100644 index 0000000000..50ae8b2297 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.cpp @@ -0,0 +1,52 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/SDODate.h" + +namespace commonj{ +namespace sdo{ + + + SDODate::~SDODate() + { + } + + SDODate::SDODate(time_t inval) + { + value = inval; + } + + /////////////////////////////////////////////////////////////////////////// + // + /////////////////////////////////////////////////////////////////////////// + + const time_t SDODate::getTime(void) const + { + return value; + } + + const char* SDODate::ascTime(void) const + { + return asctime(localtime(&value)); + } + +}; +}; +// end - namespace sdo + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.h new file mode 100644 index 0000000000..da900cb298 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.h @@ -0,0 +1,77 @@ +/* + * + * 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:15 $ */ + +#ifndef _SDO_SDODATE_H_ +#define _SDO_SDODATE_H_ + + +#include "commonj/sdo/export.h" +#include "time.h" + + + + +namespace commonj{ +namespace sdo{ + + + /////////////////////////////////////////////////////////////////////////// + // A representation of the type of a date. + /////////////////////////////////////////////////////////////////////////// + +/** + * SDODate - a means of hiding the time_t. + * The SDO API in several places uses method overloads to allow the + * same method to set many types of data. As time_t and long are + * sometimes synonymous, it was not possible to have a time_t and a + * long method, so SDODate simply wraps the time_t. + * SDODate also allows modifcation of the implementation, as time_t is + * only a short-term solution - better date/time handling is required. + */ + +class SDODate +{ + +public: + + + virtual SDO_API ~SDODate(); + + SDO_API SDODate(time_t inval); + + /** + * Hand out the date as a time_t + */ + virtual SDO_API const time_t getTime() const; + + /** + * Format the date as a string + */ + + virtual const char* ascTime(void) const; + + +private: + time_t value; +}; + +}; +}; +#endif //_SDO_SDODATE_H_ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDORuntimeException.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDORuntimeException.cpp new file mode 100644 index 0000000000..e25f6789e1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDORuntimeException.cpp @@ -0,0 +1,227 @@ +/* + * + * 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: 2006/01/23 16:39:24 $ */ + +#include "commonj/sdo/SDORuntimeException.h" + +#include + +// ======================================================================== +// Constructor +// ======================================================================== +SDORuntimeException :: SDORuntimeException(const char* name, + severity_level sev, + const char* msg_text) + : severity(sev),location_set(0) +{ + class_name = new char[strlen(name) + 1]; + strcpy(class_name,name); + message_text = new char[strlen(msg_text)+1]; + strcpy(message_text,msg_text); + +} // end SDORuntimeException constuctor + +// ======================================================================== +// Constructor +// ======================================================================== +SDORuntimeException :: SDORuntimeException(const SDORuntimeException& c) + : + severity(c.getSeverity()), location_set(c.location_set) + +{ + class_name = new char[strlen(c.getEClassName()) + 1]; + strcpy(class_name, c.getEClassName()); + message_text = new char[strlen(c.getMessageText())+1]; + strcpy(message_text,c.getMessageText()); + for (int i=0;i +#include + +using namespace std; + + +/** SDORuntimeException - Exception base class. + * + * + * Description : + * ------------- + * SDO exception class definition + * + * This is intended as a base class. + * + * Parent Classes : + * ---------------- + * none + * + * Public Member functions: + * ------------------------ + * + * Constructors : + * SDORuntimeExceptionm(severity_level sev=severe, + * const string &msg_text=""); + * + * creates the exception object. Parameters are: + * sev: the severity of the exception (Error, Severe) + * msg_text: descriptive message_text + * + * copy constructor not necessary + * + * Destructor : + * virtual ~SDORuntimeException(); + * + * Assignment operator: + * not necessary + * + * void setSeverity(severity_level sev); + * set the exception severity + * + * void setMessageText(const char* msg_text); + * set the message text associated with the exception. (This text should + * come from a message catalog as it may be written to stdout/stderr at + * some point) + * + * void setExceptionLocation(const char* file, + * unsigned long line, + * const char* function=""); + * + * adds the location of the exception. Parameters + * file: the filename from where the exception is being created + * (from __FILE__) + * line: the line number from where the exception is being created + * (from __LINE__) + * function: The function name from where the exception is being created + * + * severity_level getSeverity() const; + * returns the severity of the exception + * + * const char* getMessageText() const; + * returns the message text that describes this exception. + * + * const tring& getFileName() const; + * returns the file name from the location information in the exception + * + * unsigned long getLineNumber() const; + * returns the line number from the location information in the exception + * + * const char* getFunctionName() const; + * returns the function name from the location information in the exception + * + * Private Data Members : + * ---------------------- + * severity_level severity; * Severity of exception + * string message_text; * Message associated with exception + * string file_name; * File name (from __FILE__) + * unsigned long line_number; * Line number (from __LINE__) + * string function_name; * Function name + * + */ + +class SDORuntimeException +{ + public: + // Constructor + enum severity_level + { + Normal, + Warning, + Error, + Severe + }; + + SDO_API SDORuntimeException(const char *name="SDORuntimeException", + severity_level sev=Severe, + const char* msg_text=""); + + SDO_API SDORuntimeException(const SDORuntimeException& c); + + // Destructor + virtual SDO_API ~SDORuntimeException(); + + /** getEClassName() get the exception class + * + * returns the name of the exception class, which will be + * a subclass of SDORuntimeException + */ + + SDO_API const char* getEClassName() const; + + /** getSeverity returns a level from severity_levels + * + * Return severity + * from the enumerator severity_levels, which is: + * + * Normal,Warning, Error,Severe + */ + + SDO_API severity_level getSeverity() const; + + /** + * Return message text associated with exception + */ + + SDO_API const char* getMessageText() const; + + /** getFileName() the file where the exception occurred + * + * Return file name where exception was raised + */ + + SDO_API const char* getFileName() const; + + /** getLineNumber gives the line where the excepion occurred + * + * Return line number where exception was raised + */ + + SDO_API unsigned long getLineNumber() const; + + /** getFunctionName give the name of the raising function + * + * Return function name where exception was raised + */ + + SDO_API const char* getFunctionName() const; + + + /** setSeverity + * + * sets an exception severity + */ + + SDO_API void setSeverity(severity_level sev); + + /** setMessageText + * + * set the message text associated with exception + */ + + SDO_API void setMessageText(const char* msg_text); + + + /** setExceptionLocation + * + * set exception location + */ + + SDO_API void setExceptionLocation(const char* file, + unsigned long line, + const char* function=""); + + SDO_API void setLocation(const char* file, + unsigned long line, + const char* function=""); + + SDO_API void trace(const char* text="%1:\n %3 %4 %2"); + + SDO_API virtual ostream& PrintSelf(ostream &os) const; + + /** operator << to write the exception + * + * ostream operator << + */ + + SDO_API friend ostream& operator<< (ostream &os, const SDORuntimeException &except); + + protected: + + private: + + char* class_name; + + severity_level severity; // Severity of exception + + char* message_text; // Description of exception + + //* Location where the exception was last thrown*handled + + class location + { + public: + char* file; //* File name (from __FILE__) + unsigned long line; //* Line number (from __LINE__) + char* function; //* Function name + }; + + // Array of locations + enum {num_locations=5}; + location locations[num_locations]; + + // Index into locations array + int location_set; + + +}; // End SDORuntimeException class definition + +/** + *************************************************************************** + * + * SDOOutOfMemoryException - Exception for no-storage + * + * *************************************************************************** + */ + +class SDOOutOfMemoryException: public SDORuntimeException +{ + public: + SDOOutOfMemoryException(unsigned long size) + : SDORuntimeException("SDOOutOfMemoryException", Severe, + "Unable to obtain storage of length " + size) + { + } + private: +}; // End SDOOutOfMemory class definition + +/** +*************************************************************************** +* +* SDOPathNotFoundException - Exception for bad path +* +**************************************************************************** +*/ +class SDOPathNotFoundException: public SDORuntimeException +{ + public: + SDOPathNotFoundException(const char* path) + : SDORuntimeException("SDOPathNotFoundException", Warning, + path) + { + } + private: +}; // End SDOPathNotFoundException class definition + +/** +*************************************************************************** +* +* SDOPropertyNotFoundException - Exception for property not found +* +**************************************************************************** +*/ + +class SDOPropertyNotFoundException: public SDORuntimeException +{ + public: + SDOPropertyNotFoundException(const char* name) + : SDORuntimeException("SDOPropertyNotFoundException", Warning, + name) + { + } + private: +}; // End SDOPropertyNotFoundException class definition + +/** +*************************************************************************** +* +* SDOTypeNotFoundException - Exception for type not found. +* +**************************************************************************** +*/ +class SDOTypeNotFoundException: public SDORuntimeException +{ + public: + SDOTypeNotFoundException(const char* name) + : SDORuntimeException("SDOTypeNotFoundException", Warning, + name) + { + } + private: +}; // End SDOTypeNotFoundException class definition + +/** +*************************************************************************** +* +* SDOFileNotFoundException - Exception for file not found +* +**************************************************************************** +*/ + +class SDOFileNotFoundException: public SDORuntimeException +{ + public: + SDOFileNotFoundException(const char* name) + : SDORuntimeException("SDOFileNotFoundException", Warning, + name) + { + } + private: +}; // End SDOFileNotFoundException class definition +/** +*************************************************************************** +* +* SDOPropertyNotSetException - Exception for asking for the value of an +* unset/undefaulted prop +* +**************************************************************************** +*/ +class SDOPropertyNotSetException: public SDORuntimeException +{ + public: + SDOPropertyNotSetException(const char* name) + : SDORuntimeException("SDOPropertyNotSetException", Warning, + name) + { + } + private: +}; // End SDOPropertyNotSetException class definition +/** +*************************************************************************** +* +* SDOUnsupportedOperationException - Invalid action or unimplemented method. +* +**************************************************************************** +*/ +class SDOUnsupportedOperationException: public SDORuntimeException +{ + public: + SDOUnsupportedOperationException(const char* name) + : SDORuntimeException("SDOUnsupportedOperationException", Warning, + name) + { + } + private: +}; // End SDOTypeNotFoundException class definition + +/** +*************************************************************************** +* +* SDOInvalidConversionException - Invalid conversion - cannot convert to type. +* +**************************************************************************** +*/ +class SDOInvalidConversionException: public SDORuntimeException +{ + public: + SDOInvalidConversionException(const char* name) + : SDORuntimeException("SDOInvalidConversionException", Warning, + name) + { + } + private: +}; // End SDOTypeNotFoundException class definition +/** +*************************************************************************** +* +* SDOIllegalArgumentException - Invalid argument passed (null name?). +* +**************************************************************************** +*/ +class SDOIllegalArgumentException: public SDORuntimeException +{ + public: + SDOIllegalArgumentException(const char* name) + : SDORuntimeException("SDOIllegalArgumentException", Warning, + name) + { + } + private: +}; // End SDOTypeNotFoundException class definition +/** +**************************************************************************** +* +* SDOIndexOutOfRangeException - element index not in a list. +* +**************************************************************************** +*/ +class SDOIndexOutOfRangeException: public SDORuntimeException +{ + public: + SDOIndexOutOfRangeException(const char* name) + : SDORuntimeException("SDOIndexOutOfRangeException", Warning, + name) + { + } + private: +}; // End SDOTypeNotFoundException class definition + +/** +*************************************************************************** +* +* SDOXMLParserException - XMLParser error +* +**************************************************************************** +*/ +class SDOXMLParserException: public SDORuntimeException +{ + public: + SDOXMLParserException(const char* name) + : SDORuntimeException("SDOXMLParserException", Warning, + name) + { + } + private: +}; // End SDOTypeNotFoundException class definition + +/* +*************************************************************************** +* +* Macro definitions +* +**************************************************************************** +*/ +/** + * ========================================================================= + * Macro - SDO_THROW_EXCEPTION + * + * adds the current file name, line number and function name to the exception. + * then throws the exception. + * The parameter 'function_name' should be the name of the function throwing + * this exception. + * The parameter 'type' is the class of exception to throw and must be a + * SDORuntimeException or a class derived from SDORuntimeException. + * The parameter 'parameter' is the construction parameter for the exception + * ========================================================================= +*/ + + #define SDO_THROW_EXCEPTION(function_name, type, parameter ) \ + {\ + type ex(parameter); \ + ex.setExceptionLocation(__FILE__,__LINE__,#function_name); \ + throw ex;\ + } + +/** + ========================================================================= + * Macro - SDO_RETHROW_EXCEPTION + * + * adds the current file name, line number and function name to the exception. + * then re-throws the exception. + * The parameter 'function_name' should be the name of the function throwing + * this exception. + * ========================================================================= +*/ + #define SDO_RETHROW_EXCEPTION(function_name, exception) \ + (exception).setLocation(__FILE__,__LINE__,#function_name); \ + throw; + +/** + * ========================================================================= + * Macro - SDO_HANDLE_EXCEPTION + * + * adds the current file name, line number and function name to the exception. + * Writes an exception trace entry then continues. + * The parameter 'function_name' should be the name of the function handling + * this exception. + * ========================================================================= +*/ + #define SDO_HANDLE_EXCEPTION(function_name, exception) \ + {\ + (exception).setLocation(__FILE__,__LINE__,#function_name); \ + (exception).Trace("Exception handled by %1: \n %3 %4 %2");\ + } + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.cpp new file mode 100644 index 0000000000..d52be22b4c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.cpp @@ -0,0 +1,1303 @@ +/* + * + * 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: 2006/02/08 14:43:56 $ */ + +#include "commonj/sdo/SDOSAX2Parser.h" + +#include "commonj/sdo/SDORuntimeException.h" +#include "commonj/sdo/ChangeSummary.h" +#include "commonj/sdo/XSDPropertyInfo.h" +#include "commonj/sdo/XMLQName.h" +#include "commonj/sdo/DASProperty.h" +#include "commonj/sdo/Logging.h" +#include "commonj/sdo/DASType.h" +#include "commonj/sdo/XSDTypeInfo.h" +#include "commonj/sdo/TypeImpl.h" +#include "commonj/sdo/DataObjectImpl.h" +#include "commonj/sdo/DataFactoryImpl.h" + +namespace commonj +{ + namespace sdo + { + + SDOSAX2Parser::SDOSAX2Parser( + DataFactoryPtr df, + const SDOXMLString& targetNamespace, + DataObjectPtr& rootDO, + ParserErrorSetter* insetter + ) + + : dataFactory(df), + targetNamespaceURI(targetNamespace), + rootDataObject(rootDO), + currentDataObject(0), + isDataGraph(false), + ignoreEvents(false), + dealingWithChangeSummary(false), + csbuilder(0), + SAX2Parser(insetter) + + + { + reset(); + if (targetNamespace.isNull()) + { + targetNamespaceURI = ""; + } + rootDataObject = 0; + } + + SDOSAX2Parser::~SDOSAX2Parser() + { + } + + void SDOSAX2Parser::reset() + { + rootDataObject = 0; + currentDataObject = 0; + isDataGraph = false; + ignoreEvents = false; + changeSummary = false; + IDMap.empty(); + IDRefs.empty(); + } + + + void SDOSAX2Parser::startDocument() + { + LOGINFO(INFO,"SDOSAX2Parser: startDocument"); + setNamespaces = true; + reset(); + } + + void SDOSAX2Parser::endDocument() + { + LOGENTRY(INFO,"SDOSAX2Parser: endDocument"); + // Iterate over IDREFs list and set references + ID_REFS::iterator refsIter; + for (refsIter = IDRefs.begin(); refsIter != IDRefs.end(); refsIter++) + { + try + { + const Type& type = refsIter->dataObject->getType(); + const Property& prop = refsIter->dataObject->getProperty(refsIter->property); + const Type& propType = ((TypeImpl&)type).getRealPropertyType(refsIter->property); + + // Allowing referenes to DataObjects only + if (!propType.isDataType()) + { + DataObjectPtr reffedDO; + ID_MAP::iterator idIter = IDMap.find(refsIter->value); + if (idIter != IDMap.end()) + { + reffedDO = idIter->second; + } + else + { + // assume it is an XPath? + + // Remove #/ from front of XPATH as getDataObject doeesnt + // support this yet - it does now + //SDOXMLString xpath(refsIter->value); + //if (xpath.firstIndexOf('#') == 0) + // xpath = xpath.substring(1); + //if (xpath.firstIndexOf('/') == 0) + // xpath = xpath.substring(1); + + reffedDO = rootDataObject->getDataObject(refsIter->value); + } + + if (!reffedDO) + { + continue; + } + + if (prop.isMany()) + { + DataObjectList& dol = refsIter->dataObject->getList(prop); + dol.append(reffedDO); + } + else + { + refsIter->dataObject->setDataObject(prop, reffedDO); + } + } + + } + catch (const SDORuntimeException&) + { + } + } + try { + // Now rebuild the changeSummary + if (csbuilder != 0) + { + csbuilder->buildChangeSummary(changeSummaryDO); + delete csbuilder; + csbuilder = 0; + } + } + catch (SDORuntimeException&) + { + } + + LOGEXIT(INFO,"SDOSAX2Parser: endDocument"); + } + + + bool SDOSAX2Parser::setDO(DataObjectPtr newDO, + SDOXMLString& propertyName) + { + LOGENTRY(INFO,"SDOSAX2Parser: setDO"); + + if (currentDataObject) + { + const Type& type = currentDataObject->getType(); + // go lower level so we can find open properties w/o exception + DataObject* dob = currentDataObject; + const PropertyImpl* pprop = ((DataObjectImpl*)dob)->getPropertyImpl(propertyName); + if (pprop == 0) + { + + LOGEXIT(INFO,"SDOSAX2Parser: setDO - exit1"); + return false; + } + + const Property& property = (Property&)*pprop; + const Type& propertyType = ((TypeImpl&)type).getRealPropertyType(propertyName); + if (currentDataObject->getType().isSequencedType()) + { + SequencePtr seq = currentDataObject->getSequence(); + seq->addDataObject(property, newDO); + } + else + { + if (!property.isMany()) + { + currentDataObject->setDataObject(propertyName, newDO); + } + else + { + DataObjectList& dol = currentDataObject->getList(propertyName); + dol.append(newDO); + } + } + } + + setCurrentDataObject(newDO); + + LOGEXIT(INFO,"SDOSAX2Parser: setDO - exit2"); + return true; + } + + void SDOSAX2Parser::handleOpenAttribute( + SDOXMLString& tns, + const char* propuri, + const char* propname, + const char* value) + { + // first, see if there is a global element or attribute corresponding... + try + { + DataFactory* df = dataFactory; + const PropertyImpl* prop = 0; + const TypeImpl* ti = + ((DataFactoryImpl*)df)->findTypeImpl(propuri,"RootType"); + + if (ti != 0) + { + prop = (const PropertyImpl*)ti->getPropertyImpl(propname); + } + else + { + ti = ((DataFactoryImpl*)df)->findTypeImpl(tns,"RootType"); + } + + if (ti != 0) + { + prop = (const PropertyImpl*)ti->getPropertyImpl(propname); + } + + if (prop == 0) + { + currentDataObject->setCString(propname,value); + return; + } + + DataObject* dob = currentDataObject; + + switch (prop->getTypeEnum()) + { + case Type::BooleanType: + ((DataObjectImpl*)dob)->defineBoolean(propname); + break; + case Type::ByteType: + ((DataObjectImpl*)dob)->defineByte(propname); + break; + case Type::CharacterType: + ((DataObjectImpl*)dob)->defineCharacter(propname); + break; + case Type::BytesType: + ((DataObjectImpl*)dob)->defineBytes(propname); + break; + case Type::StringType: + ((DataObjectImpl*)dob)->defineString(propname); + break; + case Type::ShortType: + ((DataObjectImpl*)dob)->defineShort(propname); + break; + case Type::IntegerType: + ((DataObjectImpl*)dob)->defineInteger(propname); + break; + case Type::LongType: + ((DataObjectImpl*)dob)->defineLong(propname); + break; + case Type::DoubleType: + ((DataObjectImpl*)dob)->defineDouble(propname); + break; + case Type::FloatType: + ((DataObjectImpl*)dob)->defineFloat(propname); + break; + case Type::DateType: + ((DataObjectImpl*)dob)->defineDate(propname); + break; + } // switch + + // regardless of what type the property now is, we can set CString , and the + // right conversion will happen + + currentDataObject->setCString(propname,value); + } + catch (SDORuntimeException) + { + } + return; + } + + + void SDOSAX2Parser::setAttributes( + SDOXMLString& tns, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + + LOGENTRY(INFO,"SDOSAX2Parser::setAttributes"); + + ////////////////////////////////////////////// + // The attributes are properties on the new DO + // Handle attributes + ////////////////////////////////////////////// + for (int i=0; i < attributes.size(); i++) + { + // Should ignore attributes like xsi:type + if (!(attributes[i].getUri().equalsIgnoreCase("http://www.w3.org/2001/XMLSchema-instance"))) + { + try + { + const SDOXMLString& propertyName = getSDOName(*currentDataObjectType, attributes[i].getName()); + DataObject* dob = currentDataObject; + const PropertyImpl* pprop = ((DataObjectImpl*)dob)->getPropertyImpl(propertyName); + if (pprop == 0 ) + { + if (currentDataObject->getType().isOpenType()) + { + // if its an open type, then attributes will be allowed to have + // an invalid name, and setCString will create them all as bytes + handleOpenAttribute(tns, (const char*)attributes[i].getUri(), + (const char*)attributes[i].getName(), + (const char*)attributes[i].getValue()); + + } + else + { + LOGERROR_1(WARNING,"SDOSAX2Parser: Property not found on closed type (ignored):%s", + (const char*)(attributes[i].getName())); + } + } + else + { + const Property& prop = (Property&)*pprop; + SDOXMLString propValue; + + XSDPropertyInfo* pi = (XSDPropertyInfo*)((DASProperty*)&prop)->getDASValue("XMLDAS::PropertyInfo"); + if (pi && pi->getPropertyDefinition().isQName) + { + XMLQName qname(attributes[i].getValue(), + documentNamespaces, namespaces); + propValue = qname.getSDOName(); + } + else + { + propValue = attributes[i].getValue(); + } + + if ((pi && pi->getPropertyDefinition().isIDREF) + || prop.isReference()) + { + // remember this value to resolve later + IDRef ref(currentDataObject, attributes[i].getName(), propValue); + IDRefs.insert(IDRefs.end(), ref); + } + else + { + if (pi && pi->getPropertyDefinition().isID) + { + // add this ID to the map + IDMap[propValue] = currentDataObject; + } + // Always set the property as a String. SDO will do the conversion + currentDataObject->setCString(attributes[i].getName(), propValue); + } + } + } + catch (const SDOPropertyNotFoundException&) + { + LOGERROR_1(WARNING,"SDOSAX2Parser: Error processing attribute (ignored):%s", + (const char*)(attributes[i].getName())); + } + } + } // End iterate over attributes + + LOGEXIT(INFO,"SDOSAX2Parser:setAttributes"); + + } + + + const PropertyImpl* SDOSAX2Parser::handleOpenType( + SDOXMLString& tns, + const SDOXMLString& localname, + DataObjectImpl* dob, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes, + SDOXMLString& xsitypeURI, + SDOXMLString& xsitypeName, + bool bToBeNull) + { + // first, see if there is a global element or attribute corresponding... + const PropertyImpl* pprop; + DataObjectPtr newDO = 0; + try + { + DataFactory* df = dataFactory; + const TypeImpl* ti = 0; + const PropertyImpl* prop = 0; + SDOXMLString propertyName; + + ti = ((DataFactoryImpl*)df)->findTypeImpl(tns,"RootType"); + if (ti != 0) + { + propertyName = getSDOName((Type&)*ti, localname); + prop = ti->getPropertyImpl(propertyName); + } + else + { + propertyName = localname; + } + + if (prop != 0) + { + if (prop->isMany()) + { + pprop = ((DataObjectImpl*)dob)->defineList(propertyName); + + // the type of the list needs to be set, as chars sets a CString + try + { + DataObjectList& dl = ((DataObjectImpl*)dob)->getList(propertyName); + ((DataObjectListImpl*)&dl)->setType(prop->getType().getURI(), + prop->getType().getName()); + } + catch (SDORuntimeException) + { + // let it pass - the type will be Bytes + } + + if (prop->getType().isDataType()) + { + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + } + else + { + newDO = dataFactory->create( + prop->getType().getURI(), + prop->getType().getName()); + DataObjectList& dol = dob->getList(propertyName); + dol.append(newDO); + setCurrentDataObject(newDO); + setAttributes(tns, namespaces,attributes); + } + return pprop; + } + else + { + switch (prop->getTypeEnum()) + { + case Type::BooleanType: + pprop = ((DataObjectImpl*)dob)->defineBoolean(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + break; + case Type::ByteType: + pprop = ((DataObjectImpl*)dob)->defineByte(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + break; + case Type::CharacterType: + pprop = ((DataObjectImpl*)dob)->defineCharacter(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + break; + case Type::BytesType: + pprop = ((DataObjectImpl*)dob)->defineBytes(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + break; + case Type::StringType: + pprop = ((DataObjectImpl*)dob)->defineString(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + break; + case Type::ShortType: + pprop = ((DataObjectImpl*)dob)->defineShort(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + break; + case Type::IntegerType: + pprop = ((DataObjectImpl*)dob)->defineInteger(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + break; + case Type::LongType: + pprop = ((DataObjectImpl*)dob)->defineLong(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + break; + case Type::DoubleType: + pprop = ((DataObjectImpl*)dob)->defineDouble(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + break; + case Type::FloatType: + pprop = ((DataObjectImpl*)dob)->defineFloat(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + break; + case Type::DateType: + pprop = ((DataObjectImpl*)dob)->defineDate(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + break; + case Type::DataObjectType: + pprop = ((DataObjectImpl*)dob)->defineDataObject(propertyName, + prop->getType().getURI(), prop->getType().getName()); + newDO = dataFactory->create( + prop->getType().getURI(), + prop->getType().getName()); + dob->setDataObject(propertyName, newDO); + setCurrentDataObject(newDO); + setAttributes(tns,namespaces,attributes); + break; + } + } // else + } // if prop != 0 + else + { + // The type is open, and the property doesnt exist, so we are creating + // a property, and need to find out the type to create. + // As I cannot tell if its a single value or many valued, I create all + // as many valued + // could be data object or primitive. All primitives will appear + // as bytes. + if (!xsitypeName.isNull()) + { + // it has a type from xsi:type + pprop = ((DataObjectImpl*)dob)->defineList(propertyName); + newDO = dataFactory->create(xsitypeURI, xsitypeName); + DataObjectList& dol = dob->getList(propertyName); + dol.append(newDO); + setCurrentDataObject(newDO); + setAttributes(tns,namespaces,attributes); + } + else + { + pprop = ((DataObjectImpl*)dob)->defineList(propertyName); + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + } + } + return pprop; + } + catch (SDORuntimeException) + { + // fail to find the property or create a dummy + return 0; + } + } + + void SDOSAX2Parser::startElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + + { + LOGENTRY(INFO,"SDOSAX2Parser: startElementNs"); + + LOGINFO_1(INFO,"SDOSAX2Parser: startElementNs:%s", + (const char*)localname); + + bool bToBeNull = false; + // Save the namespace information from the first element + if (setNamespaces) + { + documentNamespaces = namespaces; + setNamespaces = false; + } + + if (ignoreEvents) + { + // Check for the tag we are waiting for + if ( (ignoreTag.localname.equals(localname)) + && (ignoreTag.uri.equals(URI)) + && (ignoreTag.prefix.equals(prefix)) ) + { + ignoreTag.tagCount++; + } + LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit1"); + return; + } + + if (URI.equalsIgnoreCase("http://www.w3.org/2001/XMLSchema")) + { + // ignore anything within a schema + LOGINFO_1(INFO,"SDOSAX2Parser ignores schema element:%s", + (const char *)localname); + + // We need to ignore all events until the end tag for this element + ignoreEvents = true; + ignoreTag.localname = localname; + ignoreTag.uri = URI; + ignoreTag.prefix = prefix; + ignoreTag.tagCount = 0; + return; + } + + + if (dealingWithChangeSummary) + { + if (csbuilder == 0) + { + LOGERROR(ERROR,"SDOSAX2Parser:Parser builds summary with no builder"); + LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit2"); + return; + } + csbuilder->processStart( + localname, + prefix, + URI, + namespaces, + attributes); + LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit3"); + return; + } + + + if (URI.equalsIgnoreCase(Type::SDOTypeNamespaceURI)) + { + /////////////////////////////////////////////////////////////////////// + // Handle datagraph + /////////////////////////////////////////////////////////////////////// + if (localname.equalsIgnoreCase("datagraph")) + { + // Remember this is a datagraph. The root DO will be created + // later when we can have a better guess at the namespaceURI + isDataGraph = true; + } // end handling sdo:datagraph + + //////////////////////////////////// + // Handle ChangeSummary on datagraph + //////////////////////////////////// + if (localname.equals("changeSummary")) + { + changeSummary = true; + changeSummaryDO = currentDataObject; + + csbuilder = new ChangeSummaryBuilder( + dataFactory, rootDataObject ); + + changeSummaryLogging = true; + + + SDOXMLString logging = attributes.getValue("logging"); + if (!logging.isNull()) + { + if (logging.equals("false")) + { + changeSummaryLogging = false; + } + } + + LOGINFO(INFO,"SDOSAX2Parser:Start change summary"); + dealingWithChangeSummary = true; + LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit4"); + return; + + } + + } + else + { + /////////////////////////////////////////////////////////////////////// + // Each element is a DataObject or a Property on the current DO + /////////////////////////////////////////////////////////////////////// + DataObjectPtr newDO = 0; + + SDOXMLString typeURI, typeName, propertyName; + + /////////////////////////////////////////////////////////////////////// + // Determine the type. It is either specified by the xsi:type attribute + // or the localname is the name of a property on "RootType" + /////////////////////////////////////////////////////////////////////// + int i; + for (i=0; i < attributes.size(); i++) + { + if (attributes[i].getUri().equalsIgnoreCase("http://www.w3.org/2001/XMLSchema-instance")) + { + if (attributes[i].getName().equalsIgnoreCase("type")) + { + SDOXMLString fullTypeName = attributes[i].getValue(); + SDOXMLString pref; + + int index = fullTypeName.firstIndexOf(':'); + if (index < 0) + { + typeName = fullTypeName; + } + else + { + // Is the namespace prefix defined? + typeName = fullTypeName.substring(index+1); + pref = fullTypeName.substring(0, index); + } + + // Convert the prefix to a namespace URI + const SDOXMLString* namespaceURI = namespaces.find(pref); + if (namespaceURI == 0) + { + namespaceURI = documentNamespaces.find(pref); + } + if (namespaceURI != 0) + { + typeURI = *namespaceURI; + } + } + else if (attributes[i].getName().equalsIgnoreCase("nil")) + { + if (attributes[i].getValue().equalsIgnoreCase("true")) + { + // the current setting needs to be setNull + bToBeNull = true; + } + } + } + } // End - attribute loop + + if (typeURI.isNull()) + { + typeURI = ""; + } + + SDOXMLString tns = URI; + + try + { + if (currentDataObject == 0) + { + // This element should become the root data object + + // Target namespace will be: + // the targetNamespaceURI if specified + // or the URI of xsi:type if specified + // or the URI of this element + if (!typeURI.equals("")) + { + tns = typeURI; + } + + if (!targetNamespaceURI.isNull() && !targetNamespaceURI.equals("")) + { + tns = targetNamespaceURI; + } + + // Check for localname as a property of the RootType + // if we do not already know the type + if (typeName.isNull()) + { + const Type& rootType = dataFactory->getType(tns, "RootType"); + propertyName = getSDOName(rootType, localname); + const Type& newType = + ((TypeImpl&)(rootType)).getRealPropertyType(propertyName); + + typeURI = newType.getURI(); + typeName = newType.getName(); + } + + // Create the root DataObject + if (isDataGraph) + { + DataObjectPtr rootdo = dataFactory->create(tns, "RootType"); + setCurrentDataObject(rootdo); + changeSummaryDO = currentDataObject; + } + else + { + DataFactory* df = dataFactory; + ((DataFactoryImpl*)df)->setRootElementName(localname); + } + + // NOTE: always creating DO doesn't cater for DataType as top element + + const Type& tp = dataFactory->getType(typeURI,typeName); + if (tp.isDataType()) + { + newDO = dataFactory->create(tns, "RootType"); + currentPropertySetting = PropertySetting(newDO, localname, + bToBeNull); + } + else + { + + newDO = dataFactory->create(typeURI, typeName); + + // get the type definition, and see if its an extended primitive. + + XSDTypeInfo* typeInfo = (XSDTypeInfo*) + ((DASType*)&tp)->getDASValue("XMLDAS::TypeInfo"); + if (typeInfo) + { + const TypeDefinition& typeDefinition = typeInfo->getTypeDefinition(); + if (typeDefinition.isExtendedPrimitive) + { + // The name of this element is the name of a property on the current DO + currentPropertySetting = PropertySetting(newDO, localname, + bToBeNull); + } + } + } + + } // End - currentDataObject == 0 + + else + { // currentDataObject != 0 + + // Get the Property from the dataObject + propertyName = getSDOName(*currentDataObjectType, localname); + const Type& type = currentDataObject->getType(); + + + // go lower level so we can find open properties w/o exception + DataObject* dob = currentDataObject; + const PropertyImpl* pprop = ((DataObjectImpl*)dob)->getPropertyImpl(propertyName); + if (pprop == 0) + { + if (type.isOpenType()) + { + pprop = handleOpenType( + tns, + localname, + (DataObjectImpl*)dob, + namespaces, + attributes, + typeURI, + typeName, + bToBeNull); + } + if (pprop == 0) + { + // this is an open property , we will need to create it + LOGERROR_1(WARNING,"SDOSAX2Parser Unknown element:%s", + (const char *)localname); + + // We need to ignore all events until the end tag for this element + ignoreEvents = true; + ignoreTag.localname = localname; + ignoreTag.uri = URI; + ignoreTag.prefix = prefix; + ignoreTag.tagCount = 0; + if (setter != 0) + { + char *msg = new char[strlen((const char*)localname) + 32]; + if (msg) { + sprintf(msg,"Parser found unknown element %s", + (const char*)localname); + setter->setError( msg ); + delete msg; + } + } + } + LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit5"); + return; + } + else + { + + const Property& prop = (Property&)*pprop; + const TypeImpl* propType = ((TypeImpl&)type).getRealPropertyTypeImpl(propertyName); + if (propType == 0) + { + // could be a previously created open type property + propType = (const TypeImpl*)pprop->getTypeImpl(); + } + if (propType != 0) + { + XSDPropertyInfo* pi = (XSDPropertyInfo*)((DASProperty*)&prop)->getDASValue("XMLDAS::PropertyInfo"); + if ((pi && pi->getPropertyDefinition().isIDREF) + || prop.isReference()) + { + // The name of this element is the name of a property on the current DO + currentPropertySetting = PropertySetting(currentDataObject, propertyName, bToBeNull, + true); + } + + // If it is a DataType then we need set the value + else if (propType->isDataType() ) + { + // The name of this element is the name of a property on the current DO + currentPropertySetting = PropertySetting(currentDataObject, propertyName, + bToBeNull); + } + else + { + + // If typeName is not set then create object of Type of Property + // otherwise use the typeURI and typeName specified by e.g. xsi:type + if (typeName.isNull()) + { + newDO = dataFactory->create(propType->getURI(), propType->getName()); + } + else + { + newDO = dataFactory->create(typeURI, typeName); + } + + XSDTypeInfo* typeInfo = (XSDTypeInfo*) + ((DASType*)propType)->getDASValue("XMLDAS::TypeInfo"); + if (typeInfo && typeInfo->getTypeDefinition().isExtendedPrimitive) + { + // The name of this element is the name of a property on the current DO + currentPropertySetting = PropertySetting(newDO, "value", bToBeNull); + } + + } + } + } // End // currentDataObject != 0 + } // end prop != 0 + if (newDO) + { + if (!setDO(newDO, propertyName)) + { + LOGERROR_1(WARNING,"SDOSAX2Parser Unknown element:%s", + (const char *)localname); + + // We need to ignore all events until the end tag for this element + ignoreEvents = true; + ignoreTag.localname = localname; + ignoreTag.uri = URI; + ignoreTag.prefix = prefix; + ignoreTag.tagCount = 0; + if (setter != 0) + { + char *msg = new char[strlen((const char*)localname) + 32]; + if (msg) { + sprintf(msg,"Parser found unknown element %s", + (const char*)localname); + setter->setError( msg ); + delete msg; + } + } + LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit6"); + return; + } + } + } // end try + + catch (const SDOTypeNotFoundException& ) + { + + LOGERROR_1(WARNING,"SDOSAX2Parser Unknown element:%s", + (const char *)localname); + + // We need to ignore all events until the end tag for this element + ignoreEvents = true; + ignoreTag.localname = localname; + ignoreTag.uri = URI; + ignoreTag.prefix = prefix; + ignoreTag.tagCount = 0; + if (setter != 0) + { + char *msg = new char[strlen((const char*)localname) + 32]; + if (msg) { + sprintf(msg,"Parser found unknown element %s", + (const char*)localname); + setter->setError( msg ); + delete msg; + } + } + LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit7"); + return; + } + +#ifdef _DEBUG + catch (const SDOPropertyNotFoundException& e ) +#else + catch (const SDOPropertyNotFoundException& ) +#endif + { + LOGERROR_1(WARNING,"SDOSAX2Parser Unknown element exception:%s", + (const char *)localname); + LOGSDOEXCEPTION(WARNING,"Exception:",e); + + // We need to ignore all events until the end tag for this element + ignoreEvents = true; + ignoreTag.localname = localname; + ignoreTag.uri = URI; + ignoreTag.prefix = prefix; + ignoreTag.tagCount = 0; + if (setter != 0) + { + char *msg = new char[strlen((const char*)localname) + 32]; + if (msg) + { + sprintf(msg,"Parser found unknown element %s", + (const char*)localname); + setter->setError( msg ); + delete msg; + } + } + LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit8"); + return; + } + + setAttributes(tns,namespaces, attributes); + + } + LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit9"); + } + + + void SDOSAX2Parser::endElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI) + { + + LOGENTRY(INFO,"SDOSAX2Parser: endElementNs"); + + if (localname.equals("changeSummary")) + { + // end of change summary + dealingWithChangeSummary = false; + LOGINFO(INFO,"SDOSAX2Parser: Finished change summary"); + LOGEXIT(INFO,"SDOSAX2Parser: endElementNs - exit1"); + return; + } + + if (dealingWithChangeSummary) + + { + if (csbuilder == 0) + { + LOGERROR(WARNING,"SDOSAX2Parser: End change summary with no builder"); + LOGEXIT(INFO,"SDOSAX2Parser: endElementNs - exit2"); + return; + } + csbuilder->processEnd(localname, + prefix, + URI); + LOGEXIT(INFO,"SDOSAX2Parser: endElementNs - exit3"); + return; + } + + + if (ignoreEvents) + { + // Check for the tag we are waiting for + if ( (ignoreTag.localname.equals(localname)) + && (ignoreTag.uri.equals(URI)) + && (ignoreTag.prefix.equals(prefix)) ) + { + if (ignoreTag.tagCount == 0) + { + ignoreEvents = false; + } + ignoreTag.tagCount--; + } + LOGEXIT(INFO,"SDOSAX2Parser: endElementNs - exit4"); + return; + } + + // If currentPropertySetting is set (name is not null) + // then we need to set the property now + if (!currentPropertySetting.name.isNull()) + { + if (currentPropertySetting.isNULL) + { + + currentPropertySetting.dataObject-> + setNull((const char*)currentPropertySetting.name); + + } + else if (!currentPropertySetting.value.isNull()) + { + try + { + const Type& tp = currentPropertySetting.dataObject->getType(); + XSDTypeInfo* typeInfo = (XSDTypeInfo*) + ((DASType*)&tp)->getDASValue("XMLDAS::TypeInfo"); + if (typeInfo && typeInfo->getTypeDefinition().isExtendedPrimitive) + { + const Property& p = currentPropertySetting.dataObject->getProperty( + "value"); + if (p.isMany()) + { + DataObjectList& dl = currentPropertySetting.dataObject-> + getList((const char*)"value"); + dl.append((const char*)currentPropertySetting.value); + } + else + { + currentPropertySetting.dataObject-> + setCString((const char*)"value", currentPropertySetting.value ); + } + if (dataObjectStack.size() == 0 || rootDataObject == dataObjectStack.top()) + { + currentDataObject = 0; + currentDataObjectType = 0; + } + else + { + dataObjectStack.pop(); + currentDataObject = dataObjectStack.top(); + currentDataObjectType = &(currentDataObject->getType()); + } + + } + else + { + if (currentPropertySetting.isIDREF) + { + // remember this value to resolve later + IDRef ref(currentPropertySetting.dataObject, + currentPropertySetting.name, + currentPropertySetting.value ); + IDRefs.insert(IDRefs.end(), ref); + } + else + { + if (currentPropertySetting.dataObject->getType().isSequencedType()) + { + SequencePtr seq = currentPropertySetting.dataObject->getSequence(); + seq->addCString(currentPropertySetting.name, currentPropertySetting.value); + } + // Always set the property as a String. SDO will do the conversion + + // It might be a single setting for a many-valued property. + // may throw SDOPropertyNotFoundException + + const Property& p = currentPropertySetting.dataObject->getProperty( + currentPropertySetting.name); + if (p.isMany()) + { + DataObjectList& dl = currentPropertySetting.dataObject-> + getList((const char*)currentPropertySetting.name); + dl.append((const char*)currentPropertySetting.value); + } + else + { + currentPropertySetting.dataObject-> + setCString((const char*)currentPropertySetting.name, currentPropertySetting.value ); + } + } + } + } +#ifdef _DEBUG + catch (const SDOPropertyNotFoundException& e) +#else + catch (const SDOPropertyNotFoundException&) +#endif + { + LOGSDOEXCEPTION(WARNING,"SDOSAX2Parser error attribute (ignored)",e); + } + } + currentPropertySetting = PropertySetting(); + + } + else + { + if (changeSummary + && changeSummaryLogging + && changeSummaryDO == currentDataObject) + { + // Set logging on for this DO before it is popped from stack + ChangeSummary* cs = currentDataObject->getChangeSummary(); + if (cs) + { + cs->beginLogging(); + } + changeSummary = false; + } + + if (dataObjectStack.size() == 0 || rootDataObject == dataObjectStack.top()) + { + currentDataObject = 0; + currentDataObjectType = 0; + } + else + { + dataObjectStack.pop(); + currentDataObject = dataObjectStack.top(); + currentDataObjectType = &(currentDataObject->getType()); + } + } + LOGEXIT(INFO,"SDOSAX2Parser: endElementNs - exit4"); + } + + + void SDOSAX2Parser::characters(const SDOXMLString& chars) + { + if (dealingWithChangeSummary) + { + if (csbuilder == 0) + { + LOGERROR(WARNING,"SDOSAX2Parser: no builder"); + return; + } + csbuilder->processChars(chars); + return; + } + + if (ignoreEvents) + return; + + // If currentPropertySetting is set (name is not null) + // then we need to accumulate the value + if (!currentPropertySetting.name.isNull()) + { + currentPropertySetting.value = currentPropertySetting.value + chars; + } + else + { + // If the current DataObject is a sequenced Type + // then add this as text to the sequence + if (currentDataObject && currentDataObjectType->isSequencedType()) + { + SequencePtr seq = currentDataObject->getSequence(); + if (seq) + { + seq->addText(chars); + } + } + } + } + + + void SDOSAX2Parser::setCurrentDataObject(DataObjectPtr currentDO) + { + currentDataObject = currentDO; + dataObjectStack.push(currentDataObject); + currentDataObjectType = &(currentDataObject->getType()); + if (rootDataObject == 0) + { + rootDataObject = currentDataObject; + } + } + + const SDOXMLString& SDOSAX2Parser::getSDOName(const Type& type, const SDOXMLString& localName) + { + +/* XSDTypeInfo* typeInfo = (XSDTypeInfo*)((DASType*)&type)->getDASValue("XMLDAS::TypeInfo"); + if (typeInfo) + { + const TypeDefinition& typeDefinition = typeInfo->getTypeDefinition(); + XmlDasPropertyDefs::const_iterator propsIter; + for (propsIter = typeDefinition.properties.begin(); propsIter != typeDefinition.properties.end(); propsIter++) + { + const PropertyDefinition& prop = *propsIter; + if (prop.localname.equals(localName)) + { + return prop.name; + } + for (int i=0;i< prop.substituteNames.size();i++) + { + if (prop.substituteLocalNames[i].equals(localName)) + { + return prop.substituteNames[i]; + // possibly should be return prop.name; + } + } + } + } + */ + + PropertyList pl = type.getProperties(); + for (int i = 0; i < pl.size(); i++) + { + XSDPropertyInfo* pi = (XSDPropertyInfo*)((DASProperty*)&pl[i])->getDASValue("XMLDAS::PropertyInfo"); + if (pi) + { + const PropertyDefinition& propdef = pi->getPropertyDefinition(); + if (localName .equals(propdef.localname)) + return propdef.name; + + for (int j=0;j< propdef.substituteNames.size();j++) + { + if (propdef.substituteLocalNames[j].equals(localName)) + { + return propdef.substituteNames[j]; + // possibly should be return propdef.name; + } + } + } + } + + + + return localName; + } + + + std::istream& operator>>(std::istream& input, SDOSAX2Parser& parser) + { + parser.stream(input); + + return input; + } + + std::istringstream& operator>>(std::istringstream& input, SDOSAX2Parser& parser) + { + parser.stream(input); + + return input; + } + + } // End - namespace sdo +} // End - namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.h new file mode 100644 index 0000000000..6b26bba83b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.h @@ -0,0 +1,169 @@ +/* + * + * 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:15 $ */ + +#ifndef _SDOSAX2PARSER_H_ +#define _SDOSAX2PARSER_H_ +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SAX2Parser.h" + +#include "commonj/sdo/DataFactory.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/SAX2Namespaces.h" +#include "commonj/sdo/PropertySetting.h" +#include "commonj/sdo/ChangeSummaryImpl.h" +#include "commonj/sdo/ChangeSummaryBuilder.h" + + +#include + +namespace commonj +{ + namespace sdo + { + + +/** + * SDOSAX2Parser implements SAX2Parser. + * This class gets called back by the libxml library, and + * deals with the creation of data objects from XML. + */ + + class SDOSAX2Parser : public SAX2Parser + { + + + public: + + + SDOSAX2Parser( + DataFactoryPtr df, + const SDOXMLString& targetNamespaceURI, + DataObjectPtr& rootDO, + ParserErrorSetter* insetter); + + virtual ~SDOSAX2Parser(); + + virtual void startDocument(); + virtual void endDocument(); + + virtual bool setDO(DataObjectPtr newDO, + SDOXMLString& propertyName); + + virtual void setAttributes( + SDOXMLString& tns, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void handleOpenAttribute( + SDOXMLString& tns, + const char* propuri, + const char* propname, + const char* value); + + virtual const PropertyImpl* handleOpenType( + SDOXMLString& tns, + const SDOXMLString& localname, + DataObjectImpl* dob, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes, + SDOXMLString& xsitypeURI, + SDOXMLString& xsitypeName, + bool bToBeNull); + + virtual void startElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void endElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI); + + virtual void characters(const SDOXMLString& chars); + + friend std::istream& operator>>(std::istream& input, SDOSAX2Parser& parser); + friend std::istringstream& operator>>(std::istringstream& input, SDOSAX2Parser& parser); + + + private: + SDOXMLString targetNamespaceURI; + DataFactoryPtr dataFactory; + DataObjectPtr& rootDataObject; + + + std::stack dataObjectStack; + + DataObjectPtr currentDataObject; + bool isDataGraph; + + void setCurrentDataObject(DataObjectPtr currentDO); + const Type* currentDataObjectType; + const SDOXMLString& getSDOName(const Type& type, const SDOXMLString& localName); + + PropertySetting currentPropertySetting; + + void reset(); + + bool setNamespaces; + SAX2Namespaces documentNamespaces; + + bool changeSummary; + DataObjectPtr changeSummaryDO; + bool changeSummaryLogging; + bool dealingWithChangeSummary; + ChangeSummaryBuilder* csbuilder; + + bool ignoreEvents; + struct ignoretag + { + SDOXMLString localname; + SDOXMLString uri; + SDOXMLString prefix; + int tagCount; + } ignoreTag; + + + typedef std::map ID_MAP; + ID_MAP IDMap; + + class IDRef + { + public: + IDRef(DataObjectPtr dataobj, + const SDOXMLString& prop, + const SDOXMLString& val) + : dataObject(dataobj), property(prop), value(val) + {} + + DataObjectPtr dataObject; + SDOXMLString property; + SDOXMLString value; + }; + + typedef std::list ID_REFS; + ID_REFS IDRefs; + }; + } // End - namespace sdo +} // End - namespace commonj + +#endif //_SDOSAX2PARSER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSPI.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSPI.h new file mode 100644 index 0000000000..1165514123 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSPI.h @@ -0,0 +1,25 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/DataFactory.h" +#include "commonj/sdo/ChangeSummary.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/SDO.h" + +#include "commonj/sdo/DASValues.h" diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp new file mode 100644 index 0000000000..8732c6aa9d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp @@ -0,0 +1,1080 @@ +/* + * + * 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: 2006/02/08 15:53:52 $ */ + +#include "commonj/sdo/SDOSchemaSAX2Parser.h" +#include "commonj/sdo/XSDPropertyInfo.h" +#include "commonj/sdo/XSDTypeInfo.h" +#include "commonj/sdo/SDORuntimeException.h" +#include "commonj/sdo/Logging.h" + +#include + +namespace commonj +{ + namespace sdo + { + + SDOSchemaSAX2Parser::SDOSchemaSAX2Parser(SchemaInfo& schemaInf, + ParserErrorSetter* insetter) + : schemaInfo(schemaInf) ,SAX2Parser(insetter) + { + bInSchema = false; + } + + SDOSchemaSAX2Parser::~SDOSchemaSAX2Parser() + { + } + + + + // ============================================================================ + // startElementNS + // ============================================================================ + void SDOSchemaSAX2Parser::startElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + LOGINFO_1( INFO,"SchemaParser:startElementNs:%s",(const char*)localname); + + if (URI.equalsIgnoreCase("http://www.w3.org/2001/XMLSchema")) + { + + /////////////////////////////////////////////////////////////////////// + // Handle schema + // Set the URI from the targetNamespace of the xsd:schema element + // Remember namespace mappings + // Create the root Type + /////////////////////////////////////////////////////////////////////// + + + if (localname.equalsIgnoreCase("schema")) + { + bInSchema = true; + // Handle namespace definitions + + + schemaInfo.getSchemaNamespaces().merge(namespaces); + + // Handle attributes + for (int i=0; i < attributes.size(); i++) + { + if (attributes[i].getName().equalsIgnoreCase("targetNamespace")) + { + schemaInfo.setTargetNamespaceURI(attributes[i].getValue()); + } + } + + + currentType.uri = schemaInfo.getTargetNamespaceURI(); + currentType.name = "RootType"; + currentType.localname="RootType"; + + } // end schema handling + + // Handle of other schema + else if (localname.equalsIgnoreCase("import")) + { + // TODO - import and include treated equally for now - need to + // separate out the namespace info for import + startInclude(localname, prefix, URI, namespaces, attributes); + } + + // Handle of other schema + else if (localname.equalsIgnoreCase("include")) + { + startInclude(localname, prefix, URI, namespaces, attributes); + } + + /////////////////////////////////////////////////////////////////////// + // Handle elements and attributes + // These become Properties of the current Type + // ?? Any special handling of global elements??? + /////////////////////////////////////////////////////////////////////// + else if (localname.equalsIgnoreCase("element")) + { + startElement(localname, prefix, URI, namespaces, attributes); + } + else if (localname.equalsIgnoreCase("attribute")) + { + startAttribute(localname, prefix, URI, namespaces, attributes); + } + else if (localname.equalsIgnoreCase("any") + || localname.equalsIgnoreCase("anyAttribute")) + { + // the type containing this is to be created as open + currentType.isOpen = true; + } + + + /////////////////////////////////////////////////////////////////////// + // Handle complexType + // These become new types + /////////////////////////////////////////////////////////////////////// + else if (localname.equalsIgnoreCase("complexType")) + { + startComplexType(localname, prefix, URI, namespaces, attributes); + } // end complexType handling + + else if (localname.equalsIgnoreCase("choice") + || localname.equalsIgnoreCase("sequence") + || localname.equalsIgnoreCase("all")) + { + startGroup(localname, prefix, URI, namespaces, attributes); + } // end Group handling + + else if (localname.equalsIgnoreCase("group") + || localname.equalsIgnoreCase("attributeGroup")) + { + if (setter) + { + setter->setError("Schema contains group or attributeGroup which are not yet implemented"); + } + } + /////////////////////////////////////////////////////////////////////// + // Handle simpleType + // These become new types + /////////////////////////////////////////////////////////////////////// + else if (localname.equalsIgnoreCase("simpleType")) + { + startSimpleType(localname, prefix, URI, namespaces, attributes); + } // end complexType handling + + else if (localname.equalsIgnoreCase("restriction")) + { + startRestriction(localname, prefix, URI, namespaces, attributes); + } + + else if (localname.equalsIgnoreCase("extension")) + { + startExtension(localname, prefix, URI, namespaces, attributes); + } + } + else // not in schema - check for any extra namespaces + { + schemaInfo.getSchemaNamespaces().merge(namespaces); + } + + } + + + // ============================================================================ + // endElementNs + // ============================================================================ + void SDOSchemaSAX2Parser::endElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI) + { + LOGINFO_1( INFO,"SchemaParser:endElementNs:%s",(const char*)localname); + + if (URI.equalsIgnoreCase("http://www.w3.org/2001/XMLSchema")) + { + if (localname.equalsIgnoreCase("schema")) + { + bInSchema = false; + } + + /////////////////////////////////////////////////////////////////////// + // Handle complexType + // Pop the Type off our stack + /////////////////////////////////////////////////////////////////////// + if (localname.equalsIgnoreCase("complexType")) + { + defineType(); + } // end complexType handling + else if (localname.equalsIgnoreCase("simpleType")) + { + defineType(); + } + + else if (localname.equalsIgnoreCase("schema")) + { + defineType(); + } // end complexType handling + + else if (localname.equalsIgnoreCase("element") + || localname.equalsIgnoreCase("attribute")) + { + // PropertyDefinition should now be complete + defineProperty(); + } + else if (localname.equalsIgnoreCase("choice") + || localname.equalsIgnoreCase("sequence") + || localname.equalsIgnoreCase("all")) + { + currentType.isMany = false; + } + + } + } + + + // ============================================================================ + // startInclude + // ============================================================================ + void SDOSchemaSAX2Parser::startInclude( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + LOGINFO_1( INFO,"SchemaParser:startInclude:%s",(const char*)localname); + + if (!bInSchema) return; + + SDOXMLString schemaLocation = attributes.getValue("schemaLocation"); + if (!schemaLocation.isNull()) + { + SchemaInfo schemaInf; + SDOSchemaSAX2Parser schemaParser(schemaInf, (ParserErrorSetter*)setter); + + try + { + SDOXMLString sl = getCurrentFile(); + FILE *f; + bool bprocessed = false; + + if (!sl.isNull()) + { + int i = sl.lastIndexOf('/'); + if (i < 0)i = sl.lastIndexOf('\\'); + if (i >= 0) + { + sl = sl.substring(0,i+1) + schemaLocation; + // first attempt, relative path plus the location + f = fopen(sl,"r+"); + if (f != NULL) + { + fclose(f); + schemaParser.parse(sl); + bprocessed = true; + } + else // didnt find the file + { + int j = schemaLocation.lastIndexOf('/'); + if (j < 0)j = schemaLocation.lastIndexOf('\\'); + if (j >= 0) + { + sl = sl.substring(0,i+1) + + schemaLocation.substring(0,j+1); + f = fopen(sl,"r+"); + if (f != NULL) + { + fclose(f); + schemaParser.parse(sl); + bprocessed = true; + } + } + } + } + } + if (!bprocessed) + { + schemaParser.parse(schemaLocation); + } + } + + catch (SDOFileNotFoundException e) + { + // finally give up - its not in the current path, or + // in the path specified + return; + } + + + TypeDefinitions& typedefs = schemaParser.getTypeDefinitions(); + XMLDAS_TypeDefs types = typedefs.types; + XMLDAS_TypeDefs::iterator iter; + for (iter=types.begin(); iter != types.end(); iter++) + { + if ((*iter).second.name.equals("RootType") + && currentType.name.equals("RootType") + && (*iter).second.uri.equals(currentType.uri)) + { + // This must be true for an import/include to be + // legally positioned + + XMLDAS_TypeDefs::iterator find = typeDefinitions.types.find( + (*iter).first); + + std::list::iterator propit; + std::list::iterator currpropit; + bool found; + + for (propit = (*iter).second.properties.begin() ; + propit != (*iter).second.properties.end(); ++ propit) + { + found = false; + // do not merge properties whose names clash + for ( currpropit = currentType.properties.begin(); + currpropit != currentType.properties.end(); + ++currpropit) + { + if ((*currpropit).name.equals((*propit).name)) + { + found = true; + break; + } + } + if (!found) + { + currentType.properties.insert( + currentType.properties.end(),*propit); + } + } + } + else + { + typeDefinitions.types.insert(*iter); + } + } + } + } + + + // ============================================================================ + // startElement + // ============================================================================ + void SDOSchemaSAX2Parser::startElement( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + + if (!bInSchema) return; + + PropertyDefinition thisProperty; + + LOGINFO_1( INFO,"SchemaParser:startElement:%s",(const char*)localname); + + thisProperty.isElement = true; + + setName(attributes, + thisProperty.name, + thisProperty.localname); + + + setType(thisProperty, attributes, namespaces); + + SDOXMLString maxOccurs = attributes.getValue("maxOccurs"); + if (!maxOccurs.isNull()) + { + if (!maxOccurs.equalsIgnoreCase("1")) + { + thisProperty.isMany = true; + } + } + + // find aliases + thisProperty.aliases = attributes.getValue("aliasName"); + + // mark this as a substitution group. + // TODO - what about properties which have already been set into the tree, + // and might have a substitution? + + SDOXMLString substituteName = attributes.getValue("substitutionGroup"); + if (! substituteName.isNull()) + { + XMLQName qname = resolveTypeName( + substituteName, + namespaces, + thisProperty.substituteUri, + thisProperty.substituteName); + thisProperty.isSubstitute=true; + } + + // count the number of elements in the group + if (currentType.isMany) + { + currentType.groupElementCount++; + } + + setCurrentProperty(thisProperty); + + } + + // ============================================================================ + // startAttribute + // ============================================================================ + void SDOSchemaSAX2Parser::startAttribute( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + + LOGINFO_1( INFO,"SchemaParser:startAttribute:%s",(const char*)localname); + + if (!bInSchema) return; + + PropertyDefinition thisProperty; + + thisProperty.isElement = false; + + setName(attributes, + thisProperty.name, + thisProperty.localname); + + setType(thisProperty, attributes, namespaces); + + setCurrentProperty(thisProperty); + } + + // ============================================================================ + // startComplexType + // ============================================================================ + void SDOSchemaSAX2Parser::startComplexType( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + LOGINFO_1( INFO,"SchemaParser:startComplexType:%s",(const char*)localname); + + if (!bInSchema) return; + + TypeDefinition thisType; // set defaults + thisType.uri=schemaInfo.getTargetNamespaceURI(); + + setTypeName(thisType, attributes,namespaces); + + + + for (int i=0; i < attributes.size(); i++) + { + // If sdo:sequence="true" or mixed="true" it is sequenced + if ( (attributes[i].getUri().equalsIgnoreCase("commonj.sdo/xml") + && attributes[i].getName().equalsIgnoreCase("sequence")) + || attributes[i].getName().equalsIgnoreCase("mixed")) + { + if (attributes[i].getValue().equals("true")) + { + thisType.isSequenced = true; + } + } + // If abstract="true" it is abstract + else if (attributes[i].getName().equalsIgnoreCase("abstract")) + { + if (attributes[i].getValue().equals("true")) + { + thisType.isAbstract = true; + } + } + else if (attributes[i].getName().equalsIgnoreCase("aliasName")) + { + thisType.aliases = attributes[i].getValue(); + } + } + + setCurrentType(thisType); + } + + // ============================================================================ + // startSimpleType + // ============================================================================ + void SDOSchemaSAX2Parser::startSimpleType( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + LOGINFO_1( INFO,"SchemaParser:startSimpleType:%s",(const char*)localname); + + if (!bInSchema) return; + + TypeDefinition thisType; // set defaults + thisType.uri=schemaInfo.getTargetNamespaceURI(); + thisType.dataType = true; + + for (int i=0; i < attributes.size(); i++) + { + // If abstract="true" it is abstract + if (attributes[i].getName().equalsIgnoreCase("abstract")) + { + if (attributes[i].getValue().equals("true")) + { + thisType.isAbstract = true; + } + } + else if (attributes[i].getName().equalsIgnoreCase("aliasName")) + { + thisType.aliases = attributes[i].getValue(); + } + } + setTypeName(thisType, attributes,namespaces); + + // see if the type is going to be abstract... + + + setCurrentType(thisType); + } + + // ============================================================================ + // startRestriction + // ============================================================================ + void SDOSchemaSAX2Parser::startRestriction( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + LOGINFO_1( INFO,"SchemaParser:startRestriction:%s",(const char*)localname); + + if (!bInSchema) return; + + SDOXMLString base = attributes.getValue("base"); + if (!base.isNull()) + { + // Resolve typename to uri:name + XMLQName qname = resolveTypeName( + base, + namespaces, + currentType.parentTypeUri, + currentType.parentTypeName); + + + if(qname.getLocalName().equals("QName")) + { + currentType.isQName = true; + } + } + } + + // ============================================================================ + // startExtension + // ============================================================================ + void SDOSchemaSAX2Parser::startExtension( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + LOGINFO_1( INFO,"SchemaParser:startExtension:%s",(const char*)localname); + + if (!bInSchema) return; + + SDOXMLString base = attributes.getValue("base"); + if (!base.isNull()) + { + SDOXMLString typeUri; + SDOXMLString typeName; + // Resolve typename to uri:name + XMLQName qname = resolveTypeName( + base, + namespaces, + typeUri, + typeName); + + // If extending a simple type (an SDO DataType) we create a + // Property named "value" of this type rather than set the + // simple type as a base + + // ?? Does this only apply within a tag?? + if (typeUri.equalsIgnoreCase(Type::SDOTypeNamespaceURI)) + { + // here the type needs to be flagged so that + // we know to serialize this property as an element with + // just the contents abc rather than + // value=abc + + + PropertyDefinition thisProperty; + thisProperty.name = "value"; + thisProperty.localname = "value"; + thisProperty.typeUri = typeUri; + thisProperty.typeName = typeName; + thisProperty.fullTypeName = base; + thisProperty.isContainment = false; + thisProperty.isElement=true; + + currentType.isExtendedPrimitive= true; + + if(qname.getLocalName().equals("QName")) + { + thisProperty.isQName = true; + } + + setCurrentProperty(thisProperty); + defineProperty(); + } + else + { + currentType.parentTypeUri = typeUri; + currentType.parentTypeName = typeName; + } + } + } + + // ============================================================================ + // startGroup + // ============================================================================ + void SDOSchemaSAX2Parser::startGroup( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes) + { + LOGINFO_1( INFO,"SchemaParser:startGroup:%s",(const char*)localname); + + if (!bInSchema) return; + + SDOXMLString maxOccurs = attributes.getValue("maxOccurs"); + if (!maxOccurs.isNull()) + { + if (!maxOccurs.equalsIgnoreCase("1")) + { + currentType.isMany = true; + } + } + } + + // ============================================================================ + // setCurrentType + // ============================================================================ + void SDOSchemaSAX2Parser::setCurrentType(const TypeDefinition& type) + { + typeStack.push(currentType); + currentType = type; + } + + // ============================================================================ + // defineType + // ============================================================================ + void SDOSchemaSAX2Parser::defineType() + { + // Set this Type as sequenced of more than one element in a group definition + if (currentType.groupElementCount > 1) + { + currentType.isSequenced = true; + } + + SDOXMLString typeQname = TypeDefinitions::getTypeQName(currentType.uri, currentType.localname); + typeDefinitions.types[typeQname] = currentType; + + if (currentProperty.typeName.isNull()) + { + // Set the type name to the name of this type + currentProperty.typeUri = currentType.uri; + currentProperty.typeName = currentType.localname; + } + + if (typeStack.size() != 0) + { + currentType = typeStack.top(); + typeStack.pop(); + } + else + { + currentType = TypeDefinition(); + } + } + + // ============================================================================ + // setCurrentProperty + // ============================================================================ + void SDOSchemaSAX2Parser::setCurrentProperty(const PropertyDefinition& prop) + { + propertyStack.push(currentProperty); + currentProperty = prop; + } + + // ============================================================================ + // defineProperty + // ============================================================================ + void SDOSchemaSAX2Parser::defineProperty() + { + + if (currentProperty.typeName.isNull()) + { + // Set the type of this property to default (sdo:String) + currentProperty.typeUri = Type::SDOTypeNamespaceURI; + currentProperty.typeName = "String"; + } + + if (currentProperty.localname.isNull()) + currentProperty.localname = currentProperty.typeName; + + // Set isMany if property isMany OR if containing type isMany + // NOTE: The above comment is as per the SDO2.0 spec however this does not + // work when serializing a sequence containing a single-valued property and + // then deserializing. + // currentProperty.isMany = currentProperty.isMany || currentType.isMany; + + + currentType.properties.insert(currentType.properties.end(), currentProperty); + if (propertyStack.size() != 0) + { + currentProperty = propertyStack.top(); + propertyStack.pop(); + } + else + currentProperty = PropertyDefinition(); + + } + + // ============================================================================ + // setDefault + // ============================================================================ + void SDOSchemaSAX2Parser::setDefault( + PropertyDefinition& thisProperty, + const SAX2Attributes& attributes) + { + thisProperty.defaultValue = attributes.getValue("fixed"); + if (!thisProperty.defaultValue.isNull()) + { + thisProperty.isReadOnly = true; + } + else + { + thisProperty.defaultValue = attributes.getValue("default"); + } + } + + // ============================================================================ + // setName + // ============================================================================ + void SDOSchemaSAX2Parser::setName( + const SAX2Attributes& attributes, + SDOXMLString& sdoname, + SDOXMLString& localname) + { + for (int i=0; i < attributes.size(); i++) + { + // Handle sdo: annotations + if (attributes[i].getUri().equalsIgnoreCase("commonj.sdo/xml")) + { + // sdo:name overrides the property name + if (attributes[i].getName().equalsIgnoreCase("name")) + { + sdoname = attributes[i].getValue(); + } + } + else + { + + if (attributes[i].getName().equalsIgnoreCase("name")) + { + localname = attributes[i].getValue(); + // If name is already set it must have been an + // override using sdo:name + if (sdoname.isNull()) + { + sdoname = localname; + } + } + } + } + + } + + // ============================================================================ + // setType + // ============================================================================ + void SDOSchemaSAX2Parser::setType( + PropertyDefinition& property, + const SAX2Attributes& attributes, + const SAX2Namespaces& namespaces) + { + property.fullLocalTypeName = attributes.getValue("type"); + if (!property.fullLocalTypeName.isNull()) + { + XMLQName qname(property.fullLocalTypeName,schemaInfo.getSchemaNamespaces(), namespaces); + if (qname.getLocalName().equals("IDREF") + || qname.getLocalName().equals("IDREFS")) + { + property.fullTypeName = attributes.getValue("commonj.sdo/xml","propertyType"); + + property.isIDREF = true; + property.isContainment = false; + + if (qname.getLocalName().equals("IDREFS")) + { + property.isMany = true; + } + } + else if (qname.getLocalName().equals("anyURI")) + { + property.fullTypeName = attributes.getValue("commonj.sdo/xml","propertyType"); + } + else if (qname.getLocalName().equals("ID")) + { + property.isID = true; + currentType.IDPropertyName = property.name; + } + + else + { + property.fullTypeName = attributes.getValue("commonj.sdo/xml","dataType"); + } + } + + else + { + property.fullLocalTypeName = attributes.getValue("ref"); + if (!property.fullLocalTypeName.isNull()) + { + property.isReference = true; + } + } + + if (property.fullTypeName.isNull()) + { + property.fullTypeName = property.fullLocalTypeName; + } + + if (!property.fullTypeName.isNull()) + { + // Resolve typename to uri:name + XMLQName qname = resolveTypeName( + property.fullTypeName, + namespaces, + property.typeUri, + property.typeName); + + if(qname.getLocalName().equals("QName")) + { + property.isQName = true; + } + } + + } + + // ============================================================================ + // setTypeName + // ============================================================================ + void SDOSchemaSAX2Parser::setTypeName( + TypeDefinition& type, + const SAX2Attributes& attributes, + const SAX2Namespaces& namespaces) + { + std::map::iterator it; + setName(attributes, type.name, type.localname); + // If localname is not set it is anonymous so use the enclosing element name + + + if (type.localname.isNull()) + { + type.localname = currentProperty.name; + } + else + { + // check for an overriding url in the name + int i; + if ((i = type.localname.firstIndexOf(':')) > 0) + { + XMLQName qname(type.localname, + schemaInfo.getSchemaNamespaces(), + namespaces); + type.uri = qname.getURI(); + type.localname = qname.getLocalName(); + } + } + + // Set SDO name if not specified + if (type.name .isNull()) + { + type.name = type.localname ; + } + else + { + // check for an overriding url in the name + int i; + if ((i = type.name.firstIndexOf(':')) > 0) + { + XMLQName qname(type.name, + schemaInfo.getSchemaNamespaces(), + namespaces); + type.uri = qname.getURI(); + type.name = qname.getLocalName(); + } + } + } + + std::istream& operator>>(std::istream& input, SDOSchemaSAX2Parser& parser) + { + parser.stream(input); + + return input; + } + + std::istringstream& operator>>(std::istringstream& input, SDOSchemaSAX2Parser& parser) + { + parser.stream(input); + + return input; + } + + // ============================================================================ + // resolveTypeName + // ============================================================================ + XMLQName SDOSchemaSAX2Parser::resolveTypeName( + const SDOXMLString& fullTypeName, + const SAX2Namespaces& namespaces, + SDOXMLString& uri, + SDOXMLString& name) + { + XMLQName qname(fullTypeName, + schemaInfo.getSchemaNamespaces(), + namespaces); + + uri = qname.getURI(); + name = qname.getLocalName(); + + /////////////////////////////////////////////////////////////////////// + // Map the xsd types to SDO Types + /////////////////////////////////////////////////////////////////////// + if (qname.getURI().equalsIgnoreCase("http://www.w3.org/2001/XMLSchema")) + { + uri = Type::SDOTypeNamespaceURI; + if (qname.getLocalName().equalsIgnoreCase("ID")) + { + name = "String"; + } + if (qname.getLocalName().equalsIgnoreCase("NCName")) + { + name = "String"; + } + if (qname.getLocalName().equalsIgnoreCase("string")) + { + name = "String"; + } + else if (qname.getLocalName().equalsIgnoreCase("anyType")) + { + name = "DataObject"; + } + else if (qname.getLocalName().equalsIgnoreCase("int")) + { + name = "Integer"; + } + else if (qname.getLocalName().equalsIgnoreCase("integer")) + { + name = "Integer"; + } + else if (qname.getLocalName().equalsIgnoreCase("negativeInteger")) + { + name = "Integer"; + } + else if (qname.getLocalName().equalsIgnoreCase("nonNegativeInteger")) + { + name = "Integer"; + } + else if (qname.getLocalName().equalsIgnoreCase("positiveInteger")) + { + name = "Integer"; + } + else if (qname.getLocalName().equalsIgnoreCase("nonPositiveInteger")) + { + name = "Integer"; + } + else if (qname.getLocalName().equalsIgnoreCase("unsignedLong")) + { + name = "Integer"; + } + else if (qname.getLocalName().equalsIgnoreCase("unsignedShort")) + { + name = "Integer"; + } + else if (qname.getLocalName().equalsIgnoreCase("unsignedInt")) + { + name = "Long"; + } + else if (qname.getLocalName().equalsIgnoreCase("long")) + { + name = "Long"; + } + else if (qname.getLocalName().equalsIgnoreCase("double")) + { + name = "Double"; + } + else if (qname.getLocalName().equalsIgnoreCase("short")) + { + name = "Short"; + } + else if (qname.getLocalName().equalsIgnoreCase("unsignedByte")) + { + name = "Short"; + } + else if (qname.getLocalName().equalsIgnoreCase("float")) + { + name = "Float"; + } + else if (qname.getLocalName().equalsIgnoreCase("boolean")) + { + name = "Boolean"; + } + else if (qname.getLocalName().equalsIgnoreCase("byte")) + { + name = "Byte"; + } + else if (qname.getLocalName().equalsIgnoreCase("base64Binary")) + { + name = "Bytes"; + } + else if (qname.getLocalName().equalsIgnoreCase("hexBinary")) + { + name = "Bytes"; + } + else if (qname.getLocalName().equalsIgnoreCase("anyURI")) + { + name = "URI"; + } + else if (qname.getLocalName().equalsIgnoreCase("QName")) + { + name = "URI"; + } + else + { + // Default unknown xs: types to string?? + name = "String"; + } + } + + // Temporary hack: ChangeSummaryType is ChangeSummary in core + else if (qname.getURI().equalsIgnoreCase(Type::SDOTypeNamespaceURI)) + { + if (qname.getLocalName().equalsIgnoreCase("ChangeSummaryType")) + { + name = "ChangeSummary"; + } + + } + else if (qname.getURI().isNull()) + { + uri = schemaInfo.getTargetNamespaceURI(); + } + + return qname; + } + + } // End - namespace sdo + +} // End - namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.h new file mode 100644 index 0000000000..53d7cc4e42 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.h @@ -0,0 +1,181 @@ +/* + * + * 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:15 $ */ + +#ifndef _SDOSCHEMASAX2PARSER_H_ +#define _SDOSCHEMASAX2PARSER_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SAX2Parser.h" +#include "commonj/sdo/SchemaInfo.h" +#include "stack" +#include "commonj/sdo/TypeDefinitions.h" +#include "commonj/sdo/XMLQName.h" +#include "commonj/sdo/ParserErrorSetter.h" + +namespace commonj +{ + namespace sdo + { + +/** + * SDOSAX2Parser implements SAX2Parser. + * This class gets called back by the libxml library, and + * deals with the creation of metadata objects from XSD. + */ + + class SDOSchemaSAX2Parser : public SAX2Parser + { + + public: + + SDOSchemaSAX2Parser(SchemaInfo& schemaInfo, + ParserErrorSetter* insetter); + + virtual ~SDOSchemaSAX2Parser(); + + + virtual void startElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void endElementNs( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI); + + const SDOXMLString& getTargetNamespaceURI() const {return schemaInfo.getTargetNamespaceURI();} + + TypeDefinitions& getTypeDefinitions() {return typeDefinitions;} + + friend std::istream& operator>>(std::istream& input, SDOSchemaSAX2Parser& parser); + friend std::istringstream& operator>>(std::istringstream& input, SDOSchemaSAX2Parser& parser); + + + private: + + const char* currentFile; + bool bInSchema; // only parse when within a schema + + + virtual void startInclude( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void startElement( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void startAttribute( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void startComplexType( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void startSimpleType( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void startRestriction( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void startExtension( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + virtual void startGroup( + const SDOXMLString& localname, + const SDOXMLString& prefix, + const SDOXMLString& URI, + const SAX2Namespaces& namespaces, + const SAX2Attributes& attributes); + + XMLQName resolveTypeName( + const SDOXMLString& fullTypeName, + const SAX2Namespaces& namespaces, + SDOXMLString& uri, + SDOXMLString& name); + + void setName( + const SAX2Attributes& attributes, + SDOXMLString& sdoname, + SDOXMLString& localname + ); + + void setType( + PropertyDefinition& property, + const SAX2Attributes& attributes, + const SAX2Namespaces& namespaces); + + void setTypeName( + TypeDefinition& type, + const SAX2Attributes& attributes, + const SAX2Namespaces& namespaces); + + void setDefault( + PropertyDefinition& thisProperty, + const SAX2Attributes& attributes); + + + SchemaInfo& schemaInfo; + + + PropertyDefinition currentProperty; + std::stack propertyStack; + void setCurrentProperty(const PropertyDefinition& property); + void defineProperty(); + + TypeDefinition currentType; + std::stack typeStack; + void setCurrentType(const TypeDefinition& type); + void defineType(); + + TypeDefinitions typeDefinitions; + + }; + } // End - namespace sdo +} // End - namespace commonj +#endif //_SDOSCHEMASAX2PARSER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOUtils.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOUtils.cpp new file mode 100644 index 0000000000..abfcb32a4b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOUtils.cpp @@ -0,0 +1,142 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/SDOUtils.h" + +using namespace std; + +// +// Utility methods to print a DataObject tree +// + +namespace commonj { + namespace sdo { + + + +////////////////////////////////////////////////////////////////////////// +// Print Tabs +////////////////////////////////////////////////////////////////////////// + + void SDOUtils::printTabs(unsigned int incr) + { + for (int ind=0; ind < incr; ind++) + { + cout << " "; + } + } + +////////////////////////////////////////////////////////////////////////// +// Print a DatObject tree +////////////////////////////////////////////////////////////////////////// + + void SDOUtils::printDataObject(DataObjectPtr dataObject) + { + printDataObject(dataObject,0); + } + + + void SDOUtils::printDataObject(DataObjectPtr dataObject, + unsigned int incr) + { + + cout << ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> start of DO" + << endl; + + if (!dataObject)return; + + const Type& dataObjectType = dataObject->getType(); + printTabs(incr); + cout << "DataObject type: " + << dataObjectType.getURI() + << "#" << dataObjectType.getName() << endl; + + incr++; + + ////////////////////////////////////////////////////////////// + // Iterate over all the properties + ////////////////////////////////////////////////////////////// + PropertyList pl = dataObject->getInstanceProperties(); + for (int i = 0; i < pl.size(); i++) + { + printTabs(incr); + cout << "Property: " << pl[i].getName() << endl; + + const Type& propertyType = pl[i].getType(); + + printTabs(incr); + + cout << "Property Type: " + << propertyType.getURI() + << "#" << propertyType.getName() << endl; + + if (dataObject->isSet(pl[i])) + { + + /////////////////////////////////////////////////////////// + // For a many-valued property get the list of values + /////////////////////////////////////////////////////////// + if (pl[i].isMany()) + { + incr++; + DataObjectList& dol = dataObject->getList(pl[i]); + for (int j = 0; j getCString(pl[i]) <getDataObject(pl[i]),incr); + incr--; + } + } + else + { + printTabs(incr); + cout << "Property Value: not set" <content; + } + } // End - namespace sdo +} // End - namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLBufferWriter.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLBufferWriter.h new file mode 100644 index 0000000000..489f44b86c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLBufferWriter.h @@ -0,0 +1,51 @@ +/* + * + * 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:15 $ */ + +#ifndef _SDOXMLBUFFERWRITER_H_ +#define _SDOXMLBUFFERWRITER_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SDOXMLWriter.h" + +namespace commonj +{ + namespace sdo + { + +/** + * SDOXMLBufferWriter extends SDOXMLWriter and writes a buffer. + */ + class SDOXMLBufferWriter : public SDOXMLWriter + { + + public: + + SDOXMLBufferWriter(DataFactoryPtr dataFactory = NULL); + virtual ~SDOXMLBufferWriter(); + + SDOXMLString getBuffer(); + private: + xmlBufferPtr buf; + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_SDOXMLBUFFERWRITER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.cpp new file mode 100644 index 0000000000..09d80075c9 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.cpp @@ -0,0 +1,44 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/SDOXMLFileWriter.h" + +namespace commonj +{ + namespace sdo + { + + + + + SDOXMLFileWriter::SDOXMLFileWriter(const char* xmlFile, DataFactoryPtr dataFactory) + : SDOXMLWriter(dataFactory) + { + setWriter(xmlNewTextWriterFilename(xmlFile, 0)); + } + + SDOXMLFileWriter::~SDOXMLFileWriter() + { + + } + + + } // End - namespace sdo +} // End - namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.h new file mode 100644 index 0000000000..cddfb41293 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.h @@ -0,0 +1,52 @@ +/* + * + * 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:15 $ */ + +#ifndef _SDOXMLFILEWRITER_H_ +#define _SDOXMLFILEWRITER_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SDOXMLWriter.h" + + + +namespace commonj +{ + namespace sdo + { + +/** + * SDOXMLFileWriter extends SDOXMLWriter and writes a file. + */ + class SDOXMLFileWriter : public SDOXMLWriter + { + + public: + + SDOXMLFileWriter(const char* xmlFile, DataFactoryPtr dataFactory = NULL); + + virtual ~SDOXMLFileWriter(); + + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_SDOXMLFILEWRITER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.cpp new file mode 100644 index 0000000000..00d76b1b6e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.cpp @@ -0,0 +1,50 @@ +/* + * + * 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: 2006/02/01 16:24:13 $ */ + +#include "commonj/sdo/SDOXMLStreamWriter.h" +#include + +namespace commonj +{ + namespace sdo + { + + + + + SDOXMLStreamWriter::SDOXMLStreamWriter(std::ostream& outXML, DataFactoryPtr dataFactory) + : SDOXMLBufferWriter(dataFactory), outXmlStream(outXML) + { + } + + SDOXMLStreamWriter::~SDOXMLStreamWriter() + { + } + + int SDOXMLStreamWriter::write(XMLDocumentPtr doc, int indent) + { + int rc = SDOXMLBufferWriter::write(doc, indent); + + // Now stream the buffer + outXmlStream << getBuffer(); + return rc; + } + } // End - namespace sdo +} // End - namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.h new file mode 100644 index 0000000000..92bbfa3cf0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.h @@ -0,0 +1,54 @@ +/* + * + * 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: 2006/02/01 16:24:13 $ */ + +#ifndef _SDOXMLSTREAMWRITER_H_ +#define _SDOXMLSTREAMWRITER_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SDOXMLBufferWriter.h" +#include + + +namespace commonj +{ + namespace sdo + { + +/** + * SDOXMLStreamWriter extends SDOXMLWriter and writes a stream. + */ + class SDOXMLStreamWriter : public SDOXMLBufferWriter + { + + public: + + SDOXMLStreamWriter(std::ostream& outXML, DataFactoryPtr dataFactory = NULL); + virtual ~SDOXMLStreamWriter(); + + int write(XMLDocumentPtr doc, int indent = -1); + private: + std::ostream& outXmlStream; + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_SDOXMLSTREAMWRITER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.cpp new file mode 100644 index 0000000000..248df58a7f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.cpp @@ -0,0 +1,223 @@ +/* + * + * 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: 2006/01/23 16:39:24 $ */ + +#include "commonj/sdo/SDOXMLString.h" +#include +#include "libxml/globals.h" + +#include + +namespace commonj +{ + namespace sdo + { + + SDOXMLString::SDOXMLString() + : xmlForm(0) + { + } + + SDOXMLString::SDOXMLString(const xmlChar* xmlString) + { + xmlForm = xmlStrdup(xmlString); + } + + SDOXMLString::SDOXMLString(const char* localString) + { + xmlForm = xmlCharStrdup(localString); + } + + SDOXMLString::SDOXMLString(const SDOXMLString& str) + { + xmlForm = xmlStrdup(str.xmlForm); + } + + SDOXMLString::SDOXMLString(const xmlChar* str, int start, int len) + { + xmlForm = xmlStrsub(str, start, len); + } + + SDOXMLString& SDOXMLString::operator=(const SDOXMLString& str) + { + if (this != &str) + { + release(); + xmlForm = xmlStrdup(str.xmlForm); + } + return *this; + } + + SDOXMLString SDOXMLString::operator+(const SDOXMLString& str) const + { + xmlChar* newString = xmlStrncatNew(xmlForm, str.xmlForm, xmlStrlen(str.xmlForm)); + SDOXMLString retString(newString); + if (newString) + xmlFree(newString); + return retString; + } + + SDOXMLString& SDOXMLString::operator+=(const SDOXMLString& str) + { + xmlForm = xmlStrncat(xmlForm, str.xmlForm, xmlStrlen(str.xmlForm)); + return *this; + } + + SDOXMLString::~SDOXMLString() + { + release(); + } + + void SDOXMLString::release() + { + if (xmlForm) + xmlFree((void*)xmlForm); + } + + bool SDOXMLString::operator< (const SDOXMLString& str) const + { + if (xmlStrcmp(xmlForm, str.xmlForm) <0) + return true; + else + return false; + } + + bool SDOXMLString::operator==(const SDOXMLString& str) const + { + if (xmlStrEqual(xmlForm, str.xmlForm)) + return true; + else + return false; + } + + bool SDOXMLString::equals(const SDOXMLString& str) const + { + return equals(str.xmlForm); + } + + bool SDOXMLString::equals(const char* localString) const + { + return equals(SDOXMLString(localString)); + } + + + bool SDOXMLString::equals(const xmlChar* xmlString) const + { + if (xmlStrEqual(xmlForm, xmlString)) + return true; + else + return false; + } + + bool SDOXMLString::equalsIgnoreCase(const SDOXMLString& str) const + { + return equalsIgnoreCase(str.xmlForm); + } + + bool SDOXMLString::equalsIgnoreCase(const char* localString) const + { + return equalsIgnoreCase(SDOXMLString(localString)); + } + + + bool SDOXMLString::equalsIgnoreCase(const xmlChar* xmlString) const + { + if (xmlStrcasecmp(xmlForm, xmlString) == 0) + return true; + else + return false; + } + + + std::ostream& operator<<(std::ostream& output, const SDOXMLString& str) + { + if (str.xmlForm) + output << str.xmlForm; + return output; + } + + bool SDOXMLString::isNull() const + { + if (xmlForm) + return false; + else + return true; + } + + SDOXMLString SDOXMLString::toLower(unsigned int start, unsigned int length) + { + char* newString = new char[strlen(*this)+1]; + strcpy(newString, *this); + for (int i = start; (i<=(strlen(newString)) && i < length); i++) + { + newString[i] = tolower(newString[i]); + } + SDOXMLString retString(newString); + delete newString; + return retString; + } + + int SDOXMLString::firstIndexOf(const char ch) const + { + const xmlChar* loc = xmlStrchr(xmlForm, ch); + if (loc == 0) + { + return -1; + } + + return int(loc-xmlForm); + } + + int SDOXMLString::lastIndexOf(const char ch) const + { + const xmlChar* index = 0; + const xmlChar* loc = xmlStrchr(xmlForm, ch); + while (loc !=0) + { + index = loc; + loc = xmlStrchr(loc+1, ch); + } + + if (index == 0) + return -1; + + return int(index-xmlForm); + } + + SDOXMLString SDOXMLString::substring(int start, int length) const + { + if (length >0) + { + return xmlStrsub(xmlForm, start, length); + } + else + return SDOXMLString(); + } + + SDOXMLString SDOXMLString::substring(int start) const + { + + return xmlStrsub(xmlForm, start, xmlStrlen(xmlForm) - start); + } + + + } // End - namespace sdo +} // End - namespace commonj + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.h new file mode 100644 index 0000000000..9cbf48be1d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.h @@ -0,0 +1,91 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/disable_warn.h" + +#ifndef _SDOXMLString_H_ +#define _SDOXMLString_H_ +#include "commonj/sdo/export.h" + +#include +#include + +namespace commonj +{ + namespace sdo + { + /** + * SDOXMLString - utility class for string handling. + * Keeps the string handling local to one place, so we can + * replace it with a more NLS friendly version later. + * Many places within the core should use this too instead + * of allocated char* buffers. (DataObject etc...) + */ + + class SDOXMLString + { + public: + SDO_SPI SDOXMLString(); + SDO_SPI SDOXMLString(const xmlChar* xmlString); + SDO_SPI SDOXMLString(const char* localString); + SDO_SPI SDOXMLString(const SDOXMLString& str); + SDO_SPI SDOXMLString(const xmlChar* str, int start, int len); + SDO_SPI virtual ~SDOXMLString(); + + SDO_SPI SDOXMLString& operator=(const SDOXMLString& str); + SDO_SPI SDOXMLString operator+(const SDOXMLString& str) const; + SDO_SPI SDOXMLString& operator+=(const SDOXMLString& str); + + + SDO_SPI bool operator== (const SDOXMLString& str) const; + SDO_SPI bool equals(const xmlChar* xmlString) const; + SDO_SPI bool equals(const char* localString) const; + SDO_SPI bool equals(const SDOXMLString& str) const; + SDO_SPI bool equalsIgnoreCase(const xmlChar* xmlString) const; + SDO_SPI bool equalsIgnoreCase(const char* localString) const; + SDO_SPI bool equalsIgnoreCase(const SDOXMLString& str) const; + + SDO_SPI bool operator< (const SDOXMLString& str) const; + + SDO_SPI operator const char*() const {return (const char*) xmlForm;} + SDO_SPI operator const xmlChar*() const {return xmlForm;} + + SDO_SPI friend std::ostream& operator<<(std::ostream& output, const SDOXMLString& str); + + SDO_SPI bool isNull() const; + + SDO_SPI SDOXMLString toLower( + unsigned int start = 0, + unsigned int length = 0); + + + SDO_SPI int firstIndexOf(const char ch) const; + SDO_SPI int lastIndexOf(const char ch) const; + SDO_SPI SDOXMLString substring(int start, int length) const; + SDO_SPI SDOXMLString substring(int start) const; + private : + xmlChar* xmlForm; + void release(); + }; + } // End - namespace sdo +} // End - namespace commonj + + + +#endif // _SDOXMLString_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp new file mode 100644 index 0000000000..cb72060e98 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp @@ -0,0 +1,1173 @@ +/* + * + * 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: 2006/02/17 16:01:05 $ */ + +#include "commonj/sdo/SDOXMLWriter.h" +#include "commonj/sdo/SDOXMLString.h" +#include "iostream" +using namespace::std; +#include "commonj/sdo/DASProperty.h" +#include "commonj/sdo/XSDPropertyInfo.h" +#include "commonj/sdo/XSDTypeInfo.h" +#include "commonj/sdo/ChangeSummary.h" +#include "commonj/sdo/Sequence.h" +#include "commonj/sdo/SDORuntimeException.h" +#include "commonj/sdo/XMLQName.h" +#include "commonj/sdo/DataObjectImpl.h" + +namespace commonj +{ + namespace sdo + { + + + + + SDOXMLWriter::SDOXMLWriter( + DataFactoryPtr dataFact) + : dataFactory(dataFact) + { + + } + + SDOXMLWriter::~SDOXMLWriter() + { + freeWriter(); + } + + void SDOXMLWriter::setWriter(xmlTextWriterPtr textWriter) + { + writer = textWriter; + } + + void SDOXMLWriter::freeWriter() + { + if (writer != NULL) + { + xmlFreeTextWriter(writer); + writer = NULL; + } + } + + int SDOXMLWriter::write(XMLDocumentPtr doc, int indent) + { + if (!doc) + { + return 0; + } + + if (writer == NULL) + { + // Throw exception + return -1; + } + + int rc = 0; + + //namespaceUriStack.empty(); + //namespaceUriStack.push(SDOXMLString()); + //namespaces.empty(); + //namespaceStack.push(namespaces); + namespaceMap.empty(); + + if (indent >= 0) + { + xmlTextWriterSetIndent(writer, 1); + if (indent > 0) + { + char * chars = new char[indent+1]; + for (int i=0;igetXMLDeclaration()) + { + rc = xmlTextWriterStartDocument(writer, doc->getXMLVersion(), doc->getEncoding(), NULL); + if (rc < 0) { + SDO_THROW_EXCEPTION("write", SDOXMLParserException, "xmlTextWriterStartDocument failed"); + } + } + + DataObjectPtr root = doc->getRootDataObject(); + if (root) + { + bool writeXSIType = false; + // For the root DataObject we need to determine the element name + SDOXMLString elementURI = doc->getRootElementURI(); + if (elementURI.isNull() || elementURI.equals("")) + { + elementURI = root->getType().getURI(); + } + SDOXMLString elementName = doc->getRootElementName(); + if (elementName.isNull() || elementName.equals("")) + { + elementName = root->getType().getName(); + elementName = elementName.toLower(0,1); + writeXSIType = true; + } + + writeDO(root, elementURI, elementName, true, true); + } + rc = xmlTextWriterEndDocument(writer); + if (rc < 0) { + SDO_THROW_EXCEPTION("write", SDOXMLParserException, "xmlTextWriterEndDocument failed"); + return rc; + } + + xmlTextWriterFlush(writer); + freeWriter(); + + return rc; + } + + ////////////////////////////////////////////////////////////////////////// + // Write Change Summary attributes + ////////////////////////////////////////////////////////////////////////// + + void SDOXMLWriter::handleChangeSummaryAttributes( + ChangeSummaryPtr cs, + DataObjectPtr dol) + { + int rc; + + SettingList& sl = cs->getOldValues(dol); + if (sl.size() == 0) + { + // no attributes + return; + } + for (int j=0;j< sl.size(); j++) + { + try { + + if (sl.get(j)->getProperty().isMany()) + { + // manys are elements + continue; + } + + if (sl.get(j)->getProperty().getType().isDataType()) + { + // data types are OK + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString(sl.get(j)->getProperty().getName()), + SDOXMLString(sl.get(j)->getCStringValue())); + } + else + { + DataObjectPtr dob = sl.get(j)->getDataObjectValue(); + if (dob) + { + if (cs->isDeleted(dob)) + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString(sl.get(j)->getProperty().getName()), + SDOXMLString(cs->getOldXpath(dob))); + } + else + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString(sl.get(j)->getProperty().getName()), + SDOXMLString(dob->objectToXPath())); + } + } + else + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString(sl.get(j)->getProperty().getName()), + SDOXMLString("")); + } + } + } + catch (SDORuntimeException e) + { + // ignore this attribute + } + } + } + + ////////////////////////////////////////////////////////////////////////// + // Write Change Summary elements + ////////////////////////////////////////////////////////////////////////// + + void SDOXMLWriter::handleChangeSummaryElements( + ChangeSummaryPtr cs, + DataObjectPtr dob) + { + int rc; + + SettingList& sl = cs->getOldValues(dob); + + if (sl.size() == 0) + { + // there are no setting for this element. + return; + } + + for (int j=0;j< sl.size(); j++) + { + try + { + + // single values will have been covered by the attributes. + if (!sl.get(j)->getProperty().isMany()) continue; + + if (sl.get(j)->getProperty().getType().isDataType()) + { + + rc = xmlTextWriterWriteElement( + writer, + SDOXMLString(sl.get(j)->getProperty().getName()), + SDOXMLString(sl.get(j)->getCStringValue())); + + } // if datatype + else + { + DataObjectPtr dob2 = sl.get(j)->getDataObjectValue(); + if (!dob2) + { + continue; + } + if (cs->isDeleted(dob2)) + { + handleChangeSummaryDeletedObject(sl.get(j)->getProperty().getName(), cs,dob2); + } + else + { + rc = xmlTextWriterStartElement( + writer, + SDOXMLString(sl.get(j)->getProperty().getName())); + rc = xmlTextWriterWriteAttribute( + writer, + SDOXMLString("sdo:ref"), + SDOXMLString(dob2->objectToXPath())); + rc = xmlTextWriterEndElement( + writer); + } + } + } + catch (SDORuntimeException e) + { + // ignore this element + } + } // for + } + + + ////////////////////////////////////////////////////////////////////////// + // Write a deleted object and all its props + ////////////////////////////////////////////////////////////////////////// + + void SDOXMLWriter::handleChangeSummaryDeletedObject( + const char* name, + ChangeSummaryPtr cs, + DataObjectPtr dob) + { + + int rc, k; // TODO error handling + + SettingList& sl = cs->getOldValues(dob); + + rc = xmlTextWriterStartElement( + writer, + SDOXMLString(name)); + + if (sl.size() == 0) + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("sdo:ref"), + SDOXMLString(cs->getOldXpath(dob))); + rc = xmlTextWriterEndElement(writer); + return; + } + + + try + { + // print single valued datatypes as attributes + + for (int j=0;j< sl.size(); j++) + { + //if (!sl.get(j)->isSet()) + //{ + // // unset properties dont need recording - ah but they do! + // + // continue; + //} + if ( sl.get(j)->getProperty().isMany()) + { + // manys are elements + continue; + } + if (!sl.get(j)->getProperty().getType().isDataType()) + { + // data objects are element in a deleted data object. + continue; + } + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString(sl.get(j)->getProperty().getName()), + SDOXMLString(sl.get(j)->getCStringValue())); + + } // for attributes + + + // now we are onto the many-values, + // and dataobject single values. + // + // handle deletions within deletions in reverse order, so they match the + // deletion records above. + + for (k=sl.size()-1;k>=0; k--) + { + + if ( !sl.get(k)->getProperty().getType().isDataType() && + sl.get(k)->getProperty().isMany()) + { + // its a dataobject type + DataObjectPtr dob2 = sl.get(k)->getDataObjectValue(); + if (!dob2) continue; + if (!cs->isDeleted(dob2)) continue; + handleChangeSummaryDeletedObject(sl.get(k)-> + getProperty().getName(),cs,dob2); + } + } // for attributes + + for (k=0;k< sl.size(); k++) + { + + if ( !sl.get(k)->getProperty().getType().isDataType()) + { + if (sl.get(k)->getProperty().isMany()) continue; + // its a single valued dataobject type + + DataObjectPtr dob2 = sl.get(k)->getDataObjectValue(); + if (!dob2) continue; + if (!cs->isDeleted(dob2)) continue; + handleChangeSummaryDeletedObject(sl.get(k)-> + getProperty().getName(),cs,dob2); + + } + else + { + if ( !sl.get(k)->getProperty().isMany()) continue; + + // could only be many valued data type + + rc = xmlTextWriterWriteElement(writer, + SDOXMLString(sl.get(k)->getProperty().getName()), + SDOXMLString(sl.get(k)->getCStringValue())); + } + } // for attributes + } + catch (SDORuntimeException e) + { + // ignore - and write the end-element + } + + rc = xmlTextWriterEndElement(writer); + } + + + ////////////////////////////////////////////////////////////////////////// + // Write the list of elements of a change summary + ////////////////////////////////////////////////////////////////////////// + + void SDOXMLWriter::handleSummaryChange( + const SDOXMLString& elementName, + ChangeSummaryPtr cs, + DataObjectPtr dob) + { + int rc; + DataObject* temp = dob; + const char* name; + try + { + name = temp->getContainmentProperty().getName(); + } + catch (SDORuntimeException e) + { + // This could be a root, and have no name. + name = 0; + } + + if (name == 0) + { + rc = xmlTextWriterStartElement( + writer, + elementName); + } + else + { + rc = xmlTextWriterStartElement( + writer, + SDOXMLString(name)); + } + + if (rc != 0) + { + // failed to write an element + return; + } + + try + { + name = temp->objectToXPath(); + } + catch (SDORuntimeException e) + { + name = 0; + } + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("sdo:ref"), + SDOXMLString(name)); + + handleChangeSummaryAttributes(cs, temp); + + handleChangeSummaryElements(cs, temp); + + rc = xmlTextWriterEndElement(writer); + + } + + ////////////////////////////////////////////////////////////////////////// + // Write a Change Summary + ////////////////////////////////////////////////////////////////////////// + + void SDOXMLWriter::handleChangeSummary( + const SDOXMLString& elementName, + ChangeSummaryPtr cs) + { + int i; + int rc; + + ChangedDataObjectList& changedDOs = cs->getChangedDataObjects(); + if (changedDOs.size() > 0) + { + rc = xmlTextWriterStartElementNS(writer, + SDOXMLString("sdo"), SDOXMLString("changeSummary"), SDOXMLString(Type::SDOTypeNamespaceURI)); + + // Fall at the first hurdle - dont write anything. + if (rc != 0) return; + + // write the creates/deletes in the order they + // happened, as elements. + + for (i=0;i< changedDOs.size();i++) + { + if (cs->isCreated(changedDOs[i]) + && changedDOs.getType(i) == ChangedDataObjectList::Create) + { + // TODO - should work out if theres a IDREF here + // TODO - can we have more than one create like this? + try + { + rc = xmlTextWriterWriteElement(writer, + SDOXMLString("create"), + SDOXMLString(changedDOs[i]->objectToXPath())); + } + catch (SDORuntimeException e) + { + // The object was not in our tree - we ignore it. + } + } + if (cs->isDeleted(changedDOs[i]) + && changedDOs.getType(i) == ChangedDataObjectList::Delete) + { + // TODO - should work out if theres a IDREF here + try + { + rc = xmlTextWriterWriteElement(writer, + SDOXMLString("delete"), + SDOXMLString(cs->getOldXpath(changedDOs[i]))); + } + catch (SDORuntimeException e) + { + // The object was not in the deleted list - we ignore it. + } + } + } + + if (cs->isLogging()) + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("logging"), + SDOXMLString("true")); + } + + + for (i=0;i< changedDOs.size();i++) + { + if (cs->isModified(changedDOs[i])) + { + handleSummaryChange(elementName, cs, changedDOs[i]); + } + } + + rc = xmlTextWriterEndElement(writer); + + } + } + + ////////////////////////////////////////////////////////////////////////// + // Add to namespaces + ////////////////////////////////////////////////////////////////////////// + + void SDOXMLWriter::addToNamespaces(DataObjectImpl* dob) + { + std::map::iterator it; + SDOXMLString uri = dob->getType().getURI(); + + it = namespaceMap.find(uri); + if (it == namespaceMap.end()) + { + char buf[20]; + sprintf(buf,"%d",++spacescount); + SDOXMLString s = SDOXMLString("tns") + buf; + namespaceMap.insert(make_pair(uri,s)); + } + + PropertyList pl = dob->getInstanceProperties(); + for (int i = 0; i < pl.size(); i++) + { + if (!dob->isSet(pl[i]))continue; + + if (pl[i].isMany()) + { + if (!pl[i].getType().isDataType()) + { + DataObjectList& dl = dob->getList(pl[i]); + for (int k=0;k< dl.size() ;k++) + { + DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dl[k]; + if (d != 0)addToNamespaces(d); + } + } + } + else + { + if (!pl[i].getType().isDataType()) + { + DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dob->getDataObject(pl[i]); + if (d != 0)addToNamespaces(d); + } + else + { + XSDPropertyInfo* pi = getPropertyInfo(dob->getType(), pl[i]); + if (pi) + { + PropertyDefinition propdef; + propdef = pi->getPropertyDefinition(); + if (propdef.isElement)continue; + if (!propdef.isQName)continue; + + SDOXMLString propertyValue = (dob->getCString(pl[i])); + XMLQName qname(propertyValue); + + it = namespaceMap.find(qname.getURI()); + if (it == namespaceMap.end()) + { + char buf[20]; + sprintf(buf,"%d",++spacescount); + SDOXMLString s = SDOXMLString("tns") + buf; + namespaceMap.insert(make_pair(qname.getURI(),s)); + } + } + } + } + } + } + + + + + ////////////////////////////////////////////////////////////////////////// + // Write a DatObject tree + ////////////////////////////////////////////////////////////////////////// + + int SDOXMLWriter::writeDO( + DataObjectPtr dataObject, + const SDOXMLString& elementURI, + const SDOXMLString& elementName, + bool writeXSIType, + bool isRoot) + { + + int rc; + + if (dataObject == 0) + return 0; + + + //SDOXMLString uri; + //if (!elementURI.equals(namespaceUriStack.top())) + //{ + // uri = elementURI; + // namespaceUriStack.push(elementURI); + //} + + const Type& dataObjectType = dataObject->getType(); + + ////////////////////////////////////////////////////////////////////////// + // suppose its a primitive type - just write the value + ////////////////////////////////////////////////////////////////////////// + if (dataObjectType.isDataType()) + { + if (dataObject->isNull("")) + { + rc = xmlTextWriterStartElementNS(writer, + NULL, elementName, elementURI); + if (rc < 0) + { + SDO_THROW_EXCEPTION("writeDO", + SDOXMLParserException, + "xmlTextWriterStartElementNS failed"); + } + rc = xmlTextWriterWriteAttribute(writer, + (const unsigned char*)"xsi:nil", + (const unsigned char*)"true"); + rc = xmlTextWriterEndElement(writer); + } + else + { + xmlTextWriterWriteElement( + writer, + elementName, + SDOXMLString(dataObject->getCString(""))); + } + + // need to pop stacks before returning + //if (!uri.isNull()) + //{ + // namespaceUriStack.pop(); + //} + return 0; + + } + + + //namespaceStack.push(namespaces); + + + if (isRoot) + { + tnsURI=elementURI; + if (elementURI.equals("")) { + rc = xmlTextWriterStartElementNS(writer, NULL, elementName, NULL); + } + else + { + rc = xmlTextWriterStartElementNS(writer, NULL, elementName, elementURI); + } + if (rc < 0) { + SDO_THROW_EXCEPTION("writeDO", SDOXMLParserException, "xmlTextWriterStartElementNS failed"); + } + } + else + { + //xmlTextWriterWriteString(writer,SDOXMLString("\n")); + + SDOXMLString theName=elementName; + + if (!elementURI.isNull() && !elementURI.equals(tnsURI) && !elementURI.equals("")) + { + std::map::iterator it = namespaceMap.find(elementURI); + if (it != namespaceMap.end()) + { + theName = (*it).second; + theName += ":"; + theName += elementName; + } + } + + rc = xmlTextWriterStartElementNS(writer, NULL, theName, NULL); + if (rc < 0) { + SDO_THROW_EXCEPTION("writeDO", SDOXMLParserException, "xmlTextWriterStartElementNS failed"); + } + } + + + if (writeXSIType) + { + rc = xmlTextWriterWriteAttributeNS(writer, + SDOXMLString("xsi"), SDOXMLString("type"), + NULL, + /*SDOXMLString("http://www.w3.org/2001/XMLSchema-instance"),*/ + SDOXMLString(dataObject->getType().getName())); + if (isRoot) + { + namespaceMap.insert(make_pair( + SDOXMLString("http://www.w3.org/2001/XMLSchema-instance"), + SDOXMLString("xsi"))); + + } + } + + + if (isRoot) + { + std::map::iterator it = namespaceMap.find(elementURI); + if (it == namespaceMap.end()) + { + SDOXMLString s = SDOXMLString("tns"); + namespaceMap.insert(make_pair(elementURI,s)); + } + DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dataObject; + spacescount = 1; + addToNamespaces(d); + +///////////////////////////////////////////////////////////////////////////////////// +// // build the namespace map, and write the items out at the +// // top of the tree. +// int spacecount = 0; +// DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dataObject; +// if (d != 0) +// { +// TypeList types = (d->getDataFactory())->getTypes(); +// std::map::iterator it; +// +// for (int i = 0; i::iterator it = namespaceMap.find(uri); +// if (it == namespaceMap.end()) +// { +// char buf[4]; +// if (!elementURI.isNull()) +// { +// if (elementURI.equals(uri)) +// { +// SDOXMLString s = SDOXMLString("tns"); +// namespaceMap.insert(make_pair(uri,s)); +// } +// else +// { +// sprintf(buf,"%d",++spacecount); +// SDOXMLString s = SDOXMLString("tns") + buf; +// namespaceMap.insert(make_pair(uri,s)); +// } +// } +// } +// } +//////////////////////////////////////////////////////////////////////////////////// + + for (it = namespaceMap.begin();it != namespaceMap.end(); ++it) + { + if ((*it).first.equals("")) continue; + SDOXMLString space = SDOXMLString("xmlns:") + (*it).second; + rc = xmlTextWriterWriteAttribute(writer, + space, (*it).first); + } + } + + + ////////////////////////////////////////////////////////////////////////// + // write out the type if the xsi:type if the containing type is open + // and the property is not one of the declared properties + ////////////////////////////////////////////////////////////////////////// + DataObject* dob = dataObject; + DataObjectImpl* cont = + ((DataObjectImpl*)dob)->getContainerImpl(); + if (cont != 0) + { + if (cont->getType().isOpenType()) + { + //if (dataObject->getType().getURI() != 0) + //{ + // std::string value = + // dataObject->getType().getURI(); + // value += ":"; + // value += dataObject->getType().getName(); + // rc = xmlTextWriterWriteAttribute(writer, + // (const unsigned char*)"xsi:type", + // (const unsigned char*)value.c_str()); + //} + //else + //{ + if (cont->getTypeImpl().getPropertyImpl(elementName) == 0) + { + rc = xmlTextWriterWriteAttribute(writer, + (const unsigned char*)"xsi:type", + (const unsigned char*)dataObject->getType().getName()); + } + } + } + + // write nil if required + if (dataObject->isNull("")) + { + rc = xmlTextWriterWriteAttribute(writer, + (const unsigned char*)"xsi:nil", + (const unsigned char*)"true"); + } + + + ////////////////////////////////////////////////////////////////////////// + // Iterate over all the properties to find attributes + ////////////////////////////////////////////////////////////////////////// + int i; + int j = 1; + PropertyList pl = dataObject->getInstanceProperties(); + for (i = 0; i < pl.size(); i++) + { + if (dataObject->isSet(pl[i])) + { + SDOXMLString propertyName(pl[i].getName()); + XSDPropertyInfo* pi = getPropertyInfo(dataObjectType, pl[i]); + PropertyDefinition propdef; + if (pi) + { + propdef = pi->getPropertyDefinition(); + propertyName = propdef.localname; + } + + // Elements are written as + if (propdef.isElement) + continue; + + // Many-valued properties are written as + if (pl[i].isMany()) + continue; + + // if (pl[i].isContainment()) + // continue; + + ////////////////////////////////////////////////////////////////////// + // Non contained properties become attributes + ////////////////////////////////////////////////////////////////////// + const Type& propertyType = pl[i].getType(); + + if (propertyType.isDataType()) + { + SDOXMLString propertyValue = (dataObject->getCString(pl[i])); + if (pi && pi->getPropertyDefinition().isQName) + { + XMLQName qname(propertyValue); + + //{ + //const SDOXMLString* prefix = namespaces.findPrefix(qname.getURI()); + //if (prefix == 0) + //{ + // char buffer[100]; + // SDOXMLString pref = "tns"; + // sprintf(buffer, "%d", i); + // pref += buffer; + // namespaces.add(pref, qname.getURI()); + // prefix = namespaces.findPrefix(qname.getURI()); + //} + + //if (prefix != 0 && !(*prefix).equals("")) + + std::map::iterator it = namespaceMap.find(qname.getURI()); + if (it != namespaceMap.end()) + { + propertyValue = (*it).second + ":" + qname.getLocalName(); + } + else + { + char buffer[20]; + SDOXMLString pref = "tnss"; + sprintf(buffer, "%d", j++); + pref += buffer; + rc = xmlTextWriterWriteAttributeNS(writer, + SDOXMLString("xmlns"), pref, NULL, qname.getURI()); + propertyValue = pref + ":" + qname.getLocalName(); + } + + } + rc = xmlTextWriterWriteAttribute(writer, + propertyName, propertyValue); + } + else + { + // Handle non-containment reference to DataObject + if (pl[i].isReference()) + { + writeReference(dataObject, pl[i], false); + } + } + } + } + + // -------------------- + // Handle ChangeSummary + // -------------------- + if (dataObject->getType().isChangeSummaryType()) + { + ChangeSummaryPtr changeSummary = dataObject->getChangeSummary(); + if (changeSummary) + { + handleChangeSummary(elementName, changeSummary); + } + } + + if (dataObjectType.isSequencedType()) + { + SequencePtr sequence = dataObject->getSequence(); + if (sequence) + { + for (i=0; isize(); i++) + { + + if (sequence->isText(i)) + { + rc = xmlTextWriterWriteString( + writer, + SDOXMLString(sequence->getCStringValue(i))); + continue; + } // end TextType + + const Property& seqProp = sequence->getProperty(i); + SDOXMLString seqPropName = seqProp.getName(); + const Type& seqPropType = seqProp.getType(); + + if (seqPropType.isDataObjectType()) + { + DataObjectPtr doValue; + if (seqProp.isMany()) + { + int index = sequence->getListIndex(i); + doValue = dataObject->getList(seqProp)[index]; + } + else + { + doValue = dataObject->getDataObject(seqProp); + } + + if (doValue) + { + // Handle non-containment reference to DataObject + if (seqProp.isReference()) + { + writeReference(dataObject, seqProp, true, doValue); + } + else + { + writeDO(doValue, doValue->getType().getURI(), seqPropName); + } + } + } // end DataObject + + + else + { + // Sequence member is a primitive + xmlTextWriterWriteElement( + writer, + seqPropName, + SDOXMLString(sequence->getCStringValue(i))); + + } // end DataType + } // end - iterate over sequence + + } + + } // end sequence handling + + else + { + + ////////////////////////////////////////////////////////////////////////// + // Iterate over all the properties to find elements + ////////////////////////////////////////////////////////////////////////// + for (i = 0; i < pl.size(); i++) + { + if (dataObject->isSet(pl[i])) + { + + SDOXMLString propertyName(pl[i].getName()); + XSDPropertyInfo* pi = getPropertyInfo(dataObjectType, pl[i]); + if (pi) + { + if (!pi->getPropertyDefinition().isElement) + continue; + propertyName = pi->getPropertyDefinition().localname; + } + + const Type& propertyType = pl[i].getType(); + + ////////////////////////////////////////////////////////////////////// + // For a many-valued property get the list of values + ////////////////////////////////////////////////////////////////////// + if (pl[i].isMany()) + { + DataObjectList& dol = dataObject->getList(pl[i]); + for (int j = 0; j getType().getURI(); + writeDO(dol[j], dol[j]->getType().getURI(), propertyName); + } + } + } // end IsMany + + ////////////////////////////////////////////////////////////////////// + // For a dataobject write the do + ////////////////////////////////////////////////////////////////////// + else if (!propertyType.isDataType()) + { + // Handle non-containment reference to DataObject + if (pl[i].isReference()) + { + if (pi) + writeReference(dataObject, pl[i], true); + } + else + { + DataObjectPtr propDO = dataObject->getDataObject(pl[i]); + writeDO(propDO, propDO->getType().getURI(), propertyName); + } + } + + ////////////////////////////////////////////////////////////////////// + // For a primitive + ////////////////////////////////////////////////////////////////////// + else + { + // Only write a primitive as an element if defined by the XSD + if (pi) + { + const Type& tp = dataObject->getType(); + XSDTypeInfo* typeInfo = (XSDTypeInfo*) + ((DASType*)&tp)->getDASValue("XMLDAS::TypeInfo"); + if (typeInfo && typeInfo->getTypeDefinition().isExtendedPrimitive) + { + xmlTextWriterWriteRaw( + writer, + SDOXMLString(dataObject->getCString(pl[i]))); + } + else + { + if (dataObject->isNull(propertyName)) + { + rc = xmlTextWriterStartElementNS(writer, + NULL, elementName, elementURI); + if (rc < 0) + { + SDO_THROW_EXCEPTION("writeDO", + SDOXMLParserException, + "xmlTextWriterStartElementNS failed"); + } + rc = xmlTextWriterWriteAttribute(writer, + (const unsigned char*)"xsi:nil", + (const unsigned char*)"true"); + rc = xmlTextWriterEndElement(writer); + } + else + { + xmlTextWriterWriteElement( + writer, + propertyName, + SDOXMLString(dataObject->getCString(pl[i]))); + } + } + } + } + } + } + } + rc = xmlTextWriterEndElement(writer); + return rc; + + //namespaces = namespaceStack.top(); + //namespaceStack.pop(); + //if (!uri.isNull()) + //{ + // namespaceUriStack.pop(); + //} + } + + XSDPropertyInfo* SDOXMLWriter::getPropertyInfo(const Type& type, const Property& property) + { + if (dataFactory) + { + return (XSDPropertyInfo*)dataFactory->getDASValue(type, property.getName(), "XMLDAS::PropertyInfo"); + } + else + { + return (XSDPropertyInfo*)((DASProperty*)&property)->getDASValue("XMLDAS::PropertyInfo"); + } + + } + + void SDOXMLWriter::writeReference( + DataObjectPtr dataObject, + const Property& property, + bool isElement, + DataObjectPtr refferedToObject) + { + DataObjectPtr reffedObject = refferedToObject; + if (reffedObject == 0) + { + reffedObject = dataObject->getDataObject(property); + } + + // Get ID from referred to DataObject or use XPath + SDOXMLString refValue; + XSDTypeInfo* ti = (XSDTypeInfo*)((DASType*)&reffedObject->getType())-> + getDASValue("XMLDAS::TypeInfo"); + if (ti) + { + TypeDefinition typeDef = ti->getTypeDefinition(); + if (!typeDef.IDPropertyName.isNull()) + { + refValue = reffedObject->getCString(typeDef.IDPropertyName); + } + } + + if (refValue.isNull()) + { + // need to get XPATH + refValue = ((DataObjectImpl*)(DataObject*)reffedObject)->objectToXPath(); + } + + if (!refValue.isNull()) + { + if (isElement) + { + // Set the IDREF value + xmlTextWriterWriteElement(writer, + SDOXMLString(property.getName()), refValue); + } + else + { + // Set the IDREF value + xmlTextWriterWriteAttribute(writer, + SDOXMLString(property.getName()), refValue); + } + } + } + + } // End - namespace sdo +} // End - namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.h new file mode 100644 index 0000000000..b862a492e1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.h @@ -0,0 +1,117 @@ +/* + * + * 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: 2006/02/01 12:53:49 $ */ + +#ifndef _SDOXMLWRITER_H_ +#define _SDOXMLWRITER_H_ + +#include "commonj/sdo/disable_warn.h" + +#include +#include "commonj/sdo/XMLDocument.h" +#include "commonj/sdo/SDOXMLString.h" +#include "commonj/sdo/SchemaInfo.h" +#include "commonj/sdo/DataFactory.h" +#include "commonj/sdo/XSDPropertyInfo.h" +#include +#include "commonj/sdo/SAX2Namespaces.h" +#include "commonj/sdo/DataObjectImpl.h" + + +namespace commonj +{ + namespace sdo + { + +/** + * SDOXMLWriter writes a data object tree to XML + */ + class SDOXMLWriter + { + + public: + + SDOXMLWriter(DataFactoryPtr dataFactory = NULL); + + virtual ~SDOXMLWriter(); + + int write(XMLDocumentPtr doc, int indent=-1); + + protected: + void setWriter(xmlTextWriterPtr textWriter); + void freeWriter(); + + private: + xmlTextWriterPtr writer; + + void handleChangeSummaryAttributes( + ChangeSummaryPtr cs, + DataObjectPtr doB); + + void handleChangeSummaryElements( + ChangeSummaryPtr cs, + DataObjectPtr dob); + + void handleChangeSummaryDeletedObject( + const char* name, + ChangeSummaryPtr cs, + DataObjectPtr dob); + + void handleSummaryChange( + const SDOXMLString& elementName, + ChangeSummaryPtr cs, + DataObjectPtr dob); + + void handleChangeSummary( + const SDOXMLString& elementName, + ChangeSummaryPtr cs); + + void addToNamespaces(DataObjectImpl* dob); + + int writeDO( + DataObjectPtr dataObject, + const SDOXMLString& elementURI, + const SDOXMLString& elementName, + bool writeXSIType = false, + bool isRoot = false); + + SchemaInfo* schemaInfo; + DataFactoryPtr dataFactory; + + XSDPropertyInfo* getPropertyInfo(const Type& type, const Property& property); + + //std::stack namespaceUriStack; + //SAX2Namespaces namespaces; + //std::stack namespaceStack; + int spacescount; + std::map namespaceMap; + SDOXMLString tnsURI; + + + void writeReference( + DataObjectPtr dataObject, + const Property& property, + bool isElement, + DataObjectPtr refferedToObject = 0); + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_SDOXMLWRITER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.cpp new file mode 100644 index 0000000000..e92b0eb48e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.cpp @@ -0,0 +1,53 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/SDOXSDBufferWriter.h" +#include "commonj/sdo/SDORuntimeException.h" + +namespace commonj +{ + namespace sdo + { + + + + + SDOXSDBufferWriter::SDOXSDBufferWriter() + { + buf = xmlBufferCreate(); + if (buf == NULL) + { + SDO_THROW_EXCEPTION("SDOXSDBufferWriter", SDOXMLParserException, "xmlBufferCreate failed"); + } + setWriter(xmlNewTextWriterMemory(buf, 0)); + } + + SDOXSDBufferWriter::~SDOXSDBufferWriter() + { + freeWriter(); + xmlBufferFree(buf); + } + + SDOXMLString SDOXSDBufferWriter::getBuffer() + { + freeWriter(); + return xmlBufferContent(buf); + } + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.h new file mode 100644 index 0000000000..a923c32bd1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.h @@ -0,0 +1,52 @@ +/* + * + * 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:15 $ */ + +#ifndef _SDOXSDBUFFERWRITER_H_ +#define _SDOXSDBUFFERWRITER_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SDOXSDWriter.h" + + +namespace commonj +{ + namespace sdo + { + +/** + * SDOXSDBufferWriter extends SDOXSDWriter and writes a buffer. + */ + class SDOXSDBufferWriter : public SDOXSDWriter + { + + public: + + SDOXSDBufferWriter(); + virtual ~SDOXSDBufferWriter(); + + SDOXMLString getBuffer(); + private: + xmlBufferPtr buf; + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_SDOXSDBUFFERWRITER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.cpp new file mode 100644 index 0000000000..e0a5b78de4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.cpp @@ -0,0 +1,43 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/SDOXSDFileWriter.h" + +namespace commonj +{ + namespace sdo + { + + + + + SDOXSDFileWriter::SDOXSDFileWriter(const char* xsdFile) + { + setWriter(xmlNewTextWriterFilename(xsdFile, 0)); + } + + SDOXSDFileWriter::~SDOXSDFileWriter() + { + + } + + + } // End - namespace sdo +} // End - namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.h new file mode 100644 index 0000000000..b85b88bbc4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.h @@ -0,0 +1,51 @@ +/* + * + * 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:15 $ */ + +#ifndef _SDOXSDFILEWRITER_H_ +#define _SDOXSDFILEWRITER_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SDOXSDWriter.h" + + +namespace commonj +{ + namespace sdo + { + +/** + * SDOXSDFileWriter extends SDOXSDWriter and writes a file. + */ + class SDOXSDFileWriter : public SDOXSDWriter + { + + public: + + SDOXSDFileWriter(const char* xsdFile); + + virtual ~SDOXSDFileWriter(); + + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_SDOXSDFILEWRITER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.cpp new file mode 100644 index 0000000000..664dbe1c6f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.cpp @@ -0,0 +1,51 @@ +/* + * + * 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: 2006/02/01 16:24:13 $ */ + +#include "commonj/sdo/SDOXSDStreamWriter.h" +#include + +namespace commonj +{ + namespace sdo + { + + + + + SDOXSDStreamWriter::SDOXSDStreamWriter(std::ostream& outXML) + : outXmlStream(outXML) + { + } + + SDOXSDStreamWriter::~SDOXSDStreamWriter() + { + } + + int SDOXSDStreamWriter::write(const TypeList& types, const SDOXMLString& targetNamespaceURI, + const propertyMap& openprops, int indent) + { + int rc = SDOXSDBufferWriter::write(types, targetNamespaceURI, openprops, indent); + + // Now stream the buffer + outXmlStream << getBuffer(); + return rc; + } + } // End - namespace sdo +} // End - namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.h new file mode 100644 index 0000000000..5f80536f4d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.h @@ -0,0 +1,55 @@ +/* + * + * 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: 2006/02/01 16:24:13 $ */ + +#ifndef _SDOXSDSTREAMWRITER_H_ +#define _SDOXSDSTREAMWRITER_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SDOXSDBufferWriter.h" +#include + + +namespace commonj +{ + namespace sdo + { + +/** + * SDOXSDStreamWriter extends SDOXSDWriter and writes a stream. + */ + class SDOXSDStreamWriter : public SDOXSDBufferWriter + { + + public: + + SDOXSDStreamWriter(std::ostream& outXML); + virtual ~SDOXSDStreamWriter(); + + int write(const TypeList& types, const SDOXMLString& targetNamespaceURI, + const propertyMap& openprops, int indent = -1); + private: + std::ostream& outXmlStream; + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_SDOXSDSTREAMWRITER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.cpp new file mode 100644 index 0000000000..bf504019b3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.cpp @@ -0,0 +1,840 @@ +/* + * + * 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: 2006/02/01 12:53:49 $ */ + +#include "commonj/sdo/SDOXSDWriter.h" +#include "iostream" +using namespace::std; +#include "commonj/sdo/DASProperty.h" +#include "commonj/sdo/XSDPropertyInfo.h" +#include "commonj/sdo/SDORuntimeException.h" +#include "commonj/sdo/DataFactoryImpl.h" + +namespace commonj +{ + namespace sdo + { + + + + + SDOXSDWriter::SDOXSDWriter( + DataFactoryPtr dataFact) + : dataFactory(dataFact) + { + + } + + SDOXSDWriter::~SDOXSDWriter() + { + freeWriter(); + } + + void SDOXSDWriter::setWriter(xmlTextWriterPtr textWriter) + { + writer = textWriter; + } + + void SDOXSDWriter::freeWriter() + { + if (writer != NULL) + { + xmlFreeTextWriter(writer); + writer = NULL; + } + } + + + void SDOXSDWriter::writeProps( const propertyMap& pl, const SDOXMLString& targetNamespaceURI, + SDOXMLString& xsd) + { + int rc; + + // ------------------------------------------------------- + // Create definitions + // ------------------------------------------------------- + + propertyMap::const_iterator j; + for (j = pl.begin(); j != pl.end(); ++j) + { + const PropertyImpl& prop = (*j).second; + const Type& propType = prop.getType(); + + + SDOXMLString propTypeName = resolveName(propType.getURI(), + propType.getName(), targetNamespaceURI); + + + if (prop.isMany() || !prop.getType().isDataType()) + { + // ----------------------------- + // Write an definition + // ----------------------------- + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("element"), NULL); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("name"), + SDOXMLString(prop.getName())); + + if (!propType.isDataType() && !prop.isContainment()) + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("sdoxml:propertyType"), + propTypeName); + propTypeName = "xsd:anyURI"; + } + + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("type"), + propTypeName); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("minOccurs"), + SDOXMLString("0")); + + if (prop.isMany()) + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("maxOccurs"), + SDOXMLString("unbounded")); + } + + // End element + rc = xmlTextWriterEndElement(writer); + } + else + { + // ------------------------------- + // Write an definition + // ------------------------------- + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("attribute"), NULL); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("name"), + SDOXMLString(prop.getName())); + + if (!propType.isDataType()) + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("sdoxml:propertyType"), + propTypeName); + if (prop.isReference()) + { + propTypeName = "xsd:IDREF"; + } + else + { + propTypeName = "xsd:anyURI"; + } + } + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("type"), + propTypeName); + + // End attribute + rc = xmlTextWriterEndElement(writer); + + } // else + } // for + } // method + + + //////////////////////////////////////// + + int SDOXSDWriter::write(const TypeList& types, const SDOXMLString& targetNamespaceURI, + const propertyMap& openprops, int indent) + { + int i; + if (writer == NULL) + { + // Throw exception + return -1; + } + + int rc = 0; + + if (indent >= 0) + { + xmlTextWriterSetIndent(writer, 1); + if (indent > 0) + { + char * chars = new char[indent+1]; + for (int i=0;i definition including namespace information + // -------------------------------------------------------------- + SDOXMLString tns; + SDOXMLString xsd("xsd"); + SDOXMLString sdoURI(Type::SDOTypeNamespaceURI); + + SDOXMLString schemaURI = "http://www.w3.org/2001/XMLSchema"; + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("schema"), schemaURI); + if (rc < 0) { + SDO_THROW_EXCEPTION("write", SDOXMLParserException, "xmlTextWriterStartElementNS failed"); + } + + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("xmlns:sdo"), + sdoURI); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("xmlns:sdoxml"), + sdoURI + "/xml"); + + // -------------------------------------------------------------- + // Add all namespaces found in type list + // -------------------------------------------------------------- + int spacecount = 0; + + std::map::iterator it; + + for (i = 0; i::iterator it = namespaceMap.find(uri); + if (it == namespaceMap.end()) + { + char buf[4]; + if (!targetNamespaceURI.isNull() + && !targetNamespaceURI.equals(uri)) + { + sprintf(buf,"%d",++spacecount); + SDOXMLString s = SDOXMLString("tns") + buf; + namespaceMap.insert(make_pair(uri,s)); + } + } + } + + for (it = namespaceMap.begin();it != namespaceMap.end(); ++it) + { + SDOXMLString space = SDOXMLString("xmlns:") + (*it).second; + rc = xmlTextWriterWriteAttribute(writer, + space, (*it).first); + } + + // -------------------------------------------------------------- + // Add targetNamespace if necessary + // -------------------------------------------------------------- + if (!targetNamespaceURI.isNull() && !targetNamespaceURI.equals("")) + { + tns = "tns:"; + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("xmlns:tns"), + targetNamespaceURI); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("targetNamespace"), + targetNamespaceURI); + } + + + // -------------------------------------------------------------- + // Now iterate through the Types creating elements as appropriate + // -------------------------------------------------------------- + for (i = 0; i 0) + { + unsigned int j = type.getAliasCount(); + SDOXMLString value = ""; + for (int i=0;igetURI(), baseType->getName(), targetNamespaceURI); + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("base"), + baseName); + + + rc = xmlTextWriterEndElement(writer); + } + rc = xmlTextWriterEndElement(writer); + + } + else + // --------------------------------------------------------------------- + // DataObject Types become ComplexType definitions with a global element + // --------------------------------------------------------------------- + { + rc = xmlTextWriterStartElementNS(writer,xsd, SDOXMLString("element"), NULL); + if (rc < 0) { + SDO_THROW_EXCEPTION("write", SDOXMLParserException, "xmlTextWriterStartElementNS failed"); + } + + SDOXMLString typeName; + it = namespaceMap.find(type.getURI()); + if (it != namespaceMap.end() && + !targetNamespaceURI.equals((*it).first)) + { + typeName = (*it).second + ":" + name; + } + else + { + typeName = name; + } + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("name"), + name.toLower(0,1)); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("type"), + typeName); + + rc = xmlTextWriterEndElement(writer); + + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("complexType"), NULL); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("name"), + typeName); + + // ----------------------------------------------------- + // If there is an alias, write it + // ----------------------------------------------------- + if (type.getAliasCount() > 0) + { + unsigned int j = type.getAliasCount(); + SDOXMLString value = ""; + for (int i=0;i + // ----------------------------------------------------- + if (baseType != 0) + { + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("complexContent"), NULL); + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("extension"), NULL); + + SDOXMLString baseName = resolveName(baseType->getURI(), baseType->getName(), targetNamespaceURI); + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("base"), + baseName); + + // End extension + rc = xmlTextWriterEndElement(writer); + } + + // --------------------------- + // Iterate over the properties + // --------------------------- + PropertyList pl = type.getProperties(); + + if (pl.size() != 0) + { + bool inSequence = false; + + // ------------------------------------------------------- + // Create definitions + // ------------------------------------------------------- + + int j; + for (j = 0; j < pl.size(); j++) + { + const Property& prop = pl[j]; + const Type& propType = prop.getType(); + + SDOXMLString propTypeName = resolveName(propType.getURI(), + propType.getName(), targetNamespaceURI); + + bool isElement = false; + bool isQName = false; + XSDPropertyInfo* pi = (XSDPropertyInfo*) + ((DASProperty*)&prop)->getDASValue("XMLDAS::PropertyInfo"); + if (pi) + { + PropertyDefinition propdef = pi->getPropertyDefinition(); + if (propdef.isElement) + isElement=true; + if (propdef.isQName) + isQName=true; + } + + if (prop.isMany() + || prop.isContainment() + || isElement) + { + // ------------------------------------------------- + // Write or before first element + // ------------------------------------------------- + if (!inSequence) + { + if (type.isSequencedType()) + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("mixed"), + SDOXMLString("true")); + + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("choice"), NULL); + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("maxOccurs"), + SDOXMLString("unbounded")); + } + else + { + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("sequence"), NULL); + } + inSequence = true; + } + // ----------------------------- + // Write an definition + // ----------------------------- + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("element"), NULL); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("name"), + SDOXMLString(prop.getName())); + + if (!propType.isDataType() && !prop.isContainment()) + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("sdoxml:propertyType"), + propTypeName); + propTypeName = "xsd:anyURI"; + } + + if (isQName) + { + propTypeName = "xsd:QName"; + } + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("type"), + propTypeName); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("minOccurs"), + SDOXMLString("0")); + + if (prop.isMany()) + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("maxOccurs"), + SDOXMLString("unbounded")); + } + + // ----------------------------------------------------- + // If there is an alias... + // ----------------------------------------------------- + if (prop.getAliasCount() > 0) + { + unsigned int j = prop.getAliasCount(); + SDOXMLString value = ""; + for (int i=0;i / if necessary + // ----------------------------------------------------- + if (inSequence) + { + // End sequence + rc = xmlTextWriterEndElement(writer); + } + + // --------------------------------- + // Add ChangeSummary if there is one + // --------------------------------- + if (type.isChangeSummaryType()) + { + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("element"), NULL); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("name"), + SDOXMLString("changeSummary")); + + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("type"), + SDOXMLString("sdo:ChangeSummaryType")); + + rc = xmlTextWriterEndElement(writer); + } + + // ------------------------------------------------------- + // Create definitions + // ------------------------------------------------------- + for (j = 0; j < pl.size(); j++) + { + const Property& prop = pl[j]; + const Type& propType = prop.getType(); + + + SDOXMLString propTypeName = resolveName(propType.getURI(), + propType.getName(), targetNamespaceURI); + + bool isElement = false; + XSDPropertyInfo* pi = (XSDPropertyInfo*) + ((DASProperty*)&prop)->getDASValue("XMLDAS::PropertyInfo"); + if (pi) + { + if (pi->getPropertyDefinition().isElement) + isElement=true; + } + + if (!isElement + && !prop.isMany() + && !prop.isContainment()) + { + // ------------------------------- + // Write an definition + // ------------------------------- + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("attribute"), NULL); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("name"), + SDOXMLString(prop.getName())); + + if (!propType.isDataType()) + { + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("sdoxml:propertyType"), + propTypeName); + if (prop.isReference()) + { + propTypeName = "xsd:IDREF"; + } + else + { + propTypeName = "xsd:anyURI"; + } + } + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("type"), + propTypeName); + + // End attribute + rc = xmlTextWriterEndElement(writer); + + } + + } + + } + + // ----------------------------------------------------- + // Write open type information + // ----------------------------------------------------- + if (type.isOpenType()) + { + // + + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("any"), NULL); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("namespace"), + SDOXMLString("##other")); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("processContents"), + SDOXMLString("lax")); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("minOccurs"), + SDOXMLString("0")); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("maxOccurs"), + SDOXMLString("unbounded")); + + + // End element + rc = xmlTextWriterEndElement(writer); + + // ----------------------------------------------------- + // Write open type information 2 + // ----------------------------------------------------- + // + + rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("anyAttribute"), NULL); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("namespace"), + SDOXMLString("##any")); + + rc = xmlTextWriterWriteAttribute(writer, + SDOXMLString("processContents"), + SDOXMLString("lax")); + + // End element + rc = xmlTextWriterEndElement(writer); + + } + + // ----------------------------------------------------- + // End if necessary + // ----------------------------------------------------- + if (baseType != 0) + { + rc = xmlTextWriterEndElement(writer); + } + + + rc = xmlTextWriterEndElement(writer); + } + } + + + // ----------------------------------------------- + // Write any open content from the factory + // ----------------------------------------------- + if (openprops.size() != 0) + { + writeProps(openprops, targetNamespaceURI, xsd); + } + // End the definition + rc = xmlTextWriterEndElement(writer); + return rc; + } + + + // ======================================================================================== + // resolveName - resolve a Type uri and name to xsd equivalent + // ======================================================================================== + SDOXMLString SDOXSDWriter::resolveName(const SDOXMLString& uri, const SDOXMLString& name, const SDOXMLString& targetNamespaceURI) + { + SDOXMLString resolvedName = name; + if (uri.equals(Type::SDOTypeNamespaceURI)) + { + resolvedName = "xsd:"; + if (name.equalsIgnoreCase("Boolean")) + { + resolvedName += "boolean"; + } + else if (name.equalsIgnoreCase("Byte")) + { + resolvedName += "byte"; + } + else if (name.equalsIgnoreCase("Bytes")) + { + resolvedName += "hexBinary"; + } + else if (name.equalsIgnoreCase("Character")) + { + resolvedName += "string"; + } + else if (name.equalsIgnoreCase("DataObject")) + { + resolvedName += "anyType"; + } + else if (name.equalsIgnoreCase("Date")) + { + resolvedName += "dateTime"; + } + else if (name.equalsIgnoreCase("DateTime")) + { + resolvedName += "dateTime"; + } + else if (name.equalsIgnoreCase("Day")) + { + resolvedName += "gDay"; + } + else if (name.equalsIgnoreCase("Decimal")) + { + resolvedName += "decimal"; + } + else if (name.equalsIgnoreCase("Double")) + { + resolvedName += "double"; + } + else if (name.equalsIgnoreCase("Duration")) + { + resolvedName += "duration"; + } + else if (name.equalsIgnoreCase("Float")) + { + resolvedName += "float"; + } + else if (name.equalsIgnoreCase("Int")) + { + resolvedName += "int"; + } + else if (name.equalsIgnoreCase("Integer")) + { + resolvedName += "integer"; + } + else if (name.equalsIgnoreCase("Long")) + { + resolvedName += "long"; + } + else if (name.equalsIgnoreCase("Month")) + { + resolvedName += "gMonth"; + } + else if (name.equalsIgnoreCase("MonthDay")) + { + resolvedName += "gMonthDay"; + } + else if (name.equalsIgnoreCase("Object")) + { + resolvedName += "anySimpleType"; + } + else if (name.equalsIgnoreCase("Short")) + { + resolvedName += "short"; + } + else if (name.equals("String")) + { + resolvedName += "String"; + } + else if (name.equalsIgnoreCase("Strings")) + { + resolvedName += "string"; + } + else if (name.equalsIgnoreCase("Time")) + { + resolvedName += "time"; + } + else if (name.equalsIgnoreCase("Year")) + { + resolvedName += "gYear"; + } + else if (name.equalsIgnoreCase("YearMonth")) + { + resolvedName += "gYearMonth"; + } + else if (name.equalsIgnoreCase("YearMonthDay")) + { + resolvedName += "date"; + } + else if (name.equalsIgnoreCase("URI")) + { + resolvedName += "anyURI"; + } + else + { + resolvedName += "String"; + } + } + else if (!targetNamespaceURI.isNull() && uri.equals(targetNamespaceURI)) + { + resolvedName = "tns:"; + resolvedName += name; + } + else + { + SDOXMLString propTypeName; + std::map::iterator it; + it = namespaceMap.find(uri); + if (it != namespaceMap.end() && + !targetNamespaceURI.equals((*it).first)) + { + resolvedName = (*it).second + ":" + name; + } + } + + return resolvedName; + } + + + + } // End - namespace sdo +} // End - namespace commonj + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.h new file mode 100644 index 0000000000..88ab27fbe6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.h @@ -0,0 +1,75 @@ +/* + * + * 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: 2006/02/01 12:53:49 $ */ + +#ifndef _SDOXSDWRITER_H_ +#define _SDOXSDWRITER_H_ + +#include "commonj/sdo/disable_warn.h" + +#include +#include "commonj/sdo/SDOXMLString.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/DataFactoryImpl.h" + + +namespace commonj +{ + namespace sdo + { + +/** + * SDOXSDWriter writes XSD from types and properties. + * The writer takes the contents of a data factory and writes an + * XSD which will be usable to serialize data from the graph. + */ + class SDOXSDWriter + { + + public: + + SDOXSDWriter(DataFactoryPtr dataFactory = NULL); + + virtual ~SDOXSDWriter(); + + int write(const TypeList& types, const SDOXMLString& targetNamespaceURI, + const propertyMap& openprops, int indent = -1); + + protected: + void setWriter(xmlTextWriterPtr textWriter); + void freeWriter(); + + private: + xmlTextWriterPtr writer; + + std::map namespaceMap; + + void writeProps( const propertyMap& pl, const SDOXMLString& targetNamespaceURI, + SDOXMLString& xsd); + int writeDO(DataObjectPtr dataObject, const SDOXMLString& elementName); + + DataFactoryPtr dataFactory; + + SDOXMLString resolveName(const SDOXMLString& uri, const SDOXMLString& name, const SDOXMLString& targetNamespaceURI); + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_SDOXSDWRITER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.cpp new file mode 100644 index 0000000000..024546876a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.cpp @@ -0,0 +1,35 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/SchemaInfo.h" +namespace commonj +{ + namespace sdo + { + + SchemaInfo::SchemaInfo() + { + } + + SchemaInfo::~SchemaInfo() + { + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.h new file mode 100644 index 0000000000..0488df1893 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.h @@ -0,0 +1,59 @@ +/* + * + * 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:15 $ */ + +#ifndef _SCHEMAINFO_H_ +#define _SCHEMAINFO_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SAX2Namespaces.h" +#include "commonj/sdo/DataObject.h" + +namespace commonj +{ + namespace sdo + { + +/** + * + * SchemaInfo holds information supplied by the parser on the schema + * held in an XSD + */ + class SchemaInfo + { + + public: + SDO_SPI SchemaInfo(); + SDO_SPI virtual ~SchemaInfo(); + + SDO_SPI SAX2Namespaces& getSchemaNamespaces() {return schemaNamespaces;} + + SDO_SPI const SDOXMLString& getTargetNamespaceURI() const {return targetNamespaceURI;} + SDO_SPI void setTargetNamespaceURI(const SDOXMLString& URI) {targetNamespaceURI = URI;} + + private: + SAX2Namespaces schemaNamespaces; + SDOXMLString targetNamespaceURI; + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_SCHEMAINFO_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.cpp new file mode 100644 index 0000000000..d577d5bd12 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.cpp @@ -0,0 +1,27 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/SdoCheck.h" + +extern "C" { + SDO_API int SDOCheck(void) + { + return 0; + } +} diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.h new file mode 100644 index 0000000000..daf28c6d6f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.h @@ -0,0 +1,33 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/export.h" + + +/** + * SDOCheck is a simple C method which can be called to verify that + * this is an SDO library - this is used in building + */ + +extern "C" { + SDO_API int SDOCheck(void); +} + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.cpp new file mode 100644 index 0000000000..177fc90e4e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.cpp @@ -0,0 +1,64 @@ +/* + * + * 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: 2006/01/23 16:39:24 $ */ + +#include "commonj/sdo/SdoRuntime.h" +#include +#include + +namespace commonj{ +namespace sdo{ + + +const unsigned int SdoRuntime::major = 0; +const unsigned int SdoRuntime::minor = 9; +const unsigned int SdoRuntime::fix =3; +char* SdoRuntime::version = 0; + + + +const char* SdoRuntime::getVersion() +{ + if (SdoRuntime::version == 0) + { + SdoRuntime::version = new char[11]; + sprintf(SdoRuntime::version,"%02d:%02d:%04d", + SdoRuntime::major, SdoRuntime::minor, SdoRuntime::fix); + } + return (const char *)SdoRuntime::version; + +} + +const unsigned int SdoRuntime::getMajor() +{ + return SdoRuntime::major; +} + +const unsigned int SdoRuntime::getMinor() +{ + return SdoRuntime::minor; +} + +const unsigned int SdoRuntime::getFix() +{ + return SdoRuntime::fix; +} + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.h new file mode 100644 index 0000000000..5720a34a0c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.h @@ -0,0 +1,74 @@ +/* + * + * 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:15 $ */ + +#ifndef SDO_RUNTIME_H +#define SDO_RUNTIME_H +#include "commonj/sdo/export.h" + +namespace commonj{ +namespace sdo{ + +/** + * SDORuntime gives information about the version of the library. + */ + +class SdoRuntime +{ + public: + + virtual ~SdoRuntime(); + + /** + * The version as a string major:minor:fix + */ + + static SDO_API const char* getVersion(); + + /** + * The major version as an integer. + */ + + static SDO_API const unsigned int getMajor(); + + /** + * The minor version as an integer. + */ + + static SDO_API const unsigned int getMinor(); + + /** + * The fix level as an integer. + */ + + static SDO_API const unsigned int getFix(); + + + private: + static const unsigned int major; + static const unsigned int minor; + static const unsigned int fix; + static char* version; + +}; +}; +}; + + +#endif + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.cpp new file mode 100644 index 0000000000..3e830e9889 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.cpp @@ -0,0 +1,36 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/Property.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/TypeList.h" + +#include "commonj/sdo/Sequence.h" + +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/SDORuntimeException.h" + + +namespace commonj{ +namespace sdo{ + +// all delegated to sequenceimpl +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.h new file mode 100644 index 0000000000..610848ce98 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.h @@ -0,0 +1,309 @@ +/* + * + * 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: 2006/02/02 16:41:30 $ */ + +#ifndef _SEQUENCE_H_ +#define _SEQUENCE_H_ + + +#include "commonj/sdo/export.h" +#include "commonj/sdo/RefCountingObject.h" +#include "commonj/sdo/RefCountingPointer.h" +#include "commonj/sdo/SDODate.h" +#include "commonj/sdo/Type.h" + + +namespace commonj{ +namespace sdo{ + +class Property; /* forward declaration */ +class DataObject; + +/** + * A sequence is a heterogeneous list of properties and corresponding values. + * It represents an ordered arbitrary mixture of data values from more + * than one property of a {@link DataObject data object}. + */ + +class Sequence : public RefCountingObject +{ + public: + /** size() returns the number of elements + * + * Returns the number of entries in the sequence. + */ + + SDO_API virtual unsigned int size() = 0; + + /** + * + * A Sequence element is either a free text item, or represents a property + * setting. If the element is a property setting, then the information + * held in the element consists of: + * -# The property which was set. + * -# The element of that property if it was many valued. + * -# The value which was set. + * + * If the sequence element is text, then there is no property, and only the + * methods for text retrieval will work. Use the isText() method to check + * before calling getProperty(). + */ + + SDO_API virtual const Property& getProperty(unsigned int index) = 0; + + /** + * Return the data object associated with this sequence + */ + + SDO_API virtual const DataObjectPtr getDataObject() = 0; + + /** + * + * The element of that property if it was many valued. Zero if the + * property was single valued. + */ + + SDO_API virtual unsigned int getListIndex(unsigned int index) = 0; + + /** + * + * The element contains the actual value set within the property. The + * method required to get that value will vary depending on the type + * of the property. This is shorthand for getProperty.getTypeEnum(). + */ + + SDO_API virtual Type::Types getTypeEnum(unsigned int index) = 0; + + /** + * + * This method searched the sequence for a setting which corresponds + * to the specified index of the specified property. Searches for single + * valued property settings may omit the pindex parameter. + */ + + + SDO_API virtual unsigned int getIndex(const Property& p, unsigned int pindex=0) = 0; + SDO_API virtual unsigned int getIndex(const char* propName, unsigned int pindex=0) = 0; + + /** + * + * These methods retrieve the setting according to the type of the + * property concerned. If a retrieval method is used which does not correspond to + * the correct type, a conversion will be performed, or an illegal conversion + * exception will be thrown. + */ + + SDO_API virtual const char* getCStringValue(unsigned int index) = 0; + SDO_API virtual bool getBooleanValue(unsigned int index) = 0; + SDO_API virtual char getByteValue(unsigned int index) = 0; + SDO_API virtual wchar_t getCharacterValue(unsigned int index) = 0; + SDO_API virtual unsigned int getStringValue(unsigned int index, wchar_t* val, unsigned int max) = 0; + SDO_API virtual unsigned int getBytesValue(unsigned int index, char* val, unsigned int max) = 0; + SDO_API virtual short getShortValue(unsigned int index) = 0; + SDO_API virtual long getIntegerValue(unsigned int index) = 0; + SDO_API virtual int64_t getLongValue(unsigned int index) = 0; + SDO_API virtual float getFloatValue(unsigned int index) = 0; + SDO_API virtual long double getDoubleValue(unsigned int index) = 0; + SDO_API virtual const SDODate getDateValue(unsigned int index) = 0; + SDO_API virtual DataObjectPtr getDataObjectValue(unsigned int index) = 0; + + /** + * + * getlength applies to string and byte buffer types, and allows the + * client to allocate the correct size of buffer before retrieving the + * value. + */ + + SDO_API virtual unsigned int getLength(unsigned int index) = 0; + + + /** + * + * The setter methods use an element of the sequence to perform a + * property setting. The value in the sequence is updated, and so is the + * rel value of the property in the data object. + */ + + SDO_API virtual void setCStringValue( unsigned int index, const char* s ) = 0; + SDO_API virtual void setBooleanValue( unsigned int index, bool b ) = 0; + SDO_API virtual void setByteValue( unsigned int index, char c ) = 0; + SDO_API virtual void setCharacterValue( unsigned int index, wchar_t c ) = 0; + SDO_API virtual void setStringValue( unsigned int index, const wchar_t* s , unsigned int len) = 0; + SDO_API virtual void setBytesValue( unsigned int index, const char* s , unsigned int len) = 0; + SDO_API virtual void setShortValue( unsigned int index, short s ) = 0; + SDO_API virtual void setIntegerValue( unsigned int index, long i ) = 0; + SDO_API virtual void setLongValue( unsigned int index, int64_t l ) = 0; + SDO_API virtual void setFloatValue( unsigned int index, float f ) = 0; + SDO_API virtual void setDoubleValue(unsigned int index, long double d ) = 0; + SDO_API virtual void setDateValue(unsigned int index, const SDODate t ) = 0; + SDO_API virtual void setDataObjectValue(unsigned int index, DataObjectPtr d ) = 0; + + + /** + * + * Sequences may be added to by usign the addXXX methods. These provoke + * a setting of the real value of the property concerned, and also append + * an element to the sequence to reflect that setting. + * Additions may be performed based on property name, property index or + * the Property itself. + */ + + SDO_API virtual bool addCString( const char* propertyName,const char* s ) = 0; + SDO_API virtual bool addBoolean( const char* propertyName,bool b ) = 0; + SDO_API virtual bool addByte( const char* propertyName,char c ) = 0; + SDO_API virtual bool addCharacter( const char* propertyName,wchar_t c ) = 0; + SDO_API virtual bool addString( const char* propertyName,const wchar_t* s , unsigned int len) = 0; + SDO_API virtual bool addBytes ( const char* propertyName,const char* s , unsigned int len) = 0; + SDO_API virtual bool addShort( const char* propertyName,short s ) = 0; + SDO_API virtual bool addInteger( const char* propertyName,long i ) = 0; + SDO_API virtual bool addLong( const char* propertyName,int64_t l ) = 0; + SDO_API virtual bool addFloat( const char* propertyName,float f ) = 0; + SDO_API virtual bool addDouble(const char* propertyName,long double d ) = 0; + SDO_API virtual bool addDate(const char* propertyName,const SDODate t ) = 0; + SDO_API virtual bool addDataObject(const char* propertyName,DataObjectPtr d ) = 0; + + + SDO_API virtual bool addCString( unsigned int propertyIndex,const char* s ) = 0; + SDO_API virtual bool addBoolean( unsigned int propertyIndex,bool b ) = 0; + SDO_API virtual bool addByte( unsigned int propertyIndex,char c ) = 0; + SDO_API virtual bool addCharacter( unsigned int propertyIndex,wchar_t c ) = 0; + SDO_API virtual bool addString( unsigned int propertyIndex,const wchar_t* s , unsigned int len) = 0; + SDO_API virtual bool addBytes( unsigned int propertyIndex,const char* s , unsigned int len) = 0; + SDO_API virtual bool addShort( unsigned int propertyIndex,short s ) = 0; + SDO_API virtual bool addInteger( unsigned int propertyIndex,long i ) = 0; + SDO_API virtual bool addLong( unsigned int propertyIndex,int64_t l ) = 0; + SDO_API virtual bool addFloat( unsigned int propertyIndex,float f ) = 0; + SDO_API virtual bool addDouble(unsigned int propertyIndex,long double d ) = 0; + SDO_API virtual bool addDate(unsigned int propertyIndex,const SDODate t ) = 0; + SDO_API virtual bool addDataObject(unsigned int propertyIndex,DataObjectPtr d ) = 0; + + + + SDO_API virtual bool addCString( const Property& property,const char* s ) = 0; + SDO_API virtual bool addBoolean( const Property& property,bool b ) = 0; + SDO_API virtual bool addByte( const Property& property,char c ) = 0; + SDO_API virtual bool addCharacter( const Property& property,wchar_t c ) = 0; + SDO_API virtual bool addString ( const Property& property,const wchar_t* s , unsigned int len) = 0; + SDO_API virtual bool addBytes( const Property& property,const char* s , unsigned int len) = 0; + SDO_API virtual bool addShort( const Property& property,short s ) = 0; + SDO_API virtual bool addInteger( const Property& property,long i ) = 0; + SDO_API virtual bool addLong( const Property& property,int64_t l ) = 0; + SDO_API virtual bool addFloat( const Property& property,float f ) = 0; + SDO_API virtual bool addDouble(const Property& property,long double d ) = 0; + SDO_API virtual bool addDate(const Property& property,const SDODate t ) = 0; + SDO_API virtual bool addDataObject(const Property& property,DataObjectPtr d ) = 0; + + + /** + * + * Sequences may be added to by usign the addXXX methods. These provoke + * a setting of the real value of the property concerned, and also append + * an element to the sequence to reflect that setting. + * Additions may be performed based on property name, property index or + * the Property itself. + * The add method also has an override to allow insertion of a sequence element + * before any index. + */ + + SDO_API virtual bool addCString( unsigned int index,const char* propertyName,const char* s ) = 0; + SDO_API virtual bool addBoolean( unsigned int index,const char* propertyName,bool b ) = 0; + SDO_API virtual bool addByte( unsigned int index,const char* propertyName,char c ) = 0; + SDO_API virtual bool addCharacter( unsigned int index,const char* propertyName,wchar_t c ) = 0; + SDO_API virtual bool addString( unsigned int index,const char* propertyName,const wchar_t* s, unsigned int len ) = 0; + SDO_API virtual bool addBytes( unsigned int index,const char* propertyName,const char* s , unsigned int len) = 0; + SDO_API virtual bool addShort( unsigned int index,const char* propertyName,short s ) = 0; + SDO_API virtual bool addInteger( unsigned int index,const char* propertyName,long i ) = 0; + SDO_API virtual bool addLong( unsigned int index,const char* propertyName,int64_t l ) = 0; + SDO_API virtual bool addFloat( unsigned int index,const char* propertyName,float f ) = 0; + SDO_API virtual bool addDouble(unsigned int index,const char* propertyName,long double d ) = 0; + SDO_API virtual bool addDate(unsigned int index,const char* propertyName,const SDODate t ) = 0; + SDO_API virtual bool addDataObject(unsigned int index,const char* propertyName,DataObjectPtr d ) = 0; + + + SDO_API virtual bool addCString( unsigned int index,unsigned int propertyIndex,const char* s ) = 0; + SDO_API virtual bool addBoolean( unsigned int index,unsigned int propertyIndex,bool b ) = 0; + SDO_API virtual bool addByte( unsigned int index,unsigned int propertyIndex,char c ) = 0; + SDO_API virtual bool addCharacter( unsigned int index,unsigned int propertyIndex,wchar_t c ) = 0; + SDO_API virtual bool addString( unsigned int index,unsigned int propertyIndex,const wchar_t* s , unsigned int len) = 0; + SDO_API virtual bool addBytes( unsigned int index,unsigned int propertyIndex,const char* s , unsigned int len) = 0; + SDO_API virtual bool addShort( unsigned int index,unsigned int propertyIndex,short s ) = 0; + SDO_API virtual bool addInteger( unsigned int index,unsigned int propertyIndex,long i ) = 0; + SDO_API virtual bool addLong( unsigned int index,unsigned int propertyIndex,int64_t l ) = 0; + SDO_API virtual bool addFloat( unsigned int index,unsigned int propertyIndex,float f ) = 0; + SDO_API virtual bool addDouble(unsigned int index,unsigned int propertyIndex,long double d ) = 0; + SDO_API virtual bool addDate(unsigned int index,unsigned int propertyIndex,const SDODate t ) = 0; + SDO_API virtual bool addDataObject(unsigned int index,unsigned int propertyIndex,DataObjectPtr d ) = 0; + + + SDO_API virtual bool addCString( unsigned int index,const Property& property,const char* s ) = 0; + SDO_API virtual bool addBoolean( unsigned int index,const Property& property,bool b ) = 0; + SDO_API virtual bool addByte( unsigned int index,const Property& property,char c ) = 0; + SDO_API virtual bool addCharacter( unsigned int index,const Property& property,wchar_t c ) = 0; + SDO_API virtual bool addString( unsigned int index,const Property& property,const wchar_t* s , unsigned int len) = 0; + SDO_API virtual bool addBytes( unsigned int index,const Property& property,const char* s , unsigned int len) = 0; + SDO_API virtual bool addShort( unsigned int index,const Property& property,short s ) = 0; + SDO_API virtual bool addInteger( unsigned int index,const Property& property,long i ) = 0; + SDO_API virtual bool addLong( unsigned int index,const Property& property,int64_t l ) = 0; + SDO_API virtual bool addFloat( unsigned int index,const Property& property,float f ) = 0; + SDO_API virtual bool addDouble(unsigned int index,const Property& property,long double d ) = 0; + SDO_API virtual bool addDate(unsigned int index,const Property& property,const SDODate t ) = 0; + SDO_API virtual bool addDataObject(unsigned int index,const Property& property,DataObjectPtr d ) = 0; + + + /** remove() removes an item. + * + * Remove the item at the specified index in the sequence. + * This has no effect on the value of the property in the data object, + * but the setting is no longer recorded. + */ + SDO_API virtual void remove(unsigned int index) = 0; + SDO_API virtual void removeAll(const Property& p) = 0; + + /** + * Moves an entry in the sequence from one index to another. This + * makes the entry appear to have been set at a different point in + * the sequence, but does not alter the actual value set. + */ + + SDO_API virtual void move(unsigned int toIndex, unsigned int fromIndex) = 0; + + /** + * The text setting APIs add an element to the sequence which + * is not a property setting. + * This is text which may be retieved in sequence with the settings. + */ + + SDO_API virtual bool addText(const char* text) = 0; + SDO_API virtual bool addText(unsigned int index, const char* text) = 0; + SDO_API virtual bool setText(unsigned int index, const char* text) = 0; + + /** + * isText returns true if the element is not a property setting. + * This method should be used before getting the Property, to avoid an + * exception + */ + + SDO_API virtual bool isText(unsigned int index) = 0; + +}; + + +}; +}; + +#endif //_SEQUENCE_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.cpp new file mode 100644 index 0000000000..2910962d3b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.cpp @@ -0,0 +1,969 @@ +/* + * + * 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: 2006/02/17 16:01:05 $ */ + +#include "commonj/sdo/disable_warn.h" +#include "commonj/sdo/Property.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/TypeList.h" + +#include "commonj/sdo/SequenceImpl.h" + +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/DataObjectImpl.h" +#include "commonj/sdo/SDORuntimeException.h" + + + +#define CHECK_RANGE\ + if (index >= the_list.size()){\ + string msg("Index out of range:");\ + msg += index;\ + SDO_THROW_EXCEPTION("Sequence API", SDOIndexOutOfRangeException,\ + msg.c_str());\ + }\ + int j = 0;\ + for (i = the_list.begin(); (j < index) && (i != the_list.end()); ++i)\ + {\ + j++;\ + } + + +namespace commonj{ +namespace sdo{ + + SequenceImpl::SequenceImpl() + { + SDO_THROW_EXCEPTION("Sequence constructor", SDORuntimeException,\ + "SequenceImpl::construction without a data object");\ + } + + SequenceImpl::SequenceImpl(DataObject* indo) + { + the_do = (DataObjectImpl*)indo; + } + + SequenceImpl::SequenceImpl(SequenceImpl* inseq) + { + // take a copy of the_list + the_list = inseq->the_list; + } + + unsigned int SequenceImpl::size() + { + return the_list.size(); + } + + + /** + * Return the data object associated with this sequence + */ + + const DataObjectPtr SequenceImpl::getDataObject() + { + return the_do; + } + + const Property& SequenceImpl::getProperty(unsigned int index) + { + SEQUENCE_ITEM_LIST::iterator i; + + if (isText(index)) + { + string msg("Cannot get property of a text item"); + msg += index; + SDO_THROW_EXCEPTION("getProperty", SDOUnsupportedOperationException, + msg.c_str()); + } + + unsigned int j = 0; + for (i = the_list.begin() ; (j < index) && (i != the_list.end()); ++i){j++;} + + if (i != the_list.end()) { + return *((*i).getProp()); + } + string msg("Index out of range:"); + msg += index; + SDO_THROW_EXCEPTION("getProperty", SDOIndexOutOfRangeException, + msg.c_str()); + } + + Type::Types SequenceImpl::getTypeEnum(unsigned int index) + { + SEQUENCE_ITEM_LIST::iterator i; + + unsigned int j = 0; + for (i = the_list.begin() ; (j < index) && (i != the_list.end()); ++i){j++;} + + if (i != the_list.end()) { + if ((*i).getProp() == 0) { + // text type + return Type::TextType; + } + return (*i).getProp()->getTypeEnum(); + } + string msg("Index out of range:"); + msg += index; + SDO_THROW_EXCEPTION("getTypeEnum", SDOIndexOutOfRangeException, + msg.c_str()); + } + + unsigned int SequenceImpl::getListIndex(unsigned int index) + { + SEQUENCE_ITEM_LIST::iterator i; + unsigned int j = 0; + for (i = the_list.begin() ; (j < index) && (i != the_list.end()); ++i){j++;} + + if (i != the_list.end()) { + if ((*i).getProp() == 0) + { + string msg("Get list index on text property"); + SDO_THROW_EXCEPTION("getListIndex", SDOUnsupportedOperationException, + msg.c_str()); + } + if ( (*i).getProp()->isMany()) + { + return (*i).getIndex(); + } + else + { + string msg("Get list index on text single valued property"); + SDO_THROW_EXCEPTION("getListIndex", SDOUnsupportedOperationException, + msg.c_str()); + } + } + string msg("Index out of range:"); + msg += index; + SDO_THROW_EXCEPTION("getListIndex", SDOIndexOutOfRangeException, + msg.c_str()); + } + + unsigned int SequenceImpl::getIndex(const char* propName, unsigned int pindex) + { + SEQUENCE_ITEM_LIST::iterator i; + unsigned int j = 0; + for (i=the_list.begin(), j=0;i != the_list.end();++i,++j) { + const Property* p = (*i).getProp(); + if (p == 0 ) continue; // avoid text + if (!strcmp(p->getName(), propName)) { + if (p->isMany()) + { + if( pindex == (*i).getIndex())return j; + } + else { + return j; + } + } + } + SDO_THROW_EXCEPTION("getIndex", SDOIndexOutOfRangeException, + "SequenceImpl::getIndex - property Setting not in sequence"); + } + + unsigned int SequenceImpl::getIndex(const Property& p, unsigned int pindex) + { + return getIndex(p.getName(), pindex); + } + + /////////////////////////////////////////////////////////////////////////// + // specific getters for prims and data objects + /////////////////////////////////////////////////////////////////////////// + + +#define StringGetter(returntype,primtype,defval)\ + returntype SequenceImpl::get##primtype##Value(unsigned int index)\ + {\ + SEQUENCE_ITEM_LIST::iterator i;\ + CHECK_RANGE;\ + const Property* p = (*i).getProp();\ + if (p == 0) {\ + return (*i).getText();\ + }\ + if (p->isMany())\ + {\ + DataObjectList& dol = the_do->getList(*p);\ + DataObject* list_do = dol[(*i).getIndex()];\ + if (list_do != 0)\ + {\ + return ((DataObjectImpl*)list_do)->get##primtype();\ + }\ + return defval;\ + }\ + return the_do->get##primtype(*((*i).getProp()));\ + } + +#define getter(returntype,primtype,defval)\ + returntype SequenceImpl::get##primtype##Value(unsigned int index)\ + {\ + SEQUENCE_ITEM_LIST::iterator i;\ + CHECK_RANGE;\ + const Property* p = (*i).getProp();\ + if (p == 0) {\ + return defval;\ + }\ + if (p->isMany())\ + {\ + DataObjectList& dol = the_do->getList(*p);\ + DataObject* list_do = dol[(*i).getIndex()];\ + if (list_do != 0)\ + {\ + return ((DataObjectImpl*)list_do)->get##primtype();\ + }\ + return defval;\ + }\ + return the_do->get##primtype(*((*i).getProp()));\ + } + +#define ObjectGetter(returntype,primtype,defval)\ + returntype SequenceImpl::get##primtype##Value(unsigned int index)\ + {\ + SEQUENCE_ITEM_LIST::iterator i;\ + CHECK_RANGE;\ + const Property* p = (*i).getProp();\ + if (p == 0) {\ + return defval;\ + }\ + if (p->isMany())\ + {\ + DataObjectList& dol = the_do->getList(*p);\ + DataObject* list_do = dol[(*i).getIndex()];\ + if (list_do != 0)\ + {\ + return list_do;\ + }\ + return defval;\ + }\ + return the_do->get##primtype(*((*i).getProp()));\ + } + +#define CharGetter(returntype,primtype,defval)\ + unsigned int SequenceImpl::get##primtype##Value(unsigned int index, returntype ptr, unsigned int max)\ + {\ + SEQUENCE_ITEM_LIST::iterator i;\ + CHECK_RANGE;\ + const Property* p = (*i).getProp();\ + if (p == 0) {\ + return defval;\ + }\ + if (p->isMany())\ + {\ + DataObjectList& dol = the_do->getList(*p);\ + DataObject* list_do = dol[(*i).getIndex()];\ + if (list_do != 0)\ + {\ + return ((DataObjectImpl*)list_do)->get##primtype(ptr, max);\ + }\ + return defval;\ + }\ + return the_do->get##primtype(*((*i).getProp()), ptr, max);\ + } + + +StringGetter(const char* , CString, 0); + +CharGetter( wchar_t* , String, 0); +CharGetter( char*, Bytes, 0); + +unsigned int SequenceImpl::getLength(unsigned int index) +{ + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + const Property* p = (*i).getProp(); + switch (p->getTypeEnum()) + { + case Type::StringType: + return getStringValue(index,0,0); + case Type::BytesType: + return getBytesValue(index,0,0); + default: + return 0; + } +} + +getter(bool, Boolean, false); +getter(char, Byte, (char)0); +getter(wchar_t, Character, 0); +getter(short, Short, 0); +getter(long, Integer, 0L); +getter(int64_t, Long, 0); +getter(float, Float, (float)0); +getter(long double, Double, 0); +getter(const SDODate, Date, 0); + +ObjectGetter(RefCountingPointer , DataObject, 0); + + + /////////////////////////////////////////////////////////////////////////// + // generic getter for those types which support it + /////////////////////////////////////////////////////////////////////////// + + void SequenceImpl::setCStringValue( unsigned int index, const char* s ) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + (*i).setText(s); + return; + } + the_do->setCString(*((*i).getProp()),s); + + } + void SequenceImpl::setBooleanValue( unsigned int index, bool b ) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setBoolean(*((*i).getProp()),b); + } + + void SequenceImpl::setByteValue( unsigned int index, char c ) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setByte(*((*i).getProp()),c); + } + + void SequenceImpl::setCharacterValue( unsigned int index, wchar_t c ) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setCharacter(*((*i).getProp()),c); + } + void SequenceImpl::setStringValue( unsigned int index, const wchar_t* s , unsigned int len) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setString(*((*i).getProp()),s, len); + } + void SequenceImpl::setBytesValue( unsigned int index, const char* s , unsigned int len) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setBytes(*((*i).getProp()),s, len); + } + void SequenceImpl::setShortValue( unsigned int index, short s ) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setShort(*((*i).getProp()),s); + } + + void SequenceImpl::setIntegerValue( unsigned int index, long l) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setInteger(*((*i).getProp()),l); + } + + + void SequenceImpl::setLongValue( unsigned int index, int64_t l ) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setLong(*((*i).getProp()),l); + } + + void SequenceImpl::setFloatValue( unsigned int index, float f ) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setFloat(*((*i).getProp()),f); + } + + + void SequenceImpl::setDoubleValue(unsigned int index, long double d ) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setDouble(*((*i).getProp()),d); + } + + void SequenceImpl::setDateValue(unsigned int index, const SDODate t ) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setDate(*((*i).getProp()),t); + } + + void SequenceImpl::setDataObjectValue(unsigned int index, DataObjectPtr d ) + { + SEQUENCE_ITEM_LIST::iterator i; + CHECK_RANGE; + if ((*i).getProp() == 0) { + return; + } + the_do->setDataObject(*((*i).getProp()),d); + } + + +#define doadder(primtype,primval)\ + bool SequenceImpl::add##primtype(const char* propertyName, primval v)\ + {\ + const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ + if (p == 0)\ + {\ + if (the_do->getType().isOpenType())\ + {\ + p = the_do->define ##primtype (propertyName, v->getType());\ + }\ + if (p == 0)\ + {\ + string msg("Cannot find property:");\ + msg += propertyName;\ + SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ + msg.c_str());\ + }\ + }\ + return add##primtype((const Property&)*p,v);\ + }\ + bool SequenceImpl::add##primtype(unsigned int propertyIndex, primval v)\ + {\ + return add##primtype(the_do->getProperty(propertyIndex), v);\ + }\ + bool SequenceImpl::add##primtype(const Property& p, primval v)\ + {\ + if (p.isMany())\ + {\ + DataObjectList& dol = the_do->getList(p);\ + dol.append((primval)v);\ + /* the_list.push_back(seq_item(&p,dol.size()-1));*/\ + return true;\ + }\ + SEQUENCE_ITEM_LIST::iterator i;\ + for (i=the_list.begin();i != the_list.end();++i) {\ + const Property* pp = (*i).getProp();\ + if (pp == 0) continue;\ + if (!strcmp(pp->getName(),p.getName()))\ + {\ + SDO_THROW_EXCEPTION("add", SDOUnsupportedOperationException,\ + "Sequence::add of property which already exists in sequence");\ + }\ + }\ + the_do->set##primtype(p,v);\ + the_list.push_back(seq_item(&p,0));\ + return true;\ + } + + +#define adder(primtype,primval)\ + bool SequenceImpl::add##primtype(const char* propertyName, primval v)\ + {\ + const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ + if (p == 0)\ + {\ + if (the_do->getType().isOpenType())\ + {\ + p = the_do->define ##primtype (propertyName);\ + }\ + if (p == 0)\ + {\ + string msg("Cannot find property:");\ + msg += propertyName;\ + SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ + msg.c_str());\ + }\ + }\ + return add##primtype((const Property&)*p,v);\ + }\ + bool SequenceImpl::add##primtype(unsigned int propertyIndex, primval v)\ + {\ + return add##primtype(the_do->getProperty(propertyIndex), v);\ + }\ + bool SequenceImpl::add##primtype(const Property& p, primval v)\ + {\ + if (p.isMany())\ + {\ + DataObjectList& dol = the_do->getList(p);\ + dol.append((primval)v);\ + /* the_list.push_back(seq_item(&p,dol.size()-1));*/\ + return true;\ + }\ + SEQUENCE_ITEM_LIST::iterator i;\ + for (i=the_list.begin();i != the_list.end();++i) {\ + const Property* pp = (*i).getProp();\ + if (pp == 0) continue;\ + if (!strcmp(pp->getName(),p.getName()))\ + {\ + SDO_THROW_EXCEPTION("add", SDOUnsupportedOperationException,\ + "Sequence::add of property which already exists in sequence");\ + }\ + }\ + the_do->set##primtype(p,v);\ + the_list.push_back(seq_item(&p,0));\ + return true;\ + } + +adder( CString , const char* ); +adder( Boolean, bool); +adder( Byte, char ); +adder(Character, wchar_t); +adder(Short, short); +adder(Integer, long); +adder(Long, int64_t); +adder(Float, float); +adder(Double, long double); +adder(Date, const SDODate); +doadder(DataObject, RefCountingPointer); + + +#define charAdder(primtype,primval)\ + bool SequenceImpl::add##primtype(const char* propertyName, primval v, unsigned int len)\ + {\ + const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ + if (p == 0)\ + {\ + if (the_do->getType().isOpenType())\ + {\ + p = the_do->define ##primtype (propertyName);\ + }\ + if (p == 0)\ + {\ + string msg("Cannot find property:");\ + msg += propertyName;\ + SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ + msg.c_str());\ + }\ + }\ + return add##primtype((const Property&)*p,v, len);\ + }\ + bool SequenceImpl::add##primtype(unsigned int propertyIndex, primval v, unsigned int len)\ + {\ + return add##primtype(the_do->getProperty(propertyIndex), v, len);\ + }\ + bool SequenceImpl::add##primtype(const Property& p, primval v, unsigned int len)\ + {\ + if (p.isMany())\ + {\ + DataObjectList& dol = the_do->getList(p);\ + dol.append((primval)v, len);\ + /*the_list.push_back(seq_item(&p,dol.size()-1));*/\ + return true;\ + }\ + SEQUENCE_ITEM_LIST::iterator i;\ + for (i=the_list.begin();i != the_list.end();++i) {\ + const Property* pp = (*i).getProp();\ + if (pp == 0) continue;\ + if (!strcmp(pp->getName(),p.getName()))\ + {\ + SDO_THROW_EXCEPTION("add", SDOUnsupportedOperationException,\ + "Sequence::add of property which already exists in sequence");\ + }\ + }\ + the_do->set##primtype(p,v, len);\ + the_list.push_back(seq_item(&p,0));\ + return true;\ + } + + +charAdder ( String, const wchar_t* ); +charAdder ( Bytes , const char* ); + + +#define inserter(primtype,primval)\ + bool SequenceImpl::add##primtype(unsigned int index, const char* propertyName, primval v)\ + {\ + const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ + if (p == 0)\ + {\ + if (the_do->getType().isOpenType())\ + {\ + p = the_do->define ##primtype (propertyName);\ + }\ + if (p == 0)\ + {\ + string msg("Cannot find property:");\ + msg += propertyName;\ + SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ + msg.c_str());\ + }\ + }\ + return add##primtype(index,(const Property&)*p,v);\ + }\ + bool SequenceImpl::add##primtype(unsigned int index, unsigned int propertyIndex, primval v)\ + {\ + return add##primtype(index,the_do->getProperty(propertyIndex), v);\ + }\ + bool SequenceImpl::add##primtype(unsigned int index, const Property& p, primval v)\ + {\ + SEQUENCE_ITEM_LIST::iterator i;\ + SEQUENCE_ITEM_LIST::iterator i2 = the_list.end();\ + int j;\ + if (index >= the_list.size()) {\ + return add##primtype(p,v);\ + }\ + if (p.isMany())\ + {\ + DataObjectList& dol = the_do->getList(p);\ + dol.append((primval)v);\ + j = 0;\ + for (i=the_list.begin();(j < index) && (i != the_list.end());++i) {\ + j++;\ + }\ + /*the_list.insert(i,seq_item(&p,dol.size()-1));*/\ + return true;\ + }\ + j = 0;\ + for (i=the_list.begin();i != the_list.end();++i) {\ + const Property* pp = (*i).getProp();\ + if (pp == 0) continue;\ + if (!strcmp(pp->getName(),p.getName()))\ + {\ + SDO_THROW_EXCEPTION("Insert", SDOUnsupportedOperationException,\ + "Sequence::insert of property which already exists in sequence");\ + }\ + if (j == index) {\ + i2 = i;\ + }\ + j++;\ + }\ + the_do->set##primtype(p,v);\ + the_list.insert(i2,seq_item(&p,0));\ + return true;\ + } + +#define doinserter(primtype,primval)\ + bool SequenceImpl::add##primtype(unsigned int index, const char* propertyName, primval v)\ + {\ + const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ + if (p == 0)\ + {\ + if (the_do->getType().isOpenType())\ + {\ + p = the_do->define ##primtype (propertyName, v->getType());\ + }\ + if (p == 0)\ + {\ + string msg("Cannot find property:");\ + msg += propertyName;\ + SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ + msg.c_str());\ + }\ + }\ + return add##primtype(index,(const Property&)*p,v);\ + }\ + bool SequenceImpl::add##primtype(unsigned int index, unsigned int propertyIndex, primval v)\ + {\ + return add##primtype(index,the_do->getProperty(propertyIndex), v);\ + }\ + bool SequenceImpl::add##primtype(unsigned int index, const Property& p, primval v)\ + {\ + SEQUENCE_ITEM_LIST::iterator i;\ + SEQUENCE_ITEM_LIST::iterator i2 = the_list.end();\ + int j;\ + if (index >= the_list.size()) {\ + return add##primtype(p,v);\ + }\ + if (p.isMany())\ + {\ + DataObjectList& dol = the_do->getList(p);\ + dol.append((primval)v);\ + j = 0;\ + for (i=the_list.begin();(j < index) && (i != the_list.end());++i) {\ + j++;\ + }\ + /*the_list.insert(i,seq_item(&p,dol.size()-1));*/\ + return true;\ + }\ + j = 0;\ + for (i=the_list.begin();i != the_list.end();++i) {\ + const Property* pp = (*i).getProp();\ + if (pp == 0) continue;\ + if (!strcmp(pp->getName(),p.getName()))\ + {\ + SDO_THROW_EXCEPTION("Insert", SDOUnsupportedOperationException,\ + "Sequence::insert of property which already exists in sequence");\ + }\ + if (j == index) {\ + i2 = i;\ + }\ + j++;\ + }\ + the_do->set##primtype(p,v);\ + the_list.insert(i2,seq_item(&p,0));\ + return true;\ + } + +inserter( CString , const char* ); +inserter( Boolean, bool); +inserter( Byte, char ); +inserter(Character, wchar_t); +inserter(Short, short); +inserter(Integer, long); +inserter(Long, int64_t); +inserter(Float, float); +inserter(Double, long double); +inserter(Date, const SDODate); +doinserter(DataObject, RefCountingPointer); + + + +#define charInserter(primtype,primval)\ + bool SequenceImpl::add##primtype(unsigned int index, const char* propertyName, primval v, unsigned int len)\ + {\ + const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ + if (p == 0)\ + {\ + if (the_do->getType().isOpenType())\ + {\ + p = the_do->define ##primtype (propertyName);\ + }\ + if (p == 0)\ + {\ + string msg("Cannot find property:");\ + msg += propertyName;\ + SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ + msg.c_str());\ + }\ + }\ + return add##primtype(index,(const Property&)*p,v, len);\ + }\ + bool SequenceImpl::add##primtype(unsigned int index, unsigned int propertyIndex, primval v, unsigned int len)\ + {\ + return add##primtype(index,the_do->getProperty(propertyIndex), v, len);\ + }\ + bool SequenceImpl::add##primtype(unsigned int index, const Property& p, primval v, unsigned int len)\ + {\ + SEQUENCE_ITEM_LIST::iterator i;\ + SEQUENCE_ITEM_LIST::iterator i2 = the_list.end();\ + unsigned int j;\ + if (index >= the_list.size()) {\ + return add##primtype(p,v, len);\ + }\ + if (p.isMany())\ + {\ + DataObjectList& dol = the_do->getList(p);\ + dol.append((primval)v, len);\ + j = 0;\ + for (i=the_list.begin();(j < index) && (i != the_list.end());++i) {\ + j++;\ + }\ + /*the_list.insert(i,seq_item(&p,dol.size()-1));*/\ + return true;\ + }\ + j = 0;\ + for (i=the_list.begin();i != the_list.end();++i) {\ + const Property* pp = (*i).getProp();\ + if (pp == 0) continue;\ + if (!strcmp(pp->getName(),p.getName()))\ + {\ + SDO_THROW_EXCEPTION("Insert", SDOUnsupportedOperationException,\ + "Sequence::insert of property which already exists in sequence");\ + }\ + if (j == index) {\ + i2 = i;\ + }\ + j++;\ + }\ + the_do->set##primtype(p,v, len);\ + the_list.insert(i2,seq_item(&p,0));\ + return true;\ + } + + +charInserter( String , const wchar_t* ); +charInserter (Bytes , const char* ); + + + + + + void SequenceImpl::push(const Property& p, unsigned int index) + { + the_list.push_back(seq_item(&p,index)); + } + + void SequenceImpl::remove(unsigned int index) + { + if (index >= the_list.size()) { + string msg("Index out of range:"); + msg += index; + SDO_THROW_EXCEPTION("Sequence remove", SDOIndexOutOfRangeException, + msg.c_str()); + } + SEQUENCE_ITEM_LIST::iterator i; + int j = 0; + for (i=the_list.begin();(j < index) && (i != the_list.end()) ; ++i) + { + j++; + } + the_list.erase(i); + return; + } + + void SequenceImpl::removeAll(const Property& p) + { + int j = 0; + const Property* prop; + SEQUENCE_ITEM_LIST::iterator i; + for (i=the_list.begin();i != the_list.end(); ++i) + { + prop = (*i).getProp(); + if (prop != 0) { + if (!strcmp(prop->getName(), + p.getName())) + { + // not sure this works - does i still equate + // to an iterator over the list after the remove? + i = the_list.erase(i); + } + } + } + + return; + } + + void SequenceImpl::move(unsigned int toIndex, unsigned int fromIndex) + { + if (fromIndex >= the_list.size()) { + string msg("Index out of range:"); + msg += fromIndex; + SDO_THROW_EXCEPTION("Sequence Move", SDOIndexOutOfRangeException, + msg.c_str()); + } + + if (toIndex == fromIndex) return; + + SEQUENCE_ITEM_LIST::iterator i1, + i2 = the_list.end(), + i3 = the_list.end(); + int j = 0; + for (i3 = the_list.begin(); + j < toIndex && j < fromIndex && + i3 != the_list.end() ; ++i3); + { + if (j == toIndex) i1 = i3; + if (j == fromIndex) i2 = i3; + j++; + } + + if (toIndex < fromIndex) + { + the_list.insert( i1, *i2); + the_list.erase(i2); + } + else + { + if (toIndex + 1 == the_list.size()) + { + the_list.push_back(*i2); + } + else + { + the_list.insert(++i1,*i2); + } + the_list.erase(i2); + } + return; + } + + bool SequenceImpl::addText(const char* text) + { + the_list.push_back(seq_item(text)); + return true; + } + + bool SequenceImpl::isText(unsigned int index) + { + if (index >= the_list.size()) { + return false; + } + SEQUENCE_ITEM_LIST::iterator i; + int j = 0; + for (i= the_list.begin(); (j < index) && (i != the_list.end()); ++i) + { + j++; + } + if ((*i).getProp() == 0) + { + return true; + } + + return false; + } + + bool SequenceImpl::addText(unsigned int index, const char* text) + { + if (index >= the_list.size()) { + return addText(text); + } + + SEQUENCE_ITEM_LIST::iterator i; + int j = 0; + for (i= the_list.begin(); (j < index) && (i != the_list.end()); ++i) + { + j++; + } + the_list.insert(i,seq_item(text)); + return true; + } + + bool SequenceImpl::setText(unsigned int index, const char* text) + { + if (index >= the_list.size()) { + return false; + } + + if (!isText(index)) + { + return false; + } + + SEQUENCE_ITEM_LIST::iterator i; + int j = 0; + for (i= the_list.begin(); (j < index) && (i != the_list.end()); ++i) + { + j++; + } + (*i).setText(text); + return true; + } + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.h new file mode 100644 index 0000000000..74fe808ced --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.h @@ -0,0 +1,375 @@ +/* + * + * 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: 2006/02/17 16:01:05 $ */ + +#ifndef _SEQUENCEIMPL_H_ +#define _SEQUENCEIMPL_H_ + +#include "commonj/sdo/disable_warn.h" + +#include +using namespace std; + +#include "commonj/sdo/Sequence.h" +#include "commonj/sdo/SDODate.h" + +#define SequenceImplPtr RefCountingPointer + +namespace commonj{ +namespace sdo{ + +class Property; /* forward declaration */ +class DataObjectImpl; + +/** SequenceImpl implements the abstract class Sequence. + * + * A sequence is a heterogeneous list of properties and corresponding values. + * It represents an ordered arbitrary mixture of data values from more + * than one property of a {@link DataObject data object}. + */ + +class SequenceImpl : public Sequence +{ + public: + /////////////////////////////////////////////////////////////////////////// + // Returns the number of entries in the sequence. + // @return the number of entries. + /////////////////////////////////////////////////////////////////////////// + virtual unsigned int size(); + + /////////////////////////////////////////////////////////////////////////// + // Returns the property for the given entry index. + /////////////////////////////////////////////////////////////////////////// + virtual const Property& getProperty(unsigned int index); + + /** + * Return the data object associated with this sequence + */ + + SDO_API virtual const DataObjectPtr getDataObject(); + + /////////////////////////////////////////////////////////////////////////// + // Returns the property for the given entry index. + /////////////////////////////////////////////////////////////////////////// + virtual unsigned int getIndex(const Property& p, unsigned int pindex=0); + virtual unsigned int getIndex(const char* propName, unsigned int pindex=0); + + virtual unsigned int getListIndex(unsigned int index); + + Type::Types getTypeEnum(unsigned int index); + + + /////////////////////////////////////////////////////////////////////////// + // Returns the property value for the given entry index. + // @param index the index of the entry. + // @return the value for the given entry index.. + /////////////////////////////////////////////////////////////////////////// + virtual const char* getCStringValue(unsigned int index); + virtual bool getBooleanValue(unsigned int index); + virtual char getByteValue(unsigned int index); + virtual wchar_t getCharacterValue(unsigned int index); + virtual unsigned int getStringValue(unsigned int index, wchar_t* val, unsigned int max); + virtual unsigned int getBytesValue(unsigned int index, char* val, unsigned int max); + virtual short getShortValue(unsigned int index); + virtual long getIntegerValue(unsigned int index); + virtual int64_t getLongValue(unsigned int index); + virtual float getFloatValue(unsigned int index); + virtual long double getDoubleValue(unsigned int index); + virtual const SDODate getDateValue(unsigned int index); + virtual DataObjectPtr getDataObjectValue(unsigned int index); + + virtual unsigned int getLength(unsigned int index); + + /////////////////////////////////////////////////////////////////////////// + // sets the entry at a specified index to the new value. + // @param index the index of the entry. + // @param value the new value for the entry. + /////////////////////////////////////////////////////////////////////////// + + virtual void setCStringValue( unsigned int index, const char* s ); + virtual void setBooleanValue( unsigned int index, bool b ); + virtual void setByteValue( unsigned int index, char c ); + virtual void setCharacterValue( unsigned int index, wchar_t c ); + virtual void setBytesValue( unsigned int index, const char* s , unsigned int len); + virtual void setStringValue( unsigned int index, const wchar_t* s , unsigned int len); + virtual void setShortValue( unsigned int index, short s ); + virtual void setIntegerValue( unsigned int index, long i ); + virtual void setLongValue( unsigned int index, int64_t l ); + virtual void setFloatValue( unsigned int index, float f ); + virtual void setDoubleValue( unsigned int index, long double d ); + virtual void setDateValue( unsigned int index, const SDODate t ); + virtual void setDataObjectValue(unsigned int index, DataObjectPtr d ); + + + /////////////////////////////////////////////////////////////////////////// + // adds a new entry with the specified property name and value + // to the end of the entries. + // @param propertyName the name of the entry's property. + // @param value the value for the entry. + /////////////////////////////////////////////////////////////////////////// + virtual bool addCString( const char* propertyName,const char* s ); + virtual bool addBoolean( const char* propertyName,bool b ); + virtual bool addByte( const char* propertyName,char c ); + virtual bool addCharacter( const char* propertyName,wchar_t c ); + virtual bool addString( const char* propertyName,const wchar_t* s , unsigned int len); + virtual bool addBytes( const char* propertyName,const char* s , unsigned int len); + virtual bool addShort( const char* propertyName,short s ); + virtual bool addInteger( const char* propertyName,long i ); + virtual bool addLong( const char* propertyName,int64_t l ); + virtual bool addFloat( const char* propertyName,float f ); + virtual bool addDouble( const char* propertyName,long double d ); + virtual bool addDate( const char* propertyName,const SDODate t ); + virtual bool addDataObject(const char* propertyName,DataObjectPtr d ); + + + /////////////////////////////////////////////////////////////////////////// + // adds a new entry with the specified property index and value + // to the end of the entries. + // @param propertyIndex the index of the entry's property. + // @param value the value for the entry. + /////////////////////////////////////////////////////////////////////////// + virtual bool addCString( unsigned int propertyIndex,const char* s ); + virtual bool addBoolean( unsigned int propertyIndex,bool b ); + virtual bool addByte( unsigned int propertyIndex,char c ); + virtual bool addCharacter( unsigned int propertyIndex,wchar_t c ); + virtual bool addString( unsigned int propertyIndex,const wchar_t* s , unsigned int len); + virtual bool addBytes( unsigned int propertyIndex,const char* s , unsigned int len); + virtual bool addShort( unsigned int propertyIndex,short s ); + virtual bool addInteger( unsigned int propertyIndex,long i ); + virtual bool addLong( unsigned int propertyIndex,int64_t l ); + virtual bool addFloat( unsigned int propertyIndex,float f ); + virtual bool addDouble( unsigned int propertyIndex,long double d ); + virtual bool addDate( unsigned int propertyIndex,const SDODate t ); + virtual bool addDataObject(unsigned int propertyIndex,DataObjectPtr d ); + + + /////////////////////////////////////////////////////////////////////////// + // adds a new entry with the specified property and value + // to the end of the entries. + // @param property the property of the entry. + // @param value the value for the entry. + /////////////////////////////////////////////////////////////////////////// + + virtual bool addCString( const Property& property,const char* s ); + virtual bool addBoolean( const Property& property,bool b ); + virtual bool addByte( const Property& property,char c ); + virtual bool addCharacter( const Property& property,wchar_t c ); + virtual bool addString( const Property& property,const wchar_t* s , unsigned int len); + virtual bool addBytes( const Property& property,const char* s , unsigned int len); + virtual bool addShort( const Property& property,short s ); + virtual bool addInteger( const Property& property,long i ); + virtual bool addLong( const Property& property,int64_t l ); + virtual bool addFloat( const Property& property,float f ); + virtual bool addDouble( const Property& property,long double d ); + virtual bool addDate( const Property& property,const SDODate t ); + virtual bool addDataObject(const Property& property,DataObjectPtr d ); + + + /////////////////////////////////////////////////////////////////////////// + // adds a new entry with the specified property name and value + // at the specified entry index. + // @param index the index at which to add the entry. + // @param propertyName the name of the entry's property. + // @param value the value for the entry. + /////////////////////////////////////////////////////////////////////////// + virtual bool addCString( unsigned int index,const char* propertyName,const char* s ); + virtual bool addBoolean( unsigned int index,const char* propertyName,bool b ); + virtual bool addByte( unsigned int index,const char* propertyName,char c ); + virtual bool addCharacter( unsigned int index,const char* propertyName,wchar_t c ); + virtual bool addString( unsigned int index,const char* propertyName,const wchar_t* s , unsigned int len); + virtual bool addBytes( unsigned int index,const char* propertyName,const char* s , unsigned int len); + virtual bool addShort( unsigned int index,const char* propertyName,short s ); + virtual bool addInteger( unsigned int index,const char* propertyName,long i ); + virtual bool addLong( unsigned int index,const char* propertyName,int64_t l ); + virtual bool addFloat( unsigned int index,const char* propertyName,float f ); + virtual bool addDouble( unsigned int index,const char* propertyName,long double d ); + virtual bool addDate( unsigned int index,const char* propertyName,const SDODate t ); + virtual bool addDataObject(unsigned int index,const char* propertyName,DataObjectPtr d ); + + + /////////////////////////////////////////////////////////////////////////// + // adds a new entry with the specified property index and value + // at the specified entry index. + // @param index the index at which to add the entry. + // @param propertyIndex the index of the entry's property. + // @param value the value for the entry. + /////////////////////////////////////////////////////////////////////////// + virtual bool addCString( unsigned int index,unsigned int propertyIndex,const char* s ); + virtual bool addBoolean( unsigned int index,unsigned int propertyIndex,bool b ); + virtual bool addByte( unsigned int index,unsigned int propertyIndex,char c ); + virtual bool addCharacter( unsigned int index,unsigned int propertyIndex,wchar_t c ); + virtual bool addString( unsigned int index,unsigned int propertyIndex,const wchar_t* s , unsigned int len); + virtual bool addBytes( unsigned int index,unsigned int propertyIndex,const char* s , unsigned int len); + virtual bool addShort( unsigned int index,unsigned int propertyIndex,short s ); + virtual bool addInteger( unsigned int index,unsigned int propertyIndex,long i ); + virtual bool addLong( unsigned int index,unsigned int propertyIndex,int64_t l ); + virtual bool addFloat( unsigned int index,unsigned int propertyIndex,float f ); + virtual bool addDouble( unsigned int index,unsigned int propertyIndex,long double d ); + virtual bool addDate( unsigned int index,unsigned int propertyIndex,const SDODate t ); + virtual bool addDataObject(unsigned int index,unsigned int propertyIndex,DataObjectPtr d ); + + + /////////////////////////////////////////////////////////////////////////// + // adds a new entry with the specified property and value + // at the specified entry index. + // @param index the index at which to add the entry. + // @param property the property of the entry. + // @param value the value for the entry. + /////////////////////////////////////////////////////////////////////////// + virtual bool addCString( unsigned int index,const Property& property,const char* s ); + virtual bool addBoolean( unsigned int index,const Property& property,bool b ); + virtual bool addByte( unsigned int index,const Property& property,char c ); + virtual bool addCharacter( unsigned int index,const Property& property,wchar_t c ); + virtual bool addString( unsigned int index,const Property& property,const wchar_t* s , unsigned int len); + virtual bool addBytes( unsigned int index,const Property& property,const char* s , unsigned int len); + virtual bool addShort( unsigned int index,const Property& property,short s ); + virtual bool addInteger( unsigned int index,const Property& property,long i ); + virtual bool addLong( unsigned int index,const Property& property,int64_t l ); + virtual bool addFloat( unsigned int index,const Property& property,float f ); + virtual bool addDouble( unsigned int index,const Property& property,long double d ); + virtual bool addDate( unsigned int index,const Property& property,const SDODate t ); + virtual bool addDataObject(unsigned int index,const Property& property,DataObjectPtr d ); + + + /////////////////////////////////////////////////////////////////////////// + // removes the entry at the given entry index. + // @param index the index of the entry + /////////////////////////////////////////////////////////////////////////// + virtual void remove(unsigned int index); + virtual void removeAll(const Property& p); + + /////////////////////////////////////////////////////////////////////////// + // pushes a new entry without setting the property. + // @param index the index of the entry + /////////////////////////////////////////////////////////////////////////// + virtual void push(const Property& p, unsigned int index); + + /////////////////////////////////////////////////////////////////////////// + // Moves the entry at fromIndex to toIndex. + // @param toIndex the index of the entry destination. + // @param fromIndex the index of the entry to move. + /////////////////////////////////////////////////////////////////////////// + virtual void move(unsigned int toIndex, unsigned int fromIndex); + + /////////////////////////////////////////////////////////////////////////// + // adds a new Setting with the SDO text Property + // to the end of the Settings. + // @param text value of the Setting. + /////////////////////////////////////////////////////////////////////////// + virtual bool addText(const char* text); + + /////////////////////////////////////////////////////////////////////////// + // adds a new Setting with the SDO text Property + // to the Settings. + // @param index the index at which to add the entry. + // @param text value of the Setting. + /////////////////////////////////////////////////////////////////////////// + virtual bool addText(unsigned int index, const char* text); + + /////////////////////////////////////////////////////////////////////////// + // sets a text Property + // @param index the index at which to set the entry. + // @param text value of the Setting. + /////////////////////////////////////////////////////////////////////////// + bool setText(unsigned int index, const char* text); + + /////////////////////////////////////////////////////////////////////////// + // Checks if an entry is text or a setting. + /////////////////////////////////////////////////////////////////////////// + virtual bool isText(unsigned int index); + + SequenceImpl(DataObject* the_do); + SequenceImpl(SequenceImpl* s); + + private: + + SequenceImpl(); + + DataObjectImpl* the_do; + + class seq_item { + public: + seq_item(const Property* p, unsigned int i): + the_prop(p) + { + index = i; + text = 0; + } + seq_item(const char* t) + { + text = new char[strlen(t) + 1]; + strcpy(text,t); + the_prop = 0; + } + + ~seq_item() + { + if (text) { + delete text; + } + } + + seq_item(const seq_item& sin) + { + the_prop = sin.the_prop; + index = sin.index; + if (sin.text) { + text = new char[strlen(sin.text) +1]; + strcpy(text, sin.text); + } + else + { + text =0; + } + } + + const Property* getProp() {return the_prop;} + unsigned int getIndex() { return index;} + char* getText() { return text;} + void setProp(Property* p) { the_prop = p;} + void setText(const char* intext) + { + if (intext != 0) + { + if (text != 0) + { + delete text; + } + text = new char[strlen(intext) +1]; + strcpy(text,intext); + } + } + void setIndex(unsigned int i) + { + index = i; + } + private: + const Property* the_prop; + unsigned int index; + char* text; + }; + + typedef std::list SEQUENCE_ITEM_LIST; + + SEQUENCE_ITEM_LIST the_list; + +}; +}; +}; + +#endif //_SEQUENCE_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.cpp new file mode 100644 index 0000000000..6aa8dab8b6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.cpp @@ -0,0 +1,303 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/Setting.h" +#include "commonj/sdo/TypeImpl.h" + +namespace commonj{ +namespace sdo { + + Setting::Setting(bool set, bool nul, void* invalue, unsigned int len, const Property& p, unsigned int inindex) + : bisSet(set), bisNull(nul) , value(invalue),theProp(&p) + { + index = inindex; + length = len; + strbuf = 0; + } + + void Setting::copy(const Setting& s) + { + bisSet = s.isSet(); + bisNull = s.isNull(); + index = s.getIndex(); + length = s.getLength(); + theProp = &(s.getProperty()); + strbuf = 0; + switch (theProp->getTypeEnum()) + { + case Type::BooleanType: + value = new long; + *(long*)value = (long)s.getBooleanValue(); + break; + case Type::ByteType: + value = new long; + *(long*)value = (long)s.getByteValue(); + break; + case Type::CharacterType: + value = new long; + *(long*)value = (long)s.getCharacterValue(); + break; + case Type::IntegerType: + value = new long; + *(long*)value = (long)s.getIntegerValue(); + break; + case Type::ShortType: + value = new long; + *(long*)value = (long)s.getShortValue(); + break; + case Type::DoubleType: + value = new long double; + *(long double*)value = s.getDoubleValue(); + break; + case Type::FloatType: + value = new float; + *(float*)value = s.getFloatValue(); + break; + case Type::LongType: + value = new int64_t; + *(int64_t*)value = s.getLongValue(); + break; + case Type::DateType: + value = new long; + *(long*)value = long(s.getDateValue().getTime()); + break; + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::StringType: + case Type::UriType: + value = new wchar_t[length]; + s.getStringValue((wchar_t*)value,length); + break; + case Type::BytesType: + value = new char[length]; + s.getBytesValue((char*)value,length); + break; + case Type::OtherTypes: + case Type::DataObjectType: + case Type::ChangeSummaryType: + value = s.getDataObjectValue(); + default: + break; + } + } + + Setting& Setting::operator=(const Setting& s) + { + if (this == &s) return *this; + copy(s); + return *this; + } + + Setting::Setting(const Setting& s) + { + copy(s); + } + + Setting::~Setting() + { + // The value has been allocated for everything except data objects + + switch (theProp->getTypeEnum()) + { + case Type::BooleanType: + case Type::ByteType: + case Type::CharacterType: + case Type::IntegerType: + case Type::ShortType: + delete (long*)value; + break; + case Type::DoubleType: + delete (long double*)value; + break; + case Type::FloatType: + delete (float*)value; + break; + case Type::LongType: + delete (int64_t*)value; + break; + case Type::DateType: + delete (long*)value; + break; + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::StringType: + case Type::UriType: + delete (wchar_t*)value; + break; + case Type::BytesType: + delete (char*)value; + break; + case Type::OtherTypes: + case Type::DataObjectType: + case Type::ChangeSummaryType: + default: + break; + } + if (strbuf != 0) delete strbuf; + } + + const Property& Setting::getProperty() const + { + return *theProp; + } + + const Type& Setting::getType() const + { + return theProp->getType(); + } + + bool Setting::getBooleanValue() const + { + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToBoolean(value, length); + //if (value == 0) return false; + //if (*(long*)value != 0) { + // return true; + //} + //return false; + } + + char Setting::getByteValue() const + { + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToByte(value, length); + //if (value == 0) return 0; + //return (char)*(long*)value; + } + + wchar_t Setting::getCharacterValue() const + { + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToCharacter(value, length); + //if (value == 0) return 0; + //return (wchar_t)*(long*)value; + } + + unsigned int Setting::getBytesValue(char* buffer, unsigned int max) const + { + if (buffer == 0 && max == 0) return length; + + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToBytes(value, buffer,length, max); + //int i; + //char* c = (char*)value; + //for (i=0;i < max && i < length;i++) + //{ + // buffer[i] = (char)*c; + // c++; + //} + //return i; + } + + unsigned int Setting::getStringValue(wchar_t* buffer, unsigned int max) const + { + if (buffer == 0 && max == 0) return length; + + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToString(value, buffer,length, max); + //int i; + //wchar_t* c = (wchar_t*)value; + //for (i=0;i < max && i < length;i++) + //{ + // buffer[i] = (wchar_t)*c; + // c++; + //} + //return i; + } + + short Setting::getShortValue() const + { + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToShort(value,length); + //return (short)*(long*)value; + } + + long Setting::getIntegerValue() const + { + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToInteger(value, length); + //return *(long*)value; + } + + + int64_t Setting::getLongValue() const + { + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToLong(value, length); + //return (int64_t)*(int64_t*)value; + } + + float Setting::getFloatValue() const + { + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToFloat(value, length); + //return (float)*(float*)value; + } + + const SDODate Setting::getDateValue() const + { + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToDate(value, length); + } + + + long double Setting::getDoubleValue() const + { + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToDouble(value, length); + //return (long double)*(long double*)value; + } + + const char* Setting::getCStringValue() + { + TypeImpl* t = (TypeImpl*)&(getType()); + return t->convertToCString(value, &strbuf, length); + //return (const char*)value; + } + + RefCountingPointer Setting::getDataObjectValue() const + { + DataObject *dob = (DataObject*)value; + return RefCountingPointer(dob); + } + + + unsigned int Setting::getLength() const + { + return length; + } + + unsigned int Setting::getIndex() const + { + return index; + } + + bool Setting::isSet() const + { + return bisSet; + } + + bool Setting::isNull() const + { + return bisNull; + } + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.h new file mode 100644 index 0000000000..37de243716 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.h @@ -0,0 +1,149 @@ +/* + * + * 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:15 $ */ + +#ifndef SETTING_H +#define SETTING_H + +#include "commonj/sdo/export.h" + +#include "commonj/sdo/Type.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/SDODate.h" + +namespace commonj{ +namespace sdo { + + class Property; + + /** + * A Setting encapsulates a property and a corresponding single value of + * the property's type. + */ + + class Setting + { + public: + + Setting(bool set, bool nul, void* invalue, unsigned int len, const Property& p, + unsigned int inindex); + + Setting(const Setting& s); + + void copy(const Setting& s); + + Setting& operator=(const Setting& s); + + + virtual ~Setting(); + + + /** getProperty returns the property set. + * + * Returns the property of the Setting. + * @return the Setting property. + */ + + SDO_API const Property& getProperty() const; + + /** getType returns the type of the property + * + * Returns the type of this property. This is the same as + * getProperty().getType() + */ + + SDO_API const Type& getType() const; + + /** getTypeEnum returns the type enumerator + * + * Returns the enum for the type of this property + */ + + SDO_API Type::Types getTypeEnum() const; + + + /** get methods get the right type of value from the setting + * + * + * Returns the value of the Setting. This must be of the right type for + * Setting value. + */ + + SDO_API bool getBooleanValue() const; + SDO_API char getByteValue() const; + SDO_API wchar_t getCharacterValue() const; + SDO_API unsigned int getBytesValue(char* buffer, unsigned int max) const; + SDO_API unsigned int getStringValue(wchar_t* buffer, unsigned int max) const; + SDO_API short getShortValue() const; + SDO_API long getIntegerValue() const; + SDO_API int64_t getLongValue() const; + SDO_API float getFloatValue() const; + SDO_API long double getDoubleValue() const; + SDO_API const SDODate getDateValue() const; + SDO_API const char* getCStringValue() ; + SDO_API DataObjectPtr getDataObjectValue() const; + + + + /** getIndex returns the index in a many-valued property + * + * Returns the index of the Setting, if this is many valued + */ + + SDO_API unsigned int getIndex() const; + + + /** getLength gives the length of a string or bytes + * + * Returns the length of the setting, if this is a String or + * Bytes type + */ + + SDO_API unsigned int getLength() const ; + + /** isSet returns whether the property WAS set. + * + * Returns whether or not the property is set. This value comes from the + * setting, and tells us whether the property was set before the change + * occurred. + */ + + SDO_API bool isSet() const; + + /** isNull is true if the property value WAS null + * + * Returns whether or not the property was null beforfe the setting + * happened. + */ + + SDO_API bool isNull() const; + + private: + + bool bisSet; + bool bisNull; + void* value; + const Property* theProp; + unsigned int length; + unsigned int index; + char* strbuf; + }; +}; +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.cpp new file mode 100644 index 0000000000..f036d0e488 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.cpp @@ -0,0 +1,113 @@ +/* + * + * 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: 2006/02/17 16:01:05 $ */ + +#include "commonj/sdo/SDORuntimeException.h" + +#include "commonj/sdo/SettingList.h" +#include "commonj/sdo/Logger.h" +#include "commonj/sdo/Setting.h" + +namespace commonj{ +namespace sdo { + + +//SettingList::SettingList(SETTING_VECTOR p) : slist (p) +//{ +//} + +/*SettingList::SettingList(const SettingList &pin) +{ + Logger::log("SettingList copy constructor\n"); + slist = std::vector(pin.getVec()); +} +*/ + +SettingList::SettingList() +{ +} + +SettingList::~SettingList() +{ + while (slist.size() > 0) + { + Setting* s = slist[0]; + slist.erase(slist.begin()); + delete s; + } + +} + + +Setting& SettingList::operator[] (int pos) const +{ + validateIndex(pos); + return (*slist[pos]); +} + +Setting* SettingList::get(int pos) +{ + validateIndex(pos); + return (slist[pos]); +} + +int SettingList::size () const +{ + return slist.size(); +} + +//SETTING_VECTOR SettingList::getVec() const +//{ +// return slist; +//} + +void SettingList::insert (unsigned int index, Setting* d) +{ + slist.insert(slist.begin()+index, d); +} + +void SettingList::append ( Setting* d) +{ + slist.insert(slist.end(),d); +} + +void SettingList::remove(unsigned int index) +{ + validateIndex(index); + const Setting* s = slist[index]; + slist.erase(slist.begin()+index); + delete s; + return; +} + +void SettingList::validateIndex(int index) const +{ + if ((index < 0) || (index > size())) + { + string msg("Index out of range:"); + msg += index; + SDO_THROW_EXCEPTION("ValidateIndex", SDOIndexOutOfRangeException, + msg.c_str()); + + } + +} + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.h new file mode 100644 index 0000000000..63089a1b70 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.h @@ -0,0 +1,75 @@ +/* + * + * 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: 2006/02/17 16:01:05 $ */ + +#ifndef SETTINGLIST_H +#define SETTINGLIST_H + + + +#include +#include "commonj/sdo/Setting.h" + +namespace commonj{ +namespace sdo{ + +typedef std::vector< Setting*> SETTING_VECTOR; + +/** SettingList is a list of settings returned by a change summary + */ + +class SettingList +{ + +public: + //SettingList(SETTING_VECTOR sl); + SettingList(); + + virtual ~SettingList(); + + /** [] is the index operator + * + * This gives access to elements of the list + */ + + SDO_API virtual Setting& operator[] (int pos) const; + + /** size() returns the number of settings + * + * This method returns the size of the list os settings found. + * These may be creations, deletions or changes. + */ + + SDO_API virtual int size () const; + + virtual void insert (unsigned int index, Setting* d); + virtual void append ( Setting* d); + virtual void remove (unsigned int index); + virtual Setting* get (int pos); + + +private: + SETTING_VECTOR slist; + + void validateIndex(int index) const; +}; + +}; +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.cpp new file mode 100644 index 0000000000..1ac094869d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.cpp @@ -0,0 +1,36 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/Type.h" + +namespace commonj{ +namespace sdo{ + + + Type::~Type() + { + } + + const char* Type::SDOTypeNamespaceURI = "commonj.sdo"; + +}; +}; +// end - namespace sdo + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.h new file mode 100644 index 0000000000..8d13fe662b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.h @@ -0,0 +1,226 @@ +/* + * + * 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: 2006/02/02 16:41:30 $ */ + +#ifndef _SDO_TYPE_H_ +#define _SDO_TYPE_H_ + + +#include "commonj/sdo/export.h" + +#include "commonj/sdo/PropertyList.h" + +namespace commonj{ +namespace sdo{ + + + + +class Property; + + /** + * + * Type is a representation of the type of a property of a data object. + */ + +class Type +{ + +public: + + +/** \enum Types + * + * This is the enumerator for all DataType types. All DataObjectType types + * appear as a Type::Types of DataObjectType. + * otherTypes, ChangeSumamryType and TextType are not used by client code. + */ + + + SDO_API enum Types + { + // Zero is a value for 'unknown type; - all data objects' + OtherTypes = 0, + BigDecimalType, + BigIntegerType, + BooleanType, + ByteType, + BytesType, + CharacterType, + DateType, + DoubleType, + FloatType, + IntegerType, + LongType, + ShortType, + StringType, + UriType, + DataObjectType, + ChangeSummaryType, + TextType, + UndefinedOpenPropertyType, + num_types + }; + + virtual SDO_API ~Type(); + + /** getName returns the name of the type + * + * This method returns a const char* name of the type. + */ + + virtual SDO_API const char* getName() const = 0; + + /** getAlias returns the n'th alias + * + * This method returns a const char* corresponding to the + * alias at index n of the list of aliases. Use getAliasCount to + * discover the size of the list. + */ + + virtual SDO_API const char* getAlias(unsigned int index = 0) const = 0; + + /** getAliasCount returns the number of aliases + * + * This method returns the number of aliases for this type + */ + + virtual SDO_API unsigned int getAliasCount() const = 0; + + /** getBaseType returns the base if there is one + * + * This method returns a const Type* corresponding to the + * base Type for this type. The base type is the one which + * this type inherits from. + */ + + virtual SDO_API const Type* getBaseType() const = 0; + + /** getURI returns the URI for this type + * + * This method returns the URI for this type. The URI may be + * null. + */ + + virtual SDO_API const char* getURI() const = 0; + + + + /** getProperties returns a list of properties for this type + * + * This method returns the list of properties for this type. + * Instances of open types may have more properties than appear + * in this list. + * See the propertylist API. + */ + + virtual SDO_API PropertyList getProperties() const = 0; + + + /** getProperty returns a property for this type + * + * This method returns a property, by index or by name + */ + + virtual SDO_API const Property& getProperty(const char* propertyName) const = 0; + virtual SDO_API const Property& getProperty(unsigned int index) const = 0; + + /** getPropertyIndex returns an index + * + * This method returns a property index for a named property + */ + + virtual SDO_API unsigned int getPropertyIndex(const char* propertyName) const = 0; + + /** isDataObjectType true if not a DataType + * + * This method returns true if the type is not a DataType, and is therefore + * a DataObjectType with properties. + */ + + virtual SDO_API bool isDataObjectType() const = 0; + + + /** isSequencedType true if the type is sequenced + * + * This method returns true if the type is sequenced, and is therefore + * objects of this type can be manipulate via their sequence interface. + */ + + virtual SDO_API bool isSequencedType() const = 0; + + + /** isOpenType true if the type is open + * + * Normal types have a predefined list of properties. Trying to set + * properties which do not exist will cause an exception to be thrown. + * Open types, on the other hand, may have properties added to their + * instances runtime. These properties get added silently when setting a + * property value for a property which does not exist. + * Different instances of these objects may have different lists of + * open properties. + */ + + virtual SDO_API bool isOpenType() const = 0; + + /** isAbstractType true if the type is not instantiable. + * + * An abstract type may not be instantiated. It is useful only as + * a base type to some other non-abstract type. + */ + + virtual SDO_API bool isAbstractType() const = 0; + + /** isDataType true if the type is not an object. + * + * A DataType is anything which is not a DataObjectType. This method + * is the opposite of isDataObjectType(). + */ + + virtual SDO_API bool isDataType() const = 0; + + + /** isChangeSummaryType true if the type is a change summary. + * + * There is only one type called ChangeSummary. This method serves + * no purpose in the C++ implementation. + */ + + virtual SDO_API bool isChangeSummaryType() const = 0; + + /** getTypeEnum gets the enum for this type. + * + * Each DataType has a defined value in the list of Types. + */ + + virtual SDO_API Type::Types getTypeEnum() const = 0; + + /** equals compares uri and name. + * + * The types are equal if the URI and Name are equal. + */ + + virtual SDO_API bool equals(const Type& tother) const = 0; + + static SDO_API const char* SDOTypeNamespaceURI; +}; + +}; +}; +#endif //_SDO_TYPE_H_ + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.cpp new file mode 100644 index 0000000000..0e2587e3d5 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.cpp @@ -0,0 +1,42 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/TypeDefinition.h" +namespace commonj +{ + namespace sdo + { + TypeDefinition::TypeDefinition() + : dataType(false), + isOpen(false), + isSequenced(false), + isMany(false), + isQName(false), + isAbstract(false), + groupElementCount(0), + isExtendedPrimitive(false) + { + } + + TypeDefinition::~TypeDefinition() + { + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.h new file mode 100644 index 0000000000..598e66c254 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.h @@ -0,0 +1,77 @@ +/* + * + * 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:15 $ */ + +#ifndef _TYPEDEFINITION_H_ +#define _TYPEDEFINITION_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/PropertyDefinition.h" +#include "list" + + +namespace commonj +{ + namespace sdo + { + + typedef std::list XmlDasPropertyDefs; + +/** + * TypeDefinition holds information gathered from parsing the + * XSD and used for creating Types + */ + class TypeDefinition + { + + public: + TypeDefinition(); + virtual ~TypeDefinition(); + + + SDOXMLString uri; + SDOXMLString name; + SDOXMLString localname; + + SDOXMLString aliases; + + SDOXMLString parentTypeUri; + SDOXMLString parentTypeName; + + SDOXMLString IDPropertyName; + + bool dataType; + XmlDasPropertyDefs properties; + + bool isOpen; + bool isSequenced; + bool isAbstract; + + bool isExtendedPrimitive; + + bool isMany; + int groupElementCount; + + bool isQName; + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_TYPEDEFINITION_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.cpp new file mode 100644 index 0000000000..731c6921d9 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.cpp @@ -0,0 +1,39 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/TypeDefinitions.h" +namespace commonj +{ + namespace sdo + { + TypeDefinitions::TypeDefinitions() + { + } + + TypeDefinitions::~TypeDefinitions() + { + } + + SDOXMLString TypeDefinitions::getTypeQName(const SDOXMLString& typeUri, const SDOXMLString& typeName) + { + return typeUri + "#" + typeName; + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.h new file mode 100644 index 0000000000..2e77886166 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.h @@ -0,0 +1,53 @@ +/* + * + * 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:15 $ */ + +#ifndef _TYPEDEFINITIONS_H_ +#define _TYPEDEFINITIONS_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/TypeDefinition.h" +#include "map" + +namespace commonj +{ + namespace sdo + { + typedef std::map XMLDAS_TypeDefs; + +/** + * TypeDefinitions holds a list information gathered from parsing the + * XSD and used for creating Types + */ + class TypeDefinitions + { + + public: + TypeDefinitions(); + virtual ~TypeDefinitions(); + static SDOXMLString getTypeQName(const SDOXMLString& typeUri, const SDOXMLString& typeName); + + XMLDAS_TypeDefs types; + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_TYPEDEFINITIONS_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp new file mode 100644 index 0000000000..b44f306ddb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp @@ -0,0 +1,3125 @@ +/* + * + * 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: 2006/01/25 15:51:00 $ */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "commonj/sdo/Logger.h" + +#include "commonj/sdo/PropertyImpl.h" +#include "commonj/sdo/TypeImpl.h" + +#include +#include +#include +using namespace std; + +#include +#include + +#include "commonj/sdo/SDORuntimeException.h" + +namespace commonj{ +namespace sdo{ + + + + char* TypeImpl::types[num_types] = { + "Other Types", + "BigDecimal", + "BigInteger", + "Boolean" , + "Byte", + "Bytes", + "Character", + "Date" , + "Double" , + "Float" , + "Integer" , + "Long" , + "Short" , + "String" , + "URI" , + "DataObject", + "ChangeSummary", + "Text" + }; + + + /////////////////////////////////////////////////////////////////////////// + // + /////////////////////////////////////////////////////////////////////////// + + void TypeImpl::addChangeSummary(void) + { + changeSummaryType = true; + } + + bool TypeImpl::isChangeSummaryType() const + { + return changeSummaryType; + } + + /////////////////////////////////////////////////////////////////////////// + // + /////////////////////////////////////////////////////////////////////////// + + bool TypeImpl::isDataType(void) const + { + return isPrimitive; + } + + /////////////////////////////////////////////////////////////////////////// + // + /////////////////////////////////////////////////////////////////////////// + + TypeImpl::TypeImpl(const TypeImpl& t) + { + isResolving = false; + isResolved = false; + } + + TypeImpl::TypeImpl(const Type* base, const char* uri, + const char* inname, + bool isSeq, + bool isOp, + bool isAbs, + bool isData) + { + init(uri,inname,isSeq,isOp, isAbs, isData); + baseType = (TypeImpl*)base; + } + + TypeImpl::TypeImpl(const char* uri, const char* inname, + bool isSeq, + bool isOp, + bool isAbs, + bool isData) + + { + init(uri,inname,isSeq,isOp,isAbs, isData); + baseType = 0; + } + + void TypeImpl::init(const char* uri, const char* inname, + bool isSeq, + bool isOp, + bool isAbs, + bool isData) + { + isResolving = false; + isResolved = false; + localPropsSize = 0; + changeSummaryType = false; + isSequenced = isSeq; + isOpen = isOp; + isAbstract = isAbs; + isPrimitive = isData; + name = new char[strlen(inname)+1]; + strcpy(name,inname); + + if (uri == 0) + { + typeURI = new char[1]; + typeURI[0] = 0; + typeEnum = DataObjectType; + return; + } + + typeURI = new char[strlen(uri)+1]; + strcpy(typeURI,uri); + + if (!strcmp(uri,Type::SDOTypeNamespaceURI)) { + for (int i = 0; i < num_types ; i++) { + if (!strcmp(inname,types[i])) { + typeEnum = (Types)i; + if (i <= UriType) isPrimitive = true; + // Note - you could create Text, but it would + // not be recognised as primitive. + return; + } + } + } + + // All other types are data object types - for now + typeEnum = DataObjectType; + } + + + /////////////////////////////////////////////////////////////////////////// + // + /////////////////////////////////////////////////////////////////////////// + TypeImpl::TypeImpl() + { + } + + /////////////////////////////////////////////////////////////////////////// + // + /////////////////////////////////////////////////////////////////////////// + + TypeImpl::~TypeImpl() + { + // Types free their corresponding properties, but not the types + // of those properties + // Need to free only those we allocated + unsigned int count = 0, start = props.size() - localPropsSize; + std::list::iterator i; + for (i= props.begin(); i != props.end() ; ++i) + { + if (count >= start) { + delete(*i); + } + count++; + } + if (name != 0)delete name; + if (typeURI != 0) delete typeURI; + for (int j = 0; j < aliases.size();j++) + { + delete aliases[j]; + } + } + + /////////////////////////////////////////////////////////////////////////// + // Sets a data type as sequenced. + /////////////////////////////////////////////////////////////////////////// + + void TypeImpl::setSequenced(bool set) + { + isSequenced = set; + } + + /////////////////////////////////////////////////////////////////////////// + // Sets a data type as open. + /////////////////////////////////////////////////////////////////////////// + + void TypeImpl::setOpen(bool set) + { + isOpen = set; + } + + /////////////////////////////////////////////////////////////////////////// + // Sets a data type as open. + /////////////////////////////////////////////////////////////////////////// + + void TypeImpl::setBaseType(const Type* bt) + { + baseType = (TypeImpl*)bt; + + // DataType and Sequenced must be the same as the base Type + isPrimitive = baseType->isPrimitive; + if (isPrimitive) + { + typeEnum = baseType->typeEnum; + } + + if (isSequenced && !baseType->isSequenced) + { + // Its an error to be sequenced and inherit from a + // non-sequenced type + string msg("Cannot be sequenced and inherit from a non-sequenced base type:"); + msg += getURI(); + msg += " "; + msg += getName(); + SDO_THROW_EXCEPTION("setBaseType", + SDOUnsupportedOperationException, + msg.c_str()); + } + + isSequenced = baseType->isSequenced; + // if the base is open then this type must be open too. + + if (baseType->isOpenType()) + { + isOpen = true; + } + } + + bool TypeImpl::equals(const Type& tother) const + { + if (strcmp(typeURI,tother.getURI())) return false; + // TODO - aliases + if (strcmp(name, tother.getName())) return false; + return true; + } + + + const Type* TypeImpl::getBaseType() const + { + return (Type*)baseType; + } + + /////////////////////////////////////////////////////////////////////////// + // Returns the name of the type. + /////////////////////////////////////////////////////////////////////////// + + const char* TypeImpl::getName() const + { + return name; + } + + void TypeImpl::setAlias(const char* alias) + { + char* tmp = new char[strlen(alias)+1]; + strcpy(tmp,alias); + aliases.push_back(tmp); + } + + + + + const char* TypeImpl::getAlias(unsigned int index) const + { + if (index < aliases.size()) + { + return aliases[index]; + } + return name; + } + + unsigned int TypeImpl::getAliasCount() const + { + return aliases.size(); + } + /////////////////////////////////////////////////////////////////////////// + // Returns the namespace URI of the type. + /////////////////////////////////////////////////////////////////////////// + const char* TypeImpl::getURI() const + { + return typeURI; + } + + void TypeImpl::throwIfNestedChangeSummary() const + { + PROPERTY_LIST::const_iterator i; + for (i = props.begin(); i != props.end(); ++i) + { + + const TypeImpl *t = ((*i)->getTypeImpl()); + if (t != 0) + { + if (t->isDataObjectType()) + { + if (t->isChangeSummaryType()) + { + string msg(" Nested change summary type:"); + msg += t->getURI(); + msg += " "; + msg += t->getName(); + SDO_THROW_EXCEPTION("resolve", + SDOUnsupportedOperationException, + msg.c_str()); + } + t->throwIfNestedChangeSummary(); + } + } + } + } + + void TypeImpl::validateChangeSummary() + { + if (!isChangeSummaryType()) return; + throwIfNestedChangeSummary(); + } + + PROPERTY_LIST TypeImpl::getCompoundProperties() + { + return props; + } + + void TypeImpl::initCompoundProperties() + { + // We have already met this type in the resolution heirarchy + if (isResolving) + { + string msg(" circular type dependency on:"); + msg += getURI(); + msg += " "; + msg += getName(); + + SDO_THROW_EXCEPTION("initCompoundProperties", + SDOUnsupportedOperationException, + msg.c_str()); + } + + if (isResolved) + { + return; + } + + isResolving = true; + + + if (baseType != 0) + { + baseType->initCompoundProperties(); + PROPERTY_LIST pl = baseType->getCompoundProperties(); + localPropsSize = props.size(); + props.insert(props.begin(),pl.begin(), pl.end()); + isPrimitive = !(baseType->isDataObjectType()); + } + if (isPrimitive && (props.size() > 0)) + { + string msg("Add property to data type:"); + msg += getURI(); + msg += " "; + msg += getName(); + SDO_THROW_EXCEPTION("initCompoundProperties", + SDOUnsupportedOperationException, + msg.c_str()); + } + isResolved = true; + isResolving = false; + return; + } + + + /////////////////////////////////////////////////////////////////////////// + // Returns the list of the properties of this type. + /////////////////////////////////////////////////////////////////////////// + PropertyList TypeImpl::getProperties() const + { + return props; + } + + unsigned int TypeImpl::getPropertiesSize() const + { + return props.size(); + } + + /////////////////////////////////////////////////////////////////////////// + // Returns the property with the specified name. + /////////////////////////////////////////////////////////////////////////// + const Property& TypeImpl::getProperty(const char* propertyName) const + { + PropertyImpl* pi = getPropertyImpl(propertyName); + if (pi == 0) + { + string msg("Property not found:"); + msg += propertyName; + SDO_THROW_EXCEPTION("getProperty", + SDOPropertyNotFoundException, msg.c_str()); + } + return (Property&)*pi; + } + + + /////////////////////////////////////////////////////////////////////////// + // Substitute Support - get the real underlying type + /////////////////////////////////////////////////////////////////////////// + + const Type& TypeImpl::getRealPropertyType(const char* propertyName) const + { + const TypeImpl* ti = getRealPropertyTypeImpl(propertyName); + if (ti != 0)return (Type&)*ti; + + string msg("Property not found:"); + msg += propertyName; + SDO_THROW_EXCEPTION("getProperty", + SDOPropertyNotFoundException, msg.c_str()); + + } + + + const TypeImpl* TypeImpl::getRealPropertyTypeImpl(const char* propertyName) const + { + + std::list::const_iterator i; + for (i = props.begin(); i != props.end(); ++i) + { + if (!strcmp(propertyName,(*i)->getName())) + { + return ((*i)->getTypeImpl()); + } + for (int k=0;k < (*i)->getAliasCount(); k++) + { + if (!strcmp(propertyName,(*i)->getAlias(k))) + { + return ((*i)->getTypeImpl()); + } + } + for (int j=0;j < (*i)->getSubstitutionCount(); j++) + { + if (!strcmp(propertyName,(*i)->getSubstitutionName(j))) + { + return (TypeImpl*)(*i)->getSubstitutionType(j); + } + } + } + return 0; + } + + /////////////////////////////////////////////////////////////////////////// + // Returns the property with the specified name. + /////////////////////////////////////////////////////////////////////////// + PropertyImpl* TypeImpl::getPropertyImpl(const char* propertyName) const + { + + // Extension - find the property from an xpath + // not very elegant, but it will do. + // you should not be able to have "." and "[" before a "/" - this is assumed. + + if (propertyName == 0 || strlen(propertyName) == 0) return 0; + + char* tokenend = strchr(propertyName,'/'); + char * bracket = strchr(propertyName,'['); + char* dot = strchr(propertyName,'.'); + char* copy; + + + int len = strlen(propertyName); + if (tokenend != 0) + { + len = tokenend - propertyName; + if (bracket != 0 && bracket < tokenend) len = bracket - propertyName; + if (dot != 0 && dot < tokenend) len = dot - propertyName; + } + else + { + if (bracket != 0) len = bracket - propertyName; + if (dot != 0) len = dot - propertyName; + } + if (len != 0) + { + copy = new char[len+1]; + strncpy(copy, propertyName,len); + copy[len] = 0; + } + else + { + copy = new char[strlen(propertyName)+1]; + strcpy(copy,propertyName); + } + + std::list::const_iterator i; + for (i = props.begin(); i != props.end(); ++i) + { + if (!strcmp(copy,(*i)->getName())) + { + delete copy; + if (tokenend && strlen(tokenend) > 1) + { + const TypeImpl* ti = (*i)->getTypeImpl(); + if (ti != 0) + { + PropertyImpl* p = ti-> + getPropertyImpl((const char *)(tokenend+1)); + return p; + } + else + { + return (PropertyImpl*)(*i); + } + } + else { + return (PropertyImpl*)(*i); + } + } + for (int j=0;j < (*i)->getSubstitutionCount(); j++) + { + if (!strcmp(copy,(*i)->getSubstitutionName(j))) + { + delete copy; + if (tokenend && strlen(tokenend) > 1) + { + const TypeImpl* ti = (*i)->getTypeImpl(); + if (ti != 0) + { + PropertyImpl* p = ti-> + getPropertyImpl((const char *)(tokenend+1)); + return p; + } + else + { + return (PropertyImpl*)(*i); + } + } + else { + return (PropertyImpl*)(*i); + } + } + } + for (int k=0;k < (*i)->getAliasCount(); k++) + { + if (!strcmp(copy,(*i)->getAlias(k))) + { + delete copy; + if (tokenend && strlen(tokenend) > 1) + { + const TypeImpl* ti = (*i)->getTypeImpl(); + if (ti != 0) + { + PropertyImpl* p = ti-> + getPropertyImpl((const char *)(tokenend+1)); + return p; + } + else + { + return (PropertyImpl*)(*i); + } + } + else { + return (PropertyImpl*)(*i); + } + } + } + } + return 0; + } + + + /////////////////////////////////////////////////////////////////////////// + // Returns the property with the specified name. + /////////////////////////////////////////////////////////////////////////// + PropertyImpl* TypeImpl::getPropertyImplPure(const char* propertyName) const + { + + + std::list::const_iterator i; + for (i = props.begin(); i != props.end(); ++i) + { + if (!strcmp(propertyName,(*i)->getName())) + { + return (PropertyImpl*)(*i); + } + for (int k=0;k < (*i)->getAliasCount(); k++) + { + if (!strcmp(propertyName,(*i)->getAlias(k))) + { + return (PropertyImpl*)(*i); + } + } + } + return 0; + } + + + /////////////////////////////////////////////////////////////////////////// + // Returns the property index with the specified name. + /////////////////////////////////////////////////////////////////////////// + unsigned int TypeImpl::getPropertyIndex(const char* propertyName) const + { + std::list::const_iterator i; + int j = 0; + for (i = props.begin(); i != props.end(); ++i) + { + if (!strcmp(propertyName,(*i)->getName())) + { + return j; + } + j++; + } + string msg("Property not found:"); + msg += propertyName; + SDO_THROW_EXCEPTION("getPropertyIndex", + SDOPropertyNotFoundException, msg.c_str()); + } + /////////////////////////////////////////////////////////////////////////// + // Returns the property with the specified name. + /////////////////////////////////////////////////////////////////////////// + const Property& TypeImpl::getProperty(unsigned int index) const + { + PropertyImpl* pi = getPropertyImpl(index); + if (pi == 0) + { + string msg("Property not found for index:"); + msg += index; + SDO_THROW_EXCEPTION("getProperty" , + SDOPropertyNotFoundException, msg.c_str()); + } + return (Property&)*pi; + } + + /////////////////////////////////////////////////////////////////////////// + // Returns the property with the specified index. + /////////////////////////////////////////////////////////////////////////// + PropertyImpl* TypeImpl::getPropertyImpl(unsigned int index) const + { + std::list::const_iterator i; + int count = 0; + for (i = props.begin() ; i != props.end() ; ++i) + { + if (count == index)return (PropertyImpl*)(*i); + count++; + } + return 0; + } + + + /////////////////////////////////////////////////////////////////////////// + // Returns the property with the specified name. + /////////////////////////////////////////////////////////////////////////// + void TypeImpl::addProperty(const char* propname, + const TypeImpl& t, + bool many, bool rdonly, bool cont) + { + + props.insert(props.end(),new PropertyImpl(*this, + propname, t, many,rdonly, cont)); + localPropsSize++; + + } + + /////////////////////////////////////////////////////////////////////////// + // Indicates if this Type specifies DataObjects.. + /////////////////////////////////////////////////////////////////////////// + bool TypeImpl::isDataObjectType() const + { + return !isPrimitive; + } + + /////////////////////////////////////////////////////////////////////////// + // Indicates if this Type specifies Sequenced DataObjects. + /////////////////////////////////////////////////////////////////////////// + bool TypeImpl::isSequencedType() const + { + return isSequenced; + } + + /////////////////////////////////////////////////////////////////////////// + // Indicates if this Type allows any form of open content. + /////////////////////////////////////////////////////////////////////////// + bool TypeImpl::isOpenType() const + { + /* TODO - handle open types */ + return isOpen; + } + + /////////////////////////////////////////////////////////////////////////// + // Indicates if this type may not be instantiated. + /////////////////////////////////////////////////////////////////////////// + bool TypeImpl::isAbstractType() const + { + return isAbstract; + } + + void TypeImpl::setAbstract(bool set) + { + isAbstract = set; + } + + /////////////////////////////////////////////////////////////////////////// + // TODO - override ==. + /////////////////////////////////////////////////////////////////////////// + bool TypeImpl::equals(const Type& t) + { + return ( strcmp(getName(),t.getName()) == 0 + && strcmp(getURI (),t.getURI ()) == 0 ); + } + + /////////////////////////////////////////////////////////////////////////// + // getTypeEnum. + /////////////////////////////////////////////////////////////////////////// + Type::Types TypeImpl::getTypeEnum(void) const + { + return typeEnum; + } + + + /////////////////////////////////////////////////////////////////////////// + // Conversions. + // convert is used in the process of setting a value. The input is the + // result of a setXXX, so in the first case setBoolean. The typeEnum is the + // type of the value being set and governs the expected final result in + // the value* buffer. + /////////////////////////////////////////////////////////////////////////// + + unsigned int TypeImpl::convert(void** value,const bool b) const + { + switch (typeEnum) + { + case BooleanType: + case ByteType: + case CharacterType: + case IntegerType: + case ShortType: + if (*value != 0)delete (char*)(*value); + *value = new char[sizeof(long)]; + *(long*)*value = (long)b; + return sizeof(long); + + case LongType: + if (*value != 0)delete (char*)(*value); + *value = new char[sizeof(int64_t)]; + *(int64_t*)*value = (int64_t)b; + return sizeof(int64_t); + + case BigDecimalType: + case BigIntegerType: + case StringType: + case UriType: + if (*value != 0)delete (char*)(*value); + // spec change - types + *value = new wchar_t[6]; + if (b) + { + ((wchar_t*)(*value))[0] = (wchar_t)'t'; + ((wchar_t*)(*value))[1] = (wchar_t)'r'; + ((wchar_t*)(*value))[2] = (wchar_t)'u'; + ((wchar_t*)(*value))[3] = (wchar_t)'e'; + ((wchar_t*)(*value))[4] = 0; + return 4; + } + else + { + ((wchar_t*)(*value))[0] = (wchar_t)'f'; + ((wchar_t*)(*value))[1] = (wchar_t)'a'; + ((wchar_t*)(*value))[2] = (wchar_t)'l'; + ((wchar_t*)(*value))[3] = (wchar_t)'s'; + ((wchar_t*)(*value))[4] = (wchar_t)'e'; + ((wchar_t*)(*value))[5] = 0; + return 5; + } + break; + + + case BytesType: + { + if (*value != 0)delete (char*)(*value); + // spec change - types + *value = new char[6]; + if (b) + { + strcpy((char*)*value, "true"); + return 4; + } + else + { + strcpy((char*)*value, "false"); + return 5; + } + break; + + } + + case DoubleType: + case FloatType: + case DateType: + case OtherTypes: + case DataObjectType: + case ChangeSummaryType: + default: + { + string msg("Cannot set Boolean on object of type:"); + msg += getName(); + SDO_THROW_EXCEPTION("setBoolean" , + SDOInvalidConversionException, msg.c_str()); + break; + } + } + return 0; + } + + unsigned int TypeImpl::convert(void** value,const char c) const + { + return convert(value,(long)c); + } + + unsigned int TypeImpl::convert(void** value,const wchar_t c) const + { + return convert(value,(long)c); + } + + // This is set CString... + unsigned int TypeImpl::convert(void** value,const char* c) const + { + + switch (typeEnum) + { + case BooleanType: + if (*value != 0)delete ((char*)*value); + *value = new char[sizeof(long)]; + if ((c == 0) || strcmp(c,"true")) + { + *(long*)*value = 0; + } + else + { + *(long*)*value = 1; + } + return sizeof(long); + + case ByteType: + case CharacterType: + case IntegerType: + case ShortType: + if (*value != 0) delete ((char*)*value); + *value = new char[sizeof(long)]; + *(long*)*value = atoi(c); + return sizeof(long); + + case DoubleType: + if (*value != 0) delete ((char*)*value); + *value = new char[sizeof(long double)]; + // TODO - atof not suitable here + *(long double*)*value = (long double)atof(c); + return sizeof(long double); + + case FloatType: + if (*value != 0) delete ((char*)*value); + *value = new char[sizeof(float)]; + *(float*)*value = (float)atof(c); + return sizeof(float); + + case LongType: + if (*value != 0) delete ((char*)*value); + *value = new char[sizeof(int64_t)]; +#if defined(WIN32) || defined (_WINDOWS) + *(int64_t*)*value = (int64_t)_atoi64(c); +#else + *(int64_t*)*value = (int64_t)strtoll(c, NULL, 0); +#endif + return sizeof(int64_t); + + case DateType: + if (*value != 0) delete ((char*)*value); + *value = new char[sizeof(time_t)]; + *(time_t*)*value = (time_t)atoi(c); + return sizeof(time_t); + + case BigDecimalType: + case BigIntegerType: + case StringType: + case UriType: + { + if (*value != 0) delete ((wchar_t*)*value); + wchar_t* vw = new wchar_t[strlen(c)+1]; + for (int i=0;i< strlen(c);i++) + { + vw[i] = (wchar_t)c[i]; + } + vw[strlen(c)] = 0; + *value = (void*)vw; + return strlen(c); + } + break; + case BytesType: + { + if (*value != 0) delete ((char*)*value); + char* vc = new char[strlen(c)+1]; + for (int i=0;i< strlen(c);i++) + { + vc[i] = (char)c[i]; + } + vc[strlen(c)] = 0; + *value = (void*)vc; + return strlen(c); + } + break; + + case OtherTypes: + case DataObjectType: + case ChangeSummaryType: + default: + { + string msg("Cannot set CString on object of type:"); + msg += getName(); + SDO_THROW_EXCEPTION("setString" , + SDOInvalidConversionException, msg.c_str()); + break; + } + } + return 0; + } + + // setString + unsigned int TypeImpl::convert(void** value,const wchar_t* b, unsigned int len) const + { + int i; + switch (typeEnum) + { + case BigDecimalType: + case BigIntegerType: + case UriType: + case StringType: + { + if (*value != 0) delete ((wchar_t*)*value); + wchar_t* vw = new wchar_t[len+1]; + for (i=0;i 4) + { + *(long*)*value = 0; + } + else + { + if (b[0] == (wchar_t)'t' && + b[1] == (wchar_t)'r' && + b[2] == (wchar_t)'u' && + b[3] == (wchar_t)'e' ) + *(long*)*value = 1; + else *(long*)*value = 0; + } + return sizeof(long); + + case CharacterType: + case ByteType: + if (*value != 0)delete ((char*)*value); + *value = new char[sizeof(long)]; + if (len > 0) + { + *(long*)*value = (long)b[0]; + } + else + { + *(long*)*value = (long)0; + } + return sizeof(long); + + case ShortType: + case IntegerType: + { + if (*value != 0)delete ((char*)*value); + *value = new char[sizeof(long)]; + int val = 0; + for (int j=0;j 4) + { + *(long*)*value = 0; + } + else + { + if (b[0] == (char)'t' && + b[1] == (char)'r' && + b[2] == (char)'u' && + b[3] == (char)'e' ) + *(long*)*value = 1; + else *(long*)*value = 0; + } + return sizeof(long); + + case ByteType: + case CharacterType: + if (*value != 0)delete ((char*)*value); + *value = new char[sizeof(long)]; + if (len > 0) + { + *(long*)*value = (long)b[0]; + } + else + { + *(long*)*value = (long)0; + } + return sizeof(long); + + case IntegerType: + case ShortType: + { + if (*value != 0)delete ((char*)*value); + *value = new char[sizeof(long)]; + int val = 0; + for (int j=0;jmax?max:len; + } + case BytesType: + { + if (value == 0) return 0; + char* tmp = (char*)value; + for (i=0;(i < len) && (i < max);i++) + { + outval[i] = (wchar_t)(tmp[i]); + } + return len>max?max:len; + } + + case BooleanType: + { + if (max < 4) return 0; + if (value == 0 || *(long*)value == 0) { + if (max < 5) return 0; + outval[0] = (wchar_t)'f'; + outval[1] = (wchar_t)'a'; + outval[2] = (wchar_t)'l'; + outval[3] = (wchar_t)'s'; + outval[4] = (wchar_t)'e'; + return 5; + } + else + { + outval[0] = (wchar_t)'t'; + outval[1] = (wchar_t)'r'; + outval[2] = (wchar_t)'u'; + outval[3] = (wchar_t)'e'; + return 4; + } + } + + case ByteType: + { + if (value == 0) return 0; + long tmp = *(long*)value; + outval[0] = (wchar_t)(tmp&0xFF); + return 1; + } + + case CharacterType: + { + if (value == 0) return 0; + long tmp = *(long*)value; + outval[0] = (wchar_t)(tmp & 0xFFFF); + return 1; + } + + case ShortType: + case IntegerType: + { + if (value == 0) return 0; + long tmp = *(long*)value; +#if defined(WIN32) || defined (_WINDOWS) + wchar_t* tmpstr = new wchar_t[MAX_LONG_SIZE]; + _ltow(tmp,tmpstr,10); + if (wcslen(tmpstr) > max) return 0; + _ltow(tmp,outval,10); + return wcslen(outval); +#else + sprintf(tmpstr, "%ld", tmp); + if (strlen(tmpstr) > max) return 0; + for (j=0; j< strlen(tmpstr); j++) + { + outval[j] = (wchar_t)tmpstr[j]; + } + delete tmpstr; + return j; +#endif + } + + + case LongType: + { + if (value == 0) return 0; + int64_t tmp = *(int64_t*)value; +#if defined(WIN32) || defined (_WINDOWS) + wchar_t* tmpstr = new wchar_t[MAX_LONG_SIZE]; + _i64tow(tmp,tmpstr,10); + if (wcslen(tmpstr) > max) + { + delete tmpstr; + return 0; + } + _i64tow(tmp,outval,10); + return wcslen(outval); +#else + sprintf(tmpstr, "%lld", tmp); + if (strlen(tmpstr) > max) return 0; + for (j=0; j< strlen(tmpstr); j++) + { + outval[j] = (wchar_t)tmpstr[j]; + } + delete tmpstr; + return j; +#endif + } + + case DateType: + { + + if (value == 0) return 0; + string msg("Conversion to string not implemented from type:"); + msg += getName(); + SDO_THROW_EXCEPTION("getString" , + SDOInvalidConversionException, msg.c_str()); + break; + } + + case DoubleType: + { + if (value == 0) return 0; + if (max < MAX_DOUBLE_SIZE) return 0; + wchar_t* fmt = new wchar_t[5]; + fmt[0] = (wchar_t)'%'; + fmt[1] = (wchar_t)'.'; + fmt[2] = (wchar_t)'3'; + fmt[3] = (wchar_t)'e'; + fmt[4] = (wchar_t)0; +#if defined(WIN32) || defined (_WINDOWS) + swprintf((wchar_t*)outval,fmt,*(long double*)value); +#else +#if defined(NO_SWPRINTF) + { + int k; + char *tmpbuf = new char[50]; + wchar_t *tmpw = (wchar_t*)outval; + sprintf(tmpbuf,"%.3e",*(long double*)value); + for (k=0;kmax?max:len; + } + + case BigDecimalType: + case BigIntegerType: + case UriType: + case StringType: + { + if (value == 0) return 0; + wchar_t* tmp = (wchar_t*)value; + for (i=0;(i < max) && (i < len);i++) + { + outval[i] = (char)(tmp[i]); + } + return len>max?max:len; + } + + case BooleanType: + { + if (value == 0 || *(long*)value == 0) { + if (max < 5) return 0; + outval[0] = 'f'; + outval[1] = 'a'; + outval[2] = 'l'; + outval[3] = 's'; + outval[4] = 'e'; + return 5; + } + else { + if (max < 4) return 0; + outval[0] = 't'; + outval[1] = 'r'; + outval[2] = 'u'; + outval[3] = 'e'; + return 4; + } + return 0; + } + + case CharacterType: + case ByteType: + { + if (value == 0) return 0; + long tmp = *(long*)value; + outval[0] = (char)(tmp&0xFF); + return 1; + } + + case ShortType: + case IntegerType: + { + if (value == 0) return 0; + long tmp = *(long*)value; + char* tmpstr = new char[MAX_LONG_SIZE]; + sprintf(tmpstr, "%ld", tmp); + if (strlen(tmpstr) > max) + { + delete tmpstr; + return 0; + } + delete tmpstr; + sprintf(outval, "%ld", tmp); + return strlen(outval); + } + + + case LongType: + { + if (value == 0) return 0; + int64_t tmp = *(int64_t*)value; + char * tmpstr = new char[MAX_LONG_SIZE]; + sprintf(tmpstr, "%lld", tmp); + if (strlen(tmpstr) > max) + { + delete tmpstr; + return 0; + } + delete tmpstr; + sprintf(outval, "%lld", tmp); + return strlen(outval); + } + case DateType: + { + if (value == 0) return 0; + string msg("Conversion to string not implemented from type:"); + msg += getName(); + SDO_THROW_EXCEPTION("getBytes" , + SDOInvalidConversionException, msg.c_str()); + break; + } + + case DoubleType: + if (value == 0) return 0; + if (max < MAX_DOUBLE_SIZE) return 0; + sprintf(outval,"%.3e",*(long double*)value); + return strlen(outval); + + case FloatType: + if (value == 0) return 0; + if (max < MAX_FLOAT_SIZE) return 0; + sprintf(outval,"%.3e",*(float*)value); + return strlen(outval); + + case OtherTypes: + case DataObjectType: + default: + { + if (max < 9) return 0; + sprintf(outval,"%08x",value); + //string msg("Cannot get Bytes from object of type:"); + //msg += getName(); + //SDO_THROW_EXCEPTION("getBytes" , + // SDOInvalidConversionException, msg.c_str()); + return strlen(outval); + } + } + return 0; + } + + + const char* TypeImpl::convertToCString(void* value, char** asstringbuf, unsigned int len) const + { + int i; + + switch (typeEnum) + { + case BooleanType: + if (value == 0 || *(long*)value == 0) { + *asstringbuf = new char[6]; + strcpy(*asstringbuf,"false"); + } + else { + *asstringbuf = new char[5]; + strcpy(*asstringbuf,"true"); + } + return *asstringbuf; + + case ByteType: + *asstringbuf = new char[MAX_LONG_SIZE]; + if (value == 0){ + sprintf(*asstringbuf,"%ld",0); + } + else { + sprintf(*asstringbuf,"%ld",*(long*)value); + } + return *asstringbuf; + + case CharacterType: + *asstringbuf = new char[MAX_LONG_SIZE]; + if (value == 0){ + sprintf(*asstringbuf,"%ld",0); + } + else { + sprintf(*asstringbuf,"%ld", *(long*)value); + } + return *asstringbuf; + + case IntegerType: + *asstringbuf = new char[MAX_LONG_SIZE]; + if (value == 0){ + sprintf(*asstringbuf,"%ld",0); + } + else { + sprintf(*asstringbuf,"%ld", *(long*)value); + } + return *asstringbuf; + + case ShortType: + *asstringbuf = new char[MAX_LONG_SIZE]; + if (value == 0){ + sprintf(*asstringbuf,"%ld",0); + } + else { + sprintf(*asstringbuf,"%ld", *(long*)value); + } + return *asstringbuf; + + case DoubleType: + *asstringbuf = new char[MAX_DOUBLE_SIZE]; + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + (*asstringbuf)[0] = 0; + return *asstringbuf; + } + sprintf(*asstringbuf,"%.3e",*(long double*)value); + return *asstringbuf; + + case FloatType: + *asstringbuf = new char[MAX_FLOAT_SIZE]; + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + (*asstringbuf)[0] = 0; + return *asstringbuf; + } + sprintf(*asstringbuf,"%.3e", *(float*)value); + return *asstringbuf; + + case LongType: + { + *asstringbuf = new char[MAX_LONG_SIZE]; + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + (*asstringbuf)[0] = 0; + return *asstringbuf; + } + int64_t temp = *(int64_t*)value; +#if defined(WIN32) || defined (_WINDOWS) + sprintf(*asstringbuf,"%I64d", temp); +#else + sprintf(*asstringbuf,"%lld", temp); +#endif + return *asstringbuf; + } + case DateType: + *asstringbuf = new char[MAX_LONG_SIZE]; + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + (*asstringbuf)[0] = 0; + return *asstringbuf; + } + sprintf(*asstringbuf,"%ld", *(time_t*)value); + return *asstringbuf; + + case BigDecimalType: + case BigIntegerType: + case StringType: + case UriType: + { + if (value == 0 || len == 0) + { + *asstringbuf = new char[1]; + (*asstringbuf)[0] = 0; + return *asstringbuf; + } + *asstringbuf = new char[len + 1]; + wchar_t* tmp = (wchar_t*)value; + for (i=0;i< len;i++) + { + (*asstringbuf)[i] = tmp[i] & 0xFF; + } + (*asstringbuf)[i] = 0; + return *asstringbuf; + } + + case BytesType: + { + if (value == 0 || len == 0) + { + *asstringbuf = new char[1]; + (*asstringbuf)[0] = 0; + return *asstringbuf; + } + *asstringbuf = new char[len + 1]; + char* tmp = (char*)value; + for (i=0;i< len ;i++) + { + (*asstringbuf)[i] = (char)(tmp[i]); + } + (*asstringbuf)[i] = 0; + return *asstringbuf; + } + + + case OtherTypes: + case DataObjectType: + default: + { + *asstringbuf = new char[9]; + sprintf(*asstringbuf,"%08x",value); + //string msg("Cannot get CString from object of type:"); + //msg += getName(); + //SDO_THROW_EXCEPTION("getCString" , + // SDOInvalidConversionException, msg.c_str()); + return *asstringbuf; + } + } + return 0; + } + + const bool TypeImpl::convertToBoolean(void* value, unsigned int len) const + { + switch (typeEnum) + { + case BooleanType: + case ByteType: + case CharacterType: + case IntegerType: + case ShortType: + if (value == 0) return false; + if (*(long*)value != 0) return true; + return false; + + case DoubleType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return false; + } + if (*(long double*)value != 0.0) return true; + return false; + + case FloatType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return false; + } + if (*(float*)value != 0.0) return true; + return false; + + case LongType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return false; + } + if (*(int64_t*)value != 0)return true; + return false; + + case DateType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return false; + } + if (*(time_t*)value != 0)return true; + return false; + + case BigDecimalType: + case BigIntegerType: + case StringType: + case UriType: + if (value == 0 || len < 4) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return false; + } + if ( ((wchar_t*)value)[0] == (wchar_t)'t' && + ((wchar_t*)value)[1] == (wchar_t)'r' && + ((wchar_t*)value)[2] == (wchar_t)'u' && + ((wchar_t*)value)[3] == (wchar_t)'e' ) + return true; + + return false; + + case BytesType: + if (value == 0 || len < 4) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return false; + } + if (!strncmp((char*)value,"true", 4)) return true; + return false; + + case OtherTypes: + case DataObjectType: + default: + { + string msg("Cannot get Boolean from object of type:"); + msg += getName(); + SDO_THROW_EXCEPTION("getBoolean" , + SDOInvalidConversionException, msg.c_str()); + break; + } + } + + } + + const char TypeImpl::convertToByte(void* value , unsigned int len) const + { + switch (typeEnum) + { + case BooleanType: + case ByteType: + case CharacterType: + case IntegerType: + case ShortType: + if (value == 0) return 0; + return (char)(*(long*)value); + + case DoubleType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (char)(*(long double*)value); + + case FloatType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (char)(*(float*)value); + + case LongType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (char)(*(int64_t*)value); + + case DateType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + + return (char)(*(time_t*)value); + + case BigDecimalType: + case BigIntegerType: + case StringType: + case UriType: + { + if (value == 0) return 0; + return (char)*(wchar_t*)value; + } + + case BytesType: + { + if (value == 0) return 0; + return (char)*(char*)value; + } + + + case OtherTypes: + case DataObjectType: + default: + { + string msg("Cannot get Byte from object of type:"); + msg += getName(); + SDO_THROW_EXCEPTION("getByte" , + SDOInvalidConversionException, msg.c_str()); + break; + } + } + } + + const wchar_t TypeImpl::convertToCharacter(void* value, unsigned int len) const + { + switch (typeEnum) + { + case BooleanType: + case ByteType: + case CharacterType: + case IntegerType: + case ShortType: + if (value == 0) return 0; + return (wchar_t)(*(long*)value); + + case DoubleType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (wchar_t)(*(long double*)value); + + case FloatType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (wchar_t)(*(float*)value); + + case LongType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (wchar_t)(*(int64_t*)value); + + case DateType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (wchar_t)(*(time_t*)value); + + case BigDecimalType: + case BigIntegerType: + case StringType: + case UriType: + { + if (value == 0) return 0; + return *(wchar_t*)value; + } + + case BytesType: + { + if (value == 0) return 0; + return (wchar_t)*(char*)value; + } + + case OtherTypes: + case DataObjectType: + default: + { + string msg("Cannot get Character from object of type:"); + msg += getName(); + SDO_THROW_EXCEPTION("getCharacter" , + SDOInvalidConversionException, msg.c_str()); + break; + } + } + } + const short TypeImpl::convertToShort(void* value, unsigned int len) const + { +#if ! defined(WIN32) && !defined (_WINDOWS) + char* tmpstr = new char[len+1]; + short s = 0; +#endif + switch (typeEnum) + { + case BooleanType: + case ByteType: + case CharacterType: + case IntegerType: + case ShortType: + if (value == 0) return 0; + return (short)(*(long*)value); + + case DoubleType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (short)(*(long double*)value); + + case FloatType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (short)(*(float*)value); + + case LongType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (short)(*(int64_t*)value); + + case DateType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (short)(*(time_t*)value); + + case BigDecimalType: + case BigIntegerType: + case StringType: + case UriType: + if (value == 0 || len == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } +#if defined(WIN32) || defined (_WINDOWS) + return (short)_wtoi((wchar_t*)value); +#else + for (int j=0;j< len;j++) + { + tmpstr[j] = (char)((char *)value)[j]; + } + tmpstr[len] = 0; + s = (short) atoi(tmpstr); + delete tmpstr; + return s; +#endif + + + case BytesType: + case OtherTypes: + case DataObjectType: + default: + { + string msg("Cannot get Short from object of type:"); + msg += getName(); + SDO_THROW_EXCEPTION("getShort" , + SDOInvalidConversionException, msg.c_str()); + break; + } + } + } + + +/* const int TypeImpl::convertToInt(void* value, unsigned int len) const + { + switch (typeEnum) + { + case BooleanType: + case ByteType: + case CharacterType: + case IntegerType: + case ShortType: + if (value == 0) return 0; + return (int)(*(long*)value); + + case DoubleType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (int)(*(long double*)value); + + case FloatType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (int)(*(float*)value); + + case LongType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (int)(*(int64_t*)value); + + case DateType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } + return (int)(*(time_t*)value); + + case BigDecimalType: + case BigIntegerType: + case StringType: + case UriType: + if (value == 0) + { + // Conversions might set from a zero value, as they are used + // by the default Setting code as well + return 0; + } +#if defined(WIN32) || defined (_WINDOWS) + return (int)_wtoi((wchar_t*)value); +#else + char* tmp = new char[len+1]; + int j = 0;; + for (j=0;j +#include +#include +#include "commonj/sdo/DASType.h" +#include "commonj/sdo/PropertyImpl.h" +#include "commonj/sdo/SDODate.h" + + +#define MAX_LONG_SIZE 20 +#define MAX_FLOAT_SIZE 32 +#define MAX_DOUBLE_SIZE 32 +#define BOOL_SIZE 5 +#define CHAR_SIZE 1 +#define BYTE_SIZE 1 + +using namespace std; + +namespace commonj{ +namespace sdo{ + +class DataObject; +class PropertyList; +class MetadataGraph; + + +#ifndef PROPERTY_LIST + typedef std::list PROPERTY_LIST; +#endif + +/** + * TypeImpl implements the abstract class Type. + * A representation of the type of property of a data object. + */ + + +class TypeImpl : public DASType +{ + +public: + + + virtual ~TypeImpl(); + + /** convert - converts between types + * + * When a DataObject is queried for the value of one of its + * properties, the method to call varies according to the + * type of the property. + * If the wrong API is called (E.g getBoolean() called on + * an Integer value), then a conversion is attempted. + * Many conversions will succeed and return the value, + * others will throw an InvalidConversionException + */ + + unsigned int convertDate( void ** value, const SDODate i) const; + unsigned int convert( void ** value,const char* s) const; + unsigned int convert( void ** value,const wchar_t* s, unsigned int len) const; + unsigned int convert( void ** value,const char* s, unsigned int len) const; + unsigned int convert( void ** value,const bool b) const; + unsigned int convert( void ** value,const char c) const; + unsigned int convert( void ** value,const wchar_t c) const; + unsigned int convert( void ** value,const short s) const; + unsigned int convert( void ** value,const long i) const; + unsigned int convert( void ** value,const int64_t l) const; + unsigned int convert( void ** value,const float f) const; + unsigned int convert( void ** value,const long double d) const; + unsigned int convert( void ** value,DataObject* dob) const; + + const char* convertToCString( void* value , char** inbuf, unsigned int len) const; + const bool convertToBoolean( void* value, unsigned int len) const; + const char convertToByte( void* value,unsigned int len ) const; + unsigned int convertToString( void* value , wchar_t* val, unsigned int len, + unsigned int max) const; + unsigned int convertToBytes( void* value , char* val, unsigned int len, + unsigned int max) const; + const wchar_t convertToCharacter( void* value ,unsigned int len) const; + const short convertToShort( void* value ,unsigned int len) const; + const long convertToInteger( void* value ,unsigned int len) const; + const int64_t convertToLong( void* value ,unsigned int len) const; + const float convertToFloat( void* value ,unsigned int len) const; + const long double convertToDouble(void* value ,unsigned int len) const; + DataObject* convertToDataObject(void* value ,unsigned int len) const; + const SDODate convertToDate (void* value ,unsigned int len) const; + + /** equals - compares + * + * equals returns true if the name and uri are the same + */ + + bool equals(const Type& t); + + /////////////////////////////////////////////////////////////////////////// + // Returns the name of the type. + /////////////////////////////////////////////////////////////////////////// + const char* getName() const; + + /////////////////////////////////////////////////////////////////////////// + // Alias support. + // @return nth alias + /////////////////////////////////////////////////////////////////////////// + virtual const char* getAlias(unsigned int index = 0) const ; + virtual unsigned int getAliasCount() const ; + virtual void setAlias(const char* alias); + + + + /////////////////////////////////////////////////////////////////////////// + // Returns the namespace URI of the type. + /////////////////////////////////////////////////////////////////////////// + const char* getURI() const; + + /////////////////////////////////////////////////////////////////////////// + // Returns the list of the properties of this type. + /////////////////////////////////////////////////////////////////////////// + PropertyList getProperties() const; + + /////////////////////////////////////////////////////////////////////////// + // add a property to a Type whilst building - this is for DAS + /////////////////////////////////////////////////////////////////////////// + void addProperty(const char* name, + const TypeImpl& t, bool many, bool rdonly, bool cont); + + /////////////////////////////////////////////////////////////////////////// + // Returns the property with the specified name. + /////////////////////////////////////////////////////////////////////////// + const Property& getProperty(const char* propertyName) const ; + const Property& getProperty(unsigned int index) const ; + + PropertyImpl* getPropertyImpl(const char* propertyName) const ; + PropertyImpl* getPropertyImpl(unsigned int index) const ; + + + /////////////////////////////////////////////////////////////////////////// + // Substitute support + /////////////////////////////////////////////////////////////////////////// + // get the property with no substitute possible. + PropertyImpl* getPropertyImplPure(const char* propertyName) const ; + + // get the type of the property even if its a substitute + const Type& getRealPropertyType(const char* propertyName) const ; + const TypeImpl* getRealPropertyTypeImpl(const char* propertyName) const ; + + + + unsigned int getPropertyIndex(const char* propertyName) const ; + + unsigned int getPropertiesSize() const; + /////////////////////////////////////////////////////////////////////////// + // Indicates if this Type specifies DataObjects. + /////////////////////////////////////////////////////////////////////////// + bool isDataObjectType() const; + + /////////////////////////////////////////////////////////////////////////// + // Indicates if this Type specifies Sequenced DataObjects. + /////////////////////////////////////////////////////////////////////////// + bool isSequencedType() const; + void setSequenced(bool set); + + /////////////////////////////////////////////////////////////////////////// + // Indicates if this Type allows any form of open content. If false, + // dataObject.getInstanceProperties() must be the same as + // DataObject.getType().getProperties(). + /////////////////////////////////////////////////////////////////////////// + bool isOpenType() const; + void setOpen(bool set); + + /////////////////////////////////////////////////////////////////////////// + // Indicates if this type may not be instantiated. + /////////////////////////////////////////////////////////////////////////// + bool isAbstractType() const; + void setAbstract(bool set); + + /////////////////////////////////////////////////////////////////////////// + // Set the base type for inherited types + /////////////////////////////////////////////////////////////////////////// + void setBaseType(const Type* tb); + const Type* getBaseType() const; + + + /////////////////////////////////////////////////////////////////////////// + // Indicates a non-object type + /////////////////////////////////////////////////////////////////////////// + bool isDataType() const; + + /////////////////////////////////////////////////////////////////////////// + // Indicates a non-object type + /////////////////////////////////////////////////////////////////////////// + Type::Types getTypeEnum() const; + + /////////////////////////////////////////////////////////////////////////// + // set this type as a change summary holder + /////////////////////////////////////////////////////////////////////////// + void addChangeSummary(); + + /////////////////////////////////////////////////////////////////////////// + // Say if this type is allowed to have a summary + /////////////////////////////////////////////////////////////////////////// + bool isChangeSummaryType() const; + + /////////////////////////////////////////////////////////////////////////// + // Used by the DAS to resolve the base type properties list + /////////////////////////////////////////////////////////////////////////// + void initCompoundProperties(); + + /////////////////////////////////////////////////////////////////////////// + // Used by the DAS to chack for nested change summaries + /////////////////////////////////////////////////////////////////////////// + void validateChangeSummary(); + + virtual bool equals(const Type& tother) const; + +private: + friend class DataFactoryImpl; + + bool changeSummaryType; + + void* newValue(void* v, int size) const; + + PROPERTY_LIST getCompoundProperties(); + + void throwIfNestedChangeSummary() const; + + TypeImpl(const char* uri,const char* name, + bool isSeq= false, + bool isOp = false, + bool isAbs = false, + bool isData = false); + + TypeImpl(const Type* base, const char* uri,const char* name, + bool isSeq = false, + bool isOp = false, + bool isAbs = false, + bool isData = false); + + void init(const char* uri, const char* inname, + bool isSeq, + bool isOp, + bool isAbs, + bool isData); + + + + TypeImpl(); + TypeImpl(const TypeImpl& t); + + + char* name; + char* typeURI; + + + bool isPrimitive; + bool isSequenced; + bool isOpen; + bool isAbstract; + + // baseType properties included + bool isResolved; + // check for circular dependency + bool isResolving; + + Types typeEnum; + + static char* types[num_types]; + + // alias support + + std::vector aliases; + + + PROPERTY_LIST props; + + + // type inheritance + TypeImpl* baseType; + // says how many of the props are really in this data object type. + unsigned int localPropsSize; + +}; + +}; +}; + +#endif //_TYPEIMPL_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.cpp new file mode 100644 index 0000000000..59c4083e75 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.cpp @@ -0,0 +1,84 @@ +/* + * + * 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:15 $ */ + +#ifndef SDO_EXPORTS + #define SDO_EXPORTS +#endif + +#include "commonj/sdo/export.h" +#include +#include "commonj/sdo/Property.h" +#include "commonj/sdo/Type.h" +#include "commonj/sdo/TypeList.h" +#include "commonj/sdo/Logger.h" + +using namespace std; + +namespace commonj{ +namespace sdo { + + +/** TypeList provides access to a list of Types. + * + * The data factory can return a list of types available. This + * class wraps that list and provides access to Types by + * iteration + */ + +SDO_API TypeList::TypeList(std::vector p) : plist (p) +{ +} + +SDO_API TypeList::TypeList(const TypeList &pin) +{ + plist = std::vector(pin.getVec()); +} + +SDO_API TypeList::TypeList() +{ +} + +SDO_API TypeList::~TypeList() +{ +} + + +SDO_API const Type& TypeList::operator[] (int pos) const +{ + return *plist[pos]; +} + +SDO_API int TypeList::size () const +{ + return plist.size(); +} + +std::vector TypeList::getVec() const +{ + return plist; +} + +SDO_API void TypeList::insert (const Type* t) +{ + plist.insert(plist.end(),t); +} + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.h new file mode 100644 index 0000000000..bdc20cbfe3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.h @@ -0,0 +1,56 @@ +/* + * + * 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:15 $ */ + +#ifndef _TYPELIST_H_ +#define _TYPELIST_H_ +#include "commonj/sdo/export.h" + +#include +#include "commonj/sdo/Type.h" + +namespace commonj{ +namespace sdo +{ +class Type; + +/** TypeList - provides access to a list of Types + * + * The data factory can return a list of types available. This + * class wraps that list and provides access to Types by + * iteration + */ + +class TypeList +{ +private: + std::vector plist; + std::vector getVec() const; +public: + SDO_API TypeList(const TypeList &pin); + SDO_API TypeList(std::vector p); + SDO_API TypeList(); + virtual SDO_API ~TypeList(); + SDO_API const Type& operator[] (int pos) const; + SDO_API int size () const; + SDO_API void insert (const Type* t); +}; +}; +}; + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.cpp new file mode 100644 index 0000000000..b16b2eedff --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.cpp @@ -0,0 +1,31 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/XMLDocument.h" +namespace commonj +{ + namespace sdo + { + + XMLDocument::~XMLDocument() + { + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.h new file mode 100644 index 0000000000..4737fa9d03 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.h @@ -0,0 +1,145 @@ +/* + * + * 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:15 $ */ + +#ifndef _XMLDOCUMENT_H_ +#define _XMLDOCUMENT_H_ + + +#include "commonj/sdo/export.h" + +#include "commonj/sdo/DataObject.h" + +namespace commonj +{ + namespace sdo + { + /** XMLDocument - place for holding a graph + * + * The XMLDocument class provides a place to hold a loaded + * graph of data. The root element name is maintained here so that + * the graph can be serialized to the same name later. + */ + + + class XMLDocument : public RefCountingObject + { + + public: + + SDO_API virtual ~XMLDocument(); + + /** getRootDataObject- return the topmost data object + * + * When XML data is loaded, there is one base element which becomes + * the root data object. As this data object is not a property of any + * other data object, it has no name + * The XMLDocument stores the name which was in the XML file. + * This root data object has a URI and a Name only within this + * XMLDocument + */ + + SDO_API virtual DataObjectPtr getRootDataObject() const = 0; + + /** getRootElementName- return the topmost data objects name + * + * When XML data is loaded, there is one base element which becomes + * the root data object. As this data object is not a property of any + * other data object, it has no name + * The XMLDocument stores the name/uri which was in the XML file. + */ + SDO_API virtual const char* getRootElementURI() const = 0; + + /** getRootElementURI- return the topmost data objects uri + * + * When XML data is loaded, there is one base element which becomes + * the root data object. As this data object is not a property of any + * other data object, it has no name + * The XMLDocument stores the name/uri which was in the XML file. + */ + SDO_API virtual const char* getRootElementName() const = 0; + + /** getEncoding- return the encoding for this document + * + * NOT IMPLEMENTED + * This returns the encoding specified in the original XML. + */ + SDO_API virtual const char* getEncoding() const = 0; + + /** setEncoding- set the encoding to save this document + * + * This sets the encoding to save this data to XML. + */ + SDO_API virtual void setEncoding(const char* encoding) = 0; + + /** getXMLDeclaration + * + * NOT IMPLEMENTED + */ + SDO_API virtual bool getXMLDeclaration() const = 0; + + /** setXMLDeclaration + * + * Sets the XMLDeclaration + */ + SDO_API virtual void setXMLDeclaration(bool xmlDeclaration) = 0; + + /** getXMLVersion- return the xml version for this document + * + * NOT IMPLEMENTED + */ + SDO_API virtual const char* getXMLVersion() const = 0; + + /** setXMLVersion- sets the version for this document + * + * NOT IMPLEMENTED + */ + SDO_API virtual void setXMLVersion(const char* xmlVersion) = 0; + + /** getSchemaLocation- return the schema location + * + * NOT IMPLEMENTED + */ + SDO_API virtual const char* getSchemaLocation() const = 0; + + /** setSchemaLocation + * + * Sets the XML Schema location. + */ + SDO_API virtual void setSchemaLocation(const char* schemaLocation) = 0; + + /** getNoNamespaceSchemaLocation + * + * NOT IMPLEMENTED + */ + SDO_API virtual const char* getNoNamespaceSchemaLocation() const = 0; + + /** setNoNamespaceSchemaLocation + * + * Sets the nonamespace schema location + */ + SDO_API virtual void setNoNamespaceSchemaLocation(const char* noNamespaceSchemaLocation) = 0; + + SDO_API friend std::istream& operator>>(std::istream& input, XMLDocument& doc); + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_XMLDOCUMENT_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.cpp new file mode 100644 index 0000000000..88e93ad480 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.cpp @@ -0,0 +1,69 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/XMLDocumentImpl.h" + +namespace commonj +{ + namespace sdo + { + XMLDocumentImpl::XMLDocumentImpl( + DataObjectPtr dob, + const char* rootURI, + const char* rootName) + : dataObject(dob), + rootElementURI(rootURI), + rootElementName(rootName), + xmlDeclaration(true), + encoding("UTF-8"), + xmlVersion("1.0") + { + } + + XMLDocumentImpl::~XMLDocumentImpl() + { + } + + void XMLDocumentImpl::setEncoding(const char* enc) + { + encoding = enc; + } + + void XMLDocumentImpl::setXMLDeclaration(bool xmlDecl) + { + xmlDeclaration = xmlDecl; + } + + void XMLDocumentImpl::setXMLVersion(const char* xmlVer) + { + xmlVersion = xmlVer; + } + + void XMLDocumentImpl::setSchemaLocation(const char* schemaLoc) + { + schemaLocation = schemaLoc; + } + + void XMLDocumentImpl::setNoNamespaceSchemaLocation(const char* noNamespaceSchemaLoc) + { + noNamespaceSchemaLocation = noNamespaceSchemaLoc; + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h new file mode 100644 index 0000000000..0b39a3c12a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h @@ -0,0 +1,95 @@ +/* + * + * 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:15 $ */ + +#ifndef _XMLDocumentImpl_H_ +#define _XMLDocumentImpl_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/XMLDocument.h" +#include "commonj/sdo/DataObject.h" +#include "commonj/sdo/SDOXMLString.h" + + +namespace commonj +{ + namespace sdo + { + +/** XMLDocumentImpl place for holding a graph + * + * The XMLDocumentImpl class implements the abstract XMLDocument. + * Provides a place to hold a loaded + * graph of data. The root element name is maintained here so that + * the graph can be serialized to the same name later. + */ + + class XMLDocumentImpl : public XMLDocument + { + + public: + XMLDocumentImpl(); + + XMLDocumentImpl( + DataObjectPtr dataObject); + + XMLDocumentImpl( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName); + + virtual ~XMLDocumentImpl(); + + virtual DataObjectPtr getRootDataObject() const {return dataObject;} + virtual const char* getRootElementURI() const {return rootElementURI;} + virtual const char* getRootElementName() const {return rootElementName;} + virtual const char* getEncoding() const {return encoding;} + virtual void setEncoding(const char* enc); + + virtual bool getXMLDeclaration() const {return xmlDeclaration;} + virtual void setXMLDeclaration(bool xmlDecl); + + virtual const char* getXMLVersion() const {return xmlVersion;} + virtual void setXMLVersion(const char* xmlVer); + + virtual const char* getSchemaLocation() const {return schemaLocation;} + virtual void setSchemaLocation(const char* schemaLoc); + + virtual const char* getNoNamespaceSchemaLocation() const { return noNamespaceSchemaLocation;} + virtual void setNoNamespaceSchemaLocation(const char* noNamespaceSchemaLoc); + + + friend std::istream& operator>>(std::istream& input, XMLDocumentImpl& doc); + private: + DataObjectPtr dataObject; + SDOXMLString rootElementURI; + SDOXMLString rootElementName; + SDOXMLString encoding; + bool xmlDeclaration; + SDOXMLString xmlVersion; + SDOXMLString schemaLocation; + SDOXMLString noNamespaceSchemaLocation; + + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_XMLDocumentImpl_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.cpp new file mode 100644 index 0000000000..3b0648ce10 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.cpp @@ -0,0 +1,34 @@ +/* + * + * 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: 2006/01/16 15:41:28 $ */ + + +#include "commonj/sdo/XMLHelper.h" +namespace commonj +{ + namespace sdo + { + ////////////////////////////////////////////////////////////////////// + // Construction/Destruction + ////////////////////////////////////////////////////////////////////// + XMLHelper::~XMLHelper() + { + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.h new file mode 100644 index 0000000000..f9e280583e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.h @@ -0,0 +1,142 @@ +/* + * + * 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: 2006/02/01 16:24:13 $ */ + +#ifndef _XMLHELPER_H_ +#define _XMLHELPER_H_ + + +#include "commonj/sdo/export.h" +#include "commonj/sdo/XMLDocument.h" +#include "commonj/sdo/RefCountingObject.h" + +namespace commonj +{ + namespace sdo + { + /** + * + * XMLHelper provides the ability to load XML data into + * a data object graph, according to a schema + */ + + class XMLHelper : public RefCountingObject + { + public: + + /** load/loadFile - loads xml data + * + * De-serializes the specified XML file building a graph of DataObjects. + * Returns a pointer to the root data object + */ + + SDO_API virtual XMLDocumentPtr createDocument( + const char* elementname = 0, + const char* rootElementURI=0) = 0; + + SDO_API virtual XMLDocumentPtr loadFile( + const char* xmlFile, + const char* targetNamespaceURI=0) = 0; + SDO_API virtual XMLDocumentPtr load( + std::istream& inXml, + const char* targetNamespaceURI=0) = 0; + SDO_API virtual XMLDocumentPtr load( + const char* inXml, + const char* targetNamespaceURI=0) = 0; + + /** save saves the graph to XML + * + * save - Serializes the datagraph to the XML file + */ + + SDO_API virtual void save(XMLDocumentPtr doc, const char* xmlFile, + int indent = -1) = 0; + SDO_API virtual void save( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName, + const char* xmlFile, + int indent = -1) = 0; + + + /** save saves the graph to XML + * + * save - Serializes the datagraph to the XML stream + */ + + SDO_API virtual void save(XMLDocumentPtr doc, std::ostream& outXml, + int indent = -1) = 0; + SDO_API virtual void save( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName, + std::ostream& outXml, + int indent = -1) = 0; + + /** save saves the graph to XML + * + * save - Serializes the datagraph to a string + */ + + SDO_API virtual char* save(XMLDocumentPtr doc, int indent = -1) = 0; + SDO_API virtual char* save( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName, + int indent = -1) = 0; + + /** createDocument creates an XMLDocument + * + * An XMLDocument holds a root data object and all its + * tree of children. This provides the means of storing the + * name to be applied to the root element when serializing + */ + + SDO_API virtual XMLDocumentPtr createDocument( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName) = 0; + + /***********************************/ + /* Destructor */ + /***********************************/ + SDO_API virtual ~XMLHelper(); + + /** getErrorCount gets number of parse errors + * + * Parser error count - the parse may have + * succeeded or partially succeeded or failed. There + * may be errors to report or handle. + */ + + virtual int getErrorCount() const = 0; + + /** getErrorMessage gets the nth error message + * + * Each error has a message, usually giving the line and file + * in which the parser error occurred. + */ + + virtual const char* getErrorMessage(int errnum) const = 0; + + + }; + } // End - namespace sdo +} // End - namespace commonj + +#endif //_XMLHELPER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp new file mode 100644 index 0000000000..f4755c54bd --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp @@ -0,0 +1,303 @@ +/* + * + * 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: 2006/02/01 16:24:13 $ */ + +#include "commonj/sdo/SDOXMLFileWriter.h" // Include first to avoid libxml compile problems! +#include "commonj/sdo/SDOXMLStreamWriter.h" // Include first to avoid libxml compile problems! +#include "commonj/sdo/SDOXMLBufferWriter.h" // Include first to avoid libxml compile problems! +#include "commonj/sdo/XMLHelperImpl.h" +#include "commonj/sdo/XMLDocumentImpl.h" +#include +#include +#include +#include "commonj/sdo/SDOSAX2Parser.h" +#include "commonj/sdo/XSDPropertyInfo.h" +#include "commonj/sdo/XSDTypeInfo.h" +#include "commonj/sdo/SDORuntimeException.h" +#include "commonj/sdo/DataFactoryImpl.h" + + +namespace commonj +{ + namespace sdo + { + + + ////////////////////////////////////////////////////////////////////// + // Construction/Destruction + ////////////////////////////////////////////////////////////////////// + + XMLHelperImpl::XMLHelperImpl(DataFactoryPtr df) + { + dataFactory = (DataFactory*)df; + } + + XMLHelperImpl::~XMLHelperImpl() + { + clearErrors(); + } + + DataFactoryPtr XMLHelperImpl::getDataFactory() + { + if (!dataFactory) + { + dataFactory = DataFactory::getDataFactory(); + } + return dataFactory; + } + + XMLDocumentPtr XMLHelperImpl::createDocument(DataObjectPtr dataObject) + { + + SDOXMLString rootElementName = ""; + SDOXMLString rootElementURI = ""; + if (dataObject) + { + // Set the root element name to the name of the containment property + // or null if there is no container + try + { + DataObjectPtr cont = dataObject->getContainer(); + if (cont != 0) + { + const Property& containmentProp = dataObject->getContainmentProperty(); + rootElementName = containmentProp.getName(); + rootElementURI = cont->getType().getURI(); + } + else + { + DataFactory* df = dataFactory; + rootElementURI = dataObject->getType().getURI(); + rootElementName = ((DataFactoryImpl*)df)->getRootElementName(); + } + } + catch (SDOPropertyNotFoundException&) + {} + } + + return new XMLDocumentImpl(dataObject, rootElementURI, rootElementName); + } + + + XMLDocumentPtr XMLHelperImpl::createDocument(const char* elementname, + const char* rootElementURI) + { + DataFactory* dp = (DataFactory*)getDataFactory(); + if (dp != 0) + { + const TypeImpl* rType = NULL; + if (rootElementURI != 0) + { + rType = ((DataFactoryImpl*)dp)->findTypeImpl + (rootElementURI, "RootType"); + } + else + { + const TypeList& tl = dp->getTypes(); + for (int i=0;ifindTypeImpl + (tl[i].getURI(), "RootType"); + break; + } + } + } + if (rType) + { + if (elementname && strlen(elementname) != 0) + { + PropertyImpl* pl = rType->getPropertyImpl(elementname); + if (pl != 0) + { + const Type& tp = pl->getType(); + DataObjectPtr dob = dp->create(tp); + return new XMLDocumentImpl(dob, + tp.getURI(), /*tp.getName()*/ elementname); + } + else + { + string msg("createDocument - cannot find element "); + msg += elementname; + SDO_THROW_EXCEPTION("createDocument", SDOUnsupportedOperationException, + msg.c_str()); + } + } + else + { + const Property& pl = rType->getProperty((unsigned int)0); + const Type& tp = pl.getType(); + DataObjectPtr dob = dp->create(tp); + return new XMLDocumentImpl(dob, + tp.getURI(), /*tp.getName()*/ pl.getName()); + } + } + else + { + string msg("createDocument - unable to find root type in namespace "); + if (rootElementURI != 0) + msg += rootElementURI; + else + msg += " NULL"; + + SDO_THROW_EXCEPTION("createDocument", SDOUnsupportedOperationException, + msg.c_str()); + } + } + return 0; + } + + XMLDocumentPtr XMLHelperImpl::createDocument( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName) + { + return new XMLDocumentImpl(dataObject, rootElementURI, rootElementName); + } + + XMLDocumentPtr XMLHelperImpl::loadFile( + const char* xmlFile, + const char* targetNamespaceURI) + { + DataObjectPtr rootDataObject; + clearErrors(); + SDOSAX2Parser sdoParser(getDataFactory(), targetNamespaceURI, rootDataObject, + this); + if (sdoParser.parse(xmlFile) == 0) + { + return createDocument(rootDataObject); + } + return 0; + } + + + XMLDocumentPtr XMLHelperImpl::load( + istream& inXml, + const char* targetNamespaceURI) + { + DataObjectPtr rootDataObject; + SDOSAX2Parser sdoParser(getDataFactory(), targetNamespaceURI, rootDataObject, + this); + clearErrors(); + inXml>>sdoParser; + return createDocument(rootDataObject); + } + + XMLDocumentPtr XMLHelperImpl::load( + const char* inXml, + const char* targetNamespaceURI) + { + istringstream str(inXml); + return load(str, targetNamespaceURI); + } + + void XMLHelperImpl::save(XMLDocumentPtr doc, const char* xmlFile, int indent) + { + SDOXMLFileWriter writer(xmlFile, dataFactory); + writer.write(doc, indent); + } + + void XMLHelperImpl::save( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName, + const char* xmlFile, + int indent) + { + save(createDocument(dataObject,rootElementURI, rootElementName), xmlFile, + indent); + } + + + // Serializes the datagraph to a stream + void XMLHelperImpl::save(XMLDocumentPtr doc, std::ostream& outXml, + int indent) + { + SDOXMLStreamWriter writer(outXml, dataFactory); + writer.write(doc, indent); + } + void XMLHelperImpl::save( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName, + std::ostream& outXml, + int indent ) + { + save(createDocument(dataObject,rootElementURI, rootElementName), outXml, indent); + } + + // Serializes the datagraph to a string + char* XMLHelperImpl::save(XMLDocumentPtr doc, + int indent) + { + SDOXMLBufferWriter writer(dataFactory); + writer.write(doc, indent); + SDOXMLString ret = writer.getBuffer(); + char* retString = new char[strlen(ret) +1]; + strcpy(retString, ret); + return retString; + } + char* XMLHelperImpl::save( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName, + int indent) + { + return save(createDocument(dataObject,rootElementURI, rootElementName), + indent); + } + + int XMLHelperImpl::getErrorCount() const + { + return parseErrors.size(); + } + + + const char* XMLHelperImpl::getErrorMessage(int errnum) const + { + if (errnum >= 0 && errnum < parseErrors.size()) + { + return parseErrors[errnum]; + } + return 0; + } + + void XMLHelperImpl::setError(const char* message) + { + if (message == 0) return; + char * m = new char[strlen(message) + 1]; + strcpy(m,message); + m[strlen(message)] = 0; + parseErrors.push_back(m); + } + + void XMLHelperImpl::clearErrors() + { + while (!parseErrors.empty()) + { + if (*parseErrors.begin() != 0) + { + delete (char*)(*parseErrors.begin()); + } + parseErrors.erase(parseErrors.begin()); + } + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.h new file mode 100644 index 0000000000..e818193509 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.h @@ -0,0 +1,140 @@ +/* + * + * 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: 2006/02/01 16:24:13 $ */ + +#ifndef _XMLHELPERIMPL_H_ +#define _XMLHELPERIMPL_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/XMLHelper.h" +#include "commonj/sdo/export.h" +#include "commonj/sdo/SDOXMLString.h" +#include "commonj/sdo/SAX2Namespaces.h" +#include "commonj/sdo/SchemaInfo.h" +#include "commonj/sdo/TypeDefinitions.h" +#include "commonj/sdo/ParserErrorSetter.h" + +namespace commonj +{ + namespace sdo + { + + /** + * + * XMLHelperImpl is the implementation of the abstract class + * XMLHelper. + * Provides the ability to load XML data into + * a data object graph, according to a schema + */ + + class XMLHelperImpl : public XMLHelper, ParserErrorSetter + { + public: + // Constructor + XMLHelperImpl(DataFactoryPtr dataFactory); + + // Destructor + virtual ~XMLHelperImpl(); + + virtual int getErrorCount() const; + virtual const char* getErrorMessage(int errnum) const; + virtual void setError(const char* error); + + + /** load/loadFile - loads xml data + * + * De-serializes the specified XML file building a graph of DataObjects. + * Returns a pointer to the root data object + */ + + virtual XMLDocumentPtr createDocument( + const char* elementname= 0, + const char* rootElementURI=0); + + virtual XMLDocumentPtr loadFile( + const char* xmlFile, + const char* targetNamespaceURI = 0); + virtual XMLDocumentPtr load( + istream& inXml, + const char* targetNamespaceURI = 0); + virtual XMLDocumentPtr load( + const char* inXml, + const char* targetNamespaceURI = 0); + + virtual XMLDocumentPtr createDocument( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName); + + /** save saves the graph to XML + * + * save - Serializes the datagraph to the XML file + */ + + void save(XMLDocumentPtr doc, const char* xmlFile, int indent = -1); + void save( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName, + const char* xmlFile, int indent = -1); + + /** save saves the graph to XML + * + * save - Serializes the datagraph to a stream + */ + + void save(XMLDocumentPtr doc, std::ostream& outXml, + int indent = -1); + void save( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName, + std::ostream& outXml, + int indent = -1); + + /** save saves the graph to XML + * + * save - Serializes the datagraph to a string + */ + char* save(XMLDocumentPtr doc,int indent = -1); + char* save( + DataObjectPtr dataObject, + const char* rootElementURI, + const char* rootElementName, + int indent = -1); + + private: + int parse(const char* source); + void clearErrors(); + + std::vector parseErrors; + + // Instance variables + DataFactoryPtr dataFactory; + SDOXMLString targetNamespaceURI; + + XMLDocumentPtr createDocument(DataObjectPtr dataObject); + + DataFactoryPtr getDataFactory(); + }; + + } // End - namespace sdo +} // End - namespace commonj + +#endif // _XMLHELPERIMPL_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.cpp new file mode 100644 index 0000000000..de03d3affb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.cpp @@ -0,0 +1,84 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/XMLQName.h" +namespace commonj +{ + namespace sdo + { + + + XMLQName::XMLQName() + { + } + + XMLQName::XMLQName(const SDOXMLString& sdouri) + { + int index = sdouri.lastIndexOf('#'); + if (index < 0) + { + localName = sdouri; + } + else + { + uri = sdouri.substring(0, index); + localName = sdouri.substring(index+1); + } + } + + XMLQName::XMLQName( + const SDOXMLString& qname, + const SAX2Namespaces& globalNamespaces, + const SAX2Namespaces& localNamespaces) + { + SDOXMLString prefix; + + int index = qname.firstIndexOf(':'); + if (index < 0) + { + localName = qname; + } + else + { + prefix = qname.substring(0, index); + localName = qname.substring(index+1); + } + + const SDOXMLString* namespaceURI = localNamespaces.find(prefix); + if (namespaceURI == 0) + { + namespaceURI = globalNamespaces.find(prefix); + } + if (namespaceURI != 0) + { + uri = *namespaceURI; + } + + } + + XMLQName::~XMLQName() + { + } + + SDOXMLString XMLQName::getSDOName() const + { + return uri + "#" + localName; + } + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.h new file mode 100644 index 0000000000..9548a737d0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.h @@ -0,0 +1,66 @@ +/* + * + * 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:15 $ */ + +#ifndef _XMLQName_H_ +#define _XMLQName_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/SAX2Namespaces.h" +#include "commonj/sdo/SDOXMLString.h" +#include "commonj/sdo/DataObject.h" + +namespace commonj +{ + namespace sdo + { + +/** XMLQname wraps a qualified name + * + * This class holds a QName and provides access to its + * members + */ + + class XMLQName + { + + public: + XMLQName(); + XMLQName(const SDOXMLString& sdoUri); + XMLQName( + const SDOXMLString& qname, + const SAX2Namespaces& globalNamespaces, + const SAX2Namespaces& localNamespaces = SAX2Namespaces()); + + SDOXMLString getSDOName() const ; + const SDOXMLString& getURI() const {return uri;} + const SDOXMLString& getLocalName() const {return localName;} + virtual ~XMLQName(); + + private: + SDOXMLString uri; + SDOXMLString localName; + + + }; + } // End - namespace sdo +} // End - namespace commonj + + +#endif //_XMLQName_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.cpp new file mode 100644 index 0000000000..0642fe8406 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.cpp @@ -0,0 +1,33 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/XSDHelper.h" + +namespace commonj +{ + namespace sdo + { + + + XSDHelper::~XSDHelper() + { + } + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.h new file mode 100644 index 0000000000..37b0b1cc2a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.h @@ -0,0 +1,120 @@ +/* + * + * 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: 2006/02/01 16:24:13 $ */ + +#ifndef _XSDHELPER_H_ +#define _XSDHELPER_H_ + + +#include "commonj/sdo/export.h" +#include "commonj/sdo/RefCountingObject.h" +#include "commonj/sdo/DataFactory.h" + +namespace commonj +{ + namespace sdo + { + + /** + * + * XSDHelper provides the means of loading and saving XSD information + * from/to the metadata (Types and properties) + */ + + class XSDHelper : public RefCountingObject + { + public: + + /** define builds types/properties from file or stream + * + * define/defineFile + * + * Populates the data factory with Types and Properties from the schema + * Loads from file, stream or char* buffer. + * The return value is the URI of the root Type + * + */ + + SDO_API virtual const char* defineFile(const char* schemaFile) = 0; + SDO_API virtual const char* define(std::istream& schema) = 0; + SDO_API virtual const char* define(const char* schema) = 0; + + + /** generate buildsXSD from types/properties + * + * generate/generateFile + * + * Saves the types/properties to an XSD stream or file + * + */ + + SDO_API virtual char* generate( + const TypeList& types, + const char* targetNamespaceURI = "", + int indent = -1) = 0; + SDO_API virtual void generate( + const TypeList& types, + std::ostream& outXsd, + const char* targetNamespaceURI = "", + int indent = -1) = 0; + SDO_API virtual void generateFile( + const TypeList& types, + const char* fileName, + const char* targetNamespaceURI = "", + int indent = -1) = 0; + + /***********************************/ + /* Destructor */ + /***********************************/ + SDO_API virtual ~XSDHelper(); + + /** getDataFactory() + * + * Return the DataFactory + */ + + SDO_API virtual DataFactoryPtr getDataFactory() = 0; + + /** getRootTypeURI + * + * Return the URI for the root Type + */ + + SDO_API virtual const char* getRootTypeURI() = 0; + + /** getErrorCount gets number of parse errors + * + * Parser error count - the parse may have + * succeeded or partially succeeded or failed. There + * may be errors to report or handle. + */ + + virtual int getErrorCount() const = 0; + + /** getErrorMessage gets the nth error message + * + * Each error has a message, usually giving the line and file + * in which the parser error occurred. + */ + + virtual const char* getErrorMessage(int errnum) const = 0; + }; + }//End - namespace sdo +} // End - namespace commonj + +#endif //_XSDHELPER_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp new file mode 100644 index 0000000000..9dde020cd3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp @@ -0,0 +1,601 @@ +/* + * + * 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: 2006/02/01 16:24:13 $ */ + +#include "commonj/sdo/SDOXMLFileWriter.h" // Include first to avoid libxml compile problems! +#include "commonj/sdo/SDOXMLStreamWriter.h" // Include first to avoid libxml compile problems! +#include "commonj/sdo/SDOXMLBufferWriter.h" // Include first to avoid libxml compile problems! +#include "commonj/sdo/SDOXSDFileWriter.h" +#include "commonj/sdo/SDOXSDStreamWriter.h" +#include "commonj/sdo/SDOXSDBufferWriter.h" +#include "commonj/sdo/XSDHelperImpl.h" +#include "commonj/sdo/XMLDocumentImpl.h" +#include +#include +#include +#include "commonj/sdo/SDOSchemaSAX2Parser.h" +#include "commonj/sdo/SDOSAX2Parser.h" +#include "commonj/sdo/XSDPropertyInfo.h" +#include "commonj/sdo/XSDTypeInfo.h" + +#include "commonj/sdo/SDORuntimeException.h" +#include "commonj/sdo/DASProperty.h" +#include "commonj/sdo/Logging.h" +#include "commonj/sdo/Type.h" + +namespace commonj +{ + namespace sdo + { + + /** XSDHelperImpl + * + * XSDHelperImpl is the implementation of the abstract class + * XSDHelper. + * Provides the means of loading and saving XSD information + * from/to the metadata (Types and properties) + */ + + XSDHelperImpl::XSDHelperImpl(DataFactoryPtr df) + { + dataFactory = (DataFactory*)df; + } + + XSDHelperImpl::~XSDHelperImpl() + { + clearErrors(); + } + + /** define builds types/properties from file or stream + * + * define/defineFile + * + * Populates the data factory with Types and Properties from the schema + * Loads from file, stream or char* buffer. + * The return value is the URI of the root Type + * + */ + + const char* XSDHelperImpl::defineFile(const char* schema) + { + + SDOSchemaSAX2Parser schemaParser(schemaInfo, this); + clearErrors(); + if (schemaParser.parse(schema) == 0) + { + defineTypes(schemaParser.getTypeDefinitions()); + return schemaInfo.getTargetNamespaceURI(); + } + return 0; + } + + const char* XSDHelperImpl::define(std::istream& schema) + { + SDOSchemaSAX2Parser schemaParser(schemaInfo, this); + clearErrors(); + schema >> schemaParser; + defineTypes(schemaParser.getTypeDefinitions()); + return schemaInfo.getTargetNamespaceURI(); + } + + const char* XSDHelperImpl::define(const char* schema) + { + istringstream str(schema); + return define(str); + } + + void XSDHelperImpl::newSubstitute(const char* entryName, + PropertyDefinition& prop) + { + try + { + const char* typeUri = prop.substituteUri.isNull() ? + prop.typeUri : prop.substituteUri; + const Type& rootType = dataFactory->getType(typeUri, entryName); + PropertyList pl = rootType.getProperties(); + for (int j = 0; j < pl.size(); j++) + { + if (!pl[j].getType().isDataType() + && strcmp(pl[j].getType().getURI(),Type::SDOTypeNamespaceURI)) + { + // recurse the tree.. + newSubstitute(pl[j].getType().getName(), + prop); + + if (!strcmp(pl[j].getName(),prop.substituteName)) + { + dataFactory->setPropertySubstitute(rootType.getURI(), + rootType.getName(), + pl[j].getName(), + prop.name, + typeUri, + prop.typeName); + XSDPropertyInfo* pi = (XSDPropertyInfo*) + ((DASProperty*)&pl[j])->getDASValue("XMLDAS::PropertyInfo"); + if (pi) + { + PropertyDefinition& propdef = (PropertyDefinition&)pi->getPropertyDefinition(); + propdef.substituteNames.push_back(prop.name); + propdef.substituteLocalNames.push_back(prop.localname); + } + + } + + } + } + } + catch (const SDORuntimeException&) + { + } + } + + void XSDHelperImpl::addSubstitutes(PropertyDefinition& prop, + TypeDefinition& ty) + { + try + { + const char* typeUri = prop.substituteUri.isNull() ? + ty.uri : prop.substituteUri; + DataFactoryImpl* df = (DataFactoryImpl*)(DataFactory*)dataFactory; + const Type* rootType = df->findType(typeUri,"RootType"); + if (rootType == 0) return; + PropertyList pl = rootType->getProperties(); + for (int j = 0; j < pl.size(); j++) + { + XSDPropertyInfo* pi = (XSDPropertyInfo*) + ((DASProperty*)&pl[j])->getDASValue("XMLDAS::PropertyInfo"); + if (pi) + { + PropertyDefinition& propdef = (PropertyDefinition&)pi->getPropertyDefinition(); + if (propdef.isSubstitute && propdef.substituteName.equals(prop.name)) + { + + LOGINFO_1(INFO,"XSDHelper adding substitute for property %s", (const char*)prop.name); + + dataFactory->setPropertySubstitute(typeUri,ty.name, + prop.name, propdef.name, + pl[j].getType().getURI(), + pl[j].getType().getName()); + prop.substituteNames.push_back(propdef.name); + prop.substituteLocalNames.push_back(propdef.localname); + } + } + } + } + catch (const SDORuntimeException&) + { + } + } + + /** defineTypes + * + * This method works through all the data gathered during parsing + * and defines all the types using the data factory. + */ + + void XSDHelperImpl::defineTypes(TypeDefinitions& typedefs) + { + if (!dataFactory) + { + dataFactory = DataFactory::getDataFactory(); + } + + XMLDAS_TypeDefs types = typedefs.types; + XMLDAS_TypeDefs::iterator iter; + + + for (iter=types.begin(); iter != types.end(); iter++) + { + TypeDefinition& ty = iter->second; + try + { + /* + string isSeqCode = "false"; + if (ty.isSequenced) + isSeqCode = "true"; + string isOpenCode = "false"; + if (ty.isOpen) + isOpenCode = "true"; + string isAbstractCode = "false"; + if (ty.isAbstract) + isAbstractCode = "true"; + string uriCode = "0"; + if (!ty.uri.isNull()) + { + uriCode = "\"" + string(ty.uri) + "\""; + } + + string addTypeCode = "dataFactory->addType(\n" + + uriCode + ", \"" + string(ty.name) + "\", \n" + + isSeqCode + ", " + isOpenCode + ", " + isAbstractCode +");"; + cout << addTypeCode.c_str() <addType(ty.uri, ty.name, ty.isSequenced, + ty.isOpen, ty.isAbstract); + dataFactory->setDASValue( + ty.uri, ty.name, + "XMLDAS::TypeInfo", + new XSDTypeInfo(ty)); + + // add aliases + if (!ty.aliases.isNull()) + { + SDOXMLString al = ty.aliases; + SDOXMLString al1 = ""; + int index; + while (!al.isNull() && !al.equals("")) + { + index = al.lastIndexOf(' '); + if (index < 0) + { + al1 = al; + al = ""; + } + else + { + al1 = al.substring(index + 1); + al = al.substring(0,index); + } + if (!al1.isNull() && !al1.equals("")) + { + dataFactory->setAlias( + ty.uri, + ty.name, + (const char*)al1); + } + } + } + + } + catch (SDORuntimeException& e) + { + SDO_RETHROW_EXCEPTION("defineTypes", e); + } + } + for (iter=types.begin(); iter != types.end(); iter++) + { + TypeDefinition& ty = iter->second; + if (!ty.parentTypeName.isNull()) + { + try + { + /* + string uriCode = "0"; + if (!ty.uri.isNull()) + { + uriCode = "\"" + string(ty.uri) + "\""; + } + string parentUriCode = "0"; + if (!ty.uri.isNull()) + { + parentUriCode = "\"" + string(ty.parentTypeUri) + "\""; + } + + string addTypeCode = "dataFactory->setBaseType(\n" + + uriCode + ", \"" + string(ty.name) + "\", \n" + + parentUriCode + ", \"" + string(ty.parentTypeName) + "\");"; + + cout << addTypeCode.c_str() <setBaseType( + ty.uri, + ty.name, + ty.parentTypeUri, + ty.parentTypeName); + } + catch (SDORuntimeException& e) + { + SDO_RETHROW_EXCEPTION("defineTypes", e); + } + } + + XmlDasPropertyDefs::iterator propsIter; + for (propsIter = ty.properties.begin(); propsIter != ty.properties.end(); propsIter++) + { + PropertyDefinition& prop = *propsIter; + + // For a refence we need to determine the type from the + // global element declaration + if(prop.isReference) + { + + bool refFound = false; + + if (prop.name.isNull()) + prop.name = prop.typeName; + + + XMLDAS_TypeDefs::iterator refTypeIter = + types.find(TypeDefinitions::getTypeQName(prop.typeUri, "RootType")); + if(refTypeIter != types.end()) + { + + TypeDefinition rootTy = refTypeIter->second; + + // find the property on the root type + XmlDasPropertyDefs::iterator refPropsIter; + for (refPropsIter = rootTy.properties.begin(); refPropsIter != rootTy.properties.end(); refPropsIter++) + { + + if (refPropsIter->localname.equals(prop.typeName)) + { + prop.typeUri = refPropsIter->typeUri; + prop.typeName = refPropsIter->typeName; + refFound = true; + } + } + } + if (!refFound) + { + + // Check if this type is already defined to the data factory + try + { + const Type& rootType = dataFactory->getType(prop.typeUri, "RootType"); + PropertyList pl = rootType.getProperties(); + + for (int j = 0; j < pl.size(); j++) + { + + XSDPropertyInfo* pi = (XSDPropertyInfo*) + ((DASProperty*)&pl[j])->getDASValue("XMLDAS::PropertyInfo"); + + + + if (prop.typeName.equals(pl[j].getName()) + || (pi && prop.typeName.equals(pi->getPropertyDefinition().localname))) + { + const PropertyDefinition& propdef = pi->getPropertyDefinition(); + if (propdef.localname.equals(prop.typeName)) + { + prop.typeUri = pl[j].getType().getURI(); + prop.typeName = pl[j].getType().getName(); + refFound = true; + break; + } + } + } + } + catch (const SDORuntimeException&) + { + } + } + // If we haven't been able to resolve this reference we should ignore it + if (!refFound) + { + LOGINFO_1(INFO,"XsdHelper:no matching reference for %s", + (const char *)prop.name); + continue; + } + } + + if (prop.name.isNull()) + { + continue; + } + XMLDAS_TypeDefs::iterator propTypeIter = + types.find(TypeDefinitions::getTypeQName(prop.typeUri, prop.typeName)); + if(propTypeIter != types.end()) + { + prop.typeName = propTypeIter->second.name; + } + + try + { + /* + string isManyCode = "false"; + if (prop.isMany) + isManyCode = "true"; + string isReadOnlyCode = "false"; + if (prop.isReadOnly) + isReadOnlyCode = "true"; + string isContainmentCode = "false"; + if (prop.isContainment) + isContainmentCode = "true"; + string uriCode = "0"; + if (!ty.uri.isNull()) + { + uriCode = "\"" + string(ty.uri) + "\""; + } + string propUriCode = "0"; + if (!ty.uri.isNull()) + { + propUriCode = "\"" + string(prop.typeUri) + "\""; + } + + string addTypeCode = "dataFactory->addPropertyToType(\n" + + uriCode + ", \"" + string(ty.name) + "\", \n" + + "\"" + string(prop.name) + "\", \n" + + propUriCode + ", \"" + string(prop.typeName) + "\", \n" + + isManyCode + ", " + isReadOnlyCode + ", " + isContainmentCode +");"; + cout << prop.isQName << addTypeCode.c_str() << endl; + */ + + dataFactory->addPropertyToType(ty.uri, ty.name, + prop.name, + prop.typeUri, + prop.typeName, + prop.isMany, + prop.isReadOnly, + prop.isContainment); + + LOGINFO_1(INFO,"XSDHelper adds property %s",(const char*)(prop.name)); + + if (!prop.aliases.isNull()) + { + SDOXMLString al = prop.aliases; + SDOXMLString al1 = ""; + int index; + while (!al.isNull() && !al.equals("")) + { + index = al.lastIndexOf(' '); + if (index < 0) + { + al1 = al; + al = ""; + } + else + { + al1 = al.substring(index + 1); + al = al.substring(0,index); + } + if (!al1.isNull() && !al1.equals("")) + { + dataFactory->setAlias( + (const char*)ty.uri, + (const char*)ty.name, + (const char*)prop.name, + (const char*)al1); + } + } + } + if (prop.isSubstitute) + { + // we have a new substitute - so will check the existing graph for + // substitutions to insert + + LOGINFO_1(INFO,"XSDHelper: Found new substitute %s",(const char*)(prop.name)); + + newSubstitute( "RootType",prop); + } + else + { + addSubstitutes(prop,ty); + } + + // Do not add DASValue to ChangeSummary + if (!(prop.typeUri.equals(Type::SDOTypeNamespaceURI) + && prop.typeName.equals("ChangeSummary"))) + { + dataFactory->setDASValue( + ty.uri, ty.name, + prop.name, + "XMLDAS::PropertyInfo", + new XSDPropertyInfo(prop)); + } + } + catch (SDORuntimeException& e) + { + SDO_RETHROW_EXCEPTION("defineTypes", e); + } + } + + } + } // End - defineTypes + + /** getDataFactory returns the factory + * + */ + + DataFactoryPtr XSDHelperImpl::getDataFactory() + { + return dataFactory; + } + + + /** generate buildsXSD from types/properties + * + * generate/generateFile + * + * Saves the types/properties to an XSD stream or file + * + */ + + void XSDHelperImpl::generateFile( + const TypeList& types, + const char* fileName, + const char* targetNamespaceURI, + int indent + ) + { + SDOXSDFileWriter writer(fileName); + DataFactory* fac = dataFactory; + writer.write(types, targetNamespaceURI, + ((DataFactoryImpl*)fac)->getOpenProperties(), indent); + } + + void XSDHelperImpl::generate( + const TypeList& types, + std::ostream& outXml, + const char* targetNamespaceURI, + int indent + ) + { + SDOXSDStreamWriter writer(outXml); + DataFactory* fac = dataFactory; + writer.write(types, targetNamespaceURI, + ((DataFactoryImpl*)fac)->getOpenProperties(), indent); + } + + char* XSDHelperImpl::generate( + const TypeList& types, + const char* targetNamespaceURI, + int indent + ) + { + SDOXSDBufferWriter writer; + DataFactory* fac = dataFactory; + writer.write(types, targetNamespaceURI, + ((DataFactoryImpl*)fac)->getOpenProperties(), indent); + SDOXMLString ret = writer.getBuffer(); + char* retString = new char[strlen(ret) +1]; + strcpy(retString, ret); + return retString; + } + + int XSDHelperImpl::getErrorCount() const + { + return parseErrors.size(); + } + + + const char* XSDHelperImpl::getErrorMessage(int errnum) const + { + if (errnum >= 0 && errnum < parseErrors.size()) + { + return parseErrors[errnum]; + } + return 0; + } + + void XSDHelperImpl::setError(const char* message) + { + if (message == 0) return; + char * m = new char[strlen(message) + 1]; + strcpy(m,message); + m[strlen(message)] = 0; + parseErrors.push_back(m); + } + + void XSDHelperImpl::clearErrors() + { + while (!parseErrors.empty()) + { + if (*parseErrors.begin() != 0) + { + delete (char*)(*parseErrors.begin()); + } + parseErrors.erase(parseErrors.begin()); + } + } + + + } // End - namespace sdo +} // End - namespace commonj diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.h new file mode 100644 index 0000000000..c1832f9ceb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.h @@ -0,0 +1,143 @@ +/* + * + * 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: 2006/02/01 16:24:13 $ */ + +#ifndef _XSDHELPERIMPL_H_ +#define _XSDHELPERIMPL_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/XSDHelper.h" +#include "commonj/sdo/export.h" +#include "commonj/sdo/SDOXMLString.h" +#include "commonj/sdo/SAX2Namespaces.h" +#include "commonj/sdo/SchemaInfo.h" +#include "commonj/sdo/TypeDefinitions.h" +#include "commonj/sdo/ParserErrorSetter.h" + +namespace commonj +{ + namespace sdo + { + + /** + * + * XSDHelperImpl is the implementation of the abstract class + * XSDHelper. + * Provides the means of loading and saving XSD information + * from/to the metadata (Types and properties) + */ + + class XSDHelperImpl : public XSDHelper, ParserErrorSetter + { + public: + + // Constructor + XSDHelperImpl(DataFactoryPtr dataFactory); + + // Destructor + virtual ~XSDHelperImpl(); + + /** define builds types/properties from file or stream + * + * define/defineFile + * + * Populates the data factory with Types and Properties from the schema + * Loads from file, stream or char* buffer. + * The return value is the URI of the root Type + * + */ + virtual const char* defineFile(const char* schemaFile); + virtual const char* define(std::istream& schema); + virtual const char* define(const char* schema); + + /** getErrorCount gets number of parse errors + * + * Parser error count - the parse may have + * succeeded or partially succeeded or failed. There + * may be errors to report or handle. + */ + + virtual int getErrorCount() const; + + /** getErrorMessage gets the nth error message + * + * Each error has a message, usually giving the line and file + * in which the parser error occurred. + */ + + virtual const char* getErrorMessage(int errnum) const; + virtual void setError(const char* error); + + /** generate buildsXSD from types/properties + * + * generate/generateFile + * + * Saves the types/properties to an XSD stream or file + * + */ + + virtual char* generate( + const TypeList& types, + const char* targetNamespaceURI = "", + int indent = -1 + ); + void generate( + const TypeList& types, + std::ostream& outXsd, + const char* targetNamespaceURI = "", + int indent = -1 + ); + virtual void generateFile( + const TypeList& types, + const char* fileName, + const char* targetNamespaceURI = "", + int indent = -1); + + virtual DataFactoryPtr getDataFactory(); + + // Return the URI for the root Type + virtual const char* getRootTypeURI() + { + return schemaInfo.getTargetNamespaceURI(); + } + + private: + virtual void clearErrors(); + + void newSubstitute(const char* entryName, + PropertyDefinition& prop); + + void addSubstitutes(PropertyDefinition& prop, + TypeDefinition& ty); + + void defineTypes(TypeDefinitions& types); + int parse(const char* source); + + // Instance variables + DataFactoryPtr dataFactory; // metadata + SchemaInfo schemaInfo; + + std::vector parseErrors; + + }; + + } // End - namespace sdo +} // End - namespace commonj + +#endif // _XSDHELPERIMPL_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.cpp new file mode 100644 index 0000000000..0bb05737e9 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.cpp @@ -0,0 +1,53 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/XSDPropertyInfo.h" + +namespace commonj +{ + namespace sdo + { + + /** + * + * This holds a property definition during the parsing process + * when all properties need to be read and stored prior to creation + * within the data facttory. + */ + + XSDPropertyInfo::XSDPropertyInfo() + { + } + + XSDPropertyInfo::XSDPropertyInfo(const PropertyDefinition& prop) + : property(prop) + { + } + + + XSDPropertyInfo::~XSDPropertyInfo() + { + } + + + } +} +// end - namespace sdo + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.h new file mode 100644 index 0000000000..724a33c8f4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.h @@ -0,0 +1,59 @@ +/* + * + * 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:15 $ */ + +#ifndef _XSDPropertyInfo_H_ +#define _XSDPropertyInfo_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/DASValue.h" +#include "commonj/sdo/PropertyDefinition.h" +#include "commonj/sdo/SDOXMLString.h" + +namespace commonj +{ + namespace sdo + { + + /** + * + * This holds a property definition during the parsing process. + * This holds a property definition during the parsing process + * when all properties need to be read and stored prior to creation + * within the data facttory. + */ + + class XSDPropertyInfo : public DASValue + { + public: + + XSDPropertyInfo(); + XSDPropertyInfo(const PropertyDefinition& prop); + + virtual ~XSDPropertyInfo(); + + const PropertyDefinition& getPropertyDefinition() {return property;} + + + private: + PropertyDefinition property; + }; + } +} +#endif //_XSDPropertyInfo_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.cpp new file mode 100644 index 0000000000..b95996045c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.cpp @@ -0,0 +1,52 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/XSDTypeInfo.h" + +namespace commonj +{ + namespace sdo + { + + /** XSDTypeInfo + * + * This holds a type definition during the parsing process + * when all types need to be read and stored prior to creation + * within the data facttory. + */ + + XSDTypeInfo::XSDTypeInfo() + { + } + + XSDTypeInfo::XSDTypeInfo(const TypeDefinition& typeDef) + : typeDefinition(typeDef) + { + } + + + XSDTypeInfo::~XSDTypeInfo() + { + + } + } +} +// end - namespace sdo + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.h new file mode 100644 index 0000000000..283f096b3d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.h @@ -0,0 +1,52 @@ +/* + * + * 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:15 $ */ + +#ifndef _XSDTypeInfo_H_ +#define _XSDTypeInfo_H_ + +#include "commonj/sdo/disable_warn.h" + +#include "commonj/sdo/DASValue.h" +#include "commonj/sdo/TypeDefinition.h" + +namespace commonj +{ + namespace sdo + { + /** + * + * This holds a type definition during the parsing process + * when all types need to be read and stored prior to creation + * within the data factory. + */ + + class XSDTypeInfo : public DASValue + { + public: + XSDTypeInfo(); + XSDTypeInfo(const TypeDefinition& typeDef); + virtual ~XSDTypeInfo(); + const TypeDefinition& getTypeDefinition() {return typeDefinition;} + + private: + TypeDefinition typeDefinition; + }; + } +} +#endif //_XSDTypeInfo_H_ diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.cpp new file mode 100644 index 0000000000..c53c577c2d --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.cpp @@ -0,0 +1,50 @@ +/* + * + * 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:15 $ */ + +#include "commonj/sdo/XpathHelper.h" + +#include + +namespace commonj{ +namespace sdo{ + +/** + * + * will provide utilities to help with xpath parsing + */ + +/** isIndexed - true if [] or . + * + * Returns true if the path has an index, indicating a many valued + * property at the end of the path. + */ + + +const bool XpathHelper::isIndexed(const char* path) +{ + const char * c = strrchr(path,'/'); + if (c == 0)c = path; + if (strchr(c,'[')) return true; + if (strchr(c,'.')) return true; + return false; +} + +}; +}; + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.h new file mode 100644 index 0000000000..862c89d307 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.h @@ -0,0 +1,53 @@ +/* + * + * 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:15 $ */ + +#ifndef XPATH_HELPER_H +#define XPATH_HELPER_H + +#include "commonj/sdo/export.h" + +namespace commonj{ +namespace sdo{ + +/** + * + * XpathHelper provides utilities to help with xpath parsing + */ + +class XpathHelper +{ + public: + + virtual ~XpathHelper(); + + /** isIndexed - true if [] or . + * + * Returns true if the path has an index, indicating a many valued + * property at the end of the path. + */ + + static SDO_API const bool isIndexed(const char * path); + +}; +}; +}; + + +#endif + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/disable_warn.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/disable_warn.h new file mode 100644 index 0000000000..7743ab55de --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/disable_warn.h @@ -0,0 +1,27 @@ +/* + * + * 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:15 $ */ + +#ifndef _DISABLE_WARN_H_ +#define _DISABLE_WARN_H_ + +#if defined(WIN32) || defined (_WINDOWS) +#pragma warning(disable: 4786) +#endif + +#endif diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/export.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/export.h new file mode 100644 index 0000000000..51470a585b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/export.h @@ -0,0 +1,47 @@ +/* + * + * 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:15 $ */ + +#define SDO4CPP_VERSION 20051202 + +#if defined(WIN32) || defined (_WINDOWS) + +#define int64_t __int64 + +#ifdef SDO_EXPORTS +#include "commonj/sdo/disable_warn.h" +# define SDO_API __declspec(dllexport) +# define SDO_SPI __declspec(dllexport) +# define EXPIMP +#else +# define SDO_API __declspec(dllimport) +# define SDO_SPI __declspec(dllimport) +# define EXPIMP extern +#endif + +#else +#include +#include +#include +#include +#include +# define SDO_API +# define SDO_SPI +# define EXPIMP +#endif + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtbuild b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtbuild new file mode 100644 index 0000000000..17ebd43324 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtbuild @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtproject b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtproject new file mode 100644 index 0000000000..48a12e6664 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtproject @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.project b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.project new file mode 100644 index 0000000000..32920ef4cf --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.project @@ -0,0 +1,19 @@ + + + tuscany_sdo_test + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000000..0c77f0af0f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,9 @@ +#Wed Feb 15 16:37:24 GMT 2006 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.debug.1698024418=\n\n\n\n\n +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.release.1720042110=\n\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.debug.1698024418=\n\n\n\n +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.release.1720042110=\n\n\n\n +environment/project=\n\n +environment/project/cdt.managedbuild.config.gnu.exe.debug.1698024418=\n\n\n\n +environment/project/cdt.managedbuild.config.gnu.exe.release.1720042110=\n\n\n\n diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xml b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xml new file mode 100644 index 0000000000..66b2d3dbca --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xml @@ -0,0 +1,2 @@ + +1A Partridge in a Pear Tree1.99012Turtle Doves2.99013French Hens3.99014Calling Birds4.99015Golden Rings5.99016Geese a-laying6.99017Swans a-swimming7.99018Maids a-milking8.99019Ladies dancing9.990110Lords a-leaping10.990111Pipers piping11.990112Drummers drumming12.9901 diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xsd new file mode 100644 index 0000000000..53fb9bdc0c --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xsd @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Customer.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Customer.xsd new file mode 100644 index 0000000000..9f09b17244 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Customer.xsd @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Order.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Order.xsd new file mode 100644 index 0000000000..59d48398a8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Order.xsd @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Catalog.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Catalog.xsd new file mode 100644 index 0000000000..6eebebdd70 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Catalog.xsd @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Customer.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Customer.xsd new file mode 100644 index 0000000000..b3cd832bce --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Customer.xsd @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Makefile.am b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Makefile.am new file mode 100644 index 0000000000..42e672a25e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Makefile.am @@ -0,0 +1,11 @@ +prgbindir=$(prefix)/bin/test +prgbin_PROGRAMS = tuscany_sdo_test +SUBDIRS = +AM_CPPFLAGS = $(CPPFLAGS) +tuscany_sdo_test_SOURCES = sdotest.cpp sdotest2.cpp + +tuscany_sdo_test_LDADD = -ltuscany_sdo \ + -L$(top_builddir)/runtime/core/src/commonj/sdo -lxml2 -lstdc++ + +INCLUDES = -I$(top_builddir)/runtime/core/test \ + -I$(top_builddir)/runtime/core/src diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Order.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Order.xsd new file mode 100644 index 0000000000..1ece31ac0b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/Order.xsd @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/StockQuoteService.wsdl b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/StockQuoteService.wsdl new file mode 100644 index 0000000000..4917cde583 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/StockQuoteService.wsdl @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/axis.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/axis.xsd new file mode 100644 index 0000000000..eca2f0cf22 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/axis.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xml b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xml new file mode 100644 index 0000000000..823ef80944 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xsd new file mode 100644 index 0000000000..7f8e155406 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xsd @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46693.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46693.xsd new file mode 100644 index 0000000000..11eb2e964a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/b46693.xsd @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company.xsd new file mode 100644 index 0000000000..8c5ea4a7c1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xml b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xml new file mode 100644 index 0000000000..cc6e93e4bb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xml @@ -0,0 +1,11 @@ + + + + + +Jane Doe + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xsd new file mode 100644 index 0000000000..3738da590f --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companyabs.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companyabs.xsd new file mode 100644 index 0000000000..bc47867904 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companyabs.xsd @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companyref.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companyref.xsd new file mode 100644 index 0000000000..0d4b1240c0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companyref.xsd @@ -0,0 +1,47 @@ + + + elementFormDefault="qualified"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companysubs.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companysubs.xsd new file mode 100644 index 0000000000..2ffb626e90 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/companysubs.xsd @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xml b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xml new file mode 100644 index 0000000000..1397087013 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xsd new file mode 100644 index 0000000000..ca3583f6df --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xsd @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xml b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xml new file mode 100644 index 0000000000..cc6e93e4bb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xml @@ -0,0 +1,11 @@ + + + + + +Jane Doe + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xsd new file mode 100644 index 0000000000..6cc581de35 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/g3.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/g3.xsd new file mode 100644 index 0000000000..77a586f516 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/g3.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham1.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham1.xsd new file mode 100644 index 0000000000..c68f1d5b68 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham1.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham2.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham2.xsd new file mode 100644 index 0000000000..6b4e0dcbb1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham2.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham3.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham3.xsd new file mode 100644 index 0000000000..61c72577d0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/graham3.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include.xsd new file mode 100644 index 0000000000..67f3cb5501 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include.xsd @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include1.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include1.xsd new file mode 100644 index 0000000000..98705f6418 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include1.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include2.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include2.xsd new file mode 100644 index 0000000000..66dfca00a8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/include2.xsd @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/includeother3.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/includeother3.xsd new file mode 100644 index 0000000000..a74c94e318 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/includeother3.xsd @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xml b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xml new file mode 100644 index 0000000000..72a073cd11 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xml @@ -0,0 +1,14 @@ + + + +#/departments.0/employees.0 + + + +Three member +Open bytes +List is complete + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xsd new file mode 100644 index 0000000000..a40b21a0da --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xsd @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my-core.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my-core.xsd new file mode 100644 index 0000000000..2d1a84f9fb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my-core.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my-implementation-local-java.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my-implementation-local-java.xsd new file mode 100644 index 0000000000..7501eafd25 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my-implementation-local-java.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my.xsd new file mode 100644 index 0000000000..da66b397bf --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/my.xsd @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xml b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xml new file mode 100644 index 0000000000..9af06a8b02 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xml @@ -0,0 +1,13 @@ + + + +#/departments.0/employees.0 + + + +45 + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xsd new file mode 100644 index 0000000000..98a12eb8c6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xsd @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xml b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xml new file mode 100644 index 0000000000..100ff60176 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xml @@ -0,0 +1,13 @@ + + + +#/departments.0/employees.0 + + + +45 + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xsd new file mode 100644 index 0000000000..f62ea912b7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xsd @@ -0,0 +1,8 @@ + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/partial.xml b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/partial.xml new file mode 100644 index 0000000000..49563ecbeb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/partial.xml @@ -0,0 +1,14 @@ + + + +#/departments.0/employees.0 + + + +45 + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-sca.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-sca.xsd new file mode 100644 index 0000000000..2097cff917 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-sca.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-webservice.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-webservice.xsd new file mode 100644 index 0000000000..39196c48f8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-webservice.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-ws.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-ws.xsd new file mode 100644 index 0000000000..fd528710c1 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-ws.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-core.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-core.xsd new file mode 100644 index 0000000000..b3c90210ed --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-core.xsd @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-dll.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-dll.xsd new file mode 100644 index 0000000000..da4392b9e7 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-dll.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-java.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-java.xsd new file mode 100644 index 0000000000..5adb548ad4 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-java.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-local-java.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-local-java.xsd new file mode 100644 index 0000000000..13286d728e --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-local-java.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-cpp.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-cpp.xsd new file mode 100644 index 0000000000..8ea5b09cd0 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-cpp.xsd @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-java.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-java.xsd new file mode 100644 index 0000000000..160d84f74a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-java.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-wsdl.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-wsdl.xsd new file mode 100644 index 0000000000..5c84b9a674 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-wsdl.xsd @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-java.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-java.xsd new file mode 100644 index 0000000000..21acbeaab6 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-java.xsd @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-xsd.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-xsd.xsd new file mode 100644 index 0000000000..24b9d00e07 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-xsd.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca.xsd new file mode 100644 index 0000000000..a0d61568e2 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sca.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.cpp new file mode 100644 index 0000000000..d5e0c0d5c3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.cpp @@ -0,0 +1,4028 @@ +/* + * + * 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:31 $ */ + +#include + +#pragma warning(disable:4786) + +#include +using namespace std; + +// #include "TypeImpl.h" + +#include "sdotest.h" + + + +using namespace commonj::sdo; + +// very basic print of a data graph + +typedef struct { + //zend_object zo; /* The standard zend_object */ + DataObjectPtr dop; /* The Hydra DataObject */ + //zend_object *df; /* The Data Factory */ +} sdo_doimpl_object; + + +void sdotest::rcptest() +{ + DataFactoryPtr mdg; + sdo_doimpl_object* ptr; + + cout << "RCPtest" << endl; + + mdg = DataFactory::getDataFactory(); + mdg = 0; + mdg = DataFactory::getDataFactory(); + mdg = NULL; + mdg = DataFactory::getDataFactory(); + + cout << "RCPtest 2" << endl; + + mdg->addType("myspace","Root"); + + mdg->addType("myspace","Company"); + + mdg->addPropertyToType("myspace","Company","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Company","id", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Root","companies", + "myspace","Company", true, false, true); + + const Type& tcc = mdg->getType("myspace","Root"); + + + ptr = new sdo_doimpl_object; + + + ptr->dop = mdg->create((Type&)tcc); + + + //delete ptr->dop; + + + ptr->dop = 0; // null ; + +} + + + +void printDataStructure(DataFactory* dd) +{ + TypeList tt = dd->getTypes(); + cout << "Printing Types\n"; + for (int i = 0; i < tt.size(); ++i) + { + cout << "Type " << tt[i].getName() << "\n"; + PropertyList pl = tt[i].getProperties(); + for (int j = 0; j < pl.size() ; j++) + { + cout << "Has Property " << pl[j].getName() << + " of type "; + cout << pl[j].getType().getName() << "\n"; + } + } +} + + +void sdotest::changesummarytest() +{ + scenario5(); + scenario1(); + scenario2(); + scenario3(); + scenario4(); + +} + + + + +void sdotest::printOldValues(ChangeSummaryPtr cs, DataObjectPtr dol) +{ + cout << "===== Old Property Values Begin=====================================" << endl; + SettingList& sl = cs->getOldValues(dol); + if (sl.size() == 0) + { + cout << "No Settings found" << endl; + } + else + { + for (int j=0;j< sl.size(); j++) + { + cout << "Property " << sl[j].getProperty().getName(); + // this could be a many-valued property, and could be one which is + // a data object or a data type... + if (sl[j].getProperty().isMany()) + { + cout << "[" << sl[j].getIndex() << "]" ; + } + if (!sl[j].isSet()) + { + cout << "(UNSET)"; + } + if (sl[j].isNull()) + { + cout << "(ISNULL)"; + } + + cout << " of type " ; + switch (sl[j].getProperty().getTypeEnum()) + { + case Type::BooleanType: + cout << "Boolean:" << sl[j].getBooleanValue(); + break; + case Type::ByteType: + cout << "Byte:" << sl[j].getByteValue(); + break; + case Type::CharacterType: + cout << "Character:" << sl[j].getCharacterValue(); + break; + case Type::IntegerType: + cout << "Integer:" << sl[j].getIntegerValue(); + break; + case Type::ShortType: + cout << "Short:" << sl[j].getShortValue(); + break; + case Type::DoubleType: + cout << "Double:" << sl[j].getDoubleValue(); + break; + case Type::FloatType: + cout << "Float:" << sl[j].getFloatValue(); + break; + case Type::LongType: + cout << "Long:" << sl[j].getIntegerValue(); + break; + case Type::DateType: + cout << "Date:" << sl[j].getDateValue().getTime(); + break; + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::StringType: + case Type::UriType: + cout << "String:" << sl[j].getCStringValue(); + break; + case Type::BytesType: + cout << "Bytes:" << sl[j].getCStringValue(); + break; + case Type::OtherTypes: + case Type::DataObjectType: + case Type::ChangeSummaryType: + { + cout << "DataObject " ; + DataObjectPtr dob = sl[j].getDataObjectValue(); + if (!dob) + { + cout << " - object null or unset" ; + } + else + { + DataObjectPtr mydo = sl[j].getDataObjectValue(); + if (cs->isDeleted(mydo)) + { + cout << " - object deleted " << endl; + printOldValues(cs,mydo); + } + else + { + cout << " object still exists " << endl; + //printDataObject(mydo); + } + } + } + break; + default: + { + cout << "Unknown object type"; + } + break; + } + cout << endl; + } + } + cout << "===== Old Property Values End ======================================" << endl; +} + + +void sdotest::printValue(DataObjectPtr dp, const Property& p) +{ + switch (p.getTypeEnum()) + { + case Type::BooleanType: + cout << "boolean:" << dp->getBoolean(p); + break; + case Type::ByteType: + cout << "Byte:" << dp->getByte(p); + break; + case Type::CharacterType: + cout << "character:" << dp->getCharacter(p); + break; + case Type::IntegerType: + cout << "integer:" << dp->getInteger(p); + break; + case Type::ShortType: + cout << "short:" << dp->getShort(p); + break; + case Type::DoubleType: + cout << "double:" << dp->getDouble(p); + break; + case Type::FloatType: + cout << "float:" << dp->getFloat(p); + break; + case Type::LongType: + cout << "long:" << "cheat" << dp->getInteger(p); + break; + case Type::DateType: + cout << "date:" << dp->getDate(p).getTime(); + break; + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::StringType: + case Type::UriType: + cout << "string:" << dp->getCString(p); + break; + case Type::BytesType: + cout << "bytes:" << dp->getCString(p); + break; + case Type::DataObjectType: + { + cout << "dataObject" ; + DataObjectPtr dob = dp->getDataObject(p); + if (!dob) + { + cout << " - null or unset" ; + } + else + { + cout << endl; + printDataObject(dob); + } + } + break; + case Type::OtherTypes: + case Type::ChangeSummaryType: + default: + { + cout << "Unknown object type"; + } + break; + } + cout << endl; +} + +void sdotest::printList(DataObjectPtr dp, const Property& p) +{ + DataObjectList& dobl = dp->getList(p); + cout << " list "; + + if (dobl.size() ==0) { + cout << "(empty)" << endl; + return; + } + + for (int i=0;igetInstanceProperties(); + + for (int j=0;j< pl.size(); j++) + { + cout << "Property " << pl[j].getName() << " of type "; + // this could be a many-valued property, and could be one which is + // a data object or a data type... + if (pl[j].isMany()) + { + printList(dol,pl[j]); + } + else { + printValue(dol,pl[j]); + } + } + cout << "End DataObject Current Values ======================================" << endl; +} + + +void sdotest::dumpchangesummary(ChangeSummaryPtr cs) +{ + ChangedDataObjectList& cdol = cs->getChangedDataObjects(); + + // the changed data object list contains only the objects whose properties have + // been changed. + // a changed and subsequently deleted object will not appear, but necessarily its + // container will appear, so we can rebuild it. + + for (int i=0;i< cdol.size();i++) + { + if (cs->isCreated(cdol[i])) + { + cout << "Created object in changed list: " << cdol[i] << endl; + // So its in the created list, it must exist in the tree... + cout << "The object is " << cdol[i]->getType().getURI() + << "#" << cdol[i]->getType().getName() << endl; + } + if (cs->isModified(cdol[i])) + { + cout <<"===== Modified Object Starts " << cdol[i] << " ==============================" <objectToXPath() << endl; + // end hack + + if (cs->isDeleted(cdol[i])) + { + cout << "PROBLEM: DELETED OBJECT IN CHANGED LIST: " << cdol[i] << endl; + // As the item is in the deleted list - its still present.. + cout << "The type is " << cdol[i]->getType().getURI() + << "#" << cdol[i]->getType().getName() << endl; + } + else { + cout << "The modified objects type is " << cdol[i]->getType().getURI() + << "#" << cdol[i]->getType().getName() << endl; + + printOldValues(cs, cdol[i]); + //printDataObject(cdol[i]); + } + cout <<"=====Modified Object Ends " << cdol[i] << " =================================" <isDeleted(cdol[i])) + { + cout <<"=====Deleted Object Starts " << cdol[i] << " =================================" <addType("myspace","RootOfAllEvil"); + mdg->addPropertyToType("myspace","RootOfAllEvil","whatever", + "commonj.sdo","ChangeSummary", false, false, false); + + mdg->addType("myspace","Company"); + + mdg->addPropertyToType("myspace","Company","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Company","id", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","RootOfAllEvil","companies", + "myspace","Company", true, false, true); + + const Type& tcc = mdg->getType("myspace","RootOfAllEvil"); + DataObjectPtr dor = mdg->create((Type&)tcc); + + ChangeSummaryPtr cs = dor->getChangeSummary(); + cs->beginLogging(); + + DataObjectPtr com = dor->createDataObject("companies"); + com->setCString("name","acme"); + com->setCString("id","123"); + + dumpchangesummary(cs); + + cs->endLogging(); + + //expect cdo: + //root - isChanged + //comp - isCreated + + +} + + +void sdotest::testui() +{ + + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("companyNS","MainType"); + + + /* Now add the properties to the types...*/ + + + const Type& tmain = mdg->getType("companyNS","MainType"); + const Type& tshort = mdg->getType("commonj.sdo","Short"); + const Type& tint = mdg->getType("commonj.sdo","Integer"); + + + mdg->addPropertyToType(tmain,"short",tshort,true); + mdg->addPropertyToType(tmain,"int",tint, true); + + DataObjectPtr main = mdg->create((Type&)tmain); + + DataObjectList& dol1 = main->getList("short"); + DataObjectList& dol2 = main->getList("int"); + DataObjectList& dol3 = main->getList((unsigned int)0); + DataObjectList& dol4 = main->getList(1); + } + + catch (SDORuntimeException e) + { + cout << "Unsigned int failed" << endl << e << endl; + } +} + + + +void sdotest::scenario5() +{ + // scenario 1 + // create root type - root has cs + // create a company type. and containment ref from root, many valued. + // props on comp id, name both strings single v. + // create root object + // begin logging + // create a company obj. name=acme id=123 + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","RootOfAllEvil"); + mdg->addPropertyToType("myspace","RootOfAllEvil","whatever", + "commonj.sdo","ChangeSummary", false, false, false); + + mdg->addType("myspace","Company"); + mdg->addType("myspace","Employee"); + mdg->addPropertyToType("myspace","Employee","name", + "commonj.sdo","String", false, false, false); + + + mdg->addPropertyToType("myspace","Company","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Company","id", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Company","eotm", + "myspace","Employee", false, false, false); + + mdg->addPropertyToType("myspace","Company","employees", + "myspace","Employee", true, false, true); + + mdg->addPropertyToType("myspace","RootOfAllEvil","companies", + "myspace","Company", true, false, true); + + const Type& tcc = mdg->getType("myspace","RootOfAllEvil"); + DataObjectPtr dor = mdg->create((Type&)tcc); + + ChangeSummaryPtr cs = dor->getChangeSummary(); + + DataObjectPtr com = dor->createDataObject("companies"); + com->setCString("name","acme"); + com->setCString("id","123"); + + const Type& te = mdg->getType("myspace","Employee"); + + DataObjectPtr emp = mdg->create(te); + emp->setCString("name", "Mr Expendible"); + + DataObjectList& emps = com->getList("employees"); + + emps.append(emp); + + com->setDataObject("eotm",emp); + + cs->beginLogging(); + + com->unset("eotm"); + + dumpchangesummary(cs); + + cs->endLogging(); + + //expect com to have change record, nothing for eotm: + +} + +void sdotest::scenario2() +{ + // create root type - root has cs + // create a company type. and containment ref from root, many valued. + // 2 props on comp id, name both strings single v. + // create root object + // create a company obj. name=acme id=123 + // begin logging() + // name="megacorp" + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","RootOfAllEvil"); + mdg->addPropertyToType("myspace","RootOfAllEvil","whatever", + "commonj.sdo","ChangeSummary", false, false, false); + + mdg->addType("myspace","Company"); + + mdg->addPropertyToType("myspace","Company","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Company","id", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","RootOfAllEvil","companies", + "myspace","Company", true, false, true); + + const Type& tcc = mdg->getType("myspace","RootOfAllEvil"); + DataObjectPtr dor = mdg->create((Type&)tcc); + + DataObjectPtr com = dor->createDataObject("companies"); + com->setCString("name","acme"); + com->setCString("id","123"); + + ChangeSummaryPtr cs = dor->getChangeSummary(); + cs->beginLogging(); + + com->setCString("name","megacorp"); + + dumpchangesummary(cs); + + cs->endLogging(); + + //expect cdo: + //root- nothing + // company- isChanged + //setting prop=name, value="acme" + +} + +void sdotest::scenario3() +{ + + //create root type - root has cs + //create a company type. and containment ref from root, many valued. + //2 props on comp id, name both strings single v. + //create root object + //create a company obj. name=acme id=123 + //begin logging() + //delete company + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","RootOfAllEvil"); + mdg->addPropertyToType("myspace","RootOfAllEvil","whatever", + "commonj.sdo","ChangeSummary", false, false, false); + + mdg->addType("myspace","Company"); + + mdg->addPropertyToType("myspace","Company","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Company","id", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","RootOfAllEvil","companies", + "myspace","Company", true, false, true); + + const Type& tcc = mdg->getType("myspace","RootOfAllEvil"); + DataObjectPtr dor = mdg->create((Type&)tcc); + + DataObjectPtr com = dor->createDataObject("companies"); + com->setCString("name","acme"); + com->setCString("id","123"); + + ChangeSummaryPtr cs = dor->getChangeSummary(); + cs->beginLogging(); + + com->detach(); + + dumpchangesummary(cs); + + cs->endLogging(); + + // expect cdo + // root - changed + // company - deleted + +} + +void sdotest::scenario4() +{ + //create root type - root has cs + //create a company type. and containment ref from root, many valued. + //create a dept type. and containment ref from comp, many valued. + //create a emp type. and containment ref from dept, many valued. + // give name and id properties to comp,dept, emp + + //create root object + //create a company obj. name=acme id=123 + //create a company obj. name=megacorp id=124 + // give each company 2 depts + // give each dept 2 employees + + // begin logging() + // add new employee to first dept of acme + // delete employee from second dept of acme + + // change name of first employee of first dept megacorp. + // delete first dept of megacorp. + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","RootOfAllEvil"); + mdg->addPropertyToType("myspace","RootOfAllEvil","whatever", + "commonj.sdo","ChangeSummary", false, false, false); + + mdg->addType("myspace","Company"); + mdg->addPropertyToType("myspace","Company","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Company","id", + "commonj.sdo","String", false, false, false); + + mdg->addType("myspace","Department"); + mdg->addPropertyToType("myspace","Department","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Department","id", + "commonj.sdo","String", false, false, false); + + mdg->addType("myspace","Employee"); + mdg->addPropertyToType("myspace","Employee","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Employee","id", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","RootOfAllEvil","companies", + "myspace","Company", true, false, true); + + mdg->addPropertyToType("myspace","Company","departments", + "myspace","Department", true, false, true); + + mdg->addPropertyToType("myspace","Department","employees", + "myspace","Employee", true, false, true); + + const Type& tcc = mdg->getType("myspace","RootOfAllEvil"); + DataObjectPtr dor = mdg->create((Type&)tcc); + + DataObjectPtr com = dor->createDataObject("companies"); + com->setCString("name","acme"); + com->setCString("id","123"); + + DataObjectPtr dep = com->createDataObject("departments"); + dep->setCString("name","widgets"); + dep->setCString("id","1"); + + DataObjectPtr emp = dep->createDataObject("employees"); + emp->setCString("name","John O'Watt"); + emp->setCString("id","1"); + + emp = dep->createDataObject("employees"); + emp->setCString("name","Ida Know"); + emp->setCString("id","2"); + + + dep = com->createDataObject("departments"); + dep->setCString("name","gadgets"); + dep->setCString("id","2"); + + emp = dep->createDataObject("employees"); + emp->setCString("name","Ed Memoire"); + emp->setCString("id","1"); + + emp = dep->createDataObject("employees"); + emp->setCString("name","Phyllis Tyne"); + emp->setCString("id","2"); + + + DataObjectPtr com2 = dor->createDataObject("companies"); + com2->setCString("name","megacorp"); + com2->setCString("id","124"); + + dep = com2->createDataObject("departments"); + dep->setCString("name","windows"); + dep->setCString("id","1"); + + emp = dep->createDataObject("employees"); + emp->setCString("name","Ivor Payne"); + emp->setCString("id","1"); + + emp = dep->createDataObject("employees"); + emp->setCString("name","Colin Poisson"); + emp->setCString("id","2"); + + dep = com2->createDataObject("departments"); + dep->setCString("name","portholes"); + dep->setCString("id","2"); + + emp = dep->createDataObject("employees"); + emp->setCString("name","Graham Angreeneggs"); + emp->setCString("id","1"); + + emp = dep->createDataObject("employees"); + emp->setCString("name","Helen Highwater"); + emp->setCString("id","2"); + + cout << "-----------------------------------" << endl; + cout << com->getCString("name") << endl; + DataObjectList& deps = com->getList("departments"); + cout << "Depts[0]:" << deps[0]->getCString("name") << endl; + DataObjectList& emps = deps[0]->getList("employees"); + cout << "Emps[0]:" << emps[0]->getCString("name") << endl; + cout << "Emps[1]:" << emps[1]->getCString("name") << endl; + cout << "Depts[1]:" << deps[1]->getCString("name") << endl; + DataObjectList& emps2 = deps[1]->getList("employees"); + cout << "Emps[0]:" << emps2[0]->getCString("name") << endl; + cout << "Emps[1]:" << emps2[1]->getCString("name") << endl; + cout << "-----------------------------------" << endl; + cout << com2->getCString("name") << endl; + DataObjectList& deps2 = com2->getList("departments"); + cout << "Depts[0]:" << deps2[0]->getCString("name") << endl; + DataObjectList& emps3 = deps2[0]->getList("employees"); + cout << "Emps[0]:" << emps3[0]->getCString("name") << endl; + cout << "Emps[1]:" << emps3[1]->getCString("name") << endl; + cout << "Depts[1]:" << deps2[1]->getCString("name") << endl; + DataObjectList& emps4 = deps2[1]->getList("employees"); + cout << "Emps[0]:" << emps4[0]->getCString("name") << endl; + cout << "Emps[1]:" << emps4[1]->getCString("name") << endl; + cout << "-----------------------------------" << endl; + + // should be able to get the change summary property, but it + // should be zero. + // should be able to find out if the type is a change summary type + + if (dor->getType().isChangeSummaryType()) + { + cout << "The root object has a change summary" << endl; + } + else { + cout << "The root object DOESNT HAVE a change summary !!!" << endl; + } + + try { + DataObjectPtr csptr = dor->getDataObject("whatever"); + + if (!csptr) { + cout << "CS property was zero - should be invisible!!!!" << endl; + } + else { + cout << "CS property was NOT zero !!" << endl; + } + } + catch (SDOPropertyNotFoundException e) + { + cout << "No property shows - this is correct" << endl; + } + + + if (com->getType().isChangeSummaryType()) + { + cout << "The company object has a change summary !!!!" << endl; + } + else { + cout << "The company object is OK" << endl; + } + + + + + ChangeSummaryPtr cs = dor->getChangeSummary(); + cs->beginLogging(); + + DataObjectList& depsout = com->getList("departments"); + + emp = depsout[0]->createDataObject("employees"); + emp->setCString("name","Irma Newby"); + emp->setCString("id","3"); + + DataObjectList& empsout = depsout[1]->getList("employees"); + empsout.remove(0); + + DataObjectList& depsout2 = com2->getList("departments"); + DataObjectList& empsout2 = depsout2[0]->getList("employees"); + empsout2[0]->setCString("name","Ive had my name changed"); + + depsout2[0]->detach(); + + dumpchangesummary(cs); + + cs->endLogging(); + + // expect: + // company acme, department widgets changed. + // employee 3 of dept widgets of acme (Irma Newby) created. + // employee 1 of dept gadgets or acme deleted + // no change record for employee 1 of company megacorp, dept windows + // deletion for dept windows of megacorp + // deletion for emp 1 of windows - showing original value for name (Ivor Payne) + // deletion for emp 2 of windows. + + +} + +void sdotest::seqtest() +{ + DataFactoryPtr mdg = DataFactory::getDataFactory(); + // company is sequenced. + mdg->addType("myspace","Company",true,false); + + mdg->addType("myspace","Department",true,false); + // string is many + + mdg->addPropertyToType("myspace","Company","string","commonj.sdo","String", + true); + + mdg->addPropertyToType("myspace","Company","departments","myspace","Department", + true); + + mdg->addPropertyToType("myspace","Department","name","commonj.sdo","String"); + + + const Type& tcc = mdg->getType("myspace","Company"); + + DataObjectPtr dor = mdg->create(tcc); + const Property& sprop = dor->getType().getProperty("string"); + SequencePtr sptr = dor->getSequence(); + + printseq(sptr); + + sptr->addCString(sprop,"I am Item 1 of string"); + + printseq(sptr); + + sptr->addText("I am the first free text"); + + printseq(sptr); + + sptr->addCString(sprop,"I am Item 2 of string"); + + printseq(sptr); + + sptr->setCStringValue(1,"I am free text which has been modified"); + + DataObjectPtr dep1 = dor->createDataObject("departments"); + + printseq(sptr); + + dep1->setCString("name","department1"); + + printseq(sptr); + + DataObjectList& dol = dor->getList("departments"); + + const Type& tcd = mdg->getType("myspace","Department"); + DataObjectPtr dep2 = mdg->create(tcd); + + printseq(sptr); + + dep2->setCString("name","department2"); + + printseq(sptr); + + dol.append(dep2); + + printseq(sptr); + +} + +void sdotest::printseq(SequencePtr sptr) +{ + cout << "======================================" <size();i++) + { + try { + if (!sptr->isText(i)) + { + const Property& prp = sptr->getProperty(i); + if (!strcmp(prp.getType().getName(),"Department")) + { + DataObjectPtr pdep = sptr->getDataObjectValue(i); + if (pdep != 0) + { + const char * cs = pdep->getCString("name"); + if (cs != 0) + { + cout << cs << endl; + } + else + { + cout << " is empty " << endl; + } + } + } + else + { + const char* stx = sptr->getCStringValue(i); + if (stx != 0) + { + cout << stx << endl; + } + else + { + cout << " is empty " << endl; + } + } + } + else + { + const char* st = sptr->getCStringValue(i); + if (st != 0) + { + cout << st << endl; + } + else + { + cout << " is empty " << endl; + } + } + } + catch (SDOPropertyNotSetException) + { + cout << "WRONG - got a property not set exception!!!" << endl; + continue; + } + } + cout << "======================================" << endl; +} + +void sdotest::boolbug() +{ + DataFactoryPtr mdg = DataFactory::getDataFactory(); + mdg->addType("myspace","Company"); + mdg->addPropertyToType("myspace","Company","bool","commonj.sdo","Boolean"); + const Type& tcc = mdg->getType("myspace","Company"); + DataObjectPtr dor = mdg->create((Type&)tcc); + try { + bool b = dor->getBoolean("bool"); + cout << "bool:" << b << endl; + } + catch (SDOPropertyNotSetException) + { + cout << "WRONG not set exception" << endl; + } +} + +void sdotest::scope1() +{ + cout << "SCOPE1 - Data Factory" << endl; + + DataFactoryPtr mdg = DataFactory::getDataFactory(); +} + +void sdotest::scope2() +{ + cout << "SCOPE2 - Create Data Object" << endl; + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + mdg->addType("myspace","Company"); + mdg->addPropertyToType("myspace","Company","csumm","commonj.sdo","ChangeSummary"); + const Type& tcc = mdg->getType("myspace","Company"); + DataObjectPtr dor = mdg->create((Type&)tcc); +} + +void sdotest::scope3() +{ + cout << "SCOPE3 - Lists" << endl; + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + mdg->addType("myspace","Main"); + mdg->addType("myspace","Subs"); + mdg->addPropertyToType("myspace","Main","name","commonj.sdo","String"); + mdg->addPropertyToType("myspace","Main","subs","myspace","Subs", true); + mdg->addPropertyToType("myspace","Subs","name","commonj.sdo","String"); + + const Type& tcc = mdg->getType("myspace","Main"); + DataObjectPtr dor = mdg->create((Type&)tcc); + + DataObjectPtr sub = dor->createDataObject("subs"); + sub->setCString("name", "sub1"); + + sub = dor->createDataObject("subs"); + sub->setCString("name", "sub2"); + + +} + +void sdotest::testGetters(DataObjectPtr dor) +{ + testGetter(dor,"boolean"); + testGetter(dor,"byte"); + testGetter(dor,"character"); + testGetter(dor,"short"); + testGetter(dor,"integer"); + testGetter(dor,"long"); + testGetter(dor,"double"); + testGetter(dor,"float"); + testGetter(dor,"date"); + testGetter(dor,"string"); + testGetter(dor,"bytes"); + testGetter(dor,"dataobject"); +} + +void sdotest::testGetter(DataObjectPtr dor, char* str) +{ + + try { + cout << "Boolean from " << str; + bool b = dor->getBoolean(str); + cout << " was " << b << endl; + } + catch (SDOPropertyNotSetException pe) + { + cout << "WRONG unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + + try { + cout << "Byte from " << str; + char by = dor->getByte(str); + cout << " was " << by <getCharacter(str); + cout << " was " << cy << endl; + } + catch (SDOPropertyNotSetException pe) + { + cout << "WRONG unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + + try { + cout << "Short from " << str; + short s = dor->getShort(str); + cout << " was " << s << endl; + } + catch (SDOPropertyNotSetException pe) + { + cout << "WRONG unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + + try { + cout << "Int from " << str; + int i = dor->getInteger(str); + cout << " was " << i << endl; + } + catch (SDOPropertyNotSetException pe) + { + cout << "WRONG unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + + try { + cout << "Long from " << str; + long l = dor->getLong(str); + cout << " was " << l << endl; + } + catch (SDOPropertyNotSetException pe) + { + cout << "WRONG unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + + try { + cout << "LongLong from " << str; + int64_t ll = dor->getLong(str); + cout << " was got OK" << endl; + } + catch (SDOPropertyNotSetException pe) + { + cout << "WRONG unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + + try { + cout << "Float from " << str; + float f = dor->getFloat(str); + cout << " was " << f << endl; + } + catch (SDOPropertyNotSetException pe) + { + cout << "WRONG unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + + try { + cout << "Double from " << str; + long double d = dor->getDouble(str); + cout << " was " << d << endl; + } + catch (SDOPropertyNotSetException pe) + { + cout << "WRONG unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + + unsigned int len; + + try { + cout << "Length of " << str; + len = dor->getLength(str); + cout << " was " << len << endl; + } + catch (SDOPropertyNotSetException pe) + { + cout << "WRONG unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + + if (len > 0) { + try { + cout << "String from " << str; + wchar_t * buf = new wchar_t[len]; + unsigned int gotlen = dor->getString(str,buf,len); + cout << " size "; + cout << gotlen << endl; + for (int jj=0;jjgetBytes(str,cbuf,len); + cout << " size " << gotlen << endl; + for (int jj=0;jjgetDate(str); + cout << " was " << t.getTime() << endl; + } + catch (SDOPropertyNotSetException pe) + { + cout << " WRONG unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + + try { + cout << "CString from " << str; + const char * string = dor->getCString(str); + if ( string != 0) cout << " was " << string << endl; + else cout << " was empty " << endl; + } + catch (SDOPropertyNotSetException pe) + { + cout << "WRONG - unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + + try { + cout << "DataObject from " << str; + DataObjectPtr dob = dor->getDataObject(str); + if (dob != 0) + { + cout << " was " << dob << endl; + } + else + { + cout << " was empty" << endl; + } + } + catch (SDOPropertyNotSetException pe) + { + cout << "WRONG unset and undefaulted" << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << endl; + } + +} + +void sdotest::conversiontest() +{ + cout << "Conversion tests" << endl; + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + mdg->addType("myspace","Container"); + mdg->addType("myspace","Contained"); + mdg->addPropertyToType("myspace","Container","boolean","commonj.sdo","Boolean"); + mdg->addPropertyToType("myspace","Container","byte","commonj.sdo","Byte"); + mdg->addPropertyToType("myspace","Container","character","commonj.sdo","Character"); + mdg->addPropertyToType("myspace","Container","short","commonj.sdo","Short"); + mdg->addPropertyToType("myspace","Container","integer","commonj.sdo","Integer"); + mdg->addPropertyToType("myspace","Container","long","commonj.sdo","Long"); + mdg->addPropertyToType("myspace","Container","float","commonj.sdo","Float"); + mdg->addPropertyToType("myspace","Container","double","commonj.sdo","Double"); + mdg->addPropertyToType("myspace","Container","string","commonj.sdo","String"); + mdg->addPropertyToType("myspace","Container","bytes","commonj.sdo","Bytes"); + mdg->addPropertyToType("myspace","Container","dataobject","myspace","Contained"); + mdg->addPropertyToType("myspace","Container","date","commonj.sdo","Date"); + mdg->addPropertyToType("myspace","Container","bigint","commonj.sdo","BigInteger"); + mdg->addPropertyToType("myspace","Container","bigdec","commonj.sdo","BigDecimal"); + + + const Type& tcc = mdg->getType("myspace","Container"); + DataObjectPtr dor = mdg->create((Type&)tcc); + + // phase 1 - all unset....... + + cout << "+++++++++++++++PROPERTY VALUES UNSET ++++++++++++++++++" << endl; + + testGetters(dor); + + cout << "+++++++++++++++PROPERTY VALUES SET ++++++++++++++++++++" << endl; + + DataObjectPtr sub = dor->createDataObject("dataobject"); + dor->setBoolean("boolean", true); + dor->setByte("byte",20); + dor->setCharacter("character", 1000); + dor->setShort("short", (short)12345678); + dor->setInteger("integer", 87654321); + dor->setLong("long", 0xFFFFFFFFFFFF); + dor->setFloat("float", (float)12345.678); + dor->setDouble("double", 1234567.891); + dor->setDate("date", 37575); + wchar_t* chars = new wchar_t[50]; + for (int i=0;i<50;i++) {chars[i] = 0x7F20 + i ;} + dor->setString("string",chars, 50); + + char* tchars = new char[50]; + for (int ii=0;ii<50;ii++) {tchars[ii] = ii + 32;} + dor->setBytes("bytes",tchars, 50); + + + testGetters(dor); + + cout << "+++++++++++++++END OF TEST ++++++++++++++++++++++++++++" << endl; + + // phase 2 all set..... + +} + + +void sdotest::usertest() +{ + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Root"); + mdg->addType("myspace","UserTest"); + mdg->addType("myspace","AnObject"); + + const Type& tr = mdg->getType("myspace", "Root"); + const Type& tm = mdg->getType("myspace", "UserTest"); + const Type& to = mdg->getType("myspace", "AnObject"); + + mdg->addPropertyToType(tm,"boolean", "commonj.sdo","Boolean"); + mdg->addPropertyToType(tm,"unsetboolean", "commonj.sdo","Boolean"); + mdg->addPropertyToType(tm,"object", "myspace","AnObject"); + mdg->addPropertyToType(tm,"unsetobject","myspace","AnObject"); + + // many valued... + mdg->addPropertyToType(tm,"longs", "commonj.sdo","Integer", true); + mdg->addPropertyToType(tm,"objects", "myspace","AnObject", true); + + mdg->addPropertyToType(tr,"usertest", "myspace","UserTest"); + + DataObjectPtr root = mdg->create((Type&)tr); + DataObjectPtr test = root->createDataObject("usertest"); + DataObjectPtr do1 = test->createDataObject("object"); + DataObjectPtr do2 = test->createDataObject("objects"); + DataObjectPtr do3 = test->createDataObject("objects"); + + test->setBoolean("boolean", true); + + void* value = (void*)0xFACC0FF; + + test->setUserData(value); + + cout << "I wanted 0xFACC0FF " << test->getUserData() << endl; + + root->setUserData("usertest",value); + + cout << "I wanted 0xFACC0FF and got " << root->getUserData("usertest") << endl; + + root->setUserData((unsigned int)0,(void*)0x20); + + cout << "I wanted 0x20 and got " << root->getUserData((unsigned int)0) << endl; + + const Property& prop = root->getType().getProperty("usertest"); + root->setUserData(prop,(void*)0x40020); + + cout << "I wanted 0x40020 and got " << root->getUserData(prop) << endl; + + test->setUserData("boolean", (void*)0x120); + + cout << "I wanted (graceful)0 and got " << test->getUserData("boolean") << endl; + + test->setUserData("unsetboolean", (void*)0x340); + + cout << "I wanted (graceful)0 and got " << test->getUserData("boolean") << endl; + + test->setUserData("object", (void*)0x120); + + cout << "I wanted 120 and got " << test->getUserData("object") << endl; + + test->setUserData("unsetobject", (void*)0x540); + + cout << "I wanted (graceful)0 and got " << test->getUserData("unsetobject") << endl; + + test->setUserData("objects", (void*)0x640); + + // TODO might be dodgy - this allows setting of user data on a base of a list + cout << "I wanted 640 and got " << test->getUserData("objects") << endl; + + test->setUserData("objects[1]", (void*)0x740); + + cout << "I wanted 0x740 and got " << test->getUserData("objects[1]") << endl; + } + catch (SDORuntimeException e) + { + cout << "Exception in user test - unexpected" << endl; + } + +} + +void sdotest::versiontest() +{ + cout << "The SDO version is :" << SdoRuntime::getVersion() << endl; + cout << "The Major version is: " << SdoRuntime::getMajor() << endl; + cout << "The Minor version is: " << SdoRuntime::getMinor() << endl; + cout << "The Fix level is: " << SdoRuntime::getFix() << endl; +} + +void sdotest::noncontest() +{ + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Company"); + mdg->addType("myspace","Department"); + mdg->addType("myspace","Employee"); + + const Type& tr = mdg->getType("myspace", "Company"); + const Type& tm = mdg->getType("myspace", "Department"); + const Type& to = mdg->getType("myspace", "Employee"); + + // many... + mdg->addPropertyToType(tr,"departments","myspace", "Department", + true); + + //mdg->addPropertyToType(to,"name","commonj.sdo", "String"); + + mdg->addPropertyToType(tm,"employees","myspace", "Employee", true); + + // single, non containment + mdg->addPropertyToType(tr,"eom", "myspace","Employee", false + , false, false); + + DataObjectPtr comp = mdg->create((Type&)tr); + + { + DataObjectPtr dept = comp->createDataObject("departments"); + DataObjectPtr emp1 = dept->createDataObject("employees"); + //emp1->setCString("name", "Will"); + DataObjectPtr emp2 = dept->createDataObject("employees"); + //emp1->setCString("name", "Bill"); + DataObjectPtr emp3 = dept->createDataObject("employees"); + //emp1->setCString("name", "Gill"); + comp->setDataObject("eom", emp3); + } + + + +} + + + + +void sdotest::defaulttest() +{ + try{ + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","DefaultTest"); + mdg->addType("myspace","AnObject"); + + const Type& tm = mdg->getType("myspace", "DefaultTest"); + const Type& to = mdg->getType("myspace", "AnObject"); + + mdg->addPropertyToType(tm,"boolean", "commonj.sdo","Boolean"); + + mdg->setDefault("myspace","DefaultTest","boolean", true); + + mdg->addPropertyToType(tm,"byte", "commonj.sdo","Byte"); + + mdg->setDefault("myspace","DefaultTest","byte", (char)'d'); + + mdg->addPropertyToType(tm,"character", "commonj.sdo","Character"); + + mdg->setDefault("myspace","DefaultTest","character", (wchar_t)'e'); + + mdg->addPropertyToType(tm,"short", "commonj.sdo","Short"); + + mdg->setDefault("myspace","DefaultTest","short", (short)300); + + mdg->addPropertyToType(tm,"long", "commonj.sdo","Integer"); + + mdg->setDefault("myspace","DefaultTest","long", (long)400); + + mdg->addPropertyToType(tm,"longs", "commonj.sdo","Integer", true); + + mdg->setDefault("myspace","DefaultTest","longs", (long)800); + + mdg->addPropertyToType(tm,"longlong", "commonj.sdo","Long"); + + mdg->setDefault("myspace","DefaultTest","longlong", (int64_t)500); + + mdg->addPropertyToType(tm,"float", "commonj.sdo","Float"); + + mdg->setDefault("myspace","DefaultTest","float", (float)600.0); + + mdg->addPropertyToType(tm,"longdouble", "commonj.sdo","Double"); + + mdg->setDefault("myspace","DefaultTest","longdouble", (long double)700.0); + + mdg->addPropertyToType(tm,"date", "commonj.sdo","Date"); + + mdg->setDefault("myspace","DefaultTest","date", (long)900); + + mdg->addPropertyToType(tm,"string", "commonj.sdo","String"); + + wchar_t* help = new wchar_t[4]; + help[0] = 'H'; + help[1] = 'E'; + help[2] = 'L'; + help[3] = 'P'; + + mdg->setDefault("myspace","DefaultTest","string", help, 4); + + delete help; + + char* help2 = new char[4]; + help2[0] = 'H'; + help2[1] = 'E'; + help2[2] = 'L'; + help2[3] = 'P'; + + mdg->addPropertyToType(tm,"bytes", "commonj.sdo","Bytes"); + + mdg->setDefault("myspace","DefaultTest","bytes", help2, 4); + + delete help2; + + mdg->addPropertyToType(tm,"object", "myspace","AnObject"); + + DataObjectPtr test = mdg->create((Type&)tm); + + cout << "Boolean default is true: " << test->getBoolean("boolean") << endl; + + cout << "Byte default is d: " << test->getByte("byte") << endl; + + cout << "Character default is e: " << test->getCharacter("character") << endl; + + cout << "Short default is 300: " << test->getShort("short") << endl; + + cout << "Long default is 400: " << test->getInteger("long") << endl; + + try { + cout << "Longs default is 800: " << test->getInteger("longs[1]") << endl; + } + catch (SDOIndexOutOfRangeException ex) + { + cout << "Expected index out of range OK" << endl; + } + + cout << "Float default is 600: " << test->getFloat("float") << endl; + + cout << "LongDouble default is 700: " << test->getDouble("longdouble") << endl; + + cout << "String default is HELP: "; + unsigned int lenw = test->getLength("string"); + if (lenw > 0) { + char* tw = new char[lenw]; + test->getBytes("string",tw,lenw); + for (int i=0;igetLength("bytes"); + if (len > 0) { + char* tc = new char[len]; + test->getBytes("bytes",tc,len); + for (int i=0;i 0) + { + wchar_t * buf = new wchar_t[l+1]; + l = pstring.getStringDefault(buf,l); + cout << "String default length is" << l << endl; + for (int i=0;i 0) + { + char * buf = new char[l+1]; + l = pbytes.getBytesDefault(buf,l); + cout << "Bytes default length is" << l << endl; + for (int i=0;iaddType("myspace","DefaultTest"); + mdg->addType("myspace","AnObject"); + + const Type& tm = mdg->getType("myspace", "DefaultTest"); + const Type& to = mdg->getType("myspace", "AnObject"); + + mdg->addPropertyToType(tm,"boolean", "commonj.sdo","Boolean"); + mdg->addPropertyToType(tm,"byte", "commonj.sdo","Byte"); + mdg->addPropertyToType(tm,"character", "commonj.sdo","Character"); + mdg->addPropertyToType(tm,"short", "commonj.sdo","Short"); + mdg->addPropertyToType(tm,"long", "commonj.sdo","Integer"); + mdg->addPropertyToType(tm,"longs", "commonj.sdo","Integer", true); + mdg->addPropertyToType(tm,"longlong", "commonj.sdo","Long"); + mdg->addPropertyToType(tm,"float", "commonj.sdo","Float"); + mdg->addPropertyToType(tm,"longdouble", "commonj.sdo","Double"); + mdg->addPropertyToType(tm,"date", "commonj.sdo","Date"); + mdg->addPropertyToType(tm,"string", "commonj.sdo","String"); + mdg->addPropertyToType(tm,"bytes", "commonj.sdo","Bytes"); + mdg->addPropertyToType(tm,"object" , "myspace","AnObject"); + + cout << "Testing unset defaults....." << endl; + + showdefault(tm); + + + //now set all the defaults.... + + mdg->setDefault("myspace","DefaultTest","boolean", true); + mdg->setDefault("myspace","DefaultTest","byte", (char)'d'); + mdg->setDefault("myspace","DefaultTest","character", (wchar_t)'e'); + mdg->setDefault("myspace","DefaultTest","short", (short)300); + mdg->setDefault("myspace","DefaultTest","long", (long)400); + mdg->setDefault("myspace","DefaultTest","longs", (long)800); + mdg->setDefault("myspace","DefaultTest","longlong", (int64_t)500); + mdg->setDefault("myspace","DefaultTest","float", (float)600.0); + mdg->setDefault("myspace","DefaultTest","longdouble", (long double)700.0); + mdg->setDefault("myspace","DefaultTest","date", (long)900); + + + wchar_t* help = new wchar_t[4]; + help[0] = 'H'; + help[1] = 'E'; + help[2] = 'L'; + help[3] = 'P'; + + mdg->setDefault("myspace","DefaultTest","string", help, 4); + + delete help; + + char* help2 = new char[4]; + help2[0] = 'H'; + help2[1] = 'E'; + help2[2] = 'L'; + help2[3] = 'P'; + + + mdg->setDefault("myspace","DefaultTest","bytes", help2, 4); + + delete help2; + + // and have another go at getting them.... + + cout << "Testing set defaults....." << endl; + + showdefault(tm); + + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << " in "; + cout << e.getFileName() << " at line "; + cout << e.getLineNumber() << endl; + cout << e.getFunctionName() << " "; + cout << e.getMessageText() << endl; + } + +} + +void sdotest::nulltest() +{ + int i; + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","NullTest",true, false); // sequenced + mdg->addType("myspace","AnObject"); + + const Type& tm = mdg->getType("myspace", "NullTest"); + const Type& to = mdg->getType("myspace", "AnObject"); + + mdg->addPropertyToType(tm,"boolean", "commonj.sdo","Boolean"); + mdg->addPropertyToType(tm,"byte", "commonj.sdo","Byte"); + mdg->addPropertyToType(tm,"character", "commonj.sdo","Character"); + mdg->addPropertyToType(tm,"short", "commonj.sdo","Short"); + mdg->addPropertyToType(tm,"long", "commonj.sdo","Integer"); + mdg->addPropertyToType(tm,"longlong", "commonj.sdo","Long"); + mdg->addPropertyToType(tm,"float", "commonj.sdo","Float"); + mdg->addPropertyToType(tm,"longdouble", "commonj.sdo","Double"); + mdg->addPropertyToType(tm,"date", "commonj.sdo","Date"); + mdg->addPropertyToType(tm,"string", "commonj.sdo","String"); + mdg->addPropertyToType(tm,"bytes", "commonj.sdo","Bytes"); + mdg->addPropertyToType(tm,"object", "myspace","AnObject"); + + + mdg->addPropertyToType(tm,"cs", "commonj.sdo","ChangeSummary"); + + DataObjectPtr test = mdg->create((Type&)tm); + DataObjectPtr ob = mdg->create((Type&)to); + DataObjectPtr ob2 = mdg->create((Type&)to); + DataObjectPtr ob3 = mdg->create((Type&)to); + + // first check all props are unset + + ChangeSummaryPtr cs = test->getChangeSummary(); + + cs->beginLogging(); + + PropertyList pl = test->getInstanceProperties(); + + cout << "Initially - all properties unset, and default values..." << endl; + for (i=0;iisSet(pl[i]) << " value:"; + const char *xx = test->getCString(pl[i]); + if (xx != 0) + { + cout << xx << endl; + } + else + { + cout << " is empty " << endl; + } + } + else { + cout << pl[i].getName() << " set:" << test->isSet(pl[i]) << " value:"; + DataObjectPtr xy = test->getDataObject(pl[i]); + if (xy != 0) + { + cout << xy << endl; + } + else + { + cout << " is empty " << endl; + } + } + } + catch (SDOPropertyNotSetException) + { + cout << " WRONG - got not set exception!!!"; + continue; + } + } + test->setBoolean("boolean", false); + test->setByte("byte",0); + test->setCharacter("character",0); + test->setShort("short",0); + test->setInteger("long",0); + test->setLong("longlong",0 ); + test->setFloat("float",0); + test->setDouble("longdouble",0 ); + test->setDate("date",0 ); + test->setString("string",0,0); + test->setBytes("bytes","",0) ; + test->setDataObject("object",0) ; + + + + cout << "Should now have all properties set, and zero values..." << endl; + for (i=0;iisSet(pl[i]) << " value:" << test->getCString(pl[i]) << endl; + } + else { + cout << pl[i].getName() <<" set:" << test->isSet(pl[i]) << " value:" << test->getDataObject(pl[i]) << endl; + } + + } + + for (i=0;iunset(pl[i]); + } + cout << "Should be back to having properties unset, and default values..." << endl; + for (i=0;iisSet(pl[i]) << " value:"; + const char *xx = test->getCString(pl[i]); + if (xx != 0) + { + cout << xx << endl; + } + else + { + cout << " is empty " << endl; + } + } + else { + cout << pl[i].getName() << " set:" << test->isSet(pl[i]) << " value:"; + DataObjectPtr dp = test->getDataObject(pl[i]); + if (dp != 0) + { + cout << dp << endl; + } + else + { + cout << " is empty " << endl; + } + } + } + catch (SDOPropertyNotSetException) + { + cout << "WRONG - not set exception" << endl; + continue; + } + } + + SequencePtr s = test->getSequence(); + + s->addBoolean(test->getType().getProperty("boolean")/*"boolean"*/, false); + s->addByte(1/*"byte"*/,0); + s->addCharacter(2/*"character"*/,0); + s->addShort(3/*"short"*/,0); + s->addInteger(4/*"long"*/,0); + s->addLong(5/*"longlong"*/,0 ); + s->addFloat(6/*"float"*/,0); + s->addDouble(7/*"longdouble"*/,0 ); + // bug ...s->setDate(8/*"date"*/,0 ); + s->addString(9/*"string"*/,0,0); + s->addBytes(10/*"bytes"*/,"",0) ; + s->addDataObject(11/*"object"*/,0) ; + + for (i=0;iisSet(pl[i]) << " value:"; + const char* xx = test->getCString(pl[i]); + if ( xx != 0) + { + cout << xx << endl; + } + else + { + cout << " is empty " << endl; + } + } + else { + cout << pl[i].getName() << " set:" << test->isSet(pl[i]) << " value:"; + DataObjectPtr db = test->getDataObject(pl[i]); + if (db != 0) + { + cout << db << endl; + } + else + { + cout << " is empty " << endl; + } + } + } + catch (SDOPropertyNotSetException) + { + cout << "WRONG - not set exception " << endl; + continue; + } + } + ChangedDataObjectList& cl = cs->getChangedDataObjects(); + for ( i =0; i< cl.size() ; i++) + { + if (cs->isCreated(cl[i])) { + cout << "Created:" << cl[i] << endl; + } + if (cs->isDeleted(cl[i])) { + cout << "Deleted:" << cl[i] << endl; + } + if (cs->isModified(cl[i])) { + cout << "Modified:" << cl[i] << endl; + } + } + + // now unset all the properties... + for (i=0;iunset(pl[i]); + } + + for (i=0;isetNull(i); + } + } + + cout << "Should all be null, and default values..." << endl; + for (i=0;iisNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; + if (test->getCString(pl[i]) == 0) cout << endl; + else cout << test->getCString(pl[i]) << endl; + } + else { + cout << pl[i].getName() << "isNull:" << test->isNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; + if (test->getDataObject(pl[i]) == 0) cout << endl; + else cout << test->getDataObject(pl[i]) << endl; + } + } + + s->addBoolean(test->getType().getProperty("boolean")/*"boolean"*/, true); + s->addByte(1/*"byte"*/,1); + s->addCharacter(2/*"character"*/,1); + s->addShort(3/*"short"*/,1); + s->addInteger(4/*"long"*/,1); + s->addLong(5/*"longlong"*/,1 ); + s->addFloat(6/*"float"*/,1.0); + s->addDouble(7/*"longdouble"*/,1.0 ); + // bug ...s->setDate(8/*"date"*/,0 ); + wchar_t* chs = new wchar_t[5]; + chs[0] = 'h'; + chs[1] = 'e'; + chs[2] = 'l'; + chs[3] = 'l'; + chs[4] = 'o'; + s->addString(9/*"string"*/,chs,5); + delete chs; + s->addBytes(10/*"bytes"*/,"hello",5) ; + s->addDataObject(11/*"object"*/,ob) ; + + cout << "Should all have values, and not be null.." << endl; + for (i=0;iisNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; + if (test->getCString(pl[i]) == 0) cout << endl; + else cout << test->getCString(pl[i]) << endl; + + } + else { + cout << pl[i].getName() << "isNull:" << test->isNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; + if (test->getDataObject(pl[i]) == 0) cout << endl; + else cout << test->getDataObject(pl[i]) << endl; + } + } + + for (i=0;isetNull(pl[i]); + } + } + + cout << "Should all be null, and default values..." << endl; + for (i=0;iisNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; + if (test->getCString(pl[i]) == 0) cout << endl; + else cout << test->getCString(pl[i]) << endl; + + } + else { + cout << pl[i].getName() << "isNull:" << test->isNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; + if (test->getDataObject(pl[i]) == 0) cout << endl; + else cout << test->getDataObject(pl[i]) << endl; + } + } + catch (SDOPropertyNotSetException) + { + cout << " WRONG - not set exception" << endl; + continue; + } + } + + cs->endLogging(); +} + +int sdotest::main(int argc, char** argv) +{ + + int i; + + printf("Test Program starting to create types ...\n"); + + /* First create a DataFactory , then add some types and props...*/ + + /* This is dms creation of metadata */ + + try { + + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Company"); + mdg->addType("myspace","Department"); + // manager is a sequenced type... + mdg->addType("myspace","Manager", true, false); + + mdg->addType("myspace","Employee"); + + // tests of base types + + // note - base type of a seq type must be seq... + mdg->addType("myspace","Person", true, false); + + mdg->addType("myspace","DerivedString"); + mdg->addType("myspace","SubDepartment"); + + /* Now add the properties to the types...*/ + + const Type& tc = mdg->getType("myspace","Company"); + const Type& ts = mdg->getType("commonj.sdo","String"); + const Type& ti = mdg->getType("commonj.sdo","Integer"); + const Type& tf = mdg->getType("commonj.sdo","Float"); + const Type& tm = mdg->getType("myspace","Manager"); + + cout << "Manager is sequenced?" << tm.isSequencedType() << endl; + + const Type& td = mdg->getType("myspace","Department"); + const Type& te = mdg->getType("myspace","Employee"); + const Type& tp = mdg->getType("myspace","Person"); + const Type& tds= mdg->getType("myspace","DerivedString"); + const Type& tsd= mdg->getType("myspace","SubDepartment"); + + cout << "Manager is sequenced?" << tm.isSequencedType() << endl; + + + + + + /* By type, with a type */ + mdg->addPropertyToType(tc,"name",ts); + + /* by name/uri with a type */ + mdg->addPropertyToType("myspace","Company","address",ts); + + /* by type with name/uri */ + mdg->addPropertyToType(tc,"departments", "myspace","Department", + true); + + + // add a reference to employee of the month + mdg->addPropertyToType(tc,"employee of the month", "myspace","Employee", + false, false, false); + + + + /* A list of floats */ + + mdg->addPropertyToType(tc,"floatlist", tf,true); + + mdg->addPropertyToType(tc,"pdg", tm); + + cout << "Manager is sequenced?" << tm.isSequencedType() << endl; + + mdg->addPropertyToType(td,"name", ts); + + mdg->addPropertyToType(td,"id", ti); + + mdg->addPropertyToType(td,"manager", tm); + + mdg->addPropertyToType(tm,"name", ts); + + + mdg->addPropertyToType(te,"name",ts); + mdg->addPropertyToType(td,"employees",te,true,false,true); + + + + // emps and managers are both people (in theory). + mdg->setBaseType(te,tp); + cout << "Manager is sequenced?" << tm.isSequencedType() << endl; + mdg->setBaseType(tm,tp); + cout << "Manager is sequenced?" << tm.isSequencedType() << endl; + mdg->addPropertyToType(tp,"haircolour", ts); + mdg->addPropertyToType(tp,"name", ts); + mdg->addPropertyToType(tm,"officeid", ts); + mdg->addPropertyToType(te,"cubelocation", ts); + + mdg->addPropertyToType(tc,"shareholder", tp); + + //derived string - derived from string - cannot have properties!!! + mdg->setBaseType(tds,ts); + + // subdept derived from dept + mdg->setBaseType(tsd,td); + mdg->addPropertyToType(tsd,"subname",ts); + + mdg->addPropertyToType(tc, "substring",tds); + + /* by type with name/uri */ + mdg->addPropertyToType(tc,"subdepartments", "myspace","SubDepartment", + true); + + /* This is the data structure */ + + + + /* company + ----shareholder (Person) + ----substring (DerivedString) + * ----name (String) + * ----pdg (Manager) + (inherits haircolour from person, + has name as duplicate property - should use person.name + has officeid) + * ----name(String) + ----haircolour(String) + ----officeid(String) + * + * ----depts[] (Department) + * ----name (String) + * ----id (Integer) + * ----manager (Manager). + * ----name(String) + ----haircolour(String) from Person + * ----employees[] (Employee) + * ----name(String) + ----haircolour(String) - from Person + ----cubelocation(String) + --subdepartments[] (SubDepartment) + ----name (String) from Department + ----id (String) from Department + ----manager (Manager) from Department + ----employees (from department) + */ + + /* Now add a primitive type test to the manager */ + mdg->addPropertyToType(tm,"string",ts); + + cout << "Manager is sequenced?" << tm.isSequencedType() << endl; + + mdg->addPropertyToType(tm,"boolean", "commonj.sdo","Boolean"); + mdg->addPropertyToType(tm,"byte", "commonj.sdo","Byte"); + mdg->addPropertyToType(tm,"character", "commonj.sdo","Character"); + mdg->addPropertyToType(tm,"short", "commonj.sdo","Short"); + mdg->addPropertyToType(tm,"long", "commonj.sdo","Integer"); + mdg->addPropertyToType(tm,"longlong", "commonj.sdo","Long"); + mdg->addPropertyToType(tm,"float", "commonj.sdo","Float"); + mdg->addPropertyToType(tm,"longdouble", "commonj.sdo","Double"); + mdg->addPropertyToType(tm,"date", "commonj.sdo","Date"); + // dead mdg->addPropertyToType(tm,"charptr", "commonj.sdo","Bytes"); + mdg->addPropertyToType(tm,"string", "commonj.sdo","String"); + mdg->addPropertyToType(tm,"bytes", "commonj.sdo","Bytes"); + + + cout << "Manager is sequenced?" << tm.isSequencedType() << endl; + + // create a few aliases + + mdg->setAlias("myspace","Company","TheFirm"); + mdg->setAlias("myspace","Company","departments","TheDepartments"); + mdg->setAlias("myspace","Company","TheBigFirm"); + mdg->setAlias("myspace","Company","TheLittleFirm"); + + const Type& tlf = mdg->getType("myspace","TheBigFirm"); + + cout << "I hope this says Company :" << tlf.getName() << endl; + + cout << "I hope this says 3 : " << tlf.getAliasCount() << endl; + + for (int ai = 0; ai < tlf.getAliasCount(); ai++) + { + cout << "AKA : " << tlf.getAlias(ai) << endl; + } + + // just for a laugh - how about finding the TheDepartments? + + + + + /* + * create an empty datagraph with a type system starting from + * company + */ + + /* + * + * start of dms getting datagraph + */ + + // Change summary test begins + mdg->addPropertyToType(tc,"csumm","commonj.sdo","ChangeSummary"); + // should log an error - but not fail + mdg->addPropertyToType(td,"csumm","commonj.sdo","ChangeSummary"); + + cout << "Manager is sequenced?" << tm.isSequencedType() << endl; + + cout << "BEFORE RESOLUTION" << endl; + printDataStructure(mdg); + + /* Now create some objects in the dg */ + +// DataObjectPtr dor; + + const Type& tcc = mdg->getType("myspace","Company"); + DataObjectPtr dor = mdg->create((Type&)tcc); + + cout << "AFTER RESOLUTION" << endl; + printDataStructure(mdg); + + cout << "Manager is sequenced?" << tm.isSequencedType() << endl; + + dor->setCString("substring","This is the sub string - its primitive, but not a string"); + + const char* subby = dor->getCString("substring"); + + cout << subby << endl; + + dor->setCString("name","acmecorp"); + const char* chnam = dor->getCString("name"); + cout << chnam << endl; + + dor->unset("name"); + + dor->setCString("name","acmecorp"); + + // Set up the two departments before logging starts + + DataObjectPtr dep1 = dor->createDataObject("departments"); + dep1->setCString("name","Developement"); + + DataObjectPtr dep2= dor->createDataObject("departments"); + dep2->setCString("name","Marketing"); + + // add a couple of floats to the floatlist + DataObjectList& dolist = dor->getList("floatlist"); + dolist.append((float)1.4); + dolist.append((float)1.5); + + //TODO - change summaries should live on the DataObject + // interface - can this be done? + + ChangeSummaryPtr cs = dor->getChangeSummary(); + cs->beginLogging(); + + const char* sname = dor->getCString("name"); + + cout << sname << endl; + + // This should put a created entry in the cs. + + // This should be equivalent to the alternative below......... + const Type& tcd = mdg->getType("myspace","Manager"); + DataObjectPtr pdg = mdg->create((Type&)tcd); + + // This set should put the entry into the change summary. + // both in the creations and in the changes. + dor->setDataObject("pdg",pdg); + + + // try getting the boolean as a string - should be defalted to false: + const char *bol; + try{ + bol = pdg->getCString("boolean"); + if (bol != 0) + { + cout << "Expected default boolean (false) : " << bol << endl; + } + else + { + cout << " is empty " << endl; + } + } + catch (SDOPropertyNotSetException) + { + cout << "WRONG handled notset exception " << endl; + } + + pdg->setBoolean("boolean", true); + bol = pdg->getCString("boolean"); + cout << "Expected boolean (true) : " << bol << endl; + + // and the widechars? + const char* wdc; + try { + wdc = pdg->getCString("string"); + if (wdc != 0) + { + cout << "Expected default string (0) : " << bol << endl; + } + else + { + cout << " is empty " << endl; + } + } + catch (SDOPropertyNotSetException) + { + cout << "WRONG handled notset exception" << endl; + } + + + // this should get a valid sequence.. + + SequencePtr sq = pdg->getSequence(); + + + // The alternative............................................. + // Here the create should put the entry into the change summary + //DataObject* pdg = dor->createDataObject("pdg"); + + // This should do nothing to the cs, as its in a created object + pdg->setCString("name","Jacques LePlace"); + + // This should modify the property, and add an item to the sequence. + sq->addCString("name", "Jacques LeWrongPlace"); + + + // The creation entry should be removed from the change summary + // The entry should no longer exist and the pointer is invalid + pdg->detach(); + + pdg = dor->getDataObject("pdg"); + + + cout << " A deleted data object should be zero: " << pdg << endl; + + pdg = mdg->create((Type&)tcd); + + // A new creation in the change summary + dor->setDataObject("pdg",pdg); + + // No modification as the object is created + pdg->setCString("name", "Mr Horace the snail"); + + sq = pdg->getSequence(); + + try { + // element 0 is the first setting - which we just deleted! + sq->setCStringValue(0,"Eric the half a bee"); + } + catch (SDOIndexOutOfRangeException) + { + // thats OK + sq->addCString("name","Eric the quarter bee"); + } + + + sq->addText(" - only a quarter was expected \r\n"); + + for (int ii=0;iisize();ii++) + { + cout << sq->getCStringValue(ii); + } + + try { + const char* n = pdg->getCString("name"); + cout << " Name from deleted item: " << n << endl; + } + catch (SDOPropertyNotFoundException e) + { + // thats ok + cout << "caught prop not found" << endl; + } + + + // This should put a change in the cs. + dor->setCString("name","mega-new-acmecorp"); + + + // At this point, we should know that pdg was empty and is now + // a created object. And that the old string for company name + // was "acmecorp" + + // cs->DebugPrint(); + + + /* Now set up the primitive type test on PDG */ + + pdg->setCString("string","Hello I am a string"); + pdg->setBoolean("boolean",true); + pdg->setByte("byte",23); + pdg->setCharacter("character",45); + pdg->setShort("short",34); + pdg->setLong("long", 56); + pdg->setDouble("longdouble",89.0); + pdg->setFloat("float",90.0); + pdg->setDate("date",(time_t)200); + + + pdg->setLong("longlong",0xFFFFFFFFFFFFFFFF); + + // try reading the longlong as a string + const char *lls = pdg->getCString("longlong"); + cout << "0xffffffffffffffff = : " << lls << endl; + + pdg->setLong("longlong",0x7FFFFFFFFFFFFFFF); + + lls = pdg->getCString("longlong"); + cout << "0x7fffffffffffffff = " << lls << endl; + + pdg->setLong("longlong",0x7FFFFFFF); + lls = pdg->getCString("longlong"); + cout << "0x7fffffff = " << lls << endl; + + pdg->setLong("longlong",0x80000000); + lls = pdg->getCString("longlong"); + cout << "0x80000000 = " << lls << endl; + + pdg->setLong("longlong",78); + + // pdg->setCharPtr("charptr","Hello I am a char star"); + + wchar_t* wide = new wchar_t[4]; + wide[0] = 'W'; + wide[1] = 'i'; + wide[2] = 'd'; + wide[3] = 'e'; + + pdg->setString("string",wide,4); + + // and as a string? + wdc = pdg->getCString("string"); + cout << " Expected Wide (fat chance) - got : " << wdc << endl; + + delete wide; + + char* thin = new char[4]; + thin[0] = 'T'; + thin[1] = 'h'; + thin[2] = 'i'; + thin[3] = 'n'; + + pdg->setBytes("bytes",thin,4); + + delete thin; + + + const char* ps = pdg->getCString("string"); + cout << "Expecting string, got " << ps << endl; + + bool pb = pdg->getBoolean("boolean"); + cout << "Expected bool true, got " << pb << endl; + + char pc = pdg->getByte("byte"); + cout << "Expected char 23, got " << pc << endl; + + wchar_t pw = pdg->getCharacter("character"); + cout << "expected wchar 45, got " << pw << endl; + + short pss = pdg->getShort("short"); + cout << "Expected short 34, got " << pss << endl; + + long pl = pdg->getLong("long"); + cout << "Expected long 56 , got " <getLong("longlong"); + cout << "Expected long long 78, got " << (long)pi << endl; + + long double ld = pdg->getDouble("longdouble"); + cout << "Expected long double 89, got " << ld << endl; + + float pf = pdg->getFloat("float"); + cout << "Expected float 90, got " << pf << endl; + + SDODate pt = pdg->getDate("date"); + cout << "Expected time_t 200, got " << pt.getTime() << endl; + + //const char * pcs = pdg->getCharPtr("charptr"); + //cout <<"Expected charptr, got " << pcs << endl; + + wchar_t* result; + // get the length to allocate: + unsigned int widelen = pdg->getString("string",0,0); + if (widelen > 0) { + result = new wchar_t[widelen]; + widelen = pdg->getString("string",result,widelen); + for ( i=0;i 0) { + thinresult = new char[thinlen]; + thinlen = pdg->getBytes("bytes",thinresult,thinlen); + for ( i=0;icreateDataObject("departments"); + dep3->setCString("name","Architecture"); + + // The second should do no logging in the change summary + + DataObjectPtr dep4= dor->createDataObject("departments"); + dep4->setCString("name","Pyrotechnics"); + + + // create another one using tha alias + DataObjectPtr dep5= dor->createDataObject("TheDepartments"); + dep5->setCString("name","WibbleSmodging"); + + DataObjectPtr emp1 = dep1->createDataObject("employees"); + emp1->setCString("name","Eric"); + + + DataObjectPtr emp2 = dep1->createDataObject("employees"); + emp2->setCString("name","Bill"); + + // now lets make eric employee of the month + dor->setDataObject("employee of the month",emp1); + + // no - actually it was bill + dor->setDataObject("employee of the month",emp2); + + + + // Now add to the list of floats, hopefully the two old + // values will get change summarised. + + dolist = dor->getList("floatlist"); + //float f = dolist[0]->getFloat(""); + float f = dolist.getFloat(0); + + cout << f; + + dolist.setFloat(0,(float)567.7); + + f = dolist.getFloat(0); + + cout << f; + + dolist.insert(0,(float)34.56); + + + + + // cs->DebugPrint(); + +// const char* ch = dor->getString("departments[1]/employees[2]/name"); + + DataObjectPtr ddd = dor->getDataObject("departments[1]/employees[2]"); + + const char* ch = ddd->getCString("name"); + + cout << "Are you Bill?:" << ch << endl; + + // just for a laugh - how about finding the TheDepartments? + + DataObjectPtr ddd2 = dor->getDataObject("TheDepartments[1]/employees[2]"); + + const char* ch2 = ddd2->getCString("name"); + + cout << "Are you still Bill?:" << ch2 << endl; + + + + DataObjectPtr dempofm = dor->getDataObject("employee of the month"); + + const char* chh = dempofm->getCString("name"); + + cout << "The employee of the month is " << chh << endl; + + // Suppose we delete bill - I wonder what happens? + + // doesnt work - why not??dor->unSet("departments[1]/employees[2]"); + DataObjectList& dlo = dor->getList("departments[1]/employees"); + DataObjectPtr fred = dlo.remove(1); + //delete fred; + + dempofm = dor->getDataObject("employee of the month"); + + cout << "Hopefully emp of month is now zero : " << dempofm << endl; + + /* "The client would create a data mediator and get graph which + would return the root data object " says colin*/ + + const char* boss = dor->getCString("pdg/name"); + + cout << boss << endl; + + DataObjectPtr mypdg = dor->getDataObject("pdg"); + + Type::Types t = mypdg->getTypeEnum(); + + if (t != Type::OtherTypes) { + cout << "MY pdg is not something!" << endl; + } + + const char* boss2 = mypdg->getCString("name"); + + cout << boss2 << endl; + + /* TODO1 ref or pointer to dol. + Manip done by methods of the + list, reflected directly in the dg + need methods to create /insert dataobjects in lists*/ + + + /* getPrimitiveArrayListVectorThingy() */ + + DataObjectList& deps = dor->getList("departments"); + + cout << "size of list " << deps.size() << endl; + + DataObjectPtr dout = deps[0]; + + dout->setCString("name","Research And Development"); + + const char* snew = dout->getCString("name"); + + cout << snew << endl; + + string snew2 = dor->getCString("departments[1 ] /name"); + + cout << snew2 << endl; + + for (int lx = 0; lx < deps.size(); lx++) + { + cout << "Department: " << deps[lx]->getCString("name") << endl; + } + + cs->endLogging(); + + + try { + // should fail - if localtype not setstd:: + dor->setCString("departments","department label"); + const char* slabel = dor->getCString("departments"); + cout << "String in list type:" << slabel << endl; + } + catch (SDORuntimeException e) + { + cout << "Normal expected exception in test case" << endl; + } + + try + { + // The exception for path is caught by the SDO library - perhaps we should + // pass it up? + const char* snew3 = dor->getCString(" ]awep50wi4,0qw9q]45]# q2345 -t -v3lt6o -56o 56=-o7nl ewv/;sdl f[vxddglh]px dfju/ g#k./jh#.k./"); + cout << snew3 << endl; + } + catch (SDOPropertyNotFoundException e) + { + cout << "Normal Invalid path exception" << endl; + } + + try + { + + // catch a and a property not found + const Property& pp = dor->getType().getProperty("notaproperty"); + } + catch (SDOPropertyNotFoundException e) + { + cout << "Normal SDOPropertyNotFound exception" << endl; + } + + } + + catch (SDORuntimeException e) + { + cout << e.getEClassName() << " in "; + cout << e.getFileName() << " at line "; + cout << e.getLineNumber() << endl; + cout << e.getFunctionName() << " "; + cout << e.getSeverity() << " "; + cout << e.getMessageText() << endl; + } + + + return 0; +} + +void sdotest::getproptest() +{ + // should be able to get a property by xpath... + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Company"); + mdg->addType("myspace","Department"); + // manager is a sequenced type... + mdg->addType("myspace","Manager", true, false); + mdg->addType("myspace","Employee"); + + + /* Now add the properties to the types...*/ + + const Type& tc = mdg->getType("myspace","Company"); + const Type& ts = mdg->getType("commonj.sdo","String"); + const Type& ti = mdg->getType("commonj.sdo","Integer"); + const Type& tf = mdg->getType("commonj.sdo","Float"); + const Type& tm = mdg->getType("myspace","Manager"); + const Type& td = mdg->getType("myspace","Department"); + const Type& te = mdg->getType("myspace","Employee"); + + mdg->addPropertyToType(tc,"name",ts); + + mdg->addPropertyToType(tc,"address",ts); + + mdg->addPropertyToType(tc,"departments", td,true); + + // add a reference to employee of the month + mdg->addPropertyToType(tc,"employee of the month", te, false, false, false); + + /* A list of floats */ + mdg->addPropertyToType(tc,"floatlist", tf,true); + mdg->addPropertyToType(tc,"director", tm); + + mdg->addPropertyToType(td,"name", ts); + mdg->addPropertyToType(td,"id", ti); + + mdg->addPropertyToType(td,"manager", tm); + mdg->addPropertyToType(tm,"name", ts); + + mdg->addPropertyToType(te,"name",ts); + mdg->addPropertyToType(td,"employees",te,true,false,true); + + //company/departments/employees. + // company - name, address, floatlist + // department name, id, manager + // employee name + + const Type& tcc = mdg->getType("myspace","Company"); + DataObjectPtr dor = mdg->create((Type&)tcc); + + try + { + + const Property& p = dor->getType().getProperty("name"); + cout << "Companys name property is:" << p.getName() << endl; + + const Property& p1 = dor->getType().getProperty("departments"); + cout << "Companys dept property is:" << p1.getName() << endl; + + // now try some xpaths... + + const Property& p2 = dor->getType().getProperty("departments/employees"); + cout << "Departments empl property is:" << p2.getName() << endl; + + const Property& p3 = dor->getType().getProperty("departments[456]/employees[123]"); + cout << "Departments empl property is:" << p3.getName() << endl; + + const Property& p4 = dor->getType().getProperty("departments.34/employees.123/name"); + cout << "Employees name property is:" << p4.getName() << endl; + + } + catch (SDORuntimeException e) + { + cout <<"Exceptions - xpath didnt work" << endl; + } + try { + cout << "before p5" << endl; + const Property& p5 = dor->getType().getProperty("departments.34/[]/name"); + cout << "after p5" << endl; + cout << "Employees name property is:" << p5.getName() << endl; + cout << "Expected error - didnt get one" << endl; + } + catch (SDORuntimeException e) + { + } + + try { + const Property& p6 = dor->getType().getProperty("deptartments"); + cout << "Deptartments property is:" << p6.getName() << endl; + cout << "Expected error - didnt get one" << endl; + } + catch (SDORuntimeException e) + { + } + + try { + const Property& p7 = dor->getType().getProperty("../company"); + cout << "Company property is:" << p7.getName() << endl; + cout << "Expected error - didnt get one" << endl; + } + catch (SDORuntimeException e) + { + } +} + +void sdotest::querytest() +{ + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Company"); + mdg->addType("myspace","Department"); + // manager is a sequenced type... + mdg->addType("myspace","Manager", true, false); + 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& tbyte= mdg->getType("commonj.sdo","Byte"); + const Type& tchar= mdg->getType("commonj.sdo","Character"); + const Type& tint= mdg->getType("commonj.sdo","Integer"); + const Type& tlong= mdg->getType("commonj.sdo","Long"); + const Type& tfloat= mdg->getType("commonj.sdo","Float"); + const Type& tbytes = mdg->getType("commonj.sdo","Bytes"); + const Type& tdouble= mdg->getType("commonj.sdo","Double"); + + const Type& tc = mdg->getType("myspace","Company"); + const Type& tm = mdg->getType("myspace","Manager"); + const Type& td = mdg->getType("myspace","Department"); + const Type& te = mdg->getType("myspace","Employee"); + + mdg->addPropertyToType(tc,"name",tstring); + + mdg->addPropertyToType(tc,"departments", td,true); + + // add a reference to employee of the month + mdg->addPropertyToType(tc,"employee of the month", te, false, false, false); + + mdg->addPropertyToType(tc,"director", tm); + + mdg->addPropertyToType(td,"name", tstring); + + mdg->addPropertyToType(td,"manager", tm); + + mdg->addPropertyToType(tm,"name", tstring); + + + mdg->addPropertyToType(td,"employees",te,true,false,true); + + mdg->addPropertyToType(te,"bool",tbool); + mdg->addPropertyToType(te,"byte",tbyte); + mdg->addPropertyToType(te,"char",tchar); + mdg->addPropertyToType(te,"int",tint); + mdg->addPropertyToType(te,"float",tfloat); + mdg->addPropertyToType(te,"long",tlong); + mdg->addPropertyToType(te,"double",tdouble); + mdg->addPropertyToType(te,"bytes",tbytes); + mdg->addPropertyToType(te,"string",tstring); + mdg->addPropertyToType(te,"name",tstring); + + //company/departments/employees. + // company - name, address, floatlist + // department name, id, manager + // employee name + + const Type& tcc = mdg->getType("myspace","Company"); + DataObjectPtr dor = mdg->create((Type&)tcc); + + DataObjectPtr dept = dor->createDataObject("departments"); + + DataObjectPtr emp1 = dept->createDataObject("employees"); + DataObjectPtr emp2 = dept->createDataObject("employees"); + DataObjectPtr emp3 = dept->createDataObject("employees"); + + emp1->setCString("name","Employee1"); + emp2->setCString("name","Employee2"); + emp3->setCString("name","Employee3"); + + + emp1->setBoolean("bool",true); + emp1->setByte("byte",'1'); + emp1->setCharacter("char",'1'); + emp1->setInteger("int",1); + emp1->setFloat("float",1.0); + emp1->setLong("long",1); + emp1->setDouble("double",1.0); + + char* bytes = new char[6]; + bytes[0] = 'h'; + bytes[1] = 'e'; + bytes[2] = 'l'; + bytes[3] = 'l'; + bytes[4] = 'o'; + + emp1->setBytes("bytes",bytes,5); + + wchar_t* mbytes = new wchar_t[6]; + mbytes[0] = 'h'; + mbytes[1] = 'e'; + mbytes[2] = 'l'; + mbytes[3] = 'l'; + mbytes[4] = 'o'; + + emp1->setString("string",mbytes,5); + + + emp2->setBoolean("bool",true); + emp2->setByte("byte",'2'); + emp2->setCharacter("char",'2'); + emp2->setInteger("int",200); + emp2->setFloat("float",200.0); + emp2->setLong("long",200); + emp2->setDouble("double",200.0); + + char* bytes2 = new char[6]; + bytes2[0] = 'h'; + bytes2[1] = 'e'; + bytes2[2] = 'l'; + bytes2[3] = 'p'; + bytes2[4] = '!'; + + emp2->setBytes("bytes",bytes2,5); + + wchar_t* mbytes2 = new wchar_t[6]; + mbytes2[0] = 'h'; + mbytes2[1] = 'e'; + mbytes2[2] = 'l'; + mbytes2[3] = 'p'; + mbytes2[4] = '!'; + + emp2->setString("string",mbytes2,5); + + emp3->setBoolean("bool",false); + emp3->setByte("byte",'4'); + emp3->setCharacter("char",'4'); + emp3->setInteger("int",400); + emp3->setFloat("float",400.0); + emp3->setLong("long",400); + emp3->setDouble("double",400.0); + + char* bytes3 = new char[6]; + bytes3[0] = 'w'; + bytes3[1] = 'o'; + bytes3[2] = 'm'; + bytes3[3] = 'p'; + bytes3[4] = '!'; + + emp3->setBytes("bytes",bytes3,5); + + wchar_t* mbytes3 = new wchar_t[6]; + mbytes3[0] = 'w'; + mbytes3[1] = 'o'; + mbytes3[2] = 'm'; + mbytes3[3] = 'p'; + mbytes3[4] = '!'; + + emp3->setString("string",mbytes3,5); + + try { + DataObjectPtr dob1 = dor->getDataObject("departments[1]/employees[bool=false]"); + cout << "Expected employee3: got " << dob1->getCString("name") << endl; + + DataObjectPtr dob2 = dor->getDataObject("departments[1]/employees[bool=true]"); + cout << "Expected employee1: got " << dob2->getCString("name") << endl; + + DataObjectPtr dob3 = dor->getDataObject("departments[1]/employees[byte=2]"); + cout << "Expected employee2: got " << dob3->getCString("name") << endl; + + DataObjectPtr dob4 = dor->getDataObject("departments[1]/employees[byte=1]"); + cout << "Expected employee1: got " << dob4->getCString("name") << endl; + + DataObjectPtr dob5 = dor->getDataObject("departments[1]/employees[bytes=hello]"); + cout << "Expected employee1: got " << dob5->getCString("name") << endl; + + DataObjectPtr dob5a = dor->getDataObject("departments[1]/employees[bytes=\"hello\"]"); + cout << "Expected employee1: got " << dob5a->getCString("name") << endl; + + DataObjectPtr dob5b = dor->getDataObject("departments[1]/employees[bytes='hello']"); + cout << "Expected employee1: got " << dob5b->getCString("name") << endl; + + DataObjectPtr dob6 = dor->getDataObject("departments[1]/employees[bytes=womp!]"); + cout << "Expected employee3: got " << dob6->getCString("name") << endl; + + DataObjectPtr dob7 = dor->getDataObject("departments[1]/employees[double=200.0]"); + cout << "Expected employee2: got " << dob7->getCString("name") << endl; + + DataObjectPtr dob8 = dor->getDataObject("departments[1]/employees[string=help!]"); + cout << "Expected employee2: got " << dob8->getCString("name") << endl; + + DataObjectPtr dob8a = dor->getDataObject("departments[1]/employees[string=\"help!\"]"); + cout << "Expected employee2: got " << dob8a->getCString("name") << endl; + + DataObjectPtr dob8b = dor->getDataObject("departments[1]/employees[string= 'help!']"); + cout << "Expected employee2: got " << dob8b->getCString("name") << endl; + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << " in "; + cout << e.getFileName() << " at line "; + cout << e.getLineNumber() << endl; + cout << e.getFunctionName() << " "; + cout << e.getMessageText() << endl; + } + try { + DataObjectPtr dob1 = dor->getDataObject("departments[1]/employees[bool=doughnut]"); + cout << "Expected to fail!" << endl; + } + catch (SDORuntimeException e) + { + } + + try { + DataObjectPtr dob1 = dor->getDataObject("departments[4]/employees[bool=true]"); + cout << "Expected to fail!" << endl; + } + catch (SDORuntimeException e) + { + } + + try { + DataObjectPtr dob1 = dor->getDataObject("departments[1]/employees[bytes=whoomp!]"); + cout << "Expected to fail!" << endl; + } + catch (SDORuntimeException e) + { + } + + try { + DataObjectPtr dob1 = dor->getDataObject("departments[1]/blmployees[bool=true]"); + cout << "Expected to fail!" << endl; + } + catch (SDORuntimeException e) + { + } + + try { + DataObjectPtr dob1 = dor->getDataObject("departments[teapot]/employees[bool=true]"); + cout << "Expected to fail!" << endl; + } + + catch (SDORuntimeException e) + { + } + + delete bytes; + delete bytes2; + delete bytes3; + delete mbytes; + delete mbytes2; + delete mbytes3; +} + +void sdotest::setmany() +{ + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","School"); + mdg->addType("myspace","Class"); + mdg->addType("myspace","Teacher"); + mdg->addType("myspace","Child"); + mdg->addType("myspace","Address"); + + /* Now add the properties to the types...*/ + + + const Type& tstring = mdg->getType("commonj.sdo","String"); + const Type& tint = mdg->getType("commonj.sdo","Integer"); + const Type& ts = mdg->getType("myspace","School"); + const Type& tc = mdg->getType("myspace","Class"); + const Type& tch = mdg->getType("myspace","Child"); + const Type& tt = mdg->getType("myspace","Teacher"); + const Type& ta = mdg->getType("myspace","Address"); + + mdg->addPropertyToType(tc,"name",tstring); + mdg->addPropertyToType(ts,"name",tstring); + mdg->addPropertyToType(tch,"name",tstring); + mdg->addPropertyToType(tt,"name",tstring); + + mdg->addPropertyToType(tc,"number",tint); + mdg->addPropertyToType(ts,"number",tint); + mdg->addPropertyToType(tch,"number",tint); + mdg->addPropertyToType(tt,"number",tint); + + mdg->addPropertyToType(ts,"classes", tc,true); + mdg->addPropertyToType(tc,"children", tch,true); + mdg->addPropertyToType(tc,"teacher", tt); + + mdg->addPropertyToType(tch,"address", ta); + mdg->addPropertyToType(ts,"address", ta); + mdg->addPropertyToType(tt,"address", ta); + + mdg->addPropertyToType(ta,"lines", tstring, true); + + DataObjectPtr school = mdg->create((Type&)ts); + + DataObjectPtr class1 = school->createDataObject("classes"); + DataObjectPtr class2 = school->createDataObject("classes"); + + DataObjectPtr teach1 = class1->createDataObject("teacher"); + + DataObjectPtr kid1 = class1->createDataObject("children"); + DataObjectPtr kid2 = class1->createDataObject("children"); + DataObjectPtr kid3 = class1->createDataObject("children"); + + DataObjectPtr teach2 = class2->createDataObject("teacher"); + + DataObjectPtr kid4 = class2->createDataObject("children"); + DataObjectPtr kid5 = class2->createDataObject("children"); + DataObjectPtr kid6 = class2->createDataObject("children"); + + school->setCString("name","King Norberts"); + school->createDataObject("address"); + school->setCString("address/lines.0","The Place"); + school->setCString("address/lines.1","1 The Avenue"); + school->setCString("address/lines.2","Murchester"); + school->setCString("address/lines.3","England"); + + class1->setCString("name","Primary"); + class2->setCString("name","Secondary"); + + class1->setCString("teacher/name","Mr Philbert Chloroform"); + class2->setCString("teacher/name","Mr Brian Onastick"); + + kid1->setCString("name", "Witherspoon Jnr"); + kid2->setCString("name", "Snape"); + kid3->setCString("name", "Thannet"); + kid4->setCString("name", "Grimbling"); + kid5->setCString("name", "Snagget Minor"); + kid6->setCString("name", "Van Den Bograt"); + + kid1->setInteger("number", 1); + kid2->setInteger("number", 2); + kid3->setInteger("number", 3); + kid4->setInteger("number", 4); + kid5->setInteger("number", 5); + kid6->setInteger("number", 6); + + cout <<" School :" << school->getCString("name") << endl; + + cout <<" Address1:" << school->getCString("address/lines.0") << endl; + cout <<" Address2:" << school->getCString("address/lines.1") << endl; + cout <<" Address3:" << school->getCString("address/lines.2") << endl; + cout <<" Address4:" << school->getCString("address/lines.3") << endl; + + cout <<" Class :" << class1->getCString("name") << endl; + cout <<" Teacher :" << class1->getCString("teacher/name") << endl; + cout <<" Pupil1 :" << class1->getCString("children.0/name") << endl; + cout <<" Pupil2 :" << class1->getCString("children[number=2]/name") << endl; + cout <<" Pupil3 :" << class1->getCString("children[3]/name") << endl; + + cout <<" Class :" << class2->getCString("name") << endl; + cout <<" Teacher :" << class2->getCString("teacher/name") << endl; + cout <<" Pupil1 :" << class2->getCString("children[1]/name") << endl; + cout <<" Pupil2 :" << class2->getCString("children.1/name") << endl; + cout <<" Pupil3 :" << class2->getCString("children[number=6]/name") << endl; + + try { + cout <<" Pupil3 :" << class2->getCString("children[4]/name") << endl; + cout << "That should have failed with a path not found" << endl; + } + catch (SDOPathNotFoundException e) + { + + } + if (XpathHelper::isIndexed("abc[2]")) { + cout << "Indexed as expected" << endl; + } + else { + cout << "Bad - not indexed" << endl; + } + + if (XpathHelper::isIndexed("wibble/[2]")) { + cout << "Indexed as expected" << endl; + } + else { + cout << "Bad - not indexed" << endl; + } + + if (XpathHelper::isIndexed("wibble/wobble[2]")) { + cout << "Indexed as expected" << endl; + } + else { + cout << "Bad - not indexed" << endl; + } + + if (XpathHelper::isIndexed("wibble/wobble.2")) { + cout << "Indexed as expected" << endl; + } + else { + cout << "Bad - not indexed" << endl; + } + + if (XpathHelper::isIndexed("wibble/wobble.2")) { + cout << "Indexed as expected" << endl; + } + else { + cout << "Bad - not indexed" << endl; + } + + try { + cout <<" Address5 :" << school->getCString("address/lines[5]") << endl; + cout << "Address5 should have failed with an index out of range" << endl; + } + catch (SDOIndexOutOfRangeException e) + { + + } + + try { + school->setCString("address/lines[6]","PostCode"); + cout << "Debatable behaviour - appended" << endl; + cout <<" Address4 :" << school->getCString("address/lines[5]") << endl; + } + catch (SDORuntimeException e) + { + cout <<"Unexpected exception"<< endl; + } + + +} + +void sdotest::carotest2() +{ + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","root"); + + mdg->addPropertyToType("myspace","root","cs", + "commonj.sdo","ChangeSummary", false, false, false); + + const Type& troot = mdg->getType("myspace","root"); + + DataObjectPtr root = mdg->create((Type&)troot); + +} + +void sdotest::adddeletetest() +{ + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","root"); + mdg->addType("myspace","bill"); + + mdg->addPropertyToType("myspace","root","cs", + "commonj.sdo","ChangeSummary", false, false, false); + + mdg->addPropertyToType("myspace","root","bill", + "myspace","bill"); + + const Type& troot = mdg->getType("myspace","root"); + + DataObjectPtr root = mdg->create((Type&)troot); + + ChangeSummaryPtr cs = root->getChangeSummary(); + cs->beginLogging(); + DataObjectPtr dob = root->createDataObject("bill"); + root->unset("bill"); + +} + +void sdotest::carotest() +{ + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","root"); + mdg->addType("myspace","company"); + mdg->addType("myspace","department"); + mdg->addType("myspace","employee"); + + mdg->addPropertyToType("myspace","root","cs", + "commonj.sdo","ChangeSummary", false, false, false); + + mdg->addPropertyToType("myspace","company","name", + "commonj.sdo","String", false, false, false); + + + mdg->addPropertyToType("myspace","department","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","employee","name", + "commonj.sdo","String", false, false, false); + + + mdg->addPropertyToType("myspace","root","companies", + "myspace","company", true, false, true); + + mdg->addPropertyToType("myspace","company","departments", + "myspace","department", true, false, true); + + mdg->addPropertyToType("myspace","company","eotm", + "myspace","employee", false, false, false); + + mdg->addPropertyToType("myspace","department","employees", + "myspace","employee", true, false, true); + + const Type& troot = mdg->getType("myspace","root"); + + + DataObjectPtr root = mdg->create((Type&)troot); + ChangeSummaryPtr cs = root->getChangeSummary(); + + cs->beginLogging(); + + DataObjectPtr comp = root->createDataObject("companies"); + + comp->setCString("name","Acme"); + + cout << "name of the company is " << comp->getCString("name") << endl; + try { + root->unset("companies[0]"); + } + catch (SDOUnsupportedOperationException e) + { + cout << "Normal unsupported operation for unset of many valued item" << endl; + } +} + + +void sdotest::bug2() +{ + + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","root"); + mdg->addType("myspace","company"); + + mdg->addPropertyToType("myspace","root","cs", + "commonj.sdo","ChangeSummary", false, false, false); + + mdg->addPropertyToType("myspace","company","name", + "commonj.sdo","String", false, false, false); + + + mdg->addPropertyToType("myspace","root","companies", + "myspace","company", true, false, true); + + + const Type& troot = mdg->getType("myspace","root"); + + + DataObjectPtr root = mdg->create((Type&)troot); + + ChangeSummaryPtr cs = root->getChangeSummary(); + + cs->beginLogging(); + + DataObjectPtr comp = root->createDataObject("companies"); + + comp->setCString("name","Acme"); + + dumpproperties(root); + + DataObjectList& dl = root->getList("companies"); + dl.remove(0); + + dumpproperties(root); + + + cout << "Change summary should have no entries..." << endl; + + dumpchangesummary(cs); + + dumpproperties(root); + + cout << "Change summary should have no entries..." << endl; + + dumpchangesummary(cs); + + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << " in "; + cout << e.getFileName() << " at line "; + cout << e.getLineNumber() << endl; + cout << e.getFunctionName() << " "; + cout << e.getMessageText() << endl; + } +} + + +void sdotest::dumpproperties(DataObjectPtr root) +{ + PropertyList pl = root->getInstanceProperties(); + for (int i=0;igetList(pl[i]); + if (pl[i].getType().isDataType()) + { + char buf[10]; + for (int j=0;jgetCString(pl[i]) << endl; + } + else + { + cout << "Object Property:" << pl[i].getName() << endl; + DataObjectPtr d = root->getDataObject(pl[i]); + if (d != 0) + { + dumpproperties(d); + } + else + { + cout << " Value was not set or null" << endl; + } + cout << "End of Object Property " << pl[i].getName() << endl; + } + } + } +} + + +void sdotest::datetest() +{ + + try { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","root"); + mdg->addType("myspace","company"); + + mdg->addPropertyToType("myspace","root","cs", + "commonj.sdo","ChangeSummary", false, false, false); + + mdg->addPropertyToType("myspace","company","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","company","startupdate", + "commonj.sdo","Date", false, false, false); + + mdg->addPropertyToType("myspace","company","reviewdates", + "commonj.sdo","Date", true, false, false); + + + mdg->addPropertyToType("myspace","root","company", + "myspace","company", false, false, true); + + + + const Type& troot = mdg->getType("myspace","root"); + + + DataObjectPtr root = mdg->create((Type&)troot); + ChangeSummaryPtr cs = root->getChangeSummary(); + + cs->beginLogging(); + + DataObjectPtr comp = root->createDataObject("company"); + + + comp->setCString("name","DateTest"); + + cout << "name of the company is " << comp->getCString("name") << endl; + + // cannot get undefaulted properties + //cout << "unset start of the company is " << comp->getDate("startupdate").getTime() << endl; + + comp->setDate("startupdate",SDODate( 1000 )); + + cout << "set start of the company is " << comp->getDate("startupdate").getTime() << endl; + + DataObjectList& dol = comp->getList("reviewdates"); + + + dol.append(SDODate(2000)); + dol.append(SDODate(4000)); + + for (int i=0;i < dol.size(); i++) + { + cout << "Review number:" << i << " was:" << dol.getDate(i).getTime() << endl; + cout << "Formatted:" << i << " was:" << dol.getDate(i).ascTime() << endl; + } + + cs->endLogging(); + } + + catch (SDORuntimeException e) + { + cout << e.getEClassName() << " in "; + cout << e.getFileName() << " at line "; + cout << e.getLineNumber() << endl; + cout << e.getFunctionName() << " "; + cout << e.getMessageText() << endl; + } + +} + +void sdotest::matttest1() +{ + + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","root"); + mdg->addType("myspace","company"); + mdg->addType("myspace","department"); + mdg->addType("myspace","employee"); + + mdg->addPropertyToType("myspace","root","cs", + "commonj.sdo","ChangeSummary", false, false, false); + + mdg->addPropertyToType("myspace","company","name", + "commonj.sdo","String", false, false, false); + + + mdg->addPropertyToType("myspace","department","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","employee","name", + "commonj.sdo","String", false, false, false); + + + mdg->addPropertyToType("myspace","root","companies", + "myspace","company", true, false, true); + + mdg->addPropertyToType("myspace","company","departments", + "myspace","department", true, false, true); + + mdg->addPropertyToType("myspace","company","eotm", + "myspace","employee", false, false, false); + + mdg->addPropertyToType("myspace","department","employees", + "myspace","employee", true, false, true); + + const Type& troot = mdg->getType("myspace","root"); + + + DataObjectPtr root = mdg->create((Type&)troot); + + DataObjectPtr comp = root->createDataObject("companies"); + + comp->setCString("name","Acme"); + + DataObjectPtr dept1 = comp->createDataObject("departments"); + + dept1->setCString("name","Shoe"); + + DataObjectPtr dept2 = comp->createDataObject("departments"); + + dept2->setCString("name","IT"); + + DataObjectPtr sue = dept1->createDataObject("employees"); + + sue->setCString("name","Sue"); + + DataObjectPtr billy = dept2->createDataObject("employees"); + + billy->setCString("name","Billy"); + + // Want to swap Sue and Billy so, while holding them in variables, should be + //able to unset from department then reinsert + + // method 1 - clear the lists... + dept1->unset("employees"); + dept2->unset("employees"); + + DataObjectPtr cont = billy->getContainer(); + + if (cont != 0) + { + cout << "Container of Billy should be zero, but is :" << cont->getCString("name") << endl; + } + else { + cout << "OK, - Billy is not contained." << endl; + } + + DataObjectList& li1 = dept1->getList("employees"); + DataObjectList& li2 = dept2->getList("employees"); + li1.append(billy); + li2.append(sue); + + DataObjectPtr cont2 = billy->getContainer(); + + if (cont2 != 0) + { + cout << "Container of Billy should be dept1, and is :" << cont2->getCString("name") << endl; + } + else { + cout << "Problem - Billy is not contained." << endl; + } + + li1.remove(0); + li2.remove(0); + + DataObjectPtr cont3 = billy->getContainer(); + + if (cont3 != 0) + { + cout << "Container of Billy should be zero, but is :" << cont3->getCString("name") << endl; + } + else { + cout << "OK, - Billy is not contained." << endl; + } + + + li1.append(sue); + li2.append(billy); + + DataObjectPtr cont4 = billy->getContainer(); + + if (cont4 != 0) + { + cout << "Container of Billy should be dept2, and is :" << cont4->getCString("name") << endl; + } + else { + cout << "Problem - Billy is not contained." << endl; + } + + } + catch (SDORuntimeException e) + { + cout << e.getEClassName() << " in "; + cout << e.getFileName() << " at line "; + cout << e.getLineNumber() << endl; + cout << e.getFunctionName() << " "; + cout << e.getMessageText() << endl; + } +} + +void sdotest::carotest3() +{ + // sequence new APIs + // data object list, new getLength(unsigned int) + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + // company is sequenced. + mdg->addType("myspace","Company",true,false); + + mdg->addType("myspace","Department",true,false); + // string is many + + mdg->addPropertyToType("myspace","Company","string","commonj.sdo","String", + true); + + mdg->addPropertyToType("myspace","Company","departments","myspace","Department", + true); + + mdg->addPropertyToType("myspace","Company","strings","commonj.sdo","String", + true); + + mdg->addPropertyToType("myspace","Company","integers","commonj.sdo","Integer", + true); + + + mdg->addPropertyToType("myspace","Department","name","commonj.sdo","String"); + + + const Type& tcc = mdg->getType("myspace","Company"); + + DataObjectPtr dor = mdg->create(tcc); + const Property& sprop = dor->getType().getProperty("string"); + + SequencePtr sptr = dor->getSequence(); + + printseq(sptr); + + sptr->addCString(sprop,"I am Item 1 of string"); + + printseq(sptr); + + sptr->addText("I am the first free text"); + + printseq(sptr); + + sptr->addCString(sprop,"I am Item 2 of string"); + + printseq(sptr); + + sptr->setText(1,"I am free text which has been modified"); + + printseq(sptr); + + DataObjectPtr dep1 = dor->createDataObject("departments"); + + printseq(sptr); + + dep1->setCString("name","department1"); + + printseq(sptr); + + DataObjectList& dol = dor->getList("departments"); + + unsigned int ii = dol.getLength(0); + + cout << "Length of a data object should be zero:" << ii << endl; + + DataObjectList& strl = dor->getList("strings"); + + wchar_t * buf = new wchar_t[5]; + buf[0] = 'a'; + buf[1] = 'b'; + buf[2] = 'c'; + buf[3] = 'd'; + buf[4] = 'e'; + + strl.append(buf,1); + strl.append(buf,2); + strl.append(buf,3); + strl.append(buf,4); + strl.append(buf,5); + + cout << "Element zero, length 1: " << strl.getLength(0) << endl; + cout << "Element one, length 2: " << strl.getLength(1) << endl; + cout << "Element two, length 3: " << strl.getLength(2) << endl; + cout << "Element three,length 4: " << strl.getLength(3) << endl; + cout << "Element four, length 5: " << strl.getLength(4) << endl; + + try { + cout << "Element five doesnt exist: " << strl.getLength(5); + } + catch (SDOIndexOutOfRangeException e) + { + cout << "Normal out of range exception in test" << endl; + } + + DataObjectList& numl = dor->getList("integers"); + + try { + cout << "On an empty list? " << numl.getLength(0); + } + catch (SDOIndexOutOfRangeException e) + { + cout << "Normal out of range exception in test" << endl; + } +} + + +int main (int argc, char** argv) +{ + Logger::setLogging(20); + + sdotest::b47293(); + + + sdotest::propdefaulttest(); + sdotest::graham5(); + sdotest::graham4(); + + sdotest::detachtest(); + sdotest::includetest(); + sdotest::testLoad(); + sdotest::leak(); + sdotest::twolists(); + sdotest::b46633(); + + sdotest::testUtil(); + + sdotest::clonetest(); + + sdotest::b46693(); + Logger::setLogging(0); +// sdotest::b46734(); + sdotest::notfound(); + sdotest::testErrors(); + + sdotest::b46634(); + sdotest::loadManyOpen(); + + sdotest::doctest(); + sdotest::b46617b(); + sdotest::b46617(); + sdotest::b46613(); + + sdotest::graham3(); + sdotest::graham1(); + sdotest::graham2(); + + + sdotest::merle1(); + sdotest::loadOpenNS(); + + sdotest::saveOpen(); + sdotest::loadOpen(); + sdotest::testui(); + sdotest::testOpen(); + sdotest::testSCA(); + sdotest::testabstract(); + + sdotest::testsubsload(); + sdotest::testsubs(); + sdotest::bug45933(); + sdotest::setnull(); + sdotest::bug2(); + sdotest::cssave2(); + sdotest::csload2(); + sdotest::cssave(); + sdotest::csload(); + sdotest::eqhelpertest(); + sdotest::cohelpertest(); + sdotest::datetest(); + sdotest::carotest3(); + sdotest::matttest1(); + sdotest::adddeletetest(); + sdotest::carotest2(); + sdotest::carotest(); + sdotest::setmany(); + sdotest::noncontest(); + sdotest::versiontest(); + sdotest::defaulttest(); + sdotest::nulltest(); + sdotest::usertest(); + sdotest::querytest(); + sdotest::getproptest(); + sdotest::rcptest(); + sdotest::seqtest(); + sdotest::changesummarytest(); + sdotest::conversiontest(); + sdotest::boolbug(); + sdotest::scope1(); + sdotest::scope2(); + sdotest::scope3(); + return sdotest::main(argc, argv); + /* All objects freed ? */ +return 0; +} + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.h b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.h new file mode 100644 index 0000000000..6f1b63de1b --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.h @@ -0,0 +1,123 @@ +/* + * + * 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:31 $ */ + +#include "commonj/sdo/SDO.h" +using namespace commonj::sdo; + +class sdotest { + public: + + + static void changeSummaryHeader(ChangeSummaryPtr cs); + static void changeSummaryFooter(); + static void changeSummaryChange(int level, ChangeSummaryPtr cs, DataObjectPtr dob); + static void changeSummaryDeletedObject(int indent, const char* name, ChangeSummaryPtr cs, DataObjectPtr dob); + static void changeSummaryElements(int indent, ChangeSummaryPtr cs, DataObjectPtr dob); + static void changeSummarySetting(Setting& s); + static bool changeSummaryAttributes(ChangeSummaryPtr cs, DataObjectPtr dol); + + static void b47293(); + static void propdefaulttest(); + static void showdefault(const Type& tm); + static void graham5(); + static void graham4(); + static void leak(); + static void twolists(); + static void printset(ChangeSummaryPtr cs); + static void detachtest(); + static void includetest(); + static void testLoad(); + static void b46633(); + static void clonetest(); + static void testUtil(); + static void testErrors(); + static void b46734(); + static void b46693(); + static void b46634(); + static void b46613(); + static void b46617(); + static void b46617b(); + static void doctest(); + static void notfound(); + + + static void serializeChangeSummary(ChangeSummaryPtr cs); + static void cssave(); + static void csload(); + static void cssave2(); + static void csload2(); + static void bug2(); + static void setnull(); + static void bug45933(); + static void testsubsload(); + static void testabstract(); + static void testsubs(); + static void testSCA(); + static void testOpen(); + static void saveOpen(); + static void loadOpen(); + static void testui(); + static void merle1(); + static void graham1(); + static void graham2(); + static void graham3(); + static void loadManyOpen(); + static void loadOpenNS(); + + + static void eqhelpertest(); + static void cohelpertest(); + static void datetest(); + static void matttest1(); + static void adddeletetest(); + static void carotest3(); + static void carotest2(); + static void carotest(); + static void setmany(); + static void noncontest(); + static void versiontest(); + static void defaulttest(); + static void querytest(); + static void getproptest(); + static void nulltest(); + static void usertest(); + static void rcptest(); + static void boolbug(); + static void scope1(); + static void scope2(); + static void scope3(); + static void conversiontest(); + static void changesummarytest(); + static void scenario1(); + static void scenario2(); + static void scenario3(); + static void scenario4(); + static void scenario5(); + static void printseq(SequencePtr sptr); + static void seqtest(); + static void printDataObject(DataObjectPtr dol); + static void printValue(DataObjectPtr dob, const Property& prop); + static void printList(DataObjectPtr dob, const Property& prop); + static void printOldValues(ChangeSummaryPtr cs, DataObjectPtr dob); + static void dumpchangesummary(ChangeSummaryPtr cs); + static void dumpproperties(DataObjectPtr root); + static void testGetters(DataObjectPtr dor); + static void testGetter(DataObjectPtr dor, char* str); + static int main(int argc, char** argv); +}; \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest2.cpp b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest2.cpp new file mode 100644 index 0000000000..9f547af4eb --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest2.cpp @@ -0,0 +1,3937 @@ +/* + * + * 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:31 $ */ + +#include + +#pragma warning(disable:4786) + +#include +using namespace std; + +// #include "TypeImpl.h" + +#include "sdotest.h" + + + +using namespace commonj::sdo; + +void sdotest::eqhelpertest() +{ + + // copy and equality helpers + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Assembly"); + mdg->addType("myspace","SubAssembly"); + mdg->addType("myspace","Part"); + + /* Now add the properties to the types...*/ + + + const Type& tstring = mdg->getType("commonj.sdo","String"); + const Type& tint = mdg->getType("commonj.sdo","Integer"); + const Type& tassy = mdg->getType("myspace","Assembly"); + const Type& tsubassy = mdg->getType("myspace","SubAssembly"); + const Type& tpart = mdg->getType("myspace","Part"); + + + mdg->addPropertyToType(tassy,"name",tstring); + mdg->addPropertyToType(tsubassy,"name",tstring); + mdg->addPropertyToType(tpart,"name",tstring); + + mdg->addPropertyToType(tassy,"number",tint); + mdg->addPropertyToType(tsubassy,"number",tint); + mdg->addPropertyToType(tpart,"number",tint); + + mdg->addPropertyToType(tassy,"subassemblies", tsubassy,true); + mdg->addPropertyToType(tsubassy,"parts", tpart,true); + + + // assy 1 + + DataObjectPtr assy1 = mdg->create((Type&)tassy); + + DataObjectPtr subassy1 = assy1->createDataObject("subassemblies"); + DataObjectPtr subassy2 = assy1->createDataObject("subassemblies"); + + DataObjectPtr part1 = subassy1->createDataObject("parts"); + DataObjectPtr part2 = subassy1->createDataObject("parts"); + DataObjectPtr part3 = subassy1->createDataObject("parts"); + + DataObjectPtr part4 = subassy2->createDataObject("parts"); + DataObjectPtr part5 = subassy2->createDataObject("parts"); + DataObjectPtr part6 = subassy2->createDataObject("parts"); + + + assy1->setCString("name","MicroFrame"); + assy1->setInteger("number",32768); + + subassy1->setCString("name","Legs"); + subassy2->setCString("name","Body"); + subassy1->setInteger("number",1); + subassy2->setInteger("number",2); + + part1->setCString("name","Leg1"); + part2->setCString("name","Leg2"); + part3->setCString("name","Leg3"); + part1->setInteger("number",10001); + part2->setInteger("number",10002); + part3->setInteger("number",10003); + + + part4->setCString("name","MainStrut"); + part5->setCString("name","Brace1"); + part6->setCString("name","Brace2"); + part4->setInteger("number",20001); + part5->setInteger("number",20002); + part6->setInteger("number",20003); + + // assy2 - shallow equal to assy, but not deep equal + + DataObjectPtr assy2 = mdg->create((Type&)tassy); + + DataObjectPtr subassy3 = assy2->createDataObject("subassemblies"); + DataObjectPtr subassy4 = assy2->createDataObject("subassemblies"); + + DataObjectPtr part7 = subassy3->createDataObject("parts"); + DataObjectPtr part8 = subassy3->createDataObject("parts"); + DataObjectPtr part9 = subassy3->createDataObject("parts"); + + DataObjectPtr part10 = subassy4->createDataObject("parts"); + DataObjectPtr part11 = subassy4->createDataObject("parts"); + DataObjectPtr part12 = subassy4->createDataObject("parts"); + + + assy2->setCString("name","MicroFrame"); + assy2->setInteger("number",32768); + + subassy3->setCString("name","Legs"); + subassy4->setCString("name","Body"); + subassy3->setInteger("number",1); + subassy4->setInteger("number",2); + + part7->setCString("name","Leg1"); + part8->setCString("name","Leg2"); + part9->setCString("name","Leg3"); + part7->setInteger("number",10001); + part8->setInteger("number",10002); + part9->setInteger("number",10003); + + + part10->setCString("name","MainStrut"); + part11->setCString("name","Brace1"); + part12->setCString("name","OddBrace2"); + part10->setInteger("number",20001); + part11->setInteger("number",20002); + part12->setInteger("number",20003); + + if (!EqualityHelper::equalShallow(assy1, assy2)) + { + cout << "EQUALITY HELPER TEST - failure at first test" << endl; + } + else + { + cout << "Equality Helper test 1 passed" << endl; + } + if (EqualityHelper::equal(assy1, assy2)) + { + cout << "EQUALITY HELPER TEST - failure at second test" << endl; + } + else + { + cout << "Equality Helper test 2 passed" << endl; + } + + // Now alter assy2 to be deep equal... + + + part12->setCString("name","Brace2"); + + if (!EqualityHelper::equalShallow(assy1, assy2)) + { + cout << "EQUALITY HELPER TEST - failure at third test" << endl; + } + else + { + cout << "Equality Helper test 3 passed" << endl; + } + if (!EqualityHelper::equal(assy1, assy2)) + { + cout << "EQUALITY HELPER TEST - failure at fourth test" << endl; + } + else + { + cout << "Equality Helper test 4 passed" << endl; + } + + // now add a part, so its not deep equal again + DataObjectPtr part13 = subassy4->createDataObject("parts"); + + if (!EqualityHelper::equalShallow(assy1, assy2)) + { + cout << "EQUALITY HELPER TEST - failure at fifth test" << endl; + } + else + { + cout << "Equality Helper test 5 passed" << endl; + } + if (EqualityHelper::equal(assy1, assy2)) + { + cout << "EQUALITY HELPER TEST - failure at sixth test" << endl; + } + else + { + cout << "Equality Helper test 6 passed" << endl; + } + + // now remove that part again... + DataObjectList& dl = subassy4->getList("parts"); + dl.remove(3); + + // should be deep equal again... + + if (!EqualityHelper::equalShallow(assy1, assy2)) + { + cout << "EQUALITY HELPER TEST - failure at seventh test" << endl; + } + else + { + cout << "Equality Helper test 7 passed" << endl; + } + if (!EqualityHelper::equal(assy1, assy2)) + { + cout << "EQUALITY HELPER TEST - failure at eighth test" << endl; + } + else + { + cout << "Equality Helper test 8 passed" << endl; + } + // now make them not shallow equal + assy2->setInteger("number",32767); + + if (EqualityHelper::equalShallow(assy1, assy2)) + { + cout << "EQUALITY HELPER TEST - failure at nineth test" << endl; + } + else + { + cout << "Equality Helper test 9 passed" << endl; + } + if (EqualityHelper::equal(assy1, assy2)) + { + cout << "EQUALITY HELPER TEST - failure at tenth test" << endl; + } + else + { + cout << "Equality Helper test 10 passed" << endl; + } + +} + +void sdotest::cohelpertest() +{ + + // copy and equality helpers + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Assembly"); + mdg->addType("myspace","SubAssembly"); + mdg->addType("myspace","Part"); + + /* Now add the properties to the types...*/ + + + const Type& tstring = mdg->getType("commonj.sdo","String"); + const Type& tint = mdg->getType("commonj.sdo","Integer"); + const Type& tassy = mdg->getType("myspace","Assembly"); + const Type& tsubassy = mdg->getType("myspace","SubAssembly"); + const Type& tpart = mdg->getType("myspace","Part"); + + + mdg->addPropertyToType(tassy,"name",tstring); + mdg->addPropertyToType(tsubassy,"name",tstring); + mdg->addPropertyToType(tpart,"name",tstring); + + mdg->addPropertyToType(tassy,"number",tint); + mdg->addPropertyToType(tsubassy,"number",tint); + mdg->addPropertyToType(tpart,"number",tint); + + mdg->addPropertyToType(tassy,"subassemblies", tsubassy,true); + mdg->addPropertyToType(tsubassy,"parts", tpart,true); + + + // assy 1 + + DataObjectPtr assy1 = mdg->create((Type&)tassy); + + DataObjectPtr subassy1 = assy1->createDataObject("subassemblies"); + DataObjectPtr subassy2 = assy1->createDataObject("subassemblies"); + + DataObjectPtr part1 = subassy1->createDataObject("parts"); + DataObjectPtr part2 = subassy1->createDataObject("parts"); + DataObjectPtr part3 = subassy1->createDataObject("parts"); + + DataObjectPtr part4 = subassy2->createDataObject("parts"); + DataObjectPtr part5 = subassy2->createDataObject("parts"); + DataObjectPtr part6 = subassy2->createDataObject("parts"); + + + assy1->setCString("name","MicroFrame"); + assy1->setInteger("number",32768); + + subassy1->setCString("name","Legs"); + subassy2->setCString("name","Body"); + subassy1->setInteger("number",1); + subassy2->setInteger("number",2); + + part1->setCString("name","Leg1"); + part2->setCString("name","Leg2"); + part3->setCString("name","Leg3"); + part1->setInteger("number",10001); + part2->setInteger("number",10002); + part3->setInteger("number",10003); + + + part4->setCString("name","MainStrut"); + part5->setCString("name","Brace1"); + part6->setCString("name","Brace2"); + part4->setInteger("number",20001); + part5->setInteger("number",20002); + part6->setInteger("number",20003); + + // first lets shallow copy assy1: + + DataObjectPtr assy2 = CopyHelper::copyShallow(assy1); + + if (strcmp(assy2->getCString("name"),"MicroFrame")) + { + cout << "COPYHELPER shallow copy failed(1)" << endl; + } + else if (assy2->getInteger("number") != 32768) + { + cout << "COPYHELPER shallow copy 1 failed(2)" << endl; + } + else if (assy2->getList("subassemblies").size() != 0) + { + cout << "COPYHELPER shallow copy 1 failed(3)" << endl; + } + else if (assy2->getContainer() != 0) + { + cout << "COPYHELPER shallow copy failed(4)" << endl; + } + else + { + cout << "CopyHelper test1 passed" << endl; + } + + // now deep copy it + + DataObjectPtr assy3 = CopyHelper::copy(assy1); + + if (!EqualityHelper::equal(assy1, assy3)) + { + cout << "COPYHELPER deep copy failed(1)" << endl; + } + else if (assy3->getContainer() != 0) + { + cout << "COPYHELPER deep copy failed(2)" << endl; + } + else + { + cout << "CopyHelper test 2 passed" << endl; + } + +} + + +///////////////////////////////////////////////////////////////////////////// +///test code for serialization........... +///////////////////////////////////////////////////////////////////////////// +// +//bool sdotest::serializeOldSingleValues(int indent, ChangeSummaryPtr cs, DataObjectPtr dol) +//{ +// bool onlySingle = true; +// SettingList& sl = cs->getOldValues(dol); +// if (sl.size() == 0) +// { +// return onlySingle; +// } +// +// for (int k=0;kisDeleted(dob)) +// { +// cout << "\"" << cs->getOldXpath(dob) << "\""; +// } +// else +// { +// cout << "\"" << dob->objectToXPath() << "\""; +// } +// } +// } +// break; +// default: +// { +// } +// break; +// } +// } +// return onlySingle; +//} +// +// +// +// +//void sdotest::serializeOldManyValues(int indent, ChangeSummaryPtr cs, DataObjectPtr dol) +//{ +// SettingList& sl = cs->getOldValues(dol); +// if (sl.size() == 0) +// { +// return; +// } +// for (int j=0;j< sl.size(); j++) +// { +// if (!sl[j].getProperty().isMany()) continue; +// +// for (int k=0;kisDeleted(dob)) +// { +// // TODO +// cout << " sdo:ref=\"" << "deleted" << "\""; +// } +// else +// { +// cout << " sdo:ref=\"" << dob->objectToXPath() << "\""; +// } +// } +// } +// break; +// default: +// { +// } +// break; +// } // switch +// cout << "/>" << endl; +// } // for +//} +// +// +// +//void sdotest::serializechangesummary(ChangeSummaryPtr cs) +//{ +// changeSummaryHeader(cs); +// +// ChangedDataObjectList& cdol = cs->getChangedDataObjects(); +// +// for (i=0;i< cdol.size();i++) +// { +// if (cs->isModified(cdol[i])) +// { +// changeSummaryChange(cs,cdol[i]); +// } +// } +// +// changeSummaryFooter(); +// +//} +// +/////////////////////////////////////////////////////////////////////////////// +/////end code for serialization........... +/////////////////////////////////////////////////////////////////////////////// +// +// + + +bool sdotest::changeSummaryAttributes(ChangeSummaryPtr cs, DataObjectPtr dol) +{ + bool onlySingle = true; + SettingList& sl = cs->getOldValues(dol); + if (sl.size() == 0) + { + return onlySingle; + } + + for (int j=0;j< sl.size(); j++) + { + if (sl[j].getProperty().isMany()) + { + onlySingle = false; + continue; + } + + cout << " " << sl[j].getProperty().getName() << "=\""; + + if (sl[j].getProperty().getType().isDataType()) + { + changeSummarySetting(sl[j]); + } + else + { + DataObjectPtr dob = sl[j].getDataObjectValue(); + if (dob) + { + if (cs->isDeleted(dob)) + { + cout << cs->getOldXpath(dob); + } + else + { + cout << dob->objectToXPath(); + } + } + } + cout << "\" "; + } + return onlySingle; +} + + +void sdotest::changeSummarySetting(Setting& s) +{ + + switch (s.getProperty().getTypeEnum()) + { + case Type::BooleanType: + cout << s.getCStringValue(); + break; + case Type::ByteType: + cout << s.getByteValue(); + break; + case Type::CharacterType: + cout << s.getCharacterValue(); + break; + case Type::IntegerType: + cout << s.getIntegerValue(); + break; + case Type::ShortType: + cout << s.getShortValue(); + break; + case Type::DoubleType: + cout << s.getDoubleValue(); + break; + case Type::FloatType: + cout << s.getFloatValue(); + break; + case Type::LongType: + cout << s.getIntegerValue(); + break; + case Type::DateType: + cout << s.getDateValue().getTime(); + break; + case Type::BigDecimalType: + case Type::BigIntegerType: + case Type::StringType: + case Type::UriType: + cout << s.getCStringValue(); + break; + case Type::BytesType: + cout << s.getCStringValue(); + break; + default: + break; + } // switch +} + + +void sdotest::changeSummaryElements(int indent, ChangeSummaryPtr cs, DataObjectPtr dob) +{ + SettingList& sl = cs->getOldValues(dob); + + if (sl.size() == 0) + { + // there are no setting for this element. + return; + } + + for (int j=0;j< sl.size(); j++) + { + // single values will have been covered by the attributes. + if (!sl[j].getProperty().isMany()) continue; + + if (sl[j].getProperty().getType().isDataType()) + { + + // indent the line + for (int k=0;k\""; + + changeSummarySetting(sl[j]); + + cout << "\"" << endl; + } // if datatype + else + { + DataObjectPtr dob2 = sl[j].getDataObjectValue(); + if (!dob2) + { + return; + } + if (cs->isDeleted(dob2)) + { + changeSummaryDeletedObject(indent,sl[j].getProperty().getName(), cs,dob2); + } + else + { + // indent the line + for (int k=0;kobjectToXPath() << "\"/>" << endl; + } + } + } // for +} + + + +void sdotest::changeSummaryDeletedObject(int indent, const char* name, ChangeSummaryPtr cs, DataObjectPtr dob) +{ + + bool elements = false; // are there any elements to process? + int ind; + + // indent the line + for (ind=0;indgetOldValues(dob); + + if (sl.size() == 0) + { + // there are no setting for this element. + cout << "/>"; + return; + } + + cout << " "; + + // print single valued datatypes as attributes + + for (int j=0;j< sl.size(); j++) + { + // single values will have been covered by the attributes. + if ( sl[j].getProperty().isMany()) + { + elements = true; + continue; + } + if (!sl[j].getProperty().getType().isDataType()) + { + elements = true; + continue; + } + + cout << sl[j].getProperty().getName() << "=\""; + + changeSummarySetting(sl[j]); + + cout << "\" "; + } // for attributes + + if (!elements) + { + cout << "/>" << endl; + return; + } + + // now we are onto the many-values, and dataobject single values. + for (int k=0;k< sl.size(); k++) + { + if ( !sl[k].getProperty().getType().isDataType()) + { + // its a dataobject type + DataObjectPtr dob2 = sl[k].getDataObjectValue(); + if (!dob2) continue; + if (!cs->isDeleted(dob2)) continue; + changeSummaryDeletedObject(indent+1,sl[k].getProperty().getName(),cs,dob2); + } + else + { + // could only be many valued data type + + for (ind=0;ind\""; + + changeSummarySetting(sl[k]); + + cout << "" << endl; + } + } // for attributes + + // indent the line + for (ind=0;ind" << endl; +} + + + +void sdotest::changeSummaryHeader(ChangeSummaryPtr cs) +{ + int i; + + ChangedDataObjectList& cdol = cs->getChangedDataObjects(); + + cout << "isLogging()) + { + cout << " logging=\"true\" "; + } + + cout << ">" << endl; + + + for (i=0;i< cdol.size();i++) + { + if (cs->isCreated(cdol[i]) && cdol.getType(i) == ChangedDataObjectList::Change) + { + cout << " "; + // TODO is there an IDREF for this created/deleted object? + DataObject* temp = cdol[i]; + cout << ((DataObject*)temp)->objectToXPath(); + cout << "" << endl; + } + if (cs->isDeleted(cdol[i]) && cdol.getType(i) == ChangedDataObjectList::Delete) + { + cout << " "; + // TODO is there an IDREF for this created/deleted object? + const char* path = cs->getOldXpath(cdol[i]); + if (path != 0) + { + cout << path; + } + cout << "" << endl; + } + } +} + +void sdotest::changeSummaryFooter() +{ + cout << "" << endl; +} + + +void sdotest::changeSummaryChange(int level, ChangeSummaryPtr cs, DataObjectPtr dob) +{ + DataObject* temp = dob; + + // indent by level. + for (int l=0;lgetContainmentProperty().getName(); + } + catch (SDORuntimeException e) + { + // the object which was changed has no name, + // so its the root object of a data object tree. + cout << "root"; + } + + cout << " "; + + try + { + cout << "sdo:ref=\"" << temp->objectToXPath() << "\" "; + } + catch (SDORuntimeException e) + { + // TODO there was no xpath - thats not good + } + + // returns true if there were only single values - attributes only. + if (changeSummaryAttributes(cs, temp)) + { + cout << "/>" << endl; + return; + } + + // there are some elements + cout << ">" << endl; + + + changeSummaryElements(level+1, cs, temp); + + + // indent by level. + + for (int m=0;mgetContainmentProperty().getName(); + } + catch (SDORuntimeException e) + { + // the object which was changed has no name, + // so its the root object of a data object tree. + cout << "root"; + } + + cout << ">" << endl; + +} + + + +void sdotest::serializeChangeSummary(ChangeSummaryPtr cs) +{ + changeSummaryHeader(cs); + + ChangedDataObjectList& cdol = cs->getChangedDataObjects(); + + for (int i=0;i< cdol.size();i++) + { + if (cs->isModified(cdol[i])) + { + changeSummaryChange(1, cs,cdol[i]); + } + } + + changeSummaryFooter(); +} + + +void sdotest::cssave() +{ + + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("company.xsd"); + + //mdg->addType("companyNS","CompanyType"); + //mdg->addType("companyNS","EmployeeType"); + //mdg->addType("companyNS","DepartmentType"); + + /* 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& 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"); + + + //mdg->addPropertyToType(tcomp,"name",tstring); + // not containment... + //mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp, false,false,false); + //mdg->addPropertyToType(tcomp,"departments",tdept, true); + //mdg->addPropertyToType(tcomp,"cs",tcs); + + //mdg->addPropertyToType(tdept,"name",tstring); + //mdg->addPropertyToType(tdept,"location",tstring); + //mdg->addPropertyToType(tdept,"number",tstring); + //mdg->addPropertyToType(tdept,"employees",temp,true); + + //mdg->addPropertyToType(temp, "name",tstring); + //mdg->addPropertyToType(temp, "SN", tstring); + //mdg->addPropertyToType(temp, "manager", tbool); + + + // create a graph, then save it + + 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); + + comp->setDataObject("employeeOfTheMonth",emp2); + + ChangeSummaryPtr cs = comp->getChangeSummary(); + + cs->beginLogging(); + + DataObjectPtr emp4 = mdg->create(temp); + emp4->setCString("name","Al Smith"); + emp4->setCString("SN","E0004"); + emp4->setBoolean("manager",true); + + // first change - create employee 4 + dol2.append(emp4); + + dol2.remove(1); // element 1 is Mary + + DataObjectPtr emp5 = mdg->create(temp); + emp5->setCString("name","Bill Withers"); + emp5->setCString("SN","E0005"); + + dol2.append(emp5); + + + comp->setCString("name","MegaCorp"); + comp->setDataObject("employeeOfTheMonth",emp4); + + // silly test - add mary back again + dol2.append(emp2); + + // and why not delete her again? + //dol2.remove(4); + + + + cs->endLogging(); + + //serializeChangeSummary(cs); + + XMLHelperPtr xmh = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr doc = xmh->createDocument(comp,"companyNS","company"); + xmh->save(doc,"cssave-output.xml"); + } + catch (SDORuntimeException e) + { + cout << "CSSAVE FAILED" << e << endl; + } +} + +void sdotest::cssave2() +{ + + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("company.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, then save it + + DataObjectPtr comp = mdg->create((Type&)tcomp); + comp->setCString("name","Eastleigh Borough Council"); + + DataObjectPtr dept = mdg->create((Type&)tdept); + DataObjectList& dol = comp->getList("departments"); + dol.append(dept); + + dept->setCString("name","Waste Disposal"); + dept->setCString("location","Botley"); + dept->setCString("number","123"); + + DataObjectPtr emp1 = mdg->create(temp); + DataObjectPtr emp2 = mdg->create(temp); + DataObjectPtr emp3 = mdg->create(temp); + DataObjectPtr emp4 = mdg->create(temp); + DataObjectPtr emp5 = mdg->create(temp); + + emp1->setCString("name","Alphonse Dodet"); + emp1->setCString("SN","E0001"); + + emp2->setCString("name","Bridget Jones"); + emp2->setCString("SN","E0002"); + emp2->setBoolean("manager",true); + + emp3->setCString("name","Colin Thorne"); + emp3->setCString("SN","E0003"); + + emp4->setCString("name","Donald Trump"); + emp4->setCString("SN","E0004"); + + emp5->setCString("name","Eddy the eagle"); + emp5->setCString("SN","E0005"); + + DataObjectList& dol2 = dept->getList("employees"); + dol2.append(emp1); + dol2.append(emp2); + dol2.append(emp3); + dol2.append(emp4); + dol2.append(emp5); + + //comp->setDataObject("employeeOfTheMonth",emp2); + + DataObjectPtr dept2 = mdg->create((Type&)tdept); + dol.append(dept2); + + dept2->setCString("name","Tax Collection"); + dept2->setCString("location","Winchester"); + dept2->setCString("number","666"); + + DataObjectPtr empb1 = mdg->create(temp); + DataObjectPtr empb2 = mdg->create(temp); + DataObjectPtr empb3 = mdg->create(temp); + DataObjectPtr empb4 = mdg->create(temp); + DataObjectPtr empb5 = mdg->create(temp); + + empb1->setCString("name","Arch Meanie"); + empb1->setCString("SN","D0001"); + + empb2->setCString("name","Boris the Spider"); + empb2->setCString("SN","D0002"); + empb2->setBoolean("manager",true); + + empb3->setCString("name","Cash Hoarder"); + empb3->setCString("SN","D0003"); + + empb4->setCString("name","Dean Giyatoss"); + empb4->setCString("SN","D0004"); + + empb5->setCString("name","Ebenezer Scrooge"); + empb5->setCString("SN","D0005"); + + DataObjectList& dol3 = dept2->getList("employees"); + dol3.append(empb1); + dol3.append(empb2); + dol3.append(empb3); + dol3.append(empb4); + dol3.append(empb5); + + ChangeSummaryPtr cs = comp->getChangeSummary(); + + cs->beginLogging(); + + // start by deleting a few employees from dept 1 + + dol2.remove(1); // B + dol2.remove(1); // C + dol2.remove(1); // D + + // Now delete the tax collectors as a whole + + dol.remove(1); + + // now perhaps add back one of the employees + + dol2.append(emp3); // C + + comp->setCString("name","MegaCorp"); + + try { + comp->setDataObject("employeeOfTheMonth",emp4); + cout << "THIS ISNT RIGHT - emp4 was nolt in the tree" << endl; + } + catch (SDORuntimeException e) + { + } + + comp->setDataObject("employeeOfTheMonth",emp5); + + cs->endLogging(); + + + XMLHelperPtr xmh = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr doc = xmh->createDocument(comp,"companyNS","company"); + xmh->save(doc,"cssave2-output.xml"); + } + catch (SDORuntimeException e) + { + cout << "CSSAVE FAILED" << e << endl; + } +} + +void sdotest::bug45933() +{ + + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + + mdg->addType("companyNS","CompanyType"); + mdg->addType("companyNS","WombatType"); + + /* 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& tcs = mdg->getType("commonj.sdo","ChangeSummary"); + const Type& tcomp = mdg->getType("companyNS","CompanyType"); + const Type& twom = mdg->getType("companyNS","WombatType"); + + + mdg->addPropertyToType(tcomp,"name",tstring); + mdg->addPropertyToType(tcomp,"bools",tbool, true); + mdg->addPropertyToType(tcomp,"woms",twom, true); + mdg->addPropertyToType(tcomp,"cs",tcs); + + + // create a graph, then save it + + DataObjectPtr comp = mdg->create((Type&)tcomp); + comp->setCString("name","Bug45933"); + + ChangeSummaryPtr cs = comp->getChangeSummary(); + + cs->beginLogging(); + + DataObjectList& dol = comp->getList("bools"); + dol.append(false); + dol.remove(0); + DataObjectPtr awom = mdg->create((Type&)twom); + DataObjectList& dol2 = comp->getList("woms"); + dol2.append(awom); + dol2.remove(0); + + cs->endLogging(); + + dumpchangesummary(cs); + + XMLHelperPtr xmh = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr doc = xmh->createDocument(comp,"companyNS","company"); + xmh->save(doc,"bug45933-output.xml"); + } + catch (SDORuntimeException e) + { + cout << "BUG45933 FAILED" << endl << e << endl; + } +} + +void sdotest::b46617() +{ + + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + //XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + //xsh->defineFile("b46617.xsd"); + mdg->addType("companyNS","CompanyType"); + mdg->addType("companyNS","DepartmentType"); + mdg->addType("companyNS","EmployeeType"); + + + + 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"); + + mdg->addPropertyToType(tcomp,"name",tstring); + mdg->addPropertyToType(tcomp,"departments",tdept,true,false,true); + mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp,false,false,false); + mdg->addPropertyToType(tcomp,"CEO",temp,false,false,true); + + mdg->addPropertyToType(tdept,"employees",temp,true,false,true); + mdg->addPropertyToType(tdept,"name",tstring,false,false,true); + mdg->addPropertyToType(tdept,"location",tstring,false,false,true); + mdg->addPropertyToType(tdept,"number",tstring,false,false,true); + + mdg->addPropertyToType(temp,"name",tstring,false,false,true); + mdg->addPropertyToType(temp,"SN",tstring,false,false,true); + mdg->addPropertyToType(temp,"manager",tbool,false,false,true); + + // create a graph, then save it + + DataObjectPtr comp = mdg->create((Type&)tcomp); + comp->setCString("name","Eastleigh Borough Council"); + + DataObjectPtr dept = mdg->create((Type&)tdept); + DataObjectList& dol = comp->getList("departments"); + dol.append(dept); + + dept->setCString("name","Waste Disposal"); + dept->setCString("location","Botley"); + dept->setCString("number","123"); + + DataObjectPtr emp1 = mdg->create(temp); + DataObjectPtr emp2 = mdg->create(temp); + DataObjectPtr emp3 = mdg->create(temp); + + emp1->setCString("name","Alphonse Dodet"); + emp1->setCString("SN","E0001"); + + emp2->setCString("name","Bridget Jones"); + emp2->setCString("SN","E0002"); + emp2->setBoolean("manager",true); + + emp3->setCString("name","Carl Marx"); + emp3->setCString("SN","E0003"); + + comp->setDataObject("CEO",emp2); + + DataObjectList& dol2 = dept->getList("employees"); + dol2.append(emp1); + //dol2.append(emp2); + dol2.append(emp3); + + comp->setDataObject("employeeOfTheMonth",emp2); + + XSDHelperPtr xmd = HelperProvider::getXSDHelper(mdg); + xmd->generateFile(mdg->getTypes(), + "b46617.xsd","companyNS"); + + + XMLHelperPtr xmh = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr doc = xmh->createDocument(comp,"companyNS","company"); + xmh->save(doc,"b46617.xml"); + + // now try loading the xml, using the same schema, and see if we get the + // same answer + + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("b46617.xml", "companyNS"); + DataObjectPtr newdob = myXMLDocument->getRootDataObject(); + + cout << "EOMS name is " + << newdob->getDataObject("employeeOfTheMonth")->getCString("name") + << endl; + + + } + catch (SDORuntimeException e) + { + cout << "b46617 failed" << e << endl; + } +} + +void sdotest::b46617b() +{ + + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("b46617b.xsd"); + + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("b46617b.xml", "companyNS"); + DataObjectPtr newdob = myXMLDocument->getRootDataObject(); + + cout << "EOMS name is " + << newdob->getDataObject("employeeOfTheMonth")->getCString("name") + << endl; + + + } + catch (SDORuntimeException e) + { + cout << "b46617b failed" << e << endl; + } +} + +void sdotest::notfound() +{ + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + try { + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("not_present.xsd"); + } + catch (SDOFileNotFoundException e) + { + cout << "NotFound threw correct exception " << endl; + } + + catch (SDORuntimeException e) + { + cout << "NOTFOUND THREW THE WRONG EXCEPTION" << e << endl; + } + + try { + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("not-present.xml", "companyNS"); + + } + catch (SDOFileNotFoundException ee) + { + cout << "NotFound threw the correct exception" << endl; + } + + catch (SDORuntimeException e) + { + cout << "NOTFOUND THREW THE WRONG EXCEPTION" << e << endl; + } +} + +void sdotest::csload() +{ + try + { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("company.xsd"); + + cout << "TYPES LOADED FROM COMPANY XSD" << endl; + + TypeList tl = mdg->getTypes(); + for (int i=0;i< tl.size(); i++) + { + cout << tl[i].getURI() << ":" << tl[i].getName() << endl; + } + + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("cssave-output.xml", "companyNS"); + //myXMLDocument->setRootElementName("company"); + //myXMLHelper->save(myXMLDocument,"csload-output.xml"); + myXMLHelper->save(myXMLDocument->getRootDataObject(), + 0, "company", "csload-output.xml"); + } + catch (SDORuntimeException e) + { + cout << "CSLOAD FAILED" << e << endl; + } + +} + +void sdotest::testsubsload() +{ + cout << "TEST: TestSubsLoad ==========================================" << endl; + try + { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("companysubs.xsd"); + + //cout << "TYPES LOADED FROM COMPANYSUBS XSD" << endl; + + //TypeList tl = mdg->getTypes(); + //for (int i=0;i< tl.size(); i++) + //{ + // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; + //} + + // so now we should be able to put book or a magazine into + // the publication under company... + + const Type& tstring = mdg->getType("commonj.sdo","String"); + const Type& tcomp = mdg->getType("companyNS","CompanyType"); + const Type& book = mdg->getType("companyNS","BookType"); + const Type& mag = mdg->getType("companyNS","MagazineType"); + const Type& pub = mdg->getType("companyNS","PublicationType"); + + + // create a graph, then save it + + DataObjectPtr comp = mdg->create((Type&)tcomp); + comp->setCString("name","Puflet Publishing"); + + + DataObjectPtr book1 = mdg->create(book); + book1->setCString("author","Mr P B Writer"); + // inherted from publication + book1->setCString("title","Nowhere Man"); + + DataObjectPtr mag1 = mdg->create(mag); + mag1->setCString("editor","Mr B Picky"); + // inherited from publication + mag1->setCString("title","Bionicle Weekly"); + + DataObjectPtr pub1 = mdg->create(pub); + pub1->setCString("title","Noddy In Toyland"); + + + // publication should accept any of them... + + comp->setDataObject("Publication",pub1); + const Type& tpub1 = comp->getDataObject("Publication")->getType(); + cout << "Publication is of type " << tpub1.getName() << endl; + + comp->setDataObject("Publication",book1); + const Type& tpub2 = comp->getDataObject("Publication")->getType(); + cout << "Publication is of type " << tpub2.getName() << endl; + + comp->setDataObject("Publication",mag1); + const Type& tpub3 = comp->getDataObject("Publication")->getType(); + cout << "Publication is of type " << tpub3.getName() << endl; + + // should be able to address publication as book or magazine + + comp->setDataObject("Book",book1); + const Type& tpub4 = comp->getDataObject("Book")->getType(); + cout << "Book is of type " << tpub4.getName() << endl; + + comp->setDataObject("Magazine",mag1); + const Type& tpub5 = comp->getDataObject("Magazine")->getType(); + cout << "Magazine is of type " << tpub5.getName() << endl; + + } + catch (SDORuntimeException e) + { + cout << "ERROR in TeseSubsLoad" << e << endl; + } + cout << "END TEST: TestSubsLoad ======================================" << endl; +} + +void sdotest::testSCA() +{ + cout << "TEST: TestSCA ==========================================" << endl; + try + { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("sca.xsd"); + + } + catch (SDORuntimeException e) + { + cout << "ERROR in TeseSCA" << e << endl; + } + cout << "END TEST: TestSCA ======================================" << endl; +} + +void sdotest::testabstract() +{ + cout << "TEST: TestAbstract ==========================================" << endl; + try + { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("companyabs.xsd"); + + //cout << "TYPES LOADED FROM COMPANYABS XSD" << endl; + + //TypeList tl = mdg->getTypes(); + //for (int i=0;i< tl.size(); i++) + //{ + // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; + //} + + // so now we should be able to put book or a magazine into + // the publication under company... + + const Type& tstring = mdg->getType("commonj.sdo","String"); + const Type& tcomp = mdg->getType("companyNS","CompanyType"); + const Type& book = mdg->getType("companyNS","BookType"); + const Type& mag = mdg->getType("companyNS","MagazineType"); + const Type& pub = mdg->getType("companyNS","PublicationType"); + + + // create a graph, then save it + + DataObjectPtr comp = mdg->create((Type&)tcomp); + comp->setCString("name","Puflet Publishing"); + + // should be allowed... + DataObjectPtr book1 = mdg->create(book); + book1->setCString("author","Mr P B Writer"); + // inherted from publication + book1->setCString("title","Nowhere Man"); + + DataObjectPtr mag1 = mdg->create(mag); + mag1->setCString("editor","Mr B Picky"); + // inherited from publication + mag1->setCString("title","Bionicle Weekly"); + + try { + DataObjectPtr pub1 = mdg->create(pub); + pub1->setCString("title","Noddy In Toyland"); + } + catch (SDOUnsupportedOperationException e) + { + cout << "Normal unsupportedoperation for creation of abstract type" << endl; + } + + + // publication should accept books and magazines... + + comp->setDataObject("Publication",book1); + const Type& tpub2 = comp->getDataObject("Publication")->getType(); + cout << "Publication is of type " << tpub2.getName() << endl; + + comp->setDataObject("Publication",mag1); + const Type& tpub3 = comp->getDataObject("Publication")->getType(); + cout << "Publication is of type " << tpub3.getName() << endl; + + // should be able to address publication as book or magazine + + comp->setDataObject("Book",book1); + const Type& tpub4 = comp->getDataObject("Book")->getType(); + cout << "Book is of type " << tpub4.getName() << endl; + + comp->setDataObject("Magazine",mag1); + const Type& tpub5 = comp->getDataObject("Magazine")->getType(); + cout << "Magazine is of type " << tpub5.getName() << endl; + + } + catch (SDORuntimeException e) + { + cout << "ERROR in TestAbstract" << e << endl; + } + cout << "END TEST: TestAbstract ======================================" << endl; +} + +void sdotest::testOpen() +{ + cout << "TEST: TestOpen ==========================================" << endl; + //try + //{ + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + + mdg->addType("companyNS","CompanyType"); + // employee will be an open type... + mdg->addType("companyNS","EmployeeType", /*seq*/false, + /*open*/true, + /*abs */ false, + /*data*/ false); + + mdg->addType("companyNS","DepartmentType"); + + /* 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& 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"); + + + mdg->addPropertyToType(tcomp,"name",tstring); + // not containment... + mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp, false,false,false); + mdg->addPropertyToType(tcomp,"departments",tdept, true); + mdg->addPropertyToType(tcomp,"cs",tcs); + + mdg->addPropertyToType(tdept,"name",tstring); + mdg->addPropertyToType(tdept,"location",tstring); + mdg->addPropertyToType(tdept,"number",tstring); + mdg->addPropertyToType(tdept,"employees",temp,true); + + mdg->addPropertyToType(temp, "name",tstring); + mdg->addPropertyToType(temp, "SN", tstring); + mdg->addPropertyToType(temp, "manager", tbool); + + + + 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","Albert"); + emp1->setCString("SN","E0001"); + + emp2->setCString("name","Boris"); + emp2->setCString("SN","E0002"); + emp2->setBoolean("manager",true); + + emp3->setCString("name","Carl"); + emp3->setCString("SN","E0003"); + + // now we should be able to add extra properties to employees, + // and get them back again... + + + emp1->setCString("openstring","Value Of Open String"); + emp1->setBoolean("openboolean",true); + + const char* c = emp1->getCString("openstring"); + + cout << "Open Type string value: " << c << endl; + + bool b = emp1->getBoolean("openboolean"); + + cout << "Open Type boolean value: " << b << endl; + + // unknown list type at present.. + DataObjectList& dl = emp1->getList("opentypelist"); + + int i = 45; + dl.append((short)i); // now the list must be primitive + + // we should now have instance properties + PropertyList pl = emp1->getType().getProperties(); + + for (i=0;igetInstanceProperties(); + + for (i=0;iunset("openstring"); + + PropertyList plk = emp1->getInstanceProperties(); + + for (i=0;iunset("openboolean"); + + dl.remove(0); // so is this list gone, or empty - I vote for still there. + + PropertyList pll = emp1->getInstanceProperties(); + for (i=0;iunset("opentypelist"); + + // now I vote for gone... + + PropertyList plm = emp1->getInstanceProperties(); + for (i=0;iaddType("companyNS","CompanyType"); + // employee will be an open type... + mdg->addType("companyNS","EmployeeType", /*seq*/false, + /*open*/true, + /*abs */ false, + /*data*/ false); + + mdg->addType("companyNS","DepartmentType"); + + mdg->addType("companyNS","OpenType"); + + /* 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& 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"); + const Type& topen = mdg->getType("companyNS","OpenType"); + + + mdg->addPropertyToType(tcomp,"name",tstring); + // not containment... + mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp, false,false,false); + mdg->addPropertyToType(tcomp,"departments",tdept, true); + mdg->addPropertyToType(tcomp,"cs",tcs); + + mdg->addPropertyToType(tdept,"name",tstring); + mdg->addPropertyToType(tdept,"location",tstring); + mdg->addPropertyToType(tdept,"number",tstring); + mdg->addPropertyToType(tdept,"employees",temp,true); + + mdg->addPropertyToType(temp, "name",tstring); + mdg->addPropertyToType(temp, "SN", tstring); + mdg->addPropertyToType(temp, "manager", tbool); + + mdg->setAlias("companyNS","CompanyType","TheFirm"); + mdg->setAlias("companyNS","CompanyType","departments","TheDepartments"); + mdg->setAlias("companyNS","CompanyType","departments","MYDepartments"); + mdg->setAlias("companyNS","CompanyType","TheBigFirm"); + + mdg->addPropertyToType(topen,"name",tstring); + + DataObjectPtr comp = mdg->create((Type&)tcomp); + comp->setCString("name","ACME"); + + DataObjectPtr dept = mdg->create((Type&)tdept); + DataObjectList& dol = comp->getList("departments"); + dol.append(dept); + + ChangeSummaryPtr cs = comp->getChangeSummary(); + + cs->beginLogging(); + + dept->setCString("name","Advanced Technologies"); + dept->setCString("location","NY"); + dept->setCString("number","123"); + + DataObjectList& emps = dept->getList("employees"); + + DataObjectPtr emp1 = mdg->create(temp); + DataObjectPtr emp2 = mdg->create(temp); + DataObjectPtr emp3 = mdg->create(temp); + + emps.append(emp1); + emps.append(emp2); + emps.append(emp3); + + emp1->setCString("name","Albert"); + emp1->setCString("SN","E0001"); + + emp2->setCString("name","Boris"); + emp2->setCString("SN","E0002"); + emp2->setBoolean("manager",true); + + emp3->setCString("name","Carl"); + emp3->setCString("SN","E0003"); + + // now we should be able to add extra properties to employees, + // and get them back again... + + + emp1->setCString("openstring","Value Of Open String"); + emp1->setBoolean("openboolean",true); + + const char* c = emp1->getCString("openstring"); + + cout << "Open Type string value: " << c << endl; + + bool b = emp1->getBoolean("openboolean"); + + cout << "Open Type boolean value: " << b << endl; + + // unknown list type at present.. + DataObjectList& dl = emp1->getList("openintlist"); + + int i = 45; + dl.append((short)i); // now the list must be primitive and short!! + + // unknown list type at present.. + DataObjectList& dl2 = emp1->getList("opendataobjectlist"); + + DataObjectPtr myopen = mdg->create("companyNS","OpenType"); + myopen->setCString("name","MyOpenName"); + dl2.append(myopen); // now the list must be of data objects + + + // now a single valued data object - should have an xsi:type + emp1->setDataObject("opendataobject", myopen); + + + cs->endLogging(); + + dumpchangesummary(cs); + + XSDHelperPtr xdh = HelperProvider::getXSDHelper(mdg); + + xdh->generateFile(mdg->getTypes(), + "saveopen-output.xsd","companyNS"); + + XMLHelperPtr xmh = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr doc = xmh->createDocument(comp,"companyNS","company"); + xmh->save(doc,"saveopen-output.xml"); + + } + catch (SDORuntimeException e) + { + cout << "ERROR in SaveOpen" << e << endl; + } + cout << "END TEST: SaveOpen ======================================" << endl; +} + +void sdotest::loadOpen() +{ + cout << "TEST: LoadOpen ==========================================" << endl; + try + { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("saveopen-output.xsd"); + + + //cout << "TYPES LOADED FROM COMPANY XSD" << endl; + //int i; + //TypeList tl = mdg->getTypes(); + //for (i=0;i< tl.size(); i++) + //{ + // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; + //} + + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + + + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("partial.xml", "companyNS"); + + + + // so, we now expect that the openboolean and openstring props will + // be of type boolean and Bytes, and the openlist will be a list of integers. + // The dataobjectlist an dataobject will be of the correct OpenType + + // we need a test for data objects, and that we are writing out xsi:type + // correctly. + DataObjectPtr comp = myXMLDocument->getRootDataObject(); + DataObjectList& dl = comp->getList("departments"); + DataObjectPtr dept = dl[0]; + DataObjectList& dl2 = dept->getList("employees"); + DataObjectPtr emp = dl2[0]; + + if (strcmp(emp->getProperty("openboolean").getType().getName(), + "Boolean")) + { + cout << "OpenLoad failure - bool property not boolean" << endl; + + } + if (emp->getBoolean("openboolean") != true) + { + cout << "OpenLoad failure - bool property not true" << endl; + } + + if (strcmp(emp->getProperty("openstring").getType().getName(), + "Bytes")) + { + cout << "OpenLoad failure - bytes property not bytes" << endl; + + } + if (strcmp(emp->getCString("openstring"),"Value Of Open String")) + { + cout << "OpenLoad failure - string value is" << + emp->getCString("openstring") << endl; + } + + + DataObjectList& dl3 = emp->getList("openintlist"); + + if (strcmp(emp->getProperty("openintlist").getType().getName(), + "Short")) + { + cout << "OpenLoad failure - IntegerList not Short " << + emp->getProperty("openintlist").getType().getName() << endl; + } + + if (dl3.getInteger(0) != 45) + { + cout << "OpenLoad failure - Integer value is" << + dl.getInteger(0) << endl; + } + + if (strcmp(emp->getProperty("opendataobjectlist").getType().getName(), + "OpenType")) + { + cout << "OpenLoad failure - OpenTypeList not OpenType" << endl; + } + + DataObjectList& dl4 = emp->getList("opendataobjectlist"); + + if (strcmp(dl4[0]->getCString("name"),"MyOpenName")) + { + cout << "OpenLoad failure - list element name is " << + dl4[0]->getCString("name") << endl; + } + + if (strcmp(emp->getProperty("opendataobject").getType().getName(), + "OpenType")) + { + cout << "OpenLoad failure - OpenType not OpenType" << endl; + } + + DataObjectPtr dob2 = emp->getDataObject("opendataobject"); + + if (strcmp(dob2->getCString("name"),"MyOpenName")) + { + cout << "OpenLoad failure - open value name is " << + dob2->getCString("name") << endl; + } + + + myXMLHelper->save(myXMLDocument->getRootDataObject(), + 0, "company", "loadload-output.xml"); + + + } + catch (SDORuntimeException e) + { + cout << "LoadOpen FAILED" << e << endl; + } + +} + +void sdotest::loadOpenNS() +{ + cout << "TEST: LoadOpenNS ==========================================" << endl; + try + { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("openloadNS.xsd"); + xsh->defineFile("openloadNS2.xsd"); + + + //cout << "TYPES LOADED FROM COMPANY XSD" << endl; + //int i; + //TypeList tl = mdg->getTypes(); + //for (i=0;i< tl.size(); i++) + //{ + // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; + //} + + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + + + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("openloadNS.xml", "companyNS"); + + + + // so, we now expect that the openboolean and openstring props will + // be of type boolean and Bytes, and the openlist will be a list of integers. + // The dataobjectlist an dataobject will be of the correct OpenType + + // we need a test for data objects, and that we are writing out xsi:type + // correctly. + DataObjectPtr comp = myXMLDocument->getRootDataObject(); + DataObjectList& dl = comp->getList("departments"); + DataObjectPtr dept = dl[0]; + DataObjectList& dl2 = dept->getList("employees"); + DataObjectPtr emp = dl2[0]; + + if (strcmp(emp->getProperty("openboolean").getType().getName(), + "Boolean")) + { + cout << "OpenLoadNS failure - bool property not boolean" << endl; + + } + if (emp->getBoolean("openboolean") != true) + { + cout << "OpenLoadNS failure - bool property not true" << endl; + } + + if (strcmp(emp->getProperty("openstring").getType().getName(), + "Bytes")) + { + cout << "OpenLoadNS failure - bytes property not bytes" << endl; + + } + if (strcmp(emp->getCString("openstring"),"Value Of Open String")) + { + cout << "OpenLoadNS failure - string value is" << + emp->getCString("openstring") << endl; + } + + + DataObjectList& dl3 = emp->getList("openintlist"); + + if (strcmp(emp->getProperty("openintlist").getType().getName(), + "Short")) + { + cout << "OpenLoadNS failure - IntegerList not Short " << + emp->getProperty("openintlist").getType().getName() << endl; + } + + if (dl3.getInteger(0) != 45) + { + cout << "OpenLoadNS failure - Integer value is" << + dl.getInteger(0) << endl; + } + + + + myXMLHelper->save(myXMLDocument->getRootDataObject(), + 0, "company", "openloadNSout.xml"); + + + // now try exactly the same, but with NS which doesnt exist + XMLDocumentPtr myXMLDocument2 = myXMLHelper->loadFile("openloadNS2.xml", "companyNS"); + + + + // so, we now expect that the openboolean and openstring props will + // be of type boolean and Bytes, and the openlist will be a list of integers. + // The dataobjectlist an dataobject will be of the correct OpenType + + // we need a test for data objects, and that we are writing out xsi:type + // correctly. + DataObjectPtr comp2 = myXMLDocument2->getRootDataObject(); + DataObjectList& dld = comp2->getList("departments"); + DataObjectPtr dept2 = dld[0]; + DataObjectList& dl22 = dept2->getList("employees"); + DataObjectPtr emp2 = dl22[0]; + + if (strcmp(emp2->getProperty("openboolean").getType().getName(), + "Bytes")) + { + cout << "OpenLoadNS2 failure - bool property not bytes" << endl; + + } + if (emp2->getBoolean("openboolean") != true) + { + cout << "OpenLoadNS2 failure - bool property not true" << endl; + } + + if (strcmp(emp2->getProperty("openstring").getType().getName(), + "Bytes")) + { + cout << "OpenLoadNS2 failure - bytes property not bytes" << endl; + + } + if (strcmp(emp2->getCString("openstring"),"Value Of Open String")) + { + cout << "OpenLoadNS failure - string value is" << + emp2->getCString("openstring") << endl; + } + + + DataObjectList& dl32 = emp2->getList("openintlist"); + + if (strcmp(emp2->getProperty("openintlist").getType().getName(), + "Bytes")) + { + cout << "OpenLoadNS2 failure - IntegerList not Bytes " << + emp2->getProperty("openintlist").getType().getName() << endl; + } + + if (dl32.getInteger(0) != 45) + { + cout << "OpenLoadNS2 failure - Integer value is" << + dl32.getInteger(0) << endl; + } + + + } + catch (SDORuntimeException e) + { + cout << "LoadOpenNS FAILED" << e << endl; + } + +} + +void sdotest::loadManyOpen() +{ + cout << "TEST: LoadManyOpen ==========================================" << endl; + try + { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("many.xsd"); + + + //cout << "TYPES LOADED FROM COMPANY XSD" << endl; + //int i; + //TypeList tl = mdg->getTypes(); + //for (i=0;i< tl.size(); i++) + //{ + // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; + //} + + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + + + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("many.xml", "companyNS"); + + + + // so, we now expect that the openboolean and openstring props will + // be of type boolean and Bytes, and the openlist will be a list of integers. + // The dataobjectlist an dataobject will be of the correct OpenType + + // we need a test for data objects, and that we are writing out xsi:type + // correctly. + DataObjectPtr comp = myXMLDocument->getRootDataObject(); + DataObjectList& dl = comp->getList("departments"); + DataObjectPtr dept = dl[0]; + DataObjectList& dl2 = dept->getList("employees"); + DataObjectPtr emp = dl2[0]; + + + DataObjectList& dl3 = emp->getList("openlist"); + + if (strcmp(emp->getProperty("openlist").getType().getName(), + "Bytes")) + { + cout << "OpenManyLoad failure - BytesList not Bytes " << + emp->getProperty("openlist").getType().getName() << endl; + } + + if (dl3.size() != 3) + { + cout << "OpenManyLoad failure - size is " << + dl3.size() << endl; + } + + for (int i=0;i< dl3.size();i++) + { + cout << "Value:" << + dl3.getCString(i) << endl; + } + + } + catch (SDORuntimeException e) + { + cout << "LoadOpen FAILED" << e << endl; + } + +} + +void sdotest::csload2() +{ + cout << "TEST: CSLoad2 ===============================================" << endl; + try + { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("company.xsd"); + + //cout << "TYPES LOADED FROM COMPANY XSD" << endl; + + //TypeList tl = mdg->getTypes(); + //for (int i=0;i< tl.size(); i++) + //{ + // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; + //} + + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("cssave2-output.xml", "companyNS"); + myXMLHelper->save(myXMLDocument->getRootDataObject(), + 0, "company", "csload2-output.xml"); + XMLDocumentPtr myXMLDocument2 = myXMLHelper->loadFile("csload2-output.xml", "companyNS"); + myXMLHelper->save(myXMLDocument2->getRootDataObject(), + 0, "company", "csload3-output.xml"); + } + catch (SDORuntimeException e) + { + cout << "ERROR in CsLoad2" << e << endl; + } + cout << "END TEST: CSLoad2 ===========================================" << endl; + +} + + + +void sdotest::setnull() +{ + +// try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("NullNS","NullMainType"); + mdg->addType("NullNS","NullSubType"); + + /* Now add the properties to the types...*/ + + const Type& tstring = mdg->getType("commonj.sdo","String"); + const Type& tint = mdg->getType("commonj.sdo","Integer"); + const Type& tbool = mdg->getType("commonj.sdo","Boolean"); + const Type& tcs = mdg->getType("commonj.sdo","ChangeSummary"); + const Type& tmain = mdg->getType("NullNS","NullMainType"); + const Type& tsub = mdg->getType("NullNS","NullSubType"); + + + mdg->addPropertyToType(tmain,"name",tstring); + mdg->addPropertyToType(tmain,"subs",tsub, true); // many + mdg->addPropertyToType(tmain,"asub",tsub, false); // single + mdg->addPropertyToType(tmain,"bsub",tsub, false); // single + + mdg->addPropertyToType(tmain,"cs",tcs); // change summary + + mdg->addPropertyToType(tsub,"name",tstring); + mdg->addPropertyToType(tsub,"number",tint); + mdg->addPropertyToType(tsub,"bool",tbool); + + + // create a graph, then save it + + DataObjectPtr main1 = mdg->create((Type&)tmain); + main1->setCString("name","MainObject"); + + // asub is initially set + DataObjectPtr sub0 = main1->createDataObject("asub"); + // bsub is not set. + + DataObjectPtr sub1 = mdg->create((Type&)tsub); + DataObjectPtr sub2 = mdg->create((Type&)tsub); + DataObjectPtr sub3 = mdg->create((Type&)tsub); + + DataObjectList& dol = main1->getList("subs"); + + dol.append(sub1); + dol.append(sub2); + dol.append(sub3); + + // sub1 has all values set initially + + sub1->setCString("name","All Initially set"); + sub1->setInteger("number",100); + sub1->setBoolean("bool",false); + + // sub2 has no values set at all + + + // sub3 has all values set to null + sub3->setNull("name"); + sub3->setNull("number"); + sub3->setNull("bool"); + + + // report + + cout << "is ASUB null? (0 expected) " << + main1->isNull("asub") << endl; + + cout << "is ASUB set? (1 expected) " << + main1->isSet("asub") << endl; + + cout << "is BSUB null? (0 expected) " << + main1->isNull("bsub") << endl; + + cout << "is BSUB set? (0 expected) " << + main1->isSet("bsub") << endl; + +// dol0 is set, not null + + cout << "dol[0] name is null? (0 expected) " << + dol[0]->isNull("name") << endl; + + cout << "dol[0] number is null? (0 expected) " << + dol[0]->isNull("number") << endl; + + cout << "dol[0] bool is null? (0 expected) " << + dol[0]->isNull("bool") << endl; + + cout << "dol[0] name is set? (1 expected) " << + dol[0]->isSet("name") << endl; + + cout << "dol[0] number is set? (1 expected) " << + dol[0]->isSet("number") << endl; + + cout << "dol[0] bool is set? (1 expected) " << + dol[0]->isSet("bool") << endl; + +// dol1 is all unset , so no nulls + + cout << "dol[1] name is null? (0 expected) " << + dol[1]->isNull("name") << endl; + + cout << "dol[1] number is null? (0 expected) " << + dol[1]->isNull("number") << endl; + + cout << "dol[1] bool is null? (0 expected) " << + dol[1]->isNull("bool") << endl; + + cout << "dol[1] name is set? (0 expected) " << + dol[1]->isSet("name") << endl; + + cout << "dol[1] number is set? (0 expected) " << + dol[1]->isSet("number") << endl; + + cout << "dol[1] bool is set? (0 expected) " << + dol[1]->isSet("bool") << endl; + +// dol2 is all nulls, so all set + + cout << "dol[2] name is null? (1 expected) " << + dol[2]->isNull("name") << endl; + + cout << "dol[2] number is null? (1 expected) " << + dol[2]->isNull("number") << endl; + + cout << "dol[2] bool is null? (1 expected) " << + dol[2]->isNull("bool") << endl; + + cout << "dol[2] name is set? (1 expected) " << + dol[2]->isSet("name") << endl; + + cout << "dol[2] number is set? (1 expected) " << + dol[2]->isSet("number") << endl; + + cout << "dol[2] bool is set? (1 expected) " << + dol[2]->isSet("bool") << endl; + + ChangeSummaryPtr cs = main1->getChangeSummary(); + + cs->beginLogging(); + + main1->setNull("asub"); + main1->setNull("bsub"); + + dol[0]->setNull("name"); + dol[0]->setNull("number"); + dol[0]->setNull("bool"); + + dol[1]->setNull("bool"); + + dol[2]->setCString("name","NewName"); + dol[2]->setInteger("number",100); + dol[2]->setBoolean("bool",true); + + + cs->endLogging(); + + // what would we expect from the change summary? + + cout << "==============Expected in Change Summary=================" << endl; + cout << "change to main1 - object asub set to null, oldvalue asub (set)" << endl; + cout << "change to main1 - object bsub set to null, oldvalue null (unset)" << endl; + cout << "change to sub1 - name asub set to null, oldvalue \"All Initially Set\" (set)" << endl; + cout << "change to sub1 - number asub set to null, oldvalue 100 (set)" << endl; + cout << "change to sub1 - bool asub set to null, oldvalue false (set)" << endl; + cout << "change to sub2 - bool asub set to null, oldvalue false (unset)" << endl; + cout << "change to sub3 - name asub set to \"NewName\", oldvalue null, set" << endl; + cout << "change to sub3 - number asub set to 100, oldvalue null, set" << endl; + cout << "change to sub3 - bool asub set to true, oldvalue null, set" << endl; + cout << "==============End Expected in Change Summary=============" << endl; + + + dumpchangesummary(cs); + + // report + + cout << "is ASUB null? (1 expected) " << + main1->isNull("asub") << endl; + + cout << "is ASUB set? (1 expected) " << + main1->isSet("asub") << endl; + + cout << "is BSUB null? (1 expected) " << + main1->isNull("bsub") << endl; + + cout << "is BSUB set? (1 expected) " << + main1->isSet("bsub") << endl; + +// dol0 is set to null + + cout << "dol[0] name is null? (1 expected) " << + dol[0]->isNull("name") << endl; + + cout << "dol[0] number is null? (1 expected) " << + dol[0]->isNull("number") << endl; + + cout << "dol[0] bool is null? (1 expected) " << + dol[0]->isNull("bool") << endl; + + cout << "dol[0] name is set? (1 expected) " << + dol[0]->isSet("name") << endl; + + cout << "dol[0] number is set? (1 expected) " << + dol[0]->isSet("number") << endl; + + cout << "dol[0] bool is set? (1 expected) " << + dol[0]->isSet("bool") << endl; + +// dol1 is all unset except bool which is null + + cout << "dol[1] name is null? (0 expected) " << + dol[1]->isNull("name") << endl; + + cout << "dol[1] number is null? (0 expected) " << + dol[1]->isNull("number") << endl; + + cout << "dol[1] bool is null? (1 expected) " << + dol[1]->isNull("bool") << endl; + + cout << "dol[1] name is set? (0 expected) " << + dol[1]->isSet("name") << endl; + + cout << "dol[1] number is set? (0 expected) " << + dol[1]->isSet("number") << endl; + + cout << "dol[1] bool is set? (1 expected) " << + dol[1]->isSet("bool") << endl; + +// dol2 is all set non-null, so all set + + cout << "dol[2] name is null? (0 expected) " << + dol[2]->isNull("name") << endl; + + cout << "dol[2] number is null? (0 expected) " << + dol[2]->isNull("number") << endl; + + cout << "dol[2] bool is null? (0 expected) " << + dol[2]->isNull("bool") << endl; + + cout << "dol[2] name is set? (1 expected) " << + dol[2]->isSet("name") << endl; + + cout << "dol[2] number is set? (1 expected) " << + dol[2]->isSet("number") << endl; + + cout << "dol[2] bool is set? (1 expected) " << + dol[2]->isSet("bool") << endl; + + + // what would we expect from the change summary? +// } +// catch (SDORuntimeException e) +// { +// cout << "Exception in setnull" << endl; +// cout << e; +// } + +} + +void sdotest::testsubs() +{ + + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("companyNS","MainType"); + + mdg->addType("companyNS","SubType"); + mdg->addType("companyNS","SuperType"); + mdg->addType("companyNS","SubstituteType"); + mdg->addType("companyNS","UnrelatedType"); + + /* 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& tcs = mdg->getType("commonj.sdo","ChangeSummary"); + const Type& tmain = mdg->getType("companyNS","MainType"); + const Type& sub = mdg->getType("companyNS","SubType"); + const Type& super = mdg->getType("companyNS","SuperType"); + const Type& subst = mdg->getType("companyNS","SubstituteType"); + const Type& unrel = mdg->getType("companyNS","UnrelatedType"); + + + mdg->addPropertyToType(tmain,"name",tstring); + mdg->addPropertyToType(tmain,"sub",super, false); + mdg->addPropertyToType(tmain,"subs",super, true); + + + mdg->setPropertySubstitute(tmain, "sub","wilbur", subst); + mdg->setPropertySubstitute(tmain, "subs","wilburs", subst); + + mdg->setBaseType(sub,super); + + //now sub and subs should accept all the three types + + DataObjectPtr main = mdg->create((Type&)tmain); + main->setCString("name","SubstituteTest"); + + DataObjectList& dol = main->getList("subs"); + + DataObjectPtr sub1 = mdg->create(sub); + DataObjectPtr super1 = mdg->create(super); + DataObjectPtr subst1 = mdg->create(subst); + DataObjectPtr unrel1 = mdg->create(unrel); + + dol.append(sub1); + dol.append(super1); + dol.append(subst1); + try + { + dol.append(unrel1); + } + catch (SDOInvalidConversionException e) + { + cout << "Normal failure to append wrong type" << endl; + } + + dol.remove(0); + dol.remove(0); + dol.remove(0); + + DataObjectList& dol2 = main->getList("wilburs"); + + dol2.append(sub1); + dol2.append(super1); + dol2.append(subst1); + try + { + dol2.append(unrel1); + } + catch (SDOInvalidConversionException e) + { + cout << "Normal failure to append wrong type" << endl; + } + + main->setDataObject("sub",sub1); + main->setDataObject("sub",super1); + main->setDataObject("sub",subst1); + + main->setDataObject("wilbur",sub1); + main->setDataObject("wilbur",super1); + main->setDataObject("wilbur",subst1); + + try + { + main->setDataObject("sub", unrel1); + } + catch (SDOInvalidConversionException e) + { + cout << "Normal failure to set wrong type" << endl; + } + } + + catch (SDORuntimeException e) + { + cout << "Substitute test failed" << endl << e << endl; + } +} + + +void sdotest::merle1() +{ + + try { + + // Dynamic setup of the metadata + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("axis.xsd"); + + // or dynamically create, but that would get attributes for the strings, not elements + //mdg->addType("axis","ItemSearch",true); // sequenced + //mdg->addType("axis","ItemSearchRequest",true); // sequenced + + const Type& tstring = mdg->getType("commonj.sdo","String"); + const Type& tsearch = mdg->getType("axis","ItemSearch"); + const Type& treq = mdg->getType("axis","ItemSearchRequest"); + + //mdg->addPropertyToType(tsearch,"SubscriptionId",tstring); + //mdg->addPropertyToType(tsearch,"AssociateTag",tstring); + //mdg->addPropertyToType(tsearch,"XMLEscaping",tstring); + //mdg->addPropertyToType(tsearch,"Validate",tstring); + //mdg->addPropertyToType(tsearch,"Shared",treq, false, false, true); + //mdg->addPropertyToType(tsearch,"Request",treq, true, false, true); + + //mdg->addPropertyToType(treq,"Keywords",tstring); + //mdg->addPropertyToType(treq,"SearchIndex",tstring); + + // dynamic creation of the data + + DataObjectPtr search = mdg->create((Type&)tsearch); + + search->setCString("SubscriptionId","I am the subscription ID string"); + search->setCString("AssociateTag","I am the associate Tag string"); + search->setCString("XMLEscaping","I am the XML escaping string"); + search->setCString("Validate","I am the Validate string"); + + DataObjectPtr shared = search->createDataObject("Shared"); + shared->setCString("Keywords","SharedKeywordsString"); + shared->setCString("SearchIndex","SearchIndexString"); + + DataObjectList& requests = search->getList("Request"); + DataObjectPtr request1 = mdg->create(treq); + requests.append(request1); + request1->setCString("Keywords","RequestKeywords"); + request1->setCString("SearchIndex","RequestSearchIndex"); + + // Read the data and put it into XML: + + PropertyList properties = search->getInstanceProperties(); + + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + + for (int i=0;i" << + search->getCString(prop) << "" << endl; + break; + + case Type::DataObjectType: + if (prop.isMany()) + { + // many valued property, such as Requests , so get the list + DataObjectList& rq = search->getList(prop); + for (int j=0;jcreateDocument(dob, + "axis", prop.getName()); + doc->setXMLDeclaration(false); + char* dobXML = myXMLHelper->save(doc); + cout << "DataObject \"" << prop.getName() << + "\" as XML:" << endl; + cout << dobXML << endl; + } // if dob + } // for + } // if many + else + { + DataObjectPtr dob = search->getDataObject(prop); + if (dob != 0) + { + XMLDocumentPtr doc = myXMLHelper->createDocument(dob, + "axis", prop.getName()); + doc->setXMLDeclaration(false); + char* dobXML = myXMLHelper->save(doc); + cout << "DataObject \"" << prop.getName() << + "\" as XML:" << endl; + cout << dobXML << endl; + } // if + } // else + break; + + default: + break; + + } // switch + } // for + } // try + catch (SDORuntimeException e) + { + cout << "Merle 1 failed" << endl << e << endl; + } +} + + +void sdotest::graham3() +{ + //try { + + // Dynamic setup of the metadata + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("graham3.xsd"); + //} + //catch (SDORuntimeException e) + //{ +// cout << "Graham1 failed " << e << endl; +// } +} + +void sdotest::graham1() +{ + try { + + // Dynamic setup of the metadata + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("graham1.xsd"); + } + catch (SDORuntimeException e) + { + cout << "Graham1 failed " << e << endl; + } +} +void sdotest::graham2() +{ + try { + + // Dynamic setup of the metadata + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("graham2.xsd"); + } + catch (SDORuntimeException e) + { + cout << "Graham2 failed " << e << endl; + } +} + + +void sdotest::b46613() +{ + try { + + // Dynamic setup of the metadata + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->create("rubbish","MyObject"); + + } + catch (SDOTypeNotFoundException e) + { + cout << "b46613 gave the correct exception" << endl; + } +} + +void sdotest::doctest() +{ + try { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("doctest.xsd"); + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("doctest.xml", + "companyNS"); + cout << "RootURI=" << myXMLDocument->getRootElementURI(); + cout << "RootName=" << myXMLDocument->getRootElementName(); + } + catch (SDOTypeNotFoundException e) + { + cout << "doctest failed" << endl; + } + +} + + +void sdotest::b46634() +{ + try { + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("company_with_nillable_SN.xsd"); + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("company_with_nillable_SN.xml", + "companyNS"); + + DataObjectPtr dob = myXMLDocument->getRootDataObject(); + DataObjectList& dol = dob->getList("departments"); + DataObjectPtr dept = dol[0]; + DataObjectList& dol2 = dept->getList("employees"); + DataObjectPtr emp = dol2[0]; + + if (!emp->isSet("SN")) + { + cout << "B46634 WRONG - isSet should be true" << endl; + } + if (!emp->isNull("SN")) + { + cout << "B46634 WRONG - isNull should be true" << endl; + } + + // now write out the nill value and check its still nil + myXMLHelper->save(myXMLDocument->getRootDataObject(), + 0, "company", "b46634_out.xml"); + + } + catch (SDORuntimeException e) + { + cout << "b46634 failed" << endl; + } + +} + +void sdotest::testErrors() +{ + try { + + int i,j; + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->defineFile("error1.xsd"); + if ((i = xsh->getErrorCount()) > 0) + { + cout << "XSD reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("error1.xml", + "companyNS"); + + if ((i = myXMLHelper->getErrorCount()) > 0) + { + cout << "XML reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + + } + catch (SDORuntimeException e) + { + cout << "testErrors failed" << endl << e << endl; + } + +} + +void sdotest::b46734() +{ + try { + + int i,j; + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + + xsh->defineFile("wsdl.xsd"); + if ((i = xsh->getErrorCount()) > 0) + { + cout << "WSDL XSD reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + xsh->defineFile("wsdl-soap.xsd"); + if ((i = xsh->getErrorCount()) > 0) + { + cout << "WSDL SOAP XSD reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + xsh->defineFile("wsdl-http.xsd"); + if ((i = xsh->getErrorCount()) > 0) + { + cout << "WSDL HTTP XSD reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + // xsh->defineFile("StockQuoteService.wsdl"); + // if ((i = xsh->getErrorCount()) > 0) + // { + // cout << "SQ WSDL reported some errors:" << endl; + // for (j=0;jgetErrorMessage(j); + // if (m != 0) cout << m; + // cout << endl; + // } + // } + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("StockQuoteService.wsdl" + ); + //, "http://swanandmokashi.com"); + + if ((i = myXMLHelper->getErrorCount()) > 0) + { + cout << "XML reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0)cout << m; + cout << endl; + } + } + + } + catch (SDORuntimeException e) + { + cout << "b46734 failed" << endl << e << endl; + } + +} + +void sdotest::b46693() +{ + try { + + int i,j; + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + + xsh->defineFile("b46693.xsd"); + if ((i = xsh->getErrorCount()) > 0) + { + cout << "b46693 XSD reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0)cout << m; + cout << endl; + } + } + + // XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + // XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("b46693.xsd" + // ); + + // if ((i = myXMLHelper->getErrorCount()) > 0) + // { + // cout << "b46693 reported some errors:" << endl; + // for (j=0;jgetErrorMessage(j); + // if (m != 0)cout << m; + // cout << endl; + // } + // } + + } + catch (SDORuntimeException e) + { + cout << "b46693 failed" << endl << e << endl; + } + +} + +void sdotest::clonetest() +{ + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("companyNS","CompanyType"); + mdg->addType("companyNS","DepartmentType"); + mdg->addType("companyNS","EmployeeType"); + + + 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"); + + mdg->addPropertyToType(tcomp,"name",tstring); + mdg->addPropertyToType(tcomp,"departments",tdept,true,false,true); + mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp,false,false,false); + mdg->addPropertyToType(tcomp,"CEO",temp,false,false,true); + + mdg->addPropertyToType(tdept,"employees",temp,true,false,true); + mdg->addPropertyToType(tdept,"name",tstring,false,false,true); + mdg->addPropertyToType(tdept,"location",tstring,false,false,true); + mdg->addPropertyToType(tdept,"number",tstring,false,false,true); + + mdg->addPropertyToType(temp,"name",tstring,false,false,true); + mdg->addPropertyToType(temp,"SN",tstring,false,false,true); + mdg->addPropertyToType(temp,"manager",tbool,false,false,true); + + + DataObjectPtr comp = mdg->create((Type&)tcomp); + comp->setCString("name","The Company"); + + DataObjectPtr dept = mdg->create((Type&)tdept); + + DataObjectList& dol = comp->getList("departments"); + dol.append(dept); + + dept->setCString("name","The Department"); + dept->setCString("location","Botley"); + dept->setCString("number","123"); + + + // now clone the data factory, and add more types + + DataFactoryPtr df2 = mdg->clone(); + + df2->addType("otherNS","DataSet"); + + df2->addPropertyToType("companyNS","DepartmentType","dataset", + "otherNS","DataSet", false, false, true); + + const Type& tstring2 = df2->getType("commonj.sdo","String"); + const Type& tbool2 = df2->getType("commonj.sdo","Boolean"); + const Type& tcs2 = df2->getType("commonj.sdo","ChangeSummary"); + const Type& tcomp2 = df2->getType("companyNS","CompanyType"); + const Type& tdept2 = df2->getType("companyNS","DepartmentType"); + const Type& temp2 = df2->getType("companyNS","EmployeeType"); + + DataObjectPtr comp2 = df2->create((Type&)tcomp2); + comp->setCString("name","The Company"); + + DataObjectPtr dept2 = df2->create((Type&)tdept2); + + DataObjectList& dol2 = comp2->getList("departments"); + dol2.append(dept2); + + dept2->setCString("name","The Other Department"); + dept2->setCString("location","Not Botley"); + dept2->setCString("number","321"); + } + catch (SDORuntimeException e) + { + cout << "clone failed " << e << endl; + } + + +} + +void sdotest::testUtil() +{ + try { + + cout << "START TEST: UTILS ======================================" << endl; + + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + + mdg->addType("companyNS","CompanyType"); + // employee will be an open type... + mdg->addType("companyNS","EmployeeType", /*seq*/false, + /*open*/true, + /*abs */ false, + /*data*/ false); + + mdg->addType("companyNS","DepartmentType"); + + mdg->addType("companyNS","OpenType"); + + /* 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& 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"); + const Type& topen = mdg->getType("companyNS","OpenType"); + + + mdg->addPropertyToType(tcomp,"name",tstring); + // not containment... + mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp, false,false,false); + mdg->addPropertyToType(tcomp,"departments",tdept, true); + mdg->addPropertyToType(tcomp,"cs",tcs); + + mdg->addPropertyToType(tdept,"name",tstring); + mdg->addPropertyToType(tdept,"location",tstring); + mdg->addPropertyToType(tdept,"number",tstring); + mdg->addPropertyToType(tdept,"employees",temp,true); + + mdg->addPropertyToType(temp, "name",tstring); + mdg->addPropertyToType(temp, "SN", tstring); + mdg->addPropertyToType(temp, "manager", tbool); + + mdg->addPropertyToType(topen,"name",tstring); + + 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"); + + DataObjectList& emps = dept->getList("employees"); + + DataObjectPtr emp1 = mdg->create(temp); + DataObjectPtr emp2 = mdg->create(temp); + DataObjectPtr emp3 = mdg->create(temp); + + emps.append(emp1); + emps.append(emp2); + emps.append(emp3); + + emp1->setCString("name","Albert"); + emp1->setCString("SN","E0001"); + + emp2->setCString("name","Boris"); + emp2->setCString("SN","E0002"); + emp2->setBoolean("manager",true); + + emp3->setCString("name","Carl"); + emp3->setCString("SN","E0003"); + + emp1->setCString("openstring","Value Of Open String"); + emp1->setBoolean("openboolean",true); + + const char* c = emp1->getCString("openstring"); + + bool b = emp1->getBoolean("openboolean"); + + // unknown list type at present.. + DataObjectList& dl = emp1->getList("openintlist"); + + int i = 45; + dl.append((short)i); // now the list must be primitive and short!! + + // unknown list type at present.. + DataObjectList& dl2 = emp1->getList("opendataobjectlist"); + + DataObjectPtr myopen = mdg->create("companyNS","OpenType"); + myopen->setCString("name","MyOpenName"); + dl2.append(myopen); // now the list must be of data objects + + emp1->setDataObject("opendataobject", myopen); + + SDOUtils::printDataObject(comp); + + } + catch (SDORuntimeException e) + { + cout << "ERROR in UTILS test" << e << endl; + } + cout << "END TEST: UTILS ======================================" << endl; + +} + +void sdotest::printset(ChangeSummaryPtr cs) +{ + ChangedDataObjectList& cdl = cs->getChangedDataObjects(); + + // here there should be a creation of Ed, and a change to dept, which has a + // bool previously unset, and a int list previuously unset and an employees list + // previously unset + + for (int i=0;i< cdl.size();i++) + { + if (cs->isModified(cdl[i])) + { + + cout << "A modified of type " << cdl[i]->getType().getURI() + << "#" << cdl[i]->getType().getName() << endl; + + SettingList& sl = cs->getOldValues(cdl[i]); + if (sl.size() == 0) + { + cout << "No Settings found" << endl; + } + else + { + for (int j=0;j< sl.size(); j++) + { + cout << "Property " << sl[j].getProperty().getName(); + // this could be a many-valued property, and could be one which is + // a data object or a data type... + if (sl[j].getProperty().isMany()) + { + cout << "[" << sl[j].getIndex() << "]" ; + } + if (!sl[j].isSet()) + { + cout << " was unset before the change" << endl; + } + else + { + cout << " was set before the change !!" << endl; + } + } + } + } + } +} + + +void sdotest::b46633() +{ + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Root"); + mdg->addPropertyToType("myspace","Root","cs", + "commonj.sdo","ChangeSummary", false, false, false); + + mdg->addType("myspace","Company"); + mdg->addType("myspace","Department"); + mdg->addType("myspace","Manager"); + mdg->addType("myspace","Employee"); + + + mdg->addPropertyToType("myspace","Company","name", + "commonj.sdo","String", false, false, false); + + + mdg->addPropertyToType("myspace","Root","company", + "myspace","Company", false, false, true); + + mdg->addPropertyToType("myspace","Company","departments", + "myspace","Department", true, false, true); + + + mdg->addPropertyToType("myspace","Department","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Department","ints", + "commonj.sdo","Integer", true, false, false); + + + mdg->addPropertyToType("myspace","Department","bool", + "commonj.sdo","Boolean", false, false, false); + + mdg->addPropertyToType("myspace","Department","manager", + "myspace","Manager", false, false, true); + + mdg->addPropertyToType("myspace","Department","employees", + "myspace","Employee", true, false, true); + + mdg->addPropertyToType("myspace","Manager","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Employee","name", + "commonj.sdo","String", false, false, false); + + const Type& tcc = mdg->getType("myspace","Root"); + + DataObjectPtr dor = mdg->create((Type&)tcc); + + ChangeSummaryPtr cs = dor->getChangeSummary(); + + DataObjectPtr com = dor->createDataObject("company"); + com->setCString("name","IBM"); + + DataObjectPtr dept = com->createDataObject("departments"); + dept->setCString("name","JTC"); + + // employees initally unset + + cs->beginLogging(); + + DataObjectPtr emp = dept->createDataObject("employees"); + emp->setCString("name","Ed"); + + + + DataObjectList& dl = dept->getList("ints"); + dl.append((long)400); + + dept->setBoolean("bool", true); + + printset(cs); + + cs->endLogging(); + + // unset them all , restart logging, and get the same results + + dept->unset("bool"); + dept->unset("ints"); + dept->unset("employees"); + + cs->beginLogging(); + + DataObjectPtr emp2 = dept->createDataObject("employees"); + emp2->setCString("name","Ed2"); + + dl.append((long)600); + + dept->setBoolean("bool", true); + + printset(cs); + + cs->endLogging(); + + } + catch (SDORuntimeException e) + { + cout << "b46633 failed " << e << endl; + } + +} + + + +void sdotest::testLoad() +{ + try + { + int i,j; + DataFactoryPtr mdg = DataFactory::getDataFactory(); + FILE* f = fopen("company_with_nillable_SN.xsd","r+"); + char* buffer = new char[4000]; + j = 0; + while ((i = fgetc(f)) != EOF) + { + buffer[j++] = (char)i; + } + buffer[j] = 0; + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + xsh->define(buffer); + + if ((i = xsh->getErrorCount()) > 0) + { + cout << "XSD reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + + FILE* f2 = fopen("company_with_nillable_SN.xml","r+"); + j = 0; + while ((i = fgetc(f2)) != EOF) + { + buffer[j++] = (char)i; + } + buffer[j] = 0; + + XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); + XMLDocumentPtr myXMLDocument = myXMLHelper->load(buffer); + + } + catch (SDORuntimeException e) + { + cout << "Exception in testDAS " << e << endl; + } +} + +void sdotest::includetest() +{ + try + { + int i,j; + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + + xsh->defineFile("include.xsd"); + if ((i = xsh->getErrorCount()) > 0) + { + cout << "INCLUDE XSD reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + + xsh->defineFile("../t2/includeother.xsd"); + if ((i = xsh->getErrorCount()) > 0) + { + cout << "INCLUDE XSD reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + } + catch (SDORuntimeException e) + { + cout << "Exception in include test" << e << endl; + } +} + +void sdotest::detachtest() +{ + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Root"); + + mdg->addType("myspace","Company"); + mdg->addType("myspace","Department"); + mdg->addType("myspace","Manager"); + mdg->addType("myspace","Employee"); + + + mdg->addPropertyToType("myspace","Company","name", + "commonj.sdo","String", false, false, false); + + + mdg->addPropertyToType("myspace","Root","company", + "myspace","Company", false, false, true); + + mdg->addPropertyToType("myspace","Company","departments", + "myspace","Department", true, false, true); + + + mdg->addPropertyToType("myspace","Department","name", + "commonj.sdo","String", false, false, false); + + + mdg->addPropertyToType("myspace","Department","manager", + "myspace","Manager", false, false, true); + + mdg->addPropertyToType("myspace","Department","employees", + "myspace","Employee", true, false, true); + + mdg->addPropertyToType("myspace","Manager","name", + "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Employee","name", + "commonj.sdo","String", false, false, false); + + const Type& tcc = mdg->getType("myspace","Root"); + + DataObjectPtr dor = mdg->create((Type&)tcc); + + DataObjectPtr com = dor->createDataObject("company"); + com->setCString("name","IBM"); + + DataObjectPtr dept = com->createDataObject("departments"); + + dept->setCString("name","JTC"); + + + DataObjectPtr emp = dept->createDataObject("employees"); + emp->setCString("name","Ed"); + + DataObjectPtr emp2 = dept->createDataObject("employees"); + emp2->setCString("name","Tom"); + + DataObjectList& dol = dept->getList("employees"); + + DataObjectPtr e = dol[0]; + e->detach(); + + DataObjectPtr cont = emp->getContainer(); + + if (cont != 0) + { + cout << "EMP STILL ATTACHED - problem" << endl; + } + + DataObjectPtr cont2 = dol[0]->getContainer(); + + if (cont2 == 0) + { + cout << "SECOND DETACHED - problem" << endl; + } + + } + catch (SDORuntimeException e) + { + cout << "detach failed " << e << endl; + } + +} + + +void sdotest::leak() +{ + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Root"); + + + mdg->addPropertyToType("myspace","Root","ints", + "commonj.sdo","Integer", true, false, false); + + + const Type& tcc = mdg->getType("myspace","Root"); + + DataObjectPtr dor = mdg->create((Type&)tcc); + + + cout << "List set should be false and is " << dor->isSet("ints") << endl; + + DataObjectList& dl = dor->getList("ints"); + + cout << "List set should be false and is " << dor->isSet("ints") << endl; + + dl.append((long)400); + + cout << "List set should be true and is " << dor->isSet("ints") << endl; + + dl.remove(0); + + cout << "List set should be false and is " << dor->isSet("ints") << endl; + + dl.append((long)400); + + cout << "List set should be true and is " << dor->isSet("ints") << endl; + + dor->unset("ints"); + + cout << "List set should be false and is " << dor->isSet("ints") << endl; + + dl.append((long)600); + + cout << "List set should be true and is " << dor->isSet("ints") << endl; + + + } + catch (SDORuntimeException e) + { + cout << "leak failed " << e << endl; + } + +} + +void sdotest::twolists() +{ + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Root"); + + //mdg->addType("myspace","Company"); + //mdg->addType("myspace","Department"); + //mdg->addType("myspace","Manager"); + //mdg->addType("myspace","Employee"); + + + //mdg->addPropertyToType("myspace","Company","name", + // "commonj.sdo","String", false, false, false); + + + //mdg->addPropertyToType("myspace","Root","company", + // "myspace","Company", false, false, true); + + //mdg->addPropertyToType("myspace","Company","departments", + // "myspace","Department", true, false, true); + + + //mdg->addPropertyToType("myspace","Department","name", + // "commonj.sdo","String", false, false, false); + + mdg->addPropertyToType("myspace","Root","ints", + "commonj.sdo","Integer", true, false, false); + + mdg->addPropertyToType("myspace","Root","ints2", + "commonj.sdo","Integer", true, false, false); + + //mdg->addPropertyToType("myspace","Department","bool", + // "commonj.sdo","Boolean", false, false, false); + + //mdg->addPropertyToType("myspace","Department","manager", + // "myspace","Manager", false, false, true); + + //mdg->addPropertyToType("myspace","Department","employees", + // "myspace","Employee", true, false, true); + + //mdg->addPropertyToType("myspace","Manager","name", + // "commonj.sdo","String", false, false, false); + + //mdg->addPropertyToType("myspace","Employee","name", + // "commonj.sdo","String", false, false, false); + + const Type& tcc = mdg->getType("myspace","Root"); + + DataObjectPtr dor = mdg->create((Type&)tcc); + + //ChangeSummaryPtr cs = dor->getChangeSummary(); + + //DataObjectPtr com = dor->createDataObject("company"); + //com->setCString("name","IBM"); + + //DataObjectPtr dept = com->createDataObject("departments"); + //dept->setCString("name","JTC"); + + // employees initally unset + + //cs->beginLogging(); + + //DataObjectPtr emp = dept->createDataObject("employees"); + //emp->setCString("name","Ed"); + + DataObjectList& dl2 = dor->getList("ints2"); + dl2.append((long)400); + + + DataObjectList& dl = dor->getList("ints"); + dl.append((long)400); + + //dept->setBoolean("bool", true); + + //printset(cs); + + //cs->endLogging(); + + // unset them all , restart logging, and get the same results + + //dept->unset("bool"); + //dept->unset("ints"); + //dept->unset("employees"); + + //cs->beginLogging(); + + //DataObjectPtr emp2 = dept->createDataObject("employees"); + //emp2->setCString("name","Ed2"); + + //dl.append((long)600); + + //dept->setBoolean("bool", true); + + // printset(cs); + + //cs->endLogging(); + + } + catch (SDORuntimeException e) + { + cout << "twolists failed " << e << endl; + } + +} + + +void sdotest::graham4() +{ + try { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + mdg->addType("myspace","Root"); + mdg->addType("myspace","ListItem"); + + + mdg->addPropertyToType("myspace","ListItem","name", + "commonj.sdo","String", false, false, false); + + + mdg->addPropertyToType("myspace","Root","ints", + "commonj.sdo","Integer", true, false, false); + + mdg->addPropertyToType("myspace","Root","items", + "myspace","ListItem", true, false, true); + + + const Type& tcc = mdg->getType("myspace","Root"); + + DataObjectPtr dor = mdg->create((Type&)tcc); + + + // first try with no elements in lists + + try { + DataObjectPtr pitem = dor->getDataObject("items[name=\"hello\"]"); + } + catch (SDOIndexOutOfRangeException e) + { + cout << "Normal exception in Graham4" << endl; + } + + try { + int inty = dor->getInteger("ints[1]"); + } + catch (SDOIndexOutOfRangeException e) + { + cout << "Normal exception in Graham4" << endl; + } + + // now populate them + + DataObjectPtr myitem = dor->createDataObject("items"); + myitem->setCString("name","not hello"); + + try { + DataObjectPtr pitem2 = dor->getDataObject("items[name=\"hello\"]"); + } + catch (SDOIndexOutOfRangeException e) + { + cout << "Normal exception in Graham4" << endl; + } + + DataObjectList& dl = dor->getList("ints"); + dl.append((long)100); + + try { + int inty2 = dor->getInteger("ints[2]"); + } + catch (SDOIndexOutOfRangeException e) + { + cout << "Normal exception in Graham4" << endl; + } + + try + { + DataObjectPtr pitem2 = dor->getDataObject("items[name=\"not hello\"]"); + cout << "item name is " << pitem2->getCString("name") << endl; + } + catch (SDORuntimeException e) + { + cout << "ABNORMAL exception in Graham4" << endl; + } + + try { + int inty2 = dor->getInteger("ints[1]"); + cout << "Integer is " << inty2 << endl; + } + catch (SDOIndexOutOfRangeException e) + { + cout << "Normal exception in Graham4" << endl; + } + + } + catch (SDORuntimeException e) + { + cout << "twolists failed " << e << endl; + } + +} + + +void sdotest::graham5() +{ + try + { + int i,j; + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + + xsh->defineFile("Order.xsd"); + if ((i = xsh->getErrorCount()) > 0) + { + cout << "INCLUDE XSD reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + } + catch (SDORuntimeException r) + { + cout << "Graham5 failed " << r << endl; + } +} + + + +void sdotest::b47293() +{ + int i,j,k; + try + { + DataFactoryPtr mdg = DataFactory::getDataFactory(); + + XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); + + xsh->defineFile("47293Catalog.xsd"); + + if ((i = xsh->getErrorCount()) > 0) + { + cout << "47293 XSD reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + + TypeList tl = mdg->getTypes(); + for ( k=0;kgenerateFile(tl,"47293Catalog-out.xsd","catalogNS"); + + DataFactoryPtr mdg2 = DataFactory::getDataFactory(); + + XSDHelperPtr xsh2 = HelperProvider::getXSDHelper(mdg2); + + xsh2->defineFile("47293Catalog-out.xsd"); + + if ((i = xsh2->getErrorCount()) > 0) + { + cout << "47293-out XSD reported some errors:" << endl; + for (j=0;jgetErrorMessage(j); + if (m != 0) cout << m; + cout << endl; + } + } + + TypeList tl2 = mdg2->getTypes(); + for (k=0;kloadFile("47293Catalog.xml", "catalog"); + + //DataObjectPtr dob = doc->getRootDataObject(); + + //xmh->save(dob,"","catalog","47293Catalog-out.xml"); + + + } + catch (SDORuntimeException e) + { + cout << "B47137 failed " << e << endl; + } +} + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/include3.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/include3.xsd new file mode 100644 index 0000000000..a74c94e318 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/include3.xsd @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother.xsd new file mode 100644 index 0000000000..7e42346471 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother.xsd @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother1.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother1.xsd new file mode 100644 index 0000000000..98705f6418 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother1.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother2.xsd b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother2.xsd new file mode 100644 index 0000000000..66dfca00a8 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother2.xsd @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/testopen3.xml b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/testopen3.xml new file mode 100644 index 0000000000..4af489c53a --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/runtime/core/test/testopen3.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sca-cpp/tags/cpp-stable-20060304/sdo/sdotest.sh b/sca-cpp/tags/cpp-stable-20060304/sdo/sdotest.sh new file mode 100755 index 0000000000..85919dd9f3 --- /dev/null +++ b/sca-cpp/tags/cpp-stable-20060304/sdo/sdotest.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +# 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. + +APFULLDIR=`pwd` +export SDO4CPP_HOME="$APFULLDIR" +if [ x$SDO4CPP = x ]; then +export SDO4CPP="$SDO4CPP_HOME" +fi + +echo "Using SDO installed at $SDO4CPP" + +export LD_LIBRARY_PATH=$SDO4CPP/lib:$LD_LIBRARY_PATH +cd $SDO4CPP_HOME/runtime/core/test +./tuscany_sdo_test diff --git a/tags/cpp-stable-20060304/build.sh b/tags/cpp-stable-20060304/build.sh deleted file mode 100755 index f082266f1b..0000000000 --- a/tags/cpp-stable-20060304/build.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh - -# 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. - -TOPDIR=`pwd` - - -if [ x$AXISCPP_DEPLOY = x ]; then -echo "AXISCPP_DEPLOY not set" -exit; -fi -if [ x$XERCES_DEPLOY = x ]; then -echo "XERCES_DEPLOY not set" -exit; -fi - -if [ x$LIBXML2_INCLUDE = x ]; then -echo "LIBXML2_INCLUDE not set" -exit; -fi -if [ x$LIBXML2_LIB = x ]; then -echo "LIBXML2_LIB not set" -exit; -fi - -# Build SDO -cd sdo -./build.sh -cd $TOPDIR - -# Build SCA -export TUSCANY_SDOCPP=$TOPDIR/sdo -cd sca -./build.sh -cd $TOPDIR diff --git a/tags/cpp-stable-20060304/build.txt b/tags/cpp-stable-20060304/build.txt deleted file mode 100644 index e1669eb738..0000000000 --- a/tags/cpp-stable-20060304/build.txt +++ /dev/null @@ -1,83 +0,0 @@ -Tuscany C++ Build Instructions -============================== - -Download the source from http://svn.apache.org/repos/asf/incubator/tuscany/cpp -The download location is - -Linux Build -=========== - -Prereqs: - for SDO -- libxml2 (tested with version 2.6.19) - for SCA -- Axis C++ (tested with version 1.5.0) installed at ($AXISCPP_DEPLOY) -- Xerces C++ (tested with version 2.2.0) installed at ($XERCES_DEPLOY) - -Environment: -- export LIBXML2_INCLUDE= -- export LIBXML2_LIB= -- export AXISCPP_DPELOY= -- export XERCES_DEPLOY= - - -Build: -- cd -- ./build.sh - -This first builds the SDO subproject then SCA. The results are installed in - /sdo/lib /sdo/include /sdo/bin - /sca/lib /sca/include /sca/bin - -SDO Test --------- - -Run: -- cd /sdo -- ./sdotest.sh - - -SCA Test --------- - -Run: -- cd /sca -- ./scatest.sh - -Windows Build -============= - -Microsoft Visual Studio projects are provided for building on Windows. - -SDO ---- - -The project is dependent on libxml -(available here: http://www.zlatkovic.com/libxml.en.html) - -The versions required are these: - libxml2-2.6.19.win32 - iconv-1.9.1.win32 - zlib-1.2.2.win32 - -These need to be unzipped such that they live under tuscany\cpp\sdo\lib. - -Open the build workspace tuscany\cpp\sdo\runtime\projects\tuscany_sdo\tuscany_sdo.dsw - -Build->Set Active Configuration->sdo_runtime - Win32 Release - -Build->Rebuild All - -The output of the build will be in runtime\core\Release. - -The executable ,required headers and lib are copied to tuscany\cpp\sdo\bin, include and lib. - - -Note: The copy at the end of the debug build also writes to the bin directory, so the output -tuscany_sdo.dll will overwrite the release version. - -SCA ---- - -Open the build workspace tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca.dsw -and follow the instructions. diff --git a/tags/cpp-stable-20060304/sca/AUTHORS b/tags/cpp-stable-20060304/sca/AUTHORS deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tags/cpp-stable-20060304/sca/COPYING b/tags/cpp-stable-20060304/sca/COPYING deleted file mode 100755 index 6b0b1270ff..0000000000 --- a/tags/cpp-stable-20060304/sca/COPYING +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. - diff --git a/tags/cpp-stable-20060304/sca/ChangeLog b/tags/cpp-stable-20060304/sca/ChangeLog deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tags/cpp-stable-20060304/sca/Developers Guide.txt b/tags/cpp-stable-20060304/sca/Developers Guide.txt deleted file mode 100644 index 96b0476174..0000000000 --- a/tags/cpp-stable-20060304/sca/Developers Guide.txt +++ /dev/null @@ -1,346 +0,0 @@ -Tuscany SCA For C++ Developers Guide -==================================== - -Contents: - Developing Services in C++ - Running C++ Services - - -See cpp/build.txt in the parent directory or the cpp/sca/INSTALL file -for build instructions. - -Building the tools ------------------- - -NOTE: this is built and installed by the build step above. - -Currently, there is only one tool: "scagen". It can be built using the -ant build script at \tuscany\cpp\sca\tools\scagen\build.xml. -The default target "all" will build the java jars, documentation, -scripts and a zip file of the whole thing. This is all the ant -build tasks apart from "test" which runs all the junit tests. - -The ant build script can be altered to add the junit tests to the -default target. Replace the line - - - -The "test" task was not included in "all" as it requires a -junit jar file to run. This jar is available here: -http://www.junit.org/index.htm testing has been done with -Junit version 3.8.1. - -Running the scagen tool ------------------------ - -The scagen tool user interface is quite basic in this initial release. -It can be run from the scagen.jar file using "java -jar scagen.jar" -or from small scripts - scagen.cmd for Windows and scagen.sh for Unix. -The parameters are: - -dir - -output - -e.g. - scagen -dir c:\mymodules\module1 -output c:\mymodules\bld\module1 - -What scagen does ----------------- - -The input directory passed to the scagen tools as -the -dir parameter method is taken to be the SCA -module root directory. All the sca.module and .fragment -files in that directory are inspected to resolve all -the elements within them. - -Each element found is inspected -to see if it has a element within it. - -Each element should have a -header attribute that represents a C++ header file -that contains function prototypes for the C++ -implementation of the service. An optional class -attribute can be used to select one class if more than -one that is present in the header file. The default -class is the one with the same name as the header file. -The tool will verify that the implementation header -contains an appropriate class prototype. - -The directory that contains the implementation header -should also contain a matching .componentType file for -the equivalent SCA component. So for example, a -MyServiceImpl.h file would have a corresponding -MyServiceImpl.componentType file in the same directory. - -Each componentType file is inspected for -and elements. For each element -that is found that contains a element -within it, - -the header attribute of the is taken -as the filename of the C++ interface header for the -SCA service. This C++ header file is opened and used -as a means for specifying the SCA service resulting -in an appropriate wrapper and proxy being generated -for this service interface. Both method bodies and h -eaders are generated in the given output directory. -The processing of a element is the same -except that only a proxy header and implementation -re generated. - - -Getting started with the code ------------------------------ - -The following is a list of tasks that are performed by the scagen tool -for each task we will describe technically how it is accomplished and -the location of the code that can be inspected/changed to alter the -behaviour. - -Here are the tasks listed, below is a paragraph for each one: - - o (Overall structure of the code) - o Walking the input directory - o Scanning the .module and .fragment files - o finding the C++ implementation headers - o finding/checking the classname in the C++ implementation headers - o find the matching .componentTemplate files - o going into the componentTemplate files to extract the interface header filenames - o going into the interface header files and parsing them to extract the method signatures - into a network of objects we can inspect. - o taking all the meta data stored as objects and building a DOM for XSLT processing - o using XSLT to produce a proxy header - o using XSLT to produce a proxy implementation - o using XSLT to produce a wrapper header - o using XSLT to produce a wrapper implementation - - -Overall structure of the code ------------------------------ - -There are two packages org.apache.tuscany.sca.cpp.tools.common and -org.apache.tuscany.sca.cpp.tools.services. The ...common package is -taken from some existing code that was also contributed to axis that -was used to parse C++ code and do various tasks like insert trace. -This code was repackaged and shipped as a tuscany package but there -has been a desire not to change it significantly from the equivalent -org.apache.axis.tools.common package to leave the door open for -future convergence. - -Where the ...common package has been amended (for example to cope with -namespaces better or the provision of an Options.reset method to reset a static -variable and enable the tuscany junit tests to run independently) these -have been flagged with a "Tuscany" comment. The ...common package basically -provides two functions - 1) the ability to go into a directory (see DirectoryTree.java) -and process files that fit a particular filter (e.g. "*.hpp") by passing them to -implementer of the FileActor Interface (see the classes "Headers" for the -actor that processes C++ headers and "XMLFileActor" for the file actor that -processes the .componentType and sca.module/fragment files.) - -The ...services package contains the majority of code written afresh for the -scagen tool including the subclasses of XMLFileActor (see ComponentTypeFileHandler.java -and ModuleOrFragmentFileHandler.java) that are the classes that tie this -package to the ...common package and which are called by the -DirectoryTree walker. - -Walking the module root input directory ---------------------------------------- - -The main method of the scagen class creates an instance of -"DirectoryScanner" and registers with it a file handler of -type "ModuleOrFragmentFileHandler" for all files that end -in ".module" or ".fragment". On calling the "walkTree" method -on the scanner it will in turn call the actOnFile method on the -ModuleOrFragmentFileHandler for appropriate files. - -Scanning the .module and .fragment files ----------------------------------------- - -The scanning of these files by the respective "ModuleOrFragmentFileHandler" -and "ComponentTypeFileHandler" is mostly handled by the superclass -"XMLFileActor". This class will recursively goes through the whole -XML file and considers the name of the XML element it finds. -"XMLFileActor" contains a map of element names to element handlers -that will "flatten out" the structure of the XML file "above" the -level of node we are interested in. - -So for example the ComponentTypeFile handler sets up the handlers -map as follows: - - GenericDomNodeHandler gdnh = new GenericDomNodeHandler(); - handlers.put("componentType", gdnh); - handlers.put("interface.cpp", gdnh); - ServiceDomNodeHandler sdnh = new ServiceDomNodeHandler(); - handlers.put("service", sdnh); - - ReferenceDomNodeHandler rdnh = new ReferenceDomNodeHandler(); - handlers.put("reference", rdnh); - -The majority of processing done by these DomNOdeHandlers is to -place the attributes and values discovered into another map that -maps an (static version of) the XPath of a value to the value itself. -So for example "/componentType/service/interface.cpp/@header" might contain -the current ("root to here") value of the header attribute of the current -interface. - -Particular handlers for the "leaves" of this tree -such as ServiceDomNodeHandler and ReferenceDomNodeHandler -can then consume these values from the map without having -to be concerned with the actual names of things, -like the service name, appearing in the key. It should be -understood though that there are multiple values placed in the map -for one "key" as the processing works its way through the -XML tree. For example the processing of a second component will -overlay its data over the same keys as the first component. -(After "wiping" the appropriate subtree.) - -Finding the C++ implementation headers --------------------------------------- - -The "/module/component/implementation.cpp/@header" and -is used to key into the name of the implementation header -and this is opened directly and passed to the -actOnFileMethod of a Headers object from the ...common package -bypassing the DirectoryScanner code. The path is relative to -the given (-dir option) module root directory. - -Finding/checking the classname in the C++ implementation headers ------------------------------------------------------------------ - -This implementation header is not used to define the -methods of the SCA service but rather is opened to check - any given implementation.cpp/@class attribute -(or find out the name of the implementation class -in the header if this is not specified in the XML. This -is done using the same method that later parses the interface -C++ headers into java objects - we just them inspect the -class attribute of the "Signature" objects that represent the methods -we find in the header. - -Find the matching .componentType files ------------------------------------------- - -By SCA convention we go to the same directory as the implementation -files and look for the XXX.componentType files with the same name. -A instance of the ComponentDOMNodeHandler handles the data in the -Component Element and pre-creates a ComponentTypeFileHandler that -will eventually be called to process the .componentType file. This -object receives a number of "setParameter" calls to poke into it -matadata that is available prior/outside the the actual .componentType -file it will read. - -Go into the componentType files to extract the interface header filenames ------------------------------------------------------------------------------ - -We open up the .componentTemplateFiles with exactly the same -mechanism as we read the sca.module/fragment file (by creating -a DOM and descending through it this time using a ComponentTypeFileHandler that it -has had various data values ( e.g. the implementation class and namespace used later) -poked into it. The ComponentTypeFileHandler itself has individual -handlers for the service and reference XML/DOM element/nodes -that is comes across (ServiceDomNodeHandler and ReferenceDomNodeHandler -respectively). Each these handlers will pull out the name of -a C++ interface header and use it to resolve the interface of the -SCA Service. - -Parsing the interface header files for signatures -------------------------------------------------- - -The Service/Reference DOM Node hander both call the - ServicesGenerator.handleInterfaceHeader(parameters, true); -method, the second parameter is used to differentiate -the call source as we don't need wrapper files for -SCA references (just proxies). - -The ServicesGenerator uses the Headers file actor from -the ...common package to create a List of Signature -objects that describe the interface methods in the C++ -header. - -Take all the meta data stored as objects and build a DOM --------------------------------------------------------- -We now have a List of Signature objects and a map that -represents the flattened information that we have pulled -from the XML files in the ServiceGenerator class. -We call a "createDOMofMethods" method -to consolidate all this information into one DOM -(this task should be split into more than one method as the -signature/parameter list of the method is too large). - -Use XSLT to produce the output files (Proxy/Wrapper headers and Implementations) --------------------------------------------------------------------------------- - -The ServicesGenerator.handleInterfaceHeader(parameters, forReference); -method closes of with the code: - - createProxyCPPFromDom(outputDir, dom); - createProxyHeaderFromDom(outputDir, dom); - - if (!forReference) { - createWrapperCPPFromDom(outputDir, dom); - createWrapperHeaderFromDom(outputDir, dom); - } - - -Each of the create methods sets up the output -file name and a different XSLT transform and calls -"createOutputFromDom" to transform/filter the data in the -"model" that is held in our DOM of the data to a particular -"view" as expressed in the C++ output file. - -The four XSLT style sheets are in rough order of the output -file and this corresponds very roughly to a depth first descent -of the DOM tree so, for example, we could have in a stylesheet: - -... - void* - ::newImplementation() - { - return new (target); - } - -which would be output as: - - void* MyClassImpl_MyClass_Proxy::newImplementation() - { - return new MyClassImpl(target) - } - -given appropriate valies for $class and "../@implClass" and -$class might be defined to be: -xsl:variable name="clazz"> - - _ - - _Proxy - - -giving "MyClassImpl_MyClass_Proxy" - -The stylesheets can be found in the xsl subdirectory of the -org.apache.tuscany.sca.cpp.tools.services package. - -Unit Testing Scagen Code Changes --------------------------------- - -The junit unit test - /tuscany/cpp/sca/tools/scagen/ - junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllModulesTest.java - -will dynamically look for all the subdirectores of the directory -path given by TuscanyTestCase.junit_modules and run the scagen -tool on them as if they were modules roots. - -By convention an "expected_output" directory is located -(see the CVS tree or the test program) and the actual -and expected results compared. This testcase is thus a -good first/basic regression test for any changes. - -New test cases can thus be added without having to write -any new junit java code by by creating new SCA modules and -the associated expected Scagen output - perhaps by using the tool -initially and checking the output is satisfactory before copying -it to the expected output directory at: - -/tuscany/cpp/sca/tools/scagen/junit/testoutput//expected_output -where input data is taken from -/tuscany/cpp/sca/tools/scagen/junit/testinput/modules/ diff --git a/tags/cpp-stable-20060304/sca/INSTALL b/tags/cpp-stable-20060304/sca/INSTALL deleted file mode 100644 index 196c78c22a..0000000000 --- a/tags/cpp-stable-20060304/sca/INSTALL +++ /dev/null @@ -1,13 +0,0 @@ -Building Tuscany SCA on Linux. -============================== - -1. Extract the source to a folder. - -2. You need to set the following environment variable to point to tuscany sdo - TUSCANY_SDOCPP - -3. You need to set the following environment variable to point to Axis-c installation: - AXISCPP_DEPLOY - -4. Build the source - ./build.sh diff --git a/tags/cpp-stable-20060304/sca/LICENSE b/tags/cpp-stable-20060304/sca/LICENSE deleted file mode 100755 index 6b0b1270ff..0000000000 --- a/tags/cpp-stable-20060304/sca/LICENSE +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. - diff --git a/tags/cpp-stable-20060304/sca/Makefile.am b/tags/cpp-stable-20060304/sca/Makefile.am deleted file mode 100644 index 66f0a318e8..0000000000 --- a/tags/cpp-stable-20060304/sca/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = runtime diff --git a/tags/cpp-stable-20060304/sca/NEWS b/tags/cpp-stable-20060304/sca/NEWS deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tags/cpp-stable-20060304/sca/README b/tags/cpp-stable-20060304/sca/README deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tags/cpp-stable-20060304/sca/autogen.sh b/tags/cpp-stable-20060304/sca/autogen.sh deleted file mode 100755 index d40a2eb9d4..0000000000 --- a/tags/cpp-stable-20060304/sca/autogen.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -for i in libtoolize aclocal autoconf autoheader -do - echo -n "Running $i..." - $i || exit 1 - echo 'done.' -done - -echo -n 'Running automake...' -automake --add-missing -echo 'done.' -exit 0 - diff --git a/tags/cpp-stable-20060304/sca/build.sh b/tags/cpp-stable-20060304/sca/build.sh deleted file mode 100755 index 217569303a..0000000000 --- a/tags/cpp-stable-20060304/sca/build.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh - -# 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. - -TUSCANY_SCACPP_HOME=`pwd` - -if [ x$AXISCPP_DEPLOY = x ]; then -echo "AXISCPP_DEPLOY not set" -exit; -fi -echo "Using Axis C++ installed at $AXISCPP_DEPLOY" - -if [ x$XERCES_DEPLOY = x ]; then -echo "XERCES_DEPLOY not set" -exit; -fi -echo "Using Xerces C++ installed at $XERCES_DEPLOY" - -if [ x$TUSCANY_SDOCPP = x ]; then -echo "TUSCANY_SDOCPP not set" -exit; -fi -echo "Using SDO installed at $TUSCANY_SDOCPP" - -# Build tools first as they will be used to generate cpp code -cd $TUSCANY_SCACPP_HOME/tools/scagen -ant -chmod a+x $TUSCANY_SCACPP_HOME/bin/scagen.sh - -cd $TUSCANY_SCACPP_HOME -./autogen.sh -./configure --prefix=${TUSCANY_SCACPP_HOME} -make -make install diff --git a/tags/cpp-stable-20060304/sca/configure.ac b/tags/cpp-stable-20060304/sca/configure.ac deleted file mode 100644 index 9d58b6c824..0000000000 --- a/tags/cpp-stable-20060304/sca/configure.ac +++ /dev/null @@ -1,51 +0,0 @@ -dnl run autogen.sh to generate the configure script. - -AC_PREREQ(2.59) -AC_INIT(tuscany_sca, 1.0.0) -AC_CANONICAL_SYSTEM -AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) - -# Checks for programs. -AC_PROG_CXX -AC_PROG_CC -AC_PROG_CPP -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PROG_MAKE_SET -AC_PROG_LIBTOOL - -# Checks for libraries. - -# Checks for header files. -AC_HEADER_DIRENT -AC_HEADER_STDC -AC_CHECK_HEADERS([inttypes.h stdlib.h string.h sys/time.h unistd.h]) - -# Checks for typedefs, structures, and compiler characteristics. -AC_HEADER_STDBOOL -AC_C_CONST -AC_C_INLINE - -# Checks for library functions. -AC_FUNC_CLOSEDIR_VOID -AC_FUNC_STAT -AC_FUNC_VPRINTF -AC_CHECK_FUNCS([getcwd putenv strdup]) - -AC_CONFIG_FILES([Makefile - runtime/Makefile - runtime/core/Makefile - runtime/core/src/Makefile - runtime/axis_binding/Makefile - runtime/axis_binding/handler/Makefile - runtime/axis_binding/handler/src/Makefile - runtime/axis_binding/wrapper/Makefile - runtime/axis_binding/wrapper/src/Makefile - runtime/core/test/Makefile - runtime/core/test/CustomerInfo/Makefile - runtime/core/test/MyValue/Makefile - runtime/core/test/src/Makefile - ]) -AC_OUTPUT - diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.dsw b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.dsw deleted file mode 100644 index 81e97ea3fb..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.dsw +++ /dev/null @@ -1,113 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "tuscany_sca"=.\tuscany_sca\tuscany_sca.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "tuscany_sca_axis_handler"=.\tuscany_sca_axis_handler\tuscany_sca_axis_handler.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name tuscany_sca - End Project Dependency -}}} - -############################################################################### - -Project: "tuscany_sca_axis_wrapper"=.\tuscany_sca_axis_wrapper\tuscany_sca_axis_wrapper.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name tuscany_sca - End Project Dependency - Begin Project Dependency - Project_Dep_Name tuscany_sca_axis_handler - End Project Dependency -}}} - -############################################################################### - -Project: "tuscany_sca_test"=.\tuscany_sca_test\tuscany_sca_test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name tuscany_sca - End Project Dependency - Begin Project Dependency - Project_Dep_Name tuscany_sca_test_CustomerInfo - End Project Dependency - Begin Project Dependency - Project_Dep_Name tuscany_sca_test_MyValue - End Project Dependency -}}} - -############################################################################### - -Project: "tuscany_sca_test_CustomerInfo"=.\tuscany_sca_test_CustomerInfo\tuscany_sca_test_CustomerInfo.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name tuscany_sca - End Project Dependency -}}} - -############################################################################### - -Project: "tuscany_sca_test_MyValue"=.\tuscany_sca_test_MyValue\tuscany_sca_test_MyValue.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name tuscany_sca - End Project Dependency -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.ncb b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.ncb deleted file mode 100644 index c73e95cb5b..0000000000 Binary files a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.ncb and /dev/null differ diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.opt b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.opt deleted file mode 100644 index 90384e4e95..0000000000 Binary files a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca.opt and /dev/null differ diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/Build Instructions.txt b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/Build Instructions.txt deleted file mode 100644 index cf64885bde..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/Build Instructions.txt +++ /dev/null @@ -1,10 +0,0 @@ -Tuscanny SCA Build Instructions -=============================== - -1) Set the environment variable SDO4CPP to the path of an SDO driver - -2) Set the environment variable AXISCPP to the path of Axis for C++ - -3) Build->Rebuild All - -The output for the build will be in tuscany/cpp/sca/include, lib and bin diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.dsp b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.dsp deleted file mode 100644 index e721fd28fc..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.dsp +++ /dev/null @@ -1,512 +0,0 @@ -# Microsoft Developer Studio Project File - Name="tuscany_sca" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=tuscany_sca - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca.mak" CFG="tuscany_sca - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "tuscany_sca - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "tuscany_sca - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "tuscany_sca - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SCA_EXPORTS" /FD /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /machine:I386 /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=del ..\..\..\bin\tuscany_sca.* del ..\..\..\lib\*.lib copy ..\..\..\runtime\core\src\osoa\sca\*.h ..\..\..\include\osoa\sca copy ..\..\..\runtime\core\src\tuscany\sca\core\*.h ..\..\..\include\tuscany\sca\core copy ..\..\..\runtime\core\src\tuscany\sca\model\*.h ..\..\..\include\tuscany\sca\model copy ..\..\..\runtime\core\src\tuscany\sca\util\*.h ..\..\..\include\tuscany\sca\util copy Release\tuscany_sca.dll ..\..\..\bin copy Release\tuscany_sca.lib ..\..\..\lib copy ..\..\..\runtime\core\src\tuscany\sca\ws\*.h ..\..\..\include\tuscany\sca\ws -# End Special Build Tool - -!ELSEIF "$(CFG)" == "tuscany_sca - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SCA_EXPORTS" /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=del ..\..\..\bin\tuscany_sca.* del ..\..\..\lib\*.lib copy ..\..\..\runtime\core\src\osoa\sca\*.h ..\..\..\include\osoa\sca copy ..\..\..\runtime\core\src\tuscany\sca\core\*.h ..\..\..\include\tuscany\sca\core copy ..\..\..\runtime\core\src\tuscany\sca\model\*.h ..\..\..\include\tuscany\sca\model copy ..\..\..\runtime\core\src\tuscany\sca\util\*.h ..\..\..\include\tuscany\sca\util copy ..\..\..\runtime\core\src\tuscany\sca\ws\*.h ..\..\..\include\tuscany\sca\ws copy Debug\tuscany_sca.dll ..\..\..\bin copy Debug\tuscany_sca.pdb ..\..\..\bin copy Debug\tuscany_sca.lib ..\..\..\lib -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "tuscany_sca - Win32 Release" -# Name "tuscany_sca - Win32 Debug" -# Begin Group "osoa/sca" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ComponentContext.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ComponentContext.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ComponentContextImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ComponentContextImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\export.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ModuleContext.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ModuleContext.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ModuleContextImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ModuleContextImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\SCA.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\sca.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ServiceList.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ServiceList.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ServiceRuntimeException.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\osoa\sca\ServiceRuntimeException.h -# End Source File -# End Group -# Begin Group "tuscany/sca" - -# PROP Default_Filter "" -# Begin Group "core" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\Operation.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\Operation.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\SCAEntryPoint.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\SCAEntryPoint.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\SCARuntime.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\SCARuntime.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ServiceProxy.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ServiceProxy.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ServiceWrapper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\core\ServiceWrapper.h -# End Source File -# End Group -# Begin Group "model" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Binding.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Binding.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Component.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Component.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\CPPImplementation.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\CPPImplementation.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\CPPInterface.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\CPPInterface.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\EntryPoint.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\EntryPoint.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ExternalService.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ExternalService.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Implementation.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Implementation.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Interface.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Interface.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ModelLoader.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ModelLoader.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Module.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Module.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Service.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Service.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ServiceReference.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\ServiceReference.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Subsystem.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Subsystem.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\System.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\System.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Wire.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Wire.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WireTarget.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WireTarget.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WSBinding.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WSBinding.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Wsdl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\Wsdl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WsdlOperation.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\model\WsdlOperation.h -# End Source File -# End Group -# Begin Group "util" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\DefaultLogWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\DefaultLogWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Exceptions.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\File.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\File.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Library.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Library.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Logger.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Logger.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Logging.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\LogWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\LogWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Utils.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\util\Utils.h -# End Source File -# End Group -# Begin Group "ws" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\ws\SDOStub.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\ws\SDOStub.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.h -# End Source File -# End Group -# End Group -# Begin Group "xsd" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE="..\..\..\xsd\sca-binding-sca.xsd" -# End Source File -# Begin Source File - -SOURCE="..\..\..\xsd\sca-binding-webservice.xsd" -# End Source File -# Begin Source File - -SOURCE="..\..\..\xsd\sca-core.xsd" -# End Source File -# Begin Source File - -SOURCE="..\..\..\xsd\sca-implementation-cpp.xsd" -# End Source File -# Begin Source File - -SOURCE="..\..\..\xsd\sca-implementation-java.xsd" -# End Source File -# Begin Source File - -SOURCE="..\..\..\xsd\sca-interface-cpp.xsd" -# End Source File -# Begin Source File - -SOURCE="..\..\..\xsd\sca-interface-java.xsd" -# End Source File -# Begin Source File - -SOURCE="..\..\..\xsd\sca-interface-wsdl.xsd" -# End Source File -# Begin Source File - -SOURCE=..\..\..\xsd\sca.xsd -# End Source File -# Begin Source File - -SOURCE=..\..\..\xsd\tuscany.xsd -# End Source File -# End Group -# Begin Source File - -SOURCE=".\Build Instructions.txt" -# End Source File -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.plg b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.plg deleted file mode 100644 index fbdae5a163..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca/tuscany_sca.plg +++ /dev/null @@ -1,226 +0,0 @@ - - -

      -

      Build Log

      -

      ---------------------Configuration: tuscany_sca - Win32 Debug-------------------- -

      -

      Command Lines

      -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP24.tmp" with contents -[ -/nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "C:\axis-c-1-5-win32/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SCA_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ComponentContext.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ComponentContextImpl.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ModuleContext.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ModuleContextImpl.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\SCA.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ServiceList.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ServiceRuntimeException.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\Operation.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\SCAEntryPoint.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\SCARuntime.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ServiceProxy.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ServiceWrapper.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Binding.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Component.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\CPPImplementation.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\CPPInterface.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\EntryPoint.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ExternalService.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Implementation.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Interface.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ModelLoader.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Module.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Service.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ServiceReference.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Subsystem.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\System.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Wire.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WireTarget.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WSBinding.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Wsdl.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WsdlOperation.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\DefaultLogWriter.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\File.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Library.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Logger.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\LogWriter.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Utils.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\ws\SDOStub.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP24.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP25.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /incremental:yes /pdb:"Debug/tuscany_sca.pdb" /debug /machine:I386 /out:"Debug/tuscany_sca.dll" /implib:"Debug/tuscany_sca.lib" /pdbtype:sept /libpath:"C:\incubator\tuscany\cpp\sdo\lib" /libpath:"C:\axis-c-1-5-win32\lib\axis" -.\Debug\ComponentContext.obj -.\Debug\ComponentContextImpl.obj -.\Debug\ModuleContext.obj -.\Debug\ModuleContextImpl.obj -.\Debug\SCA.obj -.\Debug\ServiceList.obj -.\Debug\ServiceRuntimeException.obj -.\Debug\ComponentServiceWrapper.obj -.\Debug\ExternalServiceWrapper.obj -.\Debug\Operation.obj -.\Debug\SCAEntryPoint.obj -.\Debug\SCARuntime.obj -.\Debug\ServiceProxy.obj -.\Debug\ServiceWrapper.obj -.\Debug\Binding.obj -.\Debug\Component.obj -.\Debug\CPPImplementation.obj -.\Debug\CPPInterface.obj -.\Debug\EntryPoint.obj -.\Debug\ExternalService.obj -.\Debug\Implementation.obj -.\Debug\Interface.obj -.\Debug\ModelLoader.obj -.\Debug\Module.obj -.\Debug\Service.obj -.\Debug\ServiceReference.obj -.\Debug\Subsystem.obj -.\Debug\System.obj -.\Debug\Wire.obj -.\Debug\WireTarget.obj -.\Debug\WSBinding.obj -.\Debug\Wsdl.obj -.\Debug\WsdlOperation.obj -.\Debug\DefaultLogWriter.obj -.\Debug\File.obj -.\Debug\Library.obj -.\Debug\Logger.obj -.\Debug\LogWriter.obj -.\Debug\Utils.obj -.\Debug\SDOStub.obj -.\Debug\WSServiceWrapper.obj -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP25.tmp" -

      Output Window

      -Compiling... -ComponentContext.cpp -ComponentContextImpl.cpp -ModuleContext.cpp -ModuleContextImpl.cpp -SCA.cpp -ServiceList.cpp -ServiceRuntimeException.cpp -ComponentServiceWrapper.cpp -ExternalServiceWrapper.cpp -Operation.cpp -SCAEntryPoint.cpp -SCARuntime.cpp -ServiceProxy.cpp -ServiceWrapper.cpp -Binding.cpp -Component.cpp -CPPImplementation.cpp -CPPInterface.cpp -EntryPoint.cpp -ExternalService.cpp -Generating Code... -Compiling... -Implementation.cpp -Interface.cpp -ModelLoader.cpp -Module.cpp -Service.cpp -ServiceReference.cpp -Subsystem.cpp -System.cpp -Wire.cpp -WireTarget.cpp -WSBinding.cpp -Wsdl.cpp -WsdlOperation.cpp -DefaultLogWriter.cpp -File.cpp -Library.cpp -Logger.cpp -LogWriter.cpp -Utils.cpp -SDOStub.cpp -Generating Code... -Compiling... -WSServiceWrapper.cpp -Generating Code... -Linking... - Creating library Debug/tuscany_sca.lib and object Debug/tuscany_sca.exp -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP29.bat" with contents -[ -@echo off -del ..\..\..\bin\tuscany_sca.* -del ..\..\..\lib\*.lib -copy ..\..\..\runtime\core\src\osoa\sca\*.h ..\..\..\include\osoa\sca -copy ..\..\..\runtime\core\src\tuscany\sca\core\*.h ..\..\..\include\tuscany\sca\core -copy ..\..\..\runtime\core\src\tuscany\sca\model\*.h ..\..\..\include\tuscany\sca\model -copy ..\..\..\runtime\core\src\tuscany\sca\util\*.h ..\..\..\include\tuscany\sca\util -copy ..\..\..\runtime\core\src\tuscany\sca\ws\*.h ..\..\..\include\tuscany\sca\ws -copy Debug\tuscany_sca.dll ..\..\..\bin -copy Debug\tuscany_sca.pdb ..\..\..\bin -copy Debug\tuscany_sca.lib ..\..\..\lib -] -Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP29.bat" - -..\..\..\runtime\core\src\osoa\sca\ComponentContext.h -..\..\..\runtime\core\src\osoa\sca\ComponentContextImpl.h -..\..\..\runtime\core\src\osoa\sca\export.h -..\..\..\runtime\core\src\osoa\sca\ModuleContext.h -..\..\..\runtime\core\src\osoa\sca\ModuleContextImpl.h -..\..\..\runtime\core\src\osoa\sca\sca.h -..\..\..\runtime\core\src\osoa\sca\ServiceList.h -..\..\..\runtime\core\src\osoa\sca\ServiceRuntimeException.h - 8 file(s) copied. -..\..\..\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.h -..\..\..\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.h -..\..\..\runtime\core\src\tuscany\sca\core\Operation.h -..\..\..\runtime\core\src\tuscany\sca\core\SCAEntryPoint.h -..\..\..\runtime\core\src\tuscany\sca\core\SCARuntime.h -..\..\..\runtime\core\src\tuscany\sca\core\ServiceProxy.h -..\..\..\runtime\core\src\tuscany\sca\core\ServiceWrapper.h - 7 file(s) copied. -..\..\..\runtime\core\src\tuscany\sca\model\Binding.h -..\..\..\runtime\core\src\tuscany\sca\model\Component.h -..\..\..\runtime\core\src\tuscany\sca\model\CPPImplementation.h -..\..\..\runtime\core\src\tuscany\sca\model\CPPInterface.h -..\..\..\runtime\core\src\tuscany\sca\model\EntryPoint.h -..\..\..\runtime\core\src\tuscany\sca\model\ExternalService.h -..\..\..\runtime\core\src\tuscany\sca\model\Implementation.h -..\..\..\runtime\core\src\tuscany\sca\model\Interface.h -..\..\..\runtime\core\src\tuscany\sca\model\ModelLoader.h -..\..\..\runtime\core\src\tuscany\sca\model\Module.h -..\..\..\runtime\core\src\tuscany\sca\model\Service.h -..\..\..\runtime\core\src\tuscany\sca\model\ServiceReference.h -..\..\..\runtime\core\src\tuscany\sca\model\Subsystem.h -..\..\..\runtime\core\src\tuscany\sca\model\System.h -..\..\..\runtime\core\src\tuscany\sca\model\Wire.h -..\..\..\runtime\core\src\tuscany\sca\model\WireTarget.h -..\..\..\runtime\core\src\tuscany\sca\model\WSBinding.h -..\..\..\runtime\core\src\tuscany\sca\model\Wsdl.h -..\..\..\runtime\core\src\tuscany\sca\model\WsdlOperation.h - 19 file(s) copied. -..\..\..\runtime\core\src\tuscany\sca\util\DefaultLogWriter.h -..\..\..\runtime\core\src\tuscany\sca\util\Exceptions.h -..\..\..\runtime\core\src\tuscany\sca\util\File.h -..\..\..\runtime\core\src\tuscany\sca\util\Library.h -..\..\..\runtime\core\src\tuscany\sca\util\Logger.h -..\..\..\runtime\core\src\tuscany\sca\util\Logging.h -..\..\..\runtime\core\src\tuscany\sca\util\LogWriter.h -..\..\..\runtime\core\src\tuscany\sca\util\Utils.h - 8 file(s) copied. -..\..\..\runtime\core\src\tuscany\sca\ws\SDOStub.h -..\..\..\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.h - 2 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - - - -

      Results

      -tuscany_sca.dll - 0 error(s), 0 warning(s) -
      - - diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.dsp b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.dsp deleted file mode 100644 index bf0172e35d..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.dsp +++ /dev/null @@ -1,121 +0,0 @@ -# Microsoft Developer Studio Project File - Name="tuscany_sca_axis_handler" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=tuscany_sca_axis_handler - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca_axis_handler.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca_axis_handler.mak" CFG="tuscany_sca_axis_handler - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "tuscany_sca_axis_handler - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "tuscany_sca_axis_handler - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "tuscany_sca_axis_handler - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_HANDLER_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_HANDLER_EXPORTS" /FD /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /machine:I386 /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Release\tuscany_sca_axis_handler.dll ..\..\..\bin copy Release\tuscany_sca_axis_handler.lib ..\..\..\lib -# End Special Build Tool - -!ELSEIF "$(CFG)" == "tuscany_sca_axis_handler - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_HANDLER_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_HANDLER_EXPORTS" /FD /GZ /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Debug\tuscany_sca_axis_handler.dll ..\..\..\bin copy Debug\tuscany_sca_axis_handler.pdb ..\..\..\bin copy Debug\tuscany_sca_axis_handler.lib ..\..\..\lib -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "tuscany_sca_axis_handler - Win32 Release" -# Name "tuscany_sca_axis_handler - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\runtime\axis_binding\handler\src\SCAWSHandler.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\runtime\axis_binding\handler\src\SCAWSHandler.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.plg b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.plg deleted file mode 100644 index de05c15353..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_handler/tuscany_sca_axis_handler.plg +++ /dev/null @@ -1,46 +0,0 @@ - - -
      -

      Build Log

      -

      ---------------------Configuration: tuscany_sca_axis_handler - Win32 Debug-------------------- -

      -

      Command Lines

      -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1755.tmp" with contents -[ -/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "C:\axis-c-1-5-win32/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_HANDLER_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\incubator\tuscany\cpp\sca\runtime\axis_binding\handler\src\SCAWSHandler.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1755.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1756.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /incremental:yes /pdb:"Debug/tuscany_sca_axis_handler.pdb" /debug /machine:I386 /out:"Debug/tuscany_sca_axis_handler.dll" /implib:"Debug/tuscany_sca_axis_handler.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" /libpath:"C:\axis-c-1-5-win32\lib\axis" -.\Debug\SCAWSHandler.obj -\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1756.tmp" -

      Output Window

      -Compiling... -SCAWSHandler.cpp -Linking... - Creating library Debug/tuscany_sca_axis_handler.lib and object Debug/tuscany_sca_axis_handler.exp -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175A.bat" with contents -[ -@echo off -copy Debug\tuscany_sca_axis_handler.dll ..\..\..\bin -copy Debug\tuscany_sca_axis_handler.pdb ..\..\..\bin -copy Debug\tuscany_sca_axis_handler.lib ..\..\..\lib -] -Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175A.bat" - - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - - - -

      Results

      -tuscany_sca_axis_handler.dll - 0 error(s), 0 warning(s) -
      - - diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.dsp b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.dsp deleted file mode 100644 index 2e4d556151..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.dsp +++ /dev/null @@ -1,119 +0,0 @@ -# Microsoft Developer Studio Project File - Name="tuscany_sca_axis_wrapper" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=tuscany_sca_axis_wrapper - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca_axis_wrapper.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca_axis_wrapper.mak" CFG="tuscany_sca_axis_wrapper - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "tuscany_sca_axis_wrapper - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "tuscany_sca_axis_wrapper - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "tuscany_sca_axis_wrapper - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_WRAPPER_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_AXIS_SCA_EXPORTS" /FD /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /machine:I386 /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Release\tuscany_sca_axis_wrapper.dll ..\..\..\bin copy Release\tuscany_sca_axis_wrapper.lib ..\..\..\lib -# End Special Build Tool - -!ELSEIF "$(CFG)" == "tuscany_sca_axis_wrapper - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_AXIS_WRAPPER_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "$(AXISCPP)/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_AXIS_SCA_EXPORTS" /FD /GZ /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" /libpath:"$(AXISCPP)\lib\axis" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Debug\tuscany_sca_axis_wrapper.dll ..\..\..\bin copy Debug\tuscany_sca_axis_wrapper.pdb ..\..\..\bin copy Debug\tuscany_sca_axis_wrapper.lib ..\..\..\lib -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "tuscany_sca_axis_wrapper - Win32 Release" -# Name "tuscany_sca_axis_wrapper - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\runtime\axis_binding\wrapper\src\SCAWSWrapper.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\runtime\axis_binding\wrapper\src\SCAWSWrapper.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.plg b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.plg deleted file mode 100644 index 3bab65d7ca..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_axis_wrapper/tuscany_sca_axis_wrapper.plg +++ /dev/null @@ -1,47 +0,0 @@ - - -
      -

      Build Log

      -

      ---------------------Configuration: tuscany_sca_axis_wrapper - Win32 Debug-------------------- -

      -

      Command Lines

      -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175B.tmp" with contents -[ -/nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "C:\axis-c-1-5-win32/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_AXIS_SCA_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\incubator\tuscany\cpp\sca\runtime\axis_binding\wrapper\src\SCAWSWrapper.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175B.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175C.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /incremental:yes /pdb:"Debug/tuscany_sca_axis_wrapper.pdb" /debug /machine:I386 /out:"Debug/tuscany_sca_axis_wrapper.dll" /implib:"Debug/tuscany_sca_axis_wrapper.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" /libpath:"C:\axis-c-1-5-win32\lib\axis" -.\Debug\SCAWSWrapper.obj -\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib -\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca_axis_handler\Debug\tuscany_sca_axis_handler.lib -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP175C.tmp" -

      Output Window

      -Compiling... -SCAWSWrapper.cpp -Linking... - Creating library Debug/tuscany_sca_axis_wrapper.lib and object Debug/tuscany_sca_axis_wrapper.exp -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1760.bat" with contents -[ -@echo off -copy Debug\tuscany_sca_axis_wrapper.dll ..\..\..\bin -copy Debug\tuscany_sca_axis_wrapper.pdb ..\..\..\bin -copy Debug\tuscany_sca_axis_wrapper.lib ..\..\..\lib -] -Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1760.bat" - - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - - - -

      Results

      -tuscany_sca_axis_wrapper.dll - 0 error(s), 0 warning(s) -
      - - diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment deleted file mode 100644 index c2c521ed96..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - x - 23 - 42 - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType deleted file mode 100644 index 48651b63fe..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType deleted file mode 100644 index ace4154966..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl deleted file mode 100644 index 4917cde583..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config deleted file mode 100644 index 7fee074333..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/sca.module b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/sca.module deleted file mode 100644 index e94a8ef795..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/modules/MyValueServiceModule/sca.module +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - MyValueServiceComponent - - - - - - - - CustomerInfoComponent - StockQuoteService - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/subsystems/SubSystem1/sca.subsystem b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/subsystems/SubSystem1/sca.subsystem deleted file mode 100644 index 1b32bf8a93..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/testSCASystem/subsystems/SubSystem1/sca.subsystem +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.dsp b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.dsp deleted file mode 100644 index be6f1164e1..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.dsp +++ /dev/null @@ -1,104 +0,0 @@ -# Microsoft Developer Studio Project File - Name="tuscany_sca_test" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=tuscany_sca_test - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca_test.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca_test.mak" CFG="tuscany_sca_test - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "tuscany_sca_test - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "tuscany_sca_test - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "tuscany_sca_test - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "../../../runtime/core/test/MyValue" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c -# SUBTRACT CPP /YX -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy ..\tuscany_sca_test_MyValue\Release\MyValue.dll testSCASystem\modules\MyValueServiceModule copy ..\tuscany_sca_test_CustomerInfo\Release\CustomerInfo.dll testSCASystem\modules\MyValueServiceModule -# End Special Build Tool - -!ELSEIF "$(CFG)" == "tuscany_sca_test - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "../../../runtime/core/test/MyValue" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c -# SUBTRACT CPP /YX -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy ..\tuscany_sca_test_MyValue\Debug\MyValue.dll testSCASystem\modules\MyValueServiceModule copy ..\tuscany_sca_test_MyValue\Debug\MyValue.pdb testSCASystem\modules\MyValueServiceModule copy ..\tuscany_sca_test_CustomerInfo\Debug\CustomerInfo.dll testSCASystem\modules\MyValueServiceModule copy ..\tuscany_sca_test_CustomerInfo\Debug\CustomerInfo.pdb testSCASystem\modules\MyValueServiceModule -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "tuscany_sca_test - Win32 Release" -# Name "tuscany_sca_test - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\src\TestSCA.cpp -# End Source File -# End Group -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.plg b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.plg deleted file mode 100644 index e7e37b7a22..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test/tuscany_sca_test.plg +++ /dev/null @@ -1,327 +0,0 @@ - - -
      -

      Build Log

      -

      ---------------------Configuration: tuscany_sca - Win32 Debug-------------------- -

      -

      Command Lines

      -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP107.tmp" with contents -[ -/nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "C:\axis-c-1-5-win32/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SCA_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ComponentContext.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ComponentContextImpl.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ModuleContext.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ModuleContextImpl.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\SCA.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ServiceList.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\osoa\sca\ServiceRuntimeException.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\Operation.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\SCAEntryPoint.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\SCARuntime.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ServiceProxy.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\core\ServiceWrapper.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Binding.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Component.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\CPPImplementation.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\CPPInterface.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\EntryPoint.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ExternalService.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Implementation.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Interface.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ModelLoader.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Module.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Service.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\ServiceReference.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Subsystem.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\System.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Wire.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WireTarget.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WSBinding.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\Wsdl.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\model\WsdlOperation.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\DefaultLogWriter.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\File.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Library.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Logger.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\LogWriter.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\util\Utils.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\ws\SDOStub.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP107.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP108.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib AxisClient.lib /nologo /dll /incremental:yes /pdb:"Debug/tuscany_sca.pdb" /debug /machine:I386 /out:"Debug/tuscany_sca.dll" /implib:"Debug/tuscany_sca.lib" /pdbtype:sept /libpath:"C:\incubator\tuscany\cpp\sdo\lib" /libpath:"C:\axis-c-1-5-win32\lib\axis" -.\Debug\ComponentContext.obj -.\Debug\ComponentContextImpl.obj -.\Debug\ModuleContext.obj -.\Debug\ModuleContextImpl.obj -.\Debug\SCA.obj -.\Debug\ServiceList.obj -.\Debug\ServiceRuntimeException.obj -.\Debug\ComponentServiceWrapper.obj -.\Debug\ExternalServiceWrapper.obj -.\Debug\Operation.obj -.\Debug\SCAEntryPoint.obj -.\Debug\SCARuntime.obj -.\Debug\ServiceProxy.obj -.\Debug\ServiceWrapper.obj -.\Debug\Binding.obj -.\Debug\Component.obj -.\Debug\CPPImplementation.obj -.\Debug\CPPInterface.obj -.\Debug\EntryPoint.obj -.\Debug\ExternalService.obj -.\Debug\Implementation.obj -.\Debug\Interface.obj -.\Debug\ModelLoader.obj -.\Debug\Module.obj -.\Debug\Service.obj -.\Debug\ServiceReference.obj -.\Debug\Subsystem.obj -.\Debug\System.obj -.\Debug\Wire.obj -.\Debug\WireTarget.obj -.\Debug\WSBinding.obj -.\Debug\Wsdl.obj -.\Debug\WsdlOperation.obj -.\Debug\DefaultLogWriter.obj -.\Debug\File.obj -.\Debug\Library.obj -.\Debug\Logger.obj -.\Debug\LogWriter.obj -.\Debug\Utils.obj -.\Debug\SDOStub.obj -.\Debug\WSServiceWrapper.obj -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP108.tmp" -

      Output Window

      -Compiling... -ComponentContext.cpp -ComponentContextImpl.cpp -ModuleContext.cpp -ModuleContextImpl.cpp -SCA.cpp -ServiceList.cpp -ServiceRuntimeException.cpp -ComponentServiceWrapper.cpp -ExternalServiceWrapper.cpp -Operation.cpp -SCAEntryPoint.cpp -SCARuntime.cpp -ServiceProxy.cpp -ServiceWrapper.cpp -Binding.cpp -Component.cpp -CPPImplementation.cpp -CPPInterface.cpp -EntryPoint.cpp -ExternalService.cpp -Generating Code... -Compiling... -Implementation.cpp -Interface.cpp -ModelLoader.cpp -Module.cpp -Service.cpp -ServiceReference.cpp -Subsystem.cpp -System.cpp -Wire.cpp -WireTarget.cpp -WSBinding.cpp -Wsdl.cpp -WsdlOperation.cpp -DefaultLogWriter.cpp -File.cpp -Library.cpp -Logger.cpp -LogWriter.cpp -Utils.cpp -SDOStub.cpp -Generating Code... -Compiling... -WSServiceWrapper.cpp -Generating Code... -Linking... - Creating library Debug/tuscany_sca.lib and object Debug/tuscany_sca.exp -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10C.bat" with contents -[ -@echo off -del ..\..\..\bin\tuscany_sca.* -del ..\..\..\lib\*.lib -copy ..\..\..\runtime\core\src\osoa\sca\*.h ..\..\..\include\osoa\sca -copy ..\..\..\runtime\core\src\tuscany\sca\core\*.h ..\..\..\include\tuscany\sca\core -copy ..\..\..\runtime\core\src\tuscany\sca\model\*.h ..\..\..\include\tuscany\sca\model -copy ..\..\..\runtime\core\src\tuscany\sca\util\*.h ..\..\..\include\tuscany\sca\util -copy ..\..\..\runtime\core\src\tuscany\sca\ws\*.h ..\..\..\include\tuscany\sca\ws -copy Debug\tuscany_sca.dll ..\..\..\bin -copy Debug\tuscany_sca.pdb ..\..\..\bin -copy Debug\tuscany_sca.lib ..\..\..\lib -] -Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10C.bat" - -..\..\..\runtime\core\src\osoa\sca\ComponentContext.h -..\..\..\runtime\core\src\osoa\sca\ComponentContextImpl.h -..\..\..\runtime\core\src\osoa\sca\export.h -..\..\..\runtime\core\src\osoa\sca\ModuleContext.h -..\..\..\runtime\core\src\osoa\sca\ModuleContextImpl.h -..\..\..\runtime\core\src\osoa\sca\sca.h -..\..\..\runtime\core\src\osoa\sca\ServiceList.h -..\..\..\runtime\core\src\osoa\sca\ServiceRuntimeException.h - 8 file(s) copied. -..\..\..\runtime\core\src\tuscany\sca\core\ComponentServiceWrapper.h -..\..\..\runtime\core\src\tuscany\sca\core\ExternalServiceWrapper.h -..\..\..\runtime\core\src\tuscany\sca\core\Operation.h -..\..\..\runtime\core\src\tuscany\sca\core\SCAEntryPoint.h -..\..\..\runtime\core\src\tuscany\sca\core\SCARuntime.h -..\..\..\runtime\core\src\tuscany\sca\core\ServiceProxy.h -..\..\..\runtime\core\src\tuscany\sca\core\ServiceWrapper.h - 7 file(s) copied. -..\..\..\runtime\core\src\tuscany\sca\model\Binding.h -..\..\..\runtime\core\src\tuscany\sca\model\Component.h -..\..\..\runtime\core\src\tuscany\sca\model\CPPImplementation.h -..\..\..\runtime\core\src\tuscany\sca\model\CPPInterface.h -..\..\..\runtime\core\src\tuscany\sca\model\EntryPoint.h -..\..\..\runtime\core\src\tuscany\sca\model\ExternalService.h -..\..\..\runtime\core\src\tuscany\sca\model\Implementation.h -..\..\..\runtime\core\src\tuscany\sca\model\Interface.h -..\..\..\runtime\core\src\tuscany\sca\model\ModelLoader.h -..\..\..\runtime\core\src\tuscany\sca\model\Module.h -..\..\..\runtime\core\src\tuscany\sca\model\Service.h -..\..\..\runtime\core\src\tuscany\sca\model\ServiceReference.h -..\..\..\runtime\core\src\tuscany\sca\model\Subsystem.h -..\..\..\runtime\core\src\tuscany\sca\model\System.h -..\..\..\runtime\core\src\tuscany\sca\model\Wire.h -..\..\..\runtime\core\src\tuscany\sca\model\WireTarget.h -..\..\..\runtime\core\src\tuscany\sca\model\WSBinding.h -..\..\..\runtime\core\src\tuscany\sca\model\Wsdl.h -..\..\..\runtime\core\src\tuscany\sca\model\WsdlOperation.h - 19 file(s) copied. -..\..\..\runtime\core\src\tuscany\sca\util\DefaultLogWriter.h -..\..\..\runtime\core\src\tuscany\sca\util\Exceptions.h -..\..\..\runtime\core\src\tuscany\sca\util\File.h -..\..\..\runtime\core\src\tuscany\sca\util\Library.h -..\..\..\runtime\core\src\tuscany\sca\util\Logger.h -..\..\..\runtime\core\src\tuscany\sca\util\Logging.h -..\..\..\runtime\core\src\tuscany\sca\util\LogWriter.h -..\..\..\runtime\core\src\tuscany\sca\util\Utils.h - 8 file(s) copied. -..\..\..\runtime\core\src\tuscany\sca\ws\SDOStub.h -..\..\..\runtime\core\src\tuscany\sca\ws\WSServiceWrapper.h - 2 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. -

      ---------------------Configuration: tuscany_sca_test_CustomerInfo - Win32 Debug-------------------- -

      -

      Command Lines

      -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10D.tmp" with contents -[ -/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Proxy.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Wrapper.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10D.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10E.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /incremental:yes /pdb:"Debug/CustomerInfo.pdb" /debug /machine:I386 /out:"Debug/CustomerInfo.dll" /implib:"Debug/CustomerInfo.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" -.\Debug\CustomerInfoImpl.obj -.\Debug\CustomerInfoImpl_CustomerInfoService_Proxy.obj -.\Debug\CustomerInfoImpl_CustomerInfoService_Wrapper.obj -\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP10E.tmp" -

      Output Window

      -Compiling... -CustomerInfoImpl.cpp -CustomerInfoImpl_CustomerInfoService_Proxy.cpp -CustomerInfoImpl_CustomerInfoService_Wrapper.cpp -Generating Code... -Linking... - Creating library Debug/CustomerInfo.lib and object Debug/CustomerInfo.exp -

      ---------------------Configuration: tuscany_sca_test_MyValue - Win32 Debug-------------------- -

      -

      Command Lines

      -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP112.tmp" with contents -[ -/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "../../../runtime/core/test/CustomerInfo" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_customerInfo_Proxy.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_MyValueService_Proxy.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_MyValueService_Wrapper.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_stockQuote_Proxy.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP112.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP113.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /incremental:yes /pdb:"Debug/MyValue.pdb" /debug /machine:I386 /out:"Debug/MyValue.dll" /implib:"Debug/MyValue.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" -.\Debug\MyValueImpl.obj -.\Debug\MyValueImpl_customerInfo_Proxy.obj -.\Debug\MyValueImpl_MyValueService_Proxy.obj -.\Debug\MyValueImpl_MyValueService_Wrapper.obj -.\Debug\MyValueImpl_stockQuote_Proxy.obj -\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP113.tmp" -

      Output Window

      -Compiling... -MyValueImpl.cpp -MyValueImpl_customerInfo_Proxy.cpp -MyValueImpl_MyValueService_Proxy.cpp -MyValueImpl_MyValueService_Wrapper.cpp -MyValueImpl_stockQuote_Proxy.cpp -Generating Code... -Linking... - Creating library Debug/MyValue.lib and object Debug/MyValue.exp -

      ---------------------Configuration: tuscany_sca_test - Win32 Debug-------------------- -

      -

      Command Lines

      -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP117.tmp" with contents -[ -/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "../../../runtime/core/test/MyValue" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\incubator\tuscany\cpp\sca\runtime\core\test\src\TestSCA.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP117.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP118.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/tuscany_sca_test.pdb" /debug /machine:I386 /out:"Debug/tuscany_sca_test.exe" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" -.\Debug\TestSCA.obj -\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib -\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca_test_CustomerInfo\Debug\CustomerInfo.lib -\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca_test_MyValue\Debug\MyValue.lib -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP118.tmp" -

      Output Window

      -Compiling... -TestSCA.cpp -Linking... -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP11A.bat" with contents -[ -@echo off -copy ..\tuscany_sca_test_MyValue\Debug\MyValue.dll testSCASystem\modules\MyValueServiceModule -copy ..\tuscany_sca_test_MyValue\Debug\MyValue.pdb testSCASystem\modules\MyValueServiceModule -copy ..\tuscany_sca_test_CustomerInfo\Debug\CustomerInfo.dll testSCASystem\modules\MyValueServiceModule -copy ..\tuscany_sca_test_CustomerInfo\Debug\CustomerInfo.pdb testSCASystem\modules\MyValueServiceModule -] -Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP11A.bat" - - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - - - -

      Results

      -tuscany_sca_test.exe - 0 error(s), 0 warning(s) -
      - - diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.dsp b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.dsp deleted file mode 100644 index 6230f830e9..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.dsp +++ /dev/null @@ -1,133 +0,0 @@ -# Microsoft Developer Studio Project File - Name="tuscany_sca_test_CustomerInfo" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=tuscany_sca_test_CustomerInfo - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca_test_CustomerInfo.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca_test_CustomerInfo.mak" CFG="tuscany_sca_test_CustomerInfo - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "tuscany_sca_test_CustomerInfo - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "tuscany_sca_test_CustomerInfo - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "tuscany_sca_test_CustomerInfo - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /FD /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /machine:I386 /out:"Release/CustomerInfo.dll" /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" - -!ELSEIF "$(CFG)" == "tuscany_sca_test_CustomerInfo - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /FD /GZ /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /debug /machine:I386 /out:"Debug/CustomerInfo.dll" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" - -!ENDIF - -# Begin Target - -# Name "tuscany_sca_test_CustomerInfo - Win32 Release" -# Name "tuscany_sca_test_CustomerInfo - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Proxy.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Wrapper.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Proxy.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Wrapper.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.plg b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.plg deleted file mode 100644 index 204673f032..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_CustomerInfo/tuscany_sca_test_CustomerInfo.plg +++ /dev/null @@ -1,41 +0,0 @@ - - -
      -

      Build Log

      -

      ---------------------Configuration: tuscany_sca_test_CustomerInfo - Win32 Debug-------------------- -

      -

      Command Lines

      -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1761.tmp" with contents -[ -/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_CUSTOMERINFO_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Proxy.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\CustomerInfo\CustomerInfoImpl_CustomerInfoService_Wrapper.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1761.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1762.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /incremental:yes /pdb:"Debug/CustomerInfo.pdb" /debug /machine:I386 /out:"Debug/CustomerInfo.dll" /implib:"Debug/CustomerInfo.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" -.\Debug\CustomerInfoImpl.obj -.\Debug\CustomerInfoImpl_CustomerInfoService_Proxy.obj -.\Debug\CustomerInfoImpl_CustomerInfoService_Wrapper.obj -\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1762.tmp" -

      Output Window

      -Compiling... -CustomerInfoImpl.cpp -CustomerInfoImpl_CustomerInfoService_Proxy.cpp -CustomerInfoImpl_CustomerInfoService_Wrapper.cpp -Generating Code... -Linking... - Creating library Debug/CustomerInfo.lib and object Debug/CustomerInfo.exp - - - -

      Results

      -CustomerInfo.dll - 0 error(s), 0 warning(s) -
      - - diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.dsp b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.dsp deleted file mode 100644 index c504ee0610..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.dsp +++ /dev/null @@ -1,153 +0,0 @@ -# Microsoft Developer Studio Project File - Name="tuscany_sca_test_MyValue" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=tuscany_sca_test_MyValue - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca_test_MyValue.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "tuscany_sca_test_MyValue.mak" CFG="tuscany_sca_test_MyValue - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "tuscany_sca_test_MyValue - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "tuscany_sca_test_MyValue - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "tuscany_sca_test_MyValue - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "../../../runtime/core/test/CustomerInfo" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /FD /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /machine:I386 /out:"Release/MyValue.dll" /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" - -!ELSEIF "$(CFG)" == "tuscany_sca_test_MyValue - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "$(SDO4CPP)/include" /I "../../../runtime/core/test/CustomerInfo" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /FD /GZ /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /debug /machine:I386 /out:"Debug/MyValue.dll" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"$(SDO4CPP)\lib" - -!ENDIF - -# Begin Target - -# Name "tuscany_sca_test_MyValue - Win32 Release" -# Name "tuscany_sca_test_MyValue - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_customerInfo_Proxy.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_MyValueService_Proxy.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_MyValueService_Wrapper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_stockQuote_Proxy.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\MyValue.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_customerInfo_Proxy.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_MyValueService_Proxy.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_MyValueService_Wrapper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\MyValueImpl_stockQuote_Proxy.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\MyValue\StockQuoteService.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.plg b/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.plg deleted file mode 100644 index d49385a653..0000000000 --- a/tags/cpp-stable-20060304/sca/projects/tuscany_sca/tuscany_sca_test_MyValue/tuscany_sca_test_MyValue.plg +++ /dev/null @@ -1,47 +0,0 @@ - - -
      -

      Build Log

      -

      ---------------------Configuration: tuscany_sca_test_MyValue - Win32 Debug-------------------- -

      -

      Command Lines

      -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1766.tmp" with contents -[ -/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../runtime/core/src" /I "C:\incubator\tuscany\cpp\sdo/include" /I "../../../runtime/core/test/CustomerInfo" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TUSCANY_SCA_TEST_MYVALUE_EXPORTS" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_customerInfo_Proxy.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_MyValueService_Proxy.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_MyValueService_Wrapper.cpp" -"C:\incubator\tuscany\cpp\sca\runtime\core\test\MyValue\MyValueImpl_stockQuote_Proxy.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1766.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1767.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /incremental:yes /pdb:"Debug/MyValue.pdb" /debug /machine:I386 /out:"Debug/MyValue.dll" /implib:"Debug/MyValue.lib" /pdbtype:sept /libpath:"..\..\..\lib" /libpath:"C:\incubator\tuscany\cpp\sdo\lib" -.\Debug\MyValueImpl.obj -.\Debug\MyValueImpl_customerInfo_Proxy.obj -.\Debug\MyValueImpl_MyValueService_Proxy.obj -.\Debug\MyValueImpl_MyValueService_Wrapper.obj -.\Debug\MyValueImpl_stockQuote_Proxy.obj -\incubator\tuscany\cpp\sca\projects\tuscany_sca\tuscany_sca\Debug\tuscany_sca.lib -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1767.tmp" -

      Output Window

      -Compiling... -MyValueImpl.cpp -MyValueImpl_customerInfo_Proxy.cpp -MyValueImpl_MyValueService_Proxy.cpp -MyValueImpl_MyValueService_Wrapper.cpp -MyValueImpl_stockQuote_Proxy.cpp -Generating Code... -Linking... - Creating library Debug/MyValue.lib and object Debug/MyValue.exp - - - -

      Results

      -MyValue.dll - 0 error(s), 0 warning(s) -
      - - diff --git a/tags/cpp-stable-20060304/sca/readme.txt b/tags/cpp-stable-20060304/sca/readme.txt deleted file mode 100644 index 26f1ef33b7..0000000000 --- a/tags/cpp-stable-20060304/sca/readme.txt +++ /dev/null @@ -1,39 +0,0 @@ -Tuscany SCA C++ -=============== - -Tuscany SCA C++ provides a runtime implementation for the Service Component -Architecture 0.9 specification, written in C++ and will currently support C++ -component implementation types. This is not yet a complete implementation and -known restrictions are described below. - -Supported SCA Assembly Model features - * All features are supported unless listed under the known restrictions - below. See SCA Assembly Model specification. - -Supported language bindings - * Component implementations written in C++. See SCA Client and - Implementation Model specification. - * Component interfaces described by C++ classes. See SCA Client and - Implementation Model specification. - -Supported external service and entry point bindings - * The web service binding is supported. This implementation will support - web services which using document literal SOAP bindings conforming to the - WS-I basic profile (rpc/encoded is not supported). - -Known restrictions - * Subsystem wiring, entry points and external services are not supported. - * Remotable services that will be bound to the web service binding must have - an interface with a single input parameter which is an SDO DataObjectPtr, - and a single return typer which is an SDO DataObjectPtr. - * Local service interfaces cannot use overloaded operations (the SCA - specification limits remote service interfaces to not using overloaded - operations). - * Only component properties with simple types are supported. - * No optimization for subsystem communication when subsystems are located in - the same system. - * Each WSDL definition for a web service binding must be in a single WSDL - document. - * No load time validation of the deployed SCA application (run time validation - only). - * No metadata API. diff --git a/tags/cpp-stable-20060304/sca/runtime/Makefile.am b/tags/cpp-stable-20060304/sca/runtime/Makefile.am deleted file mode 100644 index caacfcdef5..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = core axis_binding diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/Makefile.am b/tags/cpp-stable-20060304/sca/runtime/axis_binding/Makefile.am deleted file mode 100644 index f7eaa50485..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = handler wrapper diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/Makefile.am b/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/Makefile.am deleted file mode 100644 index 956b824d5c..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -SUBDIRS = src - diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtbuild b/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtbuild deleted file mode 100644 index 55590cf0c8..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtbuild +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtproject b/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtproject deleted file mode 100644 index 48a12e6664..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.cdtproject +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.project b/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.project deleted file mode 100644 index a2718eca4f..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.project +++ /dev/null @@ -1,19 +0,0 @@ - - - tuscany_sca_axis_handler - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.ccnature - - diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs deleted file mode 100644 index 1023be0afa..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Thu Feb 16 14:40:27 GMT 2006 -eclipse.preferences.version=1 -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.2106566379=\n\n\n\n\n -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.221779505=\n\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.2106566379=\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.221779505=\n\n\n\n -environment/project=\n\n -environment/project/cdt.managedbuild.config.gnu.so.debug.2106566379=\n\n -environment/project/cdt.managedbuild.config.gnu.so.release.221779505=\n\n diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/Makefile.am b/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/Makefile.am deleted file mode 100644 index 6054ec7b31..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -lib_LTLIBRARIES = libtuscany_sca_axis_handler.la - -libtuscany_sca_axis_handler_la_SOURCES = SCAWSHandler.cpp - -libtuscany_sca_axis_handler_la_LIBADD = -lstdc++ - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I${AXISCPP_DEPLOY}/include - diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.cpp b/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.cpp deleted file mode 100644 index ed57c0677e..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.cpp +++ /dev/null @@ -1,154 +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$ */ - -#include "SCAWSHandler.h" -#include -#include - -AXIS_CPP_NAMESPACE_USE -using std::string; - -/** Construct an SCAWSHandler. - */ -SCAWSHandler::SCAWSHandler() -{ - return; -} - -/** Destruct an SCAWSHandler. - */ -SCAWSHandler::~SCAWSHandler() -{ -} - - -/** Perform any necessary initialization. - */ -int SCAWSHandler::init() -{ - return AXIS_SUCCESS; -} - -/** Perform any necessary finalization. - */ -int SCAWSHandler::fini() -{ - return AXIS_SUCCESS; -} - -/** Get the SCA specific properties that were set in the deployment - * descriptor (server.wsdd) and set them into the MessageData where - * they can be retrieved by the SCAWSWrapper to invoke the correct - * SCA Entry Point. - * @param pvIMsg - pointer to IMessageData - * - * @see SCAWSWrapper - */ -int SCAWSHandler::invoke(void *pvIMsg) -{ - IMessageData *pIMsg = (IMessageData*) pvIMsg; - - if(pIMsg->isPastPivot()) - { - // This is a response. - } - else - { - // This is a request - - // - // Get the SCA specific properties from the handler. - // - - // NOTE: WE CANNOT MAKE THE SIMPLE 'GETOPTION' CALLS BECAUSE THE - // STD::MAP CODE WILL CAUSE AN ACCESS VIOLATION IN AXISSERVER.DLL. - // THE GETOPTION METHOD IN HANDLER.HPP NEEDS TO BE MOVED INTO - // AXISSERVER.DLL AND BE EXPORTED. - //const string& strTargetNamespace = getOption("targetNamespace"); - //const string& strSCAEntryPoint = getOption("scaEntryPoint"); - - // HACK - // BECAUSE WE CANNOT MAKE ANY MAP CALLS THAT REQUIRE PARAMETERS AND - // CANNOT SEEM TO ITERATE OVER THE MAP IN A FOR LOOP EITHER WITHOUT - // TRAPPING, WE RESORT TO READING THE FIRST AND LAST PROPERTIES. - // THIS IS ACCEPTABLE AS A WORKAROUND FOR NOW BECAUSE WE ONLY - // HAVE TWO PROPERTIES. - string strName; - string strValue; - // Read the first property in the map and set its name and value - // into the IMessageData. - map::const_iterator it = m_pOption->begin(); - strName = (*it).first; - strValue = (*it).second; - pIMsg->setProperty(strName.c_str(), strValue.c_str()); - // Read the last property in the map and set its name and value - // into the IMessageData. - map::const_reverse_iterator itr = m_pOption->rbegin(); - strName = (*itr).first; - strValue = (*itr).second; - pIMsg->setProperty(strName.c_str(), strValue.c_str()); - // END HACK - } - - return AXIS_SUCCESS; -} - -/** Handle Faults. - */ -void SCAWSHandler::onFault(void *pvIMsg) -{ - -} - -// -// These functions are exported from the SCAWSHandler DLL and are called by the Axis Engine -// to create/destroy instances of the SCAWSHandler class. -// -extern "C" -{ -STORAGE_CLASS_INFO -int GetClassInstance(BasicHandler **inst) -{ - *inst = new BasicHandler(); - - SCAWSHandler* pSCAWSHandler = new SCAWSHandler(); - (*inst)->_functions = 0; - if (pSCAWSHandler) - { - (*inst)->_object = pSCAWSHandler; - return pSCAWSHandler->init(); - } - - return AXIS_FAIL; -} - -STORAGE_CLASS_INFO -int DestroyInstance(BasicHandler *inst) -{ - if (inst) - { - Handler* pH = static_cast(inst->_object); - pH->fini(); - delete pH; - delete inst; - return AXIS_SUCCESS; - } - return AXIS_FAIL; -} -} // extern "C" diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.h b/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.h deleted file mode 100644 index 3f0c576921..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/handler/src/SCAWSHandler.h +++ /dev/null @@ -1,79 +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 11:33:21 $ */ - -#if !defined(SCAWSHANDLER_H_INCLUDED) -#define SCAWSHANDLER_H_INCLUDED - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -#include - -/** The SCAWSHandler class is an Axis Handler that retrieves properties set - * in the deployment descriptor (server.wsdd) and sets them into the - * MessageData for use by the SCAWSWrapper which invokes SCA Entry Points. - * - * @see SCAWSWrapper - */ -AXIS_CPP_NAMESPACE_USE - -class SCAWSHandler : public Handler -{ - public: - /** Construct an SCAWSHandler. - */ - SCAWSHandler(void); - - /** Destruct an SCAWSHandler. - */ - virtual ~SCAWSHandler(void); - - // Axis WrapperClassHandler interface. - - /** Perform an necessary initialization. - */ - int AXISCALL init(); - - /** Perform any necessary finalization. - */ - int AXISCALL fini(); - - /** Get the SCA specific properties that were set in the deployment - * descriptor (server.wsdd) and set them into the MessageData where - * they can be retrieved by the SCAWSWrapper to invoke the correct - * SCA Entry Point. - * @param pvIMsg - pointer to IMessageData - * - * @see SCAWSWrapper - */ - int AXISCALL invoke(void* pvIMsg); - - /** Handle Faults. - */ - void AXISCALL onFault(void* pvIMsg); - - private: - -}; - - -#endif // !defined(SCAWSHANDLER_H_INCLUDED) - - diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/Makefile.am b/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/Makefile.am deleted file mode 100644 index af437a64d6..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = src diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtbuild b/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtbuild deleted file mode 100644 index cad284f534..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtbuild +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtproject b/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtproject deleted file mode 100644 index 48a12e6664..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.cdtproject +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.project b/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.project deleted file mode 100644 index 526e05b5c0..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.project +++ /dev/null @@ -1,19 +0,0 @@ - - - tuscany_sca_axis_wrapper - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.ccnature - - diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs deleted file mode 100644 index 263f7d68d6..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Thu Feb 16 14:46:12 GMT 2006 -eclipse.preferences.version=1 -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.928824798=\n\n\n\n\n -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.417732635=\n\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.928824798=\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.417732635=\n\n\n\n -environment/project=\n\n -environment/project/cdt.managedbuild.config.gnu.so.debug.928824798=\n\n\n\n -environment/project/cdt.managedbuild.config.gnu.so.release.417732635=\n\n\n\n diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/Makefile.am b/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/Makefile.am deleted file mode 100644 index f3dda31d1c..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -lib_LTLIBRARIES = libtuscany_sca_axis_wrapper.la - -libtuscany_sca_axis_wrapper_la_SOURCES = SCAWSWrapper.cpp - -libtuscany_sca_axis_wrapper_la_LIBADD = -lstdc++ -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include \ - -I${AXISCPP_DEPLOY}/include - diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.cpp b/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.cpp deleted file mode 100644 index 1ae9739117..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.cpp +++ /dev/null @@ -1,254 +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 11:33:21 $ */ - -#include "SCAWSWrapper.h" - -#include "commonj/sdo/SDO.h" -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/core/SCAEntryPoint.h" - - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca; -AXIS_CPP_NAMESPACE_USE; - -/** Construct an SCAWSWrapper. - */ -SCAWSWrapper::SCAWSWrapper() -{ -} - -/** Destruct an SCAWSWrapper. - */ -SCAWSWrapper::~SCAWSWrapper() -{ -} - - -// -// Implementation of WrapperClassHandler interface -// - -/** Perform any necessary initialization. - */ -int SCAWSWrapper::init() -{ - return AXIS_SUCCESS; -} - -/** Perform an necessary finalization. - */ -int SCAWSWrapper::fini() -{ - return AXIS_SUCCESS; -} - -/** Invoke a web service operation. The invoke method expects SCA specific - * properties to have been set into the MessageData by the SCAWSHandler. - * Using those properties, the wrapper will invoke the correct SCA Entry - * Point. - * @param pMsg - pointer to IMessageData. - * - * @see SCAWSHandler - */ -int SCAWSWrapper::invoke(void *pMsg) -{ - - IMessageData *pIMsg = (IMessageData*)pMsg; - const AxisChar *operationName = pIMsg->getOperationName(); - - int axisReturn = invokeService(pIMsg, operationName); - return axisReturn; -} - -/** Handle Faults. - */ -void SCAWSWrapper::onFault(void *pMsg) -{ -} - - -// Invoke an operation on an SCA Entry Point. -int SCAWSWrapper::invokeService(IMessageData *pIMsg, - const AxisChar *operationName) -{ - int axisReturn = AXIS_SUCCESS; - - // Get the SoapSerializer. - IWrapperSoapSerializer* pIWSSZ; - pIMsg->getSoapSerializer(&pIWSSZ); - if (!pIWSSZ) - { - return AXIS_FAIL; - } - - // Get the SoapDeSerializer. - IWrapperSoapDeSerializer* pIWSDZ; - pIMsg->getSoapDeSerializer(&pIWSDZ); - if (!pIWSDZ) - { - return AXIS_FAIL; - } - - // Target Namespace was set into the MessageData by the SCAWSHandler. - const AxisChar *targetNamespace = (const AxisChar *)pIMsg->getProperty("targetNamespace"); - - // Make sure we have the correct message. - if (AXIS_SUCCESS != pIWSDZ->checkMessageBody(operationName, targetNamespace)) - { - return AXIS_FAIL; - } - - try - { - // - // Create the SCA EntryPoint - // - const AxisChar *scaEntryPointName = (const AxisChar *)pIMsg->getProperty("scaEntryPoint"); - SCAEntryPoint entrypoint(scaEntryPointName); - - // Get the DataFactory which has Types loaded from WSDLs - DataFactoryPtr dataFactory = entrypoint.getDataFactory(); - - // - // Get the Soap body and create an SDO request object from it. - // - AnyType *soapAny = pIWSDZ->getAnyObject(); - - // The Doc Literal soap message does not include the root element (operation name) when - // we use getAnyObject. Axis calls this element the 'soap method' but there is no - // 'getSoapMethod' method on the deserializer - we need to wrap the soap body with an - // element named for the operation name. - - string soapBody("<"); - soapBody.append(operationName); - soapBody.append(" "); - soapBody.append("xmlns"); - soapBody.append("=\""); - soapBody.append(targetNamespace); - soapBody.append("\">"); - for (int i=0; i < soapAny->_size ; i++) - { - // The soap body is stored in the _array member of AnyType. - soapBody.append(soapAny->_array[i]); - } - soapBody.append(""); - - // - // Create the SDO request object from the soap body. - // - XMLHelperPtr xmlHelper = HelperProvider::getXMLHelper(dataFactory); - XMLDocumentPtr xmlDoc = xmlHelper->load(soapBody.c_str(), targetNamespace); - DataObjectPtr requestSDO = xmlDoc->getRootDataObject(); - - // - // Invoke the operation on the SCA EntryPoint. - // - DataObjectPtr responseSDO = entrypoint.invoke(operationName, requestSDO); - - // - // Serialize the responseSDO into a SOAP response. - // - // Get the name of the response SDO. The entry point was invoked using an - // SDOStub and the stub makes sure that the response includes the root - // element (operation response name). - - const Type &responseType = responseSDO->getType(); - const char *operationResponseName = responseType.getName(); - - // Get the first child of the root element - this is the soap body - // to return in the response. The body will be wrapped with the root - // element (operation response name) when we call the Axis method - // 'createSoapmMethod'. - DataObjectPtr soapBodySDO = responseSDO->getDataObject((unsigned int)0); - const Type& soapBodyType = soapBodySDO->getType(); - const char *soapBodyName = soapBodyType.getName(); - // Convert the soap body DataObject into XML. - XMLDocumentPtr responseDoc = xmlHelper->createDocument(soapBodySDO, - targetNamespace, - soapBodyName); - responseDoc->setXMLDeclaration(false); - char *responseXML = xmlHelper->save(responseDoc); - - // - // Serialize the response - // - // Wrap the soap body with the root element (operation response name). - pIWSSZ->createSoapMethod(operationResponseName, targetNamespace); - // Add the XML response document (soap body) as an AnyType. - AnyType *soapAnyResponse = new AnyType(); - soapAnyResponse->_size = 1; - soapAnyResponse->_array = new char*[1]; - soapAnyResponse->_array[0] = strdup(responseXML); - - pIWSSZ->addOutputAnyObject(soapAnyResponse); - - } - catch(ServiceRuntimeException e) - { - axisReturn = AXIS_FAIL; - } - catch(SDORuntimeException e) - { - axisReturn = AXIS_FAIL; - } - - - return axisReturn; -} - -// -// These functions are exported from the SCAWSWrapper DLL and are called by the Axis Engine -// to create/destroy instances of the service wrapper class. -// -extern "C" -{ -STORAGE_CLASS_INFO -int GetClassInstance(BasicHandler **inst) -{ - *inst = new BasicHandler(); - WrapperClassHandler* pWCH = new SCAWSWrapper(); - (*inst)->_functions = 0; - if (pWCH) - { - (*inst)->_object = pWCH; - return pWCH->init(); - } - return AXIS_FAIL; -} -STORAGE_CLASS_INFO -int DestroyInstance(BasicHandler *inst) -{ - if (inst) - { - WrapperClassHandler* pWCH = reinterpret_cast(inst); - pWCH->fini(); - delete pWCH; - delete inst; - return AXIS_SUCCESS; - } - return AXIS_FAIL; -} -} // extern "C" - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.h b/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.h deleted file mode 100644 index 474c39977f..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/axis_binding/wrapper/src/SCAWSWrapper.h +++ /dev/null @@ -1,110 +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 11:33:21 $ */ - -#if !defined(SCAWSWRAPPER_H_INCLUDED) -#define SCAWSWRAPPER_H_INCLUDED - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -#include "osoa/sca/export.h" -#include -#include -#include -#include -#include - - -AXIS_CPP_NAMESPACE_USE - -/** The SCAWSWrapper class is an Axis WrapperClassHandler that acts as a generic service wrapper for - * invoking services using the SCARuntime. Any services defined in the deployment descriptor (server.wsdd) - * with will be invoked by the SCAWSWrapper. - * The service must also be configured with a handler (SCAWSHandler) that sets SCA specific properties - * from the deployment descriptor into the MessageData that is passed to the wrapper's invoke method. - * The SCAWSWrapper uses the properties to configure an SCA Entry Point and invoke the requested operation - * on the service. - * - * Example: - * - * - * - * - * - * - * - * - * - * - * - * - * - * @see SCAWSHandler - */ -class SCAWSWrapper : public WrapperClassHandler -{ - public: - - /** Construct an SCAWSWrapper. - */ - SCAWSWrapper(); - - /** Destruct an SCAWSWrapper. - */ - virtual ~SCAWSWrapper(); - - // - // Axis WrapperClassHandler interface. - // - - /** Perform any necessary initialization. - */ - int AXISCALL init(); - - /** Perform any necessary finalization. - */ - int AXISCALL fini(); - - /** Invoke a web service operation. The invoke method expects SCA specific - * properties to have been set into the MessageData by the SCAWSHandler. - * Using those properties, the wrapper will invoke the correct SCA Entry - * Point. - * @param pMsg - pointer to IMessageData. - * - * @see SCAWSHandler - */ - int AXISCALL invoke(void* pMsg); - - /** Handle Faults. - */ - void AXISCALL onFault(void* pMsg); - - /** Binding Style: Document Literal. - */ - AXIS_BINDING_STYLE AXISCALL getBindingStyle() { return DOC_LITERAL; }; - - private: - - // Invoke an SCA Entry Point and return an SDO object as a result. - int invokeService(IMessageData *pIMsg, - const AxisChar *operationName); -}; - -#endif // !defined(SCAWSWRAPPER_H_INCLUDED) diff --git a/tags/cpp-stable-20060304/sca/runtime/core/Makefile.am b/tags/cpp-stable-20060304/sca/runtime/core/Makefile.am deleted file mode 100644 index b4b5bc3097..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = src test diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtbuild b/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtbuild deleted file mode 100644 index 60990b3bc1..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtbuild +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtproject b/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtproject deleted file mode 100644 index 48a12e6664..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/.cdtproject +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/.project b/tags/cpp-stable-20060304/sca/runtime/core/src/.project deleted file mode 100644 index 86fb4b8663..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/.project +++ /dev/null @@ -1,19 +0,0 @@ - - - tuscany_sca - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.ccnature - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tags/cpp-stable-20060304/sca/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs deleted file mode 100644 index 0e5a987932..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Thu Feb 16 12:50:21 GMT 2006 -eclipse.preferences.version=1 -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.1559343291=\n\n\n\n\n -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.1621584437=\n\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.1559343291=\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.1621584437=\n\n\n\n -environment/project=\n\n -environment/project/cdt.managedbuild.config.gnu.so.debug.1559343291=\n\n\n\n -environment/project/cdt.managedbuild.config.gnu.so.release.1621584437=\n\n\n\n diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/Makefile.am b/tags/cpp-stable-20060304/sca/runtime/core/src/Makefile.am deleted file mode 100644 index 8fc6c7ccc7..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/Makefile.am +++ /dev/null @@ -1,98 +0,0 @@ -lib_LTLIBRARIES = libtuscany_sca.la - -nobase_include_HEADERS = \ -osoa/sca/ComponentContext.h \ -osoa/sca/ComponentContextImpl.h \ -osoa/sca/export.h \ -osoa/sca/ModuleContext.h \ -osoa/sca/ModuleContextImpl.h \ -osoa/sca/sca.h \ -osoa/sca/ServiceList.h \ -osoa/sca/ServiceRuntimeException.h \ -tuscany/sca/core/ComponentServiceWrapper.h \ -tuscany/sca/core/ExternalServiceWrapper.h \ -tuscany/sca/core/Operation.h \ -tuscany/sca/core/SCAEntryPoint.h \ -tuscany/sca/core/SCARuntime.h \ -tuscany/sca/core/ServiceProxy.h \ -tuscany/sca/core/ServiceWrapper.h \ -tuscany/sca/model/Binding.h \ -tuscany/sca/model/Component.h \ -tuscany/sca/model/CPPImplementation.h \ -tuscany/sca/model/CPPInterface.h \ -tuscany/sca/model/EntryPoint.h \ -tuscany/sca/model/ExternalService.h \ -tuscany/sca/model/Implementation.h \ -tuscany/sca/model/Interface.h \ -tuscany/sca/model/ModelLoader.h \ -tuscany/sca/model/Module.h \ -tuscany/sca/model/Service.h \ -tuscany/sca/model/ServiceReference.h \ -tuscany/sca/model/Subsystem.h \ -tuscany/sca/model/System.h \ -tuscany/sca/model/Wire.h \ -tuscany/sca/model/WireTarget.h \ -tuscany/sca/model/WSBinding.h \ -tuscany/sca/model/Wsdl.h \ -tuscany/sca/model/WsdlOperation.h \ -tuscany/sca/util/DefaultLogWriter.h \ -tuscany/sca/util/Exceptions.h \ -tuscany/sca/util/File.h \ -tuscany/sca/util/Library.h \ -tuscany/sca/util/Logger.h \ -tuscany/sca/util/Logging.h \ -tuscany/sca/util/LogWriter.h \ -tuscany/sca/util/Utils.h \ -tuscany/sca/ws/SDOStub.h \ -tuscany/sca/ws/WSServiceWrapper.h - - -libtuscany_sca_la_SOURCES = \ -osoa/sca/ComponentContext.cpp \ -osoa/sca/ComponentContextImpl.cpp \ -osoa/sca/ModuleContext.cpp \ -osoa/sca/ModuleContextImpl.cpp \ -osoa/sca/SCA.cpp \ -osoa/sca/ServiceList.cpp \ -osoa/sca/ServiceRuntimeException.cpp \ -tuscany/sca/util/DefaultLogWriter.cpp \ -tuscany/sca/util/File.cpp \ -tuscany/sca/util/Library.cpp \ -tuscany/sca/util/Logger.cpp \ -tuscany/sca/util/LogWriter.cpp \ -tuscany/sca/util/Utils.cpp \ -tuscany/sca/model/Binding.cpp \ -tuscany/sca/model/Component.cpp \ -tuscany/sca/model/CPPImplementation.cpp \ -tuscany/sca/model/CPPInterface.cpp \ -tuscany/sca/model/EntryPoint.cpp \ -tuscany/sca/model/ExternalService.cpp \ -tuscany/sca/model/Implementation.cpp \ -tuscany/sca/model/Interface.cpp \ -tuscany/sca/model/ModelLoader.cpp \ -tuscany/sca/model/Module.cpp \ -tuscany/sca/model/Service.cpp \ -tuscany/sca/model/ServiceReference.cpp \ -tuscany/sca/model/Subsystem.cpp \ -tuscany/sca/model/System.cpp \ -tuscany/sca/model/Wire.cpp \ -tuscany/sca/model/WireTarget.cpp \ -tuscany/sca/model/WSBinding.cpp \ -tuscany/sca/model/Wsdl.cpp \ -tuscany/sca/model/WsdlOperation.cpp \ -tuscany/sca/core/ComponentServiceWrapper.cpp \ -tuscany/sca/core/ExternalServiceWrapper.cpp \ -tuscany/sca/core/Operation.cpp \ -tuscany/sca/core/SCAEntryPoint.cpp \ -tuscany/sca/core/SCARuntime.cpp \ -tuscany/sca/core/ServiceProxy.cpp \ -tuscany/sca/core/ServiceWrapper.cpp \ -tuscany/sca/ws/SDOStub.cpp \ -tuscany/sca/ws/WSServiceWrapper.cpp - -libtuscany_sca_la_LIBADD = -lstdc++ -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include \ - -I${AXISCPP_DEPLOY}/include - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.cpp deleted file mode 100644 index 73c3ed2e36..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.cpp +++ /dev/null @@ -1,132 +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 11:33:21 $ */ - -#include "osoa/sca/ComponentContext.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Exceptions.h" -#include "osoa/sca/ComponentContextImpl.h" -#include "tuscany/sca/core/SCARuntime.h" - -using namespace tuscany::sca; - -namespace osoa -{ - namespace sca - { - - // ======================================================= - // getCurrent: create a context from the current component - // ======================================================= - ComponentContext ComponentContext::getCurrent() - { - LOGENTRY(1, "ComponentContext::getCurrent"); - Component* component = SCARuntime::getInstance()->getCurrentComponent(); - if (!component) - { - throw ComponentContextException("No current component"); - } - ComponentContextImpl* cci = new ComponentContextImpl(component); - LOGEXIT(1, "ComponentContext::constructor"); - return ComponentContext(cci); - } - - // =========== - // Constructor - // =========== - ComponentContext::ComponentContext(ComponentContextImpl* implementation) - : impl(implementation) - { - LOGENTRY(1, "ComponentContext::constructor"); - LOGEXIT(1, "ComponentContext::constructor"); - } - - // ========== - // Destructor - // ========== - ComponentContext::~ComponentContext() - { - LOGENTRY(1, "ComponentContext::destructor"); - delete impl; - LOGEXIT(1, "ComponentContext::destructor"); - } - - // =================================== - // Copy constructor: create a new impl - // =================================== - ComponentContext::ComponentContext(const ComponentContext& ctx) - { - impl = new ComponentContextImpl(impl->getComponent()); - } - - // ============================= - // operator= : create a new impl - // ============================= - ComponentContext& ComponentContext::operator=(const ComponentContext& ctx) - { - if (this != &ctx) - { - impl = new ComponentContextImpl(impl->getComponent()); - } - return *this; - } - - // ========== - // getService - // ========== - void* ComponentContext::getService(const char* referenceName) - { - LOGENTRY(1, "ComponentContext::getService"); - void* service = impl->getService(referenceName); - LOGEXIT(1, "ComponentContext::getService"); - return service; - } - - // =========== - // getServices - // =========== - ServiceList ComponentContext::getServices(const char* referenceName) - { - return impl->getServices(referenceName); - } - - // ============ - // getProperties - // ============= - DataObjectPtr ComponentContext::getProperties() - { - LOGENTRY(1, "ComponentContext::getProperties"); - DataObjectPtr properties = impl->getProperties(); - LOGEXIT(1, "ComponentContext::getProperties"); - return properties; - } - - // ============ - // getDataFactory - // ============= - DataFactoryPtr ComponentContext::getDataFactory() - { - LOGENTRY(1, "ComponentContext::getDataFactory"); - DataFactoryPtr dataFactory = impl->getDataFactory(); - LOGEXIT(1, "ComponentContext::getDataFactory"); - return dataFactory; - } - - - } // End namespace sca -} // End namespace osoa diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.h b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.h deleted file mode 100644 index 10d334a936..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContext.h +++ /dev/null @@ -1,105 +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 11:33:21 $ */ - -#ifndef osoa_sca_componentcontext_h -#define osoa_sca_componentcontext_h - -#include "osoa/sca/export.h" -#include "osoa/sca/ServiceList.h" -#include "commonj/sdo/SDO.h" -namespace osoa -{ - namespace sca - { - class ComponentContextImpl; - - /** - * An SCA component implementation uses the ComponentContext class to - * retrieve information about the configured SCA component. - */ - class SCA_API ComponentContext - { - - public: - /** - * Return a new ComponentContext for the current Component. - */ - static ComponentContext getCurrent(); - - /** - * Resolve a reference name into a single configured service. - * If the component's reference is wired to more than one service - * then theis method will return an exception. - * @param referenceName The reference to be resolved. This must match - * the name of a reference configured in the component type file for - * this component. - */ - void* getService(const char* referenceName); - - /** - * Resolve a reference name into a list of configured services. - * @param referenceName The reference to be resolved. This must match - * the name of a reference configured in the component type file for - * this component. - */ - ServiceList getServices(const char* referenceName); - - /** - * Get the configured properties for the component. - * @return A data object representing all the properties that - * are configured for this component. - */ - commonj::sdo::DataObjectPtr getProperties(); - - /** - * Get an SDO data factory which will allow the component to - * create data objects for all the types configured for this - * component. - * @return A data factory to be used by the component to create - * new data objects. - */ - commonj::sdo::DataFactoryPtr getDataFactory(); - - /** - * Destructor - */ - virtual ~ComponentContext(); - - - ComponentContext(const ComponentContext&); - ComponentContext& operator=(const ComponentContext&); - - private: - /** - * Constructor to create an interface class from the contained - * implementation. - * @param implementation the actual implementation class - */ - ComponentContext(ComponentContextImpl* implementation); - - /** - * Pointer to the class which provides the actual implementation. - */ - ComponentContextImpl* impl; - - }; - } // End namespace sca -} // End namespace osoa - -#endif // osoa_sca_componentcontext_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.cpp deleted file mode 100644 index 436e44d5e1..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.cpp +++ /dev/null @@ -1,270 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Exceptions.h" -#include "osoa/sca/ComponentContextImpl.h" -#include "tuscany/sca/model/WireTarget.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" -#include "tuscany/sca/core/ExternalServiceWrapper.h" -#include "tuscany/sca/model/CPPImplementation.h" -#include "tuscany/sca/model/Module.h" - -using namespace tuscany::sca; -using namespace tuscany::sca::model; - -namespace osoa -{ - namespace sca - { - // =========== - // Constructor - // =========== - ComponentContextImpl::ComponentContextImpl(Component* comp) - : component(comp) - { - LOGENTRY(1, "ComponentContextImpl::constructor"); - LOGEXIT(1, "ComponentContextImpl::constructor"); - } - - // ========== - // Destructor - // ========== - ComponentContextImpl::~ComponentContextImpl() - { - // -------------------------------------------- - // Delete the proxies served up by this context - // -------------------------------------------- - for (PROXIES::iterator iter = proxies.begin(); iter != proxies.end(); iter++) - { - delete (ServiceProxy*)*iter; - } - } - - - // ========================================================================== - // getServices: return a list of Proxies for services wired to this reference - // ========================================================================== - ServiceList ComponentContextImpl::getServices(const char* referenceName) - { - LOGENTRY(1, "ComponentContextImpl::getServices"); - - string message; - - // -------------------------------------------------------------- - // locate reference in the current component and determine target - // -------------------------------------------------------------- - ServiceReference* serviceReference = component->findReference(referenceName); - if (!serviceReference) - { - message = "Reference not defined: "; - message = message + referenceName; - throw ServiceNotFoundException(message.c_str()); - } - - // Get the target services from the ServiceReference - const ServiceReference::TARGETS& targets = serviceReference->getTargets(); - - // -------------------- - // Validate the request - // -------------------- - switch (serviceReference->getMultiplicity()) - { - case ServiceReference::ONE_MANY: - case ServiceReference::ONE_ONE: - { - if (targets.size() == 0) - { - message = "Reference "; - message = message + referenceName + " not wired"; - throw ServiceNotFoundException(message.c_str()); - } - } - default: - { - } - } // end switch - - // ------------------------------ - // Create a proxy for each target - // ------------------------------ - ServiceList services(targets.size()); - for (ServiceReference::TARGETS::const_iterator iter = targets.begin(); - iter!=targets.end(); - iter++) - { - services.addService(getServiceProxy(serviceReference, *iter)); - } - - return services; - - } // End getServices() - - - // =================================================================== - // getService: return a Proxy for the services wired to this reference - // =================================================================== - void* ComponentContextImpl::getService(const char* referenceName) - { - LOGENTRY(1, "ComponentContextImpl::getService"); - - string message; - - // -------------------------------------------------------------- - // locate reference in the current component and determine target - // -------------------------------------------------------------- - ServiceReference* serviceReference = component->findReference(referenceName); - if (!serviceReference) - { - message = "Reference not defined: "; - message = message + referenceName; - throw ServiceNotFoundException(message.c_str()); - } - - // Get the target service from the ServiceReference - const ServiceReference::TARGETS& targets = serviceReference->getTargets(); - - // -------------------- - // Validate the request - // -------------------- - switch (serviceReference->getMultiplicity()) - { - case ServiceReference::ZERO_MANY: - case ServiceReference::ONE_MANY: - { - message = "getService() called for reference with multiplicity >1 :"; - message = message + referenceName; - throw ServiceNotFoundException(message.c_str()); - } - case ServiceReference::ONE_ONE: - { - if (targets.size() == 0) - { - message = "Reference "; - message = message + referenceName + " not wired"; - throw ServiceNotFoundException(message.c_str()); - } - } - default: - { - } - } // end switch - - // Return the proxy - return getServiceProxy(serviceReference, *targets.begin()); - - } // End getService() - - - // ================================================================== - // getServiceProxy: Create and return an instance of the ServiceProxy - // ================================================================== - void* ComponentContextImpl::getServiceProxy( - ServiceReference* serviceReference, - WireTarget* target) - { - // ----------------------------------- - // Get a ServiceWrapper for the target - // ----------------------------------- - ServiceWrapper* serviceWrapper = getServiceWrapper(target); - - // ------------------------------ - // Get a Proxy for this reference - // ------------------------------ - try - { - ServiceProxy* serviceProxy = new ServiceProxy(component, serviceReference->getName(), serviceWrapper); - void* service = serviceProxy->getProxy(); - // service MUST be set here or an exception will have been thrown - proxies.push_back(serviceProxy); - return service; - } - catch (ServiceRuntimeException&) - { - delete serviceWrapper; - throw ; - } - } - - - // ====================================================================== - // getServiceWrapper: Create and return an instance of the ServiceWrapper - // ====================================================================== - ServiceWrapper* ComponentContextImpl::getServiceWrapper(WireTarget* target) - { - // ------------------------- - // Determine type of Service - // ------------------------- - switch (target->getServiceType()) - { - case WireTarget::ExternalServiceType: - { - // ---------------- - // External Service - // ---------------- - return ExternalServiceWrapper::createServiceWrapper((ExternalService*)target); - } - - case WireTarget::ComponentServiceType: - { - // ----------------- - // Component Service - // ----------------- - return ComponentServiceWrapper::createServiceWrapper((Service*)target); - } - - default: - { - string message = "Undefined wire target type for : "; - message = message + target->getName(); - throw ServiceNotFoundException(message.c_str()); - } - } // end switch - } - - - - // ============================================== - // getProperties: return the component properties - // ============================================== - DataObjectPtr ComponentContextImpl::getProperties() - { - LOGENTRY(1, "ComponentContextImpl::getProperties"); - DataObjectPtr properties = component->getProperties(); - - LOGEXIT(1, "ComponentContextImpl::getProperties"); - return properties; - } - - // ============================================== - // getDataFactory: return the data factory for the module in which - // this component resides - // ============================================== - DataFactoryPtr ComponentContextImpl::getDataFactory() - { - LOGENTRY(1, "ComponentContextImpl::getProperties"); - DataFactoryPtr dataFactory = component->getModule()->getDataFactory(); - - LOGEXIT(1, "ComponentContextImpl::getDataFactory"); - return dataFactory; - } - - - } // End namespace sca -} // End namespace osoa diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.h b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.h deleted file mode 100644 index bd3a0d106a..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ComponentContextImpl.h +++ /dev/null @@ -1,120 +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 11:33:21 $ */ - -#ifndef osoa_sca_componentcontextimpl_h -#define osoa_sca_componentcontextimpl_h - -#include "osoa/sca/ServiceList.h" - -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/core/ServiceProxy.h" -#include "tuscany/sca/model/Service.h" - -using namespace tuscany::sca; -using namespace tuscany::sca::model; - -namespace osoa -{ - namespace sca - { - /** - * Contains the actual implementation of a ComponentContext interface. - */ - class ComponentContextImpl - { - - public: - /** - * Constructor that takes a Component which represents the runtime - * model for this context. - */ - ComponentContextImpl(Component* component); - - /** - * Default constructor. - */ - virtual ~ComponentContextImpl(); - - /** - * See ComponentContext. - */ - void* getService(const char* referenceName); - - /** - * See ComponentContext. - */ - ServiceList getServices(const char* referenceName); - - /** - * See ComponentContext. - */ - DataObjectPtr getProperties(); - - /** - * See ComponentContext. - */ - commonj::sdo::DataFactoryPtr getDataFactory(); - - /** - * Returns the contained Component. - * @return The Component to which this context refers. - */ - Component* getComponent() {return component;} - - private: - ComponentContextImpl(const ComponentContextImpl&); - ComponentContextImpl& operator=(const ComponentContextImpl&); - - /** - * Pointer to the runtime model Component to which this - * context refers. - */ - Component* component; - - /** - * Helper method to return a proxy to a service. - * @param serviceReference The source reference. - * @param target The target to which this source reference is wired. - * @return A pointer to an object which can be cast to the business - * class representing the target. - */ - void* getServiceProxy( - ServiceReference* serviceReference, - WireTarget* target); - - /** - * Helper method to return a wrapper for a target service. - * @param target The target for which this wrapper is to be created. - * @return The service wrapper. - */ - ServiceWrapper* getServiceWrapper(WireTarget* target); - - - typedef vector PROXIES; - /** - * A vector of the proxies created by this ComponentContext. The - * proxies will be destroyed when the ComponentContext is destroyed. - */ - PROXIES proxies; - }; - } // End namespace sca -} // End namespace osoa - -#endif // osoa_sca_componentcontextimpl_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.cpp deleted file mode 100644 index 93e36b297f..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.cpp +++ /dev/null @@ -1,93 +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 11:33:21 $ */ - -#include "osoa/sca/ModuleContext.h" -#include "tuscany/sca/util/Logging.h" -#include "osoa/sca/ModuleContextImpl.h" -#include "tuscany/sca/core/SCARuntime.h" - -using namespace tuscany::sca; - -namespace osoa -{ - namespace sca - { - // =========== - // Constructor - // =========== - ModuleContext::ModuleContext(ModuleContextImpl* implementation) - : impl(implementation) - { - } - - // =================================== - // Copy constructor: create a new impl - // =================================== - ModuleContext::ModuleContext(const ModuleContext& ctx) - { - impl = new ModuleContextImpl(SCARuntime::getInstance()->getCurrentModule()); - } - - // ============================= - // operator= : create a new impl - // ============================= - ModuleContext& ModuleContext::operator=(const ModuleContext& ctx) - { - if (this != &ctx) - { - impl = new ModuleContextImpl(SCARuntime::getInstance()->getCurrentModule()); - } - return *this; - } - - // ========== - // Destructor - // ========== - ModuleContext::~ModuleContext() - { - LOGENTRY(1, "ModuleContext::destructor"); - delete impl; - LOGEXIT(1, "ModuleContext::destructor"); - } - - // ==================================================== - // getCurrent: create a context from the current module - // ==================================================== - ModuleContext ModuleContext::getCurrent() - { - LOGENTRY(1, "ModuleContext::getCurrent"); - ModuleContextImpl* mci = new ModuleContextImpl(SCARuntime::getInstance()->getCurrentModule()); - LOGEXIT(1, "ModuleContext::getCurrent"); - return ModuleContext(mci); - } - - // ============= - // locateService - // ============= - void* ModuleContext::locateService(const char* serviceName) - { - LOGENTRY(1, "ModuleContext::locateService"); - void* sp = impl->locateService(serviceName); - LOGEXIT(1, "ModuleContext::locateService"); - return sp; - } - - - } // End namespace sca -} // End namespace osoa diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.h b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.h deleted file mode 100644 index 7aacb00123..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContext.h +++ /dev/null @@ -1,80 +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 11:33:21 $ */ - -#ifndef osoa_sca_modulecontext_h -#define osoa_sca_modulecontext_h - -#include "osoa/sca/export.h" - -namespace osoa -{ - namespace sca - { - class ModuleContextImpl; - - /** - * An SCA component implementation, or a non-SCA client, uses the - * ModuleContext class to retrieve information about the configured - * SCA module. - */ - class SCA_API ModuleContext - { - - public: - /** - * Return a new ModuleContext for the current Component. - */ - static ModuleContext getCurrent(); - - /** - * Resolve a service name into a single component service. - * @param serviceName The name of the service in the form - * "component name"/"service name". The service name is - * optional in the component has one service. - * @return A pointer to an object which can be cast to the - * business interface of the target service. - */ - void* locateService(const char* serviceName); - - /** - * Destructor. - */ - virtual ~ModuleContext(); - - ModuleContext(const ModuleContext&); - ModuleContext& operator=(const ModuleContext&); - - private: - /** - * Constructor to create an interface class from the contained - * implementation. - * @param implementation The actual implementation class. - */ - ModuleContext(ModuleContextImpl* implementation); - - /** - * Pointer to the class which provides the actual implementation. - */ - ModuleContextImpl* impl; - - }; - } // End namespace sca -} // End namespace osoa - -#endif // osoa_sca_modulecontext_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.cpp deleted file mode 100644 index 4d96ee336d..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.cpp +++ /dev/null @@ -1,102 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/CPPImplementation.h" -#include "osoa/sca/ModuleContextImpl.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -using namespace tuscany::sca; -using namespace tuscany::sca::model; - -namespace osoa -{ - namespace sca - { - // =========== - // Constructor - // =========== - ModuleContextImpl::ModuleContextImpl(Module* mod) - : module(mod) - { - } - - // ========== - // Destructor - // ========== - ModuleContextImpl::~ModuleContextImpl() - { - // -------------------------------------------- - // Delete the proxies served up by this context - // -------------------------------------------- - for (PROXIES::iterator iter = proxies.begin(); iter != proxies.end(); iter++) - { - delete (ServiceProxy*)*iter; - } - } - - // =========================================================================== - // locateService: return a proxy connected to a wrapper for the target service - // =========================================================================== - void* ModuleContextImpl::locateService(const char* serviceName) - { - LOGENTRY(1, "ModuleContextImpl::locateService"); - - - // ---------------------------- - // Locate the component service - // ---------------------------- - Service* service = module->findComponentService(serviceName); - string msg; - if (!service) - { - msg = "Service not found: "; - msg = msg + serviceName; - throw ServiceNotFoundException(msg.c_str()); - } - - // ------------------------- - // Create the ServiceWrapper - // ------------------------- - ComponentServiceWrapper* serviceWrapper = ComponentServiceWrapper::createServiceWrapper(service); - - // ---------------------------- - // Get a Proxy for this service - // ---------------------------- - try - { - ServiceProxy* serviceProxy = new ServiceProxy(service->getComponent(), service->getName(), serviceWrapper); - proxies.push_back(serviceProxy); - LOGEXIT(1, "ModuleContextImpl::locateService"); - return serviceProxy->getProxy(); - } - catch (ServiceRuntimeException&) - { - delete serviceWrapper; - throw ; - } - - } - - - - } // End namespace sca -} // End namespace osoa diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.h b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.h deleted file mode 100644 index 5950313a06..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ModuleContextImpl.h +++ /dev/null @@ -1,71 +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 11:33:21 $ */ - -#ifndef osoa_sca_modulecontextimpl_h -#define osoa_sca_modulecontextimpl_h -#include "tuscany/sca/model/Module.h" -#include "tuscany/sca/core/ServiceProxy.h" - -namespace osoa -{ - namespace sca - { - /** - * Contains the actual implementation of a ModuleContext interface. - */ - class ModuleContextImpl - { - - public: - /** - * Constructor that takes a Module which represents the runtime - * model for this context. - */ - ModuleContextImpl(tuscany::sca::model::Module* module); - - /** - * See ModuleContext#locateService. - */ - void* locateService(const char* serviceName); - - /** - * Destructor. - */ - virtual ~ModuleContextImpl(); - private: - ModuleContextImpl(const ModuleContextImpl&); - ModuleContextImpl& operator=(const ModuleContextImpl&); - - /** - * Pointer to the runtime model Module object to which this - * context refers. - */ - tuscany::sca::model::Module* module; - - typedef vector PROXIES; - /** - * Vector of proxies created from calls to the locateService - * method. - */ - PROXIES proxies; - }; - } // End namespace sca -} // End namespace osoa - -#endif // osoa_sca_modulecontextimpl_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/SCA.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/SCA.cpp deleted file mode 100644 index bcca254028..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/SCA.cpp +++ /dev/null @@ -1,21 +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: $ */ - -#include "osoa/sca/sca.h" - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceList.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceList.cpp deleted file mode 100644 index ba2b418a7c..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/ServiceList.cpp +++ /dev/null @@ -1,105 +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 11:33:21 $ */ - -#include "osoa/sca/ServiceList.h" - -#include "osoa/sca/ServiceRuntimeException.h" - -namespace osoa -{ - namespace sca - { - // =========== - // Constructor - // =========== - ServiceList::ServiceList(unsigned int numTargets) - : maxServices(numTargets), numServices(0) - { - services = new void*[numTargets]; - } - - // ========================================== - // Copy comstructor: create new service array - // ========================================== - ServiceList::ServiceList(const ServiceList& sl) - : maxServices(sl.maxServices), numServices(sl.numServices) - { - services = new void*[maxServices]; - for (unsigned int i=0; i - -namespace osoa -{ - namespace sca - { - - /** - * Top level exception to represent all the exceptions that may be - * thrown by an SCA runtime implementation. - */ - class SCA_API ServiceRuntimeException - { - public: - /** - * Represents the possible severity levels for an exception. - */ - enum severity_level - { - Normal, - Warning, - Error, - Severe - }; - - /** - * Constructor. - * @param name Class name of the exception. - * @param sev Severity level. - * @param msg_text Detailed description of the exception. - */ - ServiceRuntimeException( - const char *name="ServiceRuntimeException", - severity_level sev=Severe, - const char* msg_text=""); - - ServiceRuntimeException(const ServiceRuntimeException& c); - - // Destructor - virtual ~ServiceRuntimeException(); - - /** - * Return class name of this exception. - */ - const char* getEClassName() const; - - /** - * Return severity. - */ - severity_level getSeverity() const; - - /** - * Return message text associated with exception. - */ - const char* getMessageText() const; - - /* - * Return file name where the exception was raised. - */ - const char* getFileName() const; - - /** - * Return line number where the exception was raised. - */ - unsigned long getLineNumber() const; - - /** - * Return function name where the exception was raised. - */ - const char* getFunctionName() const; - - /** - * Set the exception severity. - */ - void setSeverity(severity_level sev); - - /** - * Set the message text associated with exception. - */ - void setMessageText(const char* msg_text); - - /** - * Set the location where the exception was raised. - * @param file Name of the file. - * @param line Line number in the file. - * @param function Name of the function. - */ - void setLocation(const char* file, - unsigned long line, - const char* function=""); - - /** - * Append exception details to ostream. - */ - virtual std::ostream& PrintSelf(std::ostream &os) const; - - /** - * Operator to send exceptions details to a stream. - */ - SCA_API friend std::ostream& operator<< (std::ostream &os, const ServiceRuntimeException &except); - protected: - - private: - /** - * Class name of the exception. - */ - char* class_name; - - /** - * Severity level of the exception. - */ - severity_level severity; - - /** - * Description of the exception. - */ - char* message_text; // Description of exception - - /** - * Location where the exception was thrown or handled and thrown. - */ - class location - { - public: - char* file; // File name (from __FILE__) - unsigned long line; // Line number (from __LINE__) - char* function; // Function name - }; - - - enum {num_locations=5}; - /** - * Array of locations where the exception has been handled and thrown. - */ - location locations[num_locations]; - - /** - * The current location (index into ServiceRuntimeException#location). - */ - int location_set; - - - }; // End ServiceRuntimeException class definition - - - /** - * A remotable service is currently unavailable. It is possible that a retry - * may resolve this exception. - */ - class SCA_API ServiceUnavailableException: public ServiceRuntimeException - { - public: - ServiceUnavailableException(const char* serviceName) - : ServiceRuntimeException("ServiceUnavailableException", Warning, - serviceName) - { - } - private: - }; // End ServiceUnavailableException class definition - - - /** - * The target of a wire cannot be found, or the reference has not been - * configured. - */ - class ServiceNotFoundException: public ServiceRuntimeException - { - public: - ServiceNotFoundException(const char* msg) - : ServiceRuntimeException("ServiceNotFoundException", Error, - msg) - { - } - private: - }; // End ServiceNotFoundException class definition - - - /** - * There is no current component (for example, if a non-SCA component - * tries to get the current ComponentContext). - */ - class ComponentContextException: public ServiceRuntimeException - { - public: - ComponentContextException(const char* msg) - : ServiceRuntimeException("ComponentContextException", Error, - msg) - { - } - private: - }; // End ComponentContextException class definition - - /** - * Unable to find the specified entry point in the module. - */ - class EntryPointNotFoundException: public ServiceRuntimeException - { - public: - EntryPointNotFoundException(const char* msg) - : ServiceRuntimeException("EntryPointNotFoundException", Error, - msg) - { - } - private: - }; // End EntryPointNotFoundException class definition - - - - } // End namespace sca -} // End namespace osoa - -#endif // osoa_sca_serviceruntimeexception_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/export.h b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/export.h deleted file mode 100644 index 6ef7960284..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/export.h +++ /dev/null @@ -1,39 +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 11:33:21 $ */ - -#ifndef osoa_sca_export_h -#define osoa_sca_export_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) - -#ifdef SCA_EXPORTS -#define SCA_API __declspec(dllexport) -#else -#define SCA_API __declspec(dllimport) -#endif - -#else -#include -#include -#include -#define SCA_API -#endif - -#endif // osoa_sca_export_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/sca.h b/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/sca.h deleted file mode 100644 index 528bd91c4a..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/osoa/sca/sca.h +++ /dev/null @@ -1,29 +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 11:33:21 $ */ - -#ifndef osoa_sca_sca_h -#define osoa_sca_sca_h - -#include "osoa/sca/export.h" -#include "osoa/sca/ModuleContext.h" -#include "osoa/sca/ComponentContext.h" -#include "osoa/sca/ServiceList.h" -#include "osoa/sca/ServiceRuntimeException.h" - -#endif // osoa_sca_sca_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.cpp deleted file mode 100644 index 9db068a2ff..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.cpp +++ /dev/null @@ -1,202 +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 11:33:21 $ */ - -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/CPPImplementation.h" -using namespace osoa::sca; - -namespace tuscany -{ - namespace sca - { - // =================== - // Static data members - // =================== - void* ComponentServiceWrapper::staticImpl = 0; - - // =========== - // Constructor - // =========== - ComponentServiceWrapper::ComponentServiceWrapper(Service* target) - : ServiceWrapper(target), service(target) - { - LOGENTRY(1,"ComponentServiceWrapper::constructor"); - if (target->getServiceType() != WireTarget::ComponentServiceType) - { - throw ServiceRuntimeException("ComponentServiceWrapper: target is not a component service"); - } - - component = target->getComponent(); - interf = (CPPInterface*)target->getInterface(); - - remotable = interf->getRemotable(); - - - LOGEXIT(1,"ComponentServiceWrapper::constructor"); - - } - - // ========== - // Destructor - // ========== - ComponentServiceWrapper::~ComponentServiceWrapper() - { - LOGENTRY(1,"ComponentServiceWrapper::destructor"); - LOGEXIT(1,"ComponentServiceWrapper::destructor"); - } - - - // ====================================================================== - // getImplementation: get an implementation for this scope - // ====================================================================== - void* ComponentServiceWrapper::getImplementation() - { - CPPInterface::SCOPE scope = interf->getScope(); - if (scope == CPPInterface::MODULE) - { - if (!staticImpl) - { - staticImpl = newImplementation(); - } - return staticImpl; - } - else // (scope == CPPInterface::STATELESS) - { - return newImplementation(); - } - } - - // ====================================================================== - // releaseImplementation: release the implementation for this scope - // ====================================================================== - void ComponentServiceWrapper::releaseImplementation() - { - CPPInterface::SCOPE scope = interf->getScope(); - if (scope == CPPInterface::STATELESS) - { - deleteImplementation(); - } - } - - // ====================================================================== - // invoke: wrapper call to service with setting the component context - // ====================================================================== - void ComponentServiceWrapper::invoke(Operation& operation) - { - - SCARuntime* runtime = SCARuntime::getInstance(); - runtime->setCurrentComponent(component); - - try - { - invokeService(operation); - } - catch (...) - { - runtime->unsetCurrentComponent(); - throw; - } - runtime->unsetCurrentComponent(); - - } - - void ComponentServiceWrapper::setLibrary(Library* lib) - { - wrapperLibrary = lib; - } - - // ====================================================================== - // createServiceWrapper: create a wrapper for the target ComponentService - // ====================================================================== - ComponentServiceWrapper* ComponentServiceWrapper::createServiceWrapper(Service* service) - { - string msg; - ComponentServiceWrapper* serviceWrapper = 0; - - // ----------------------------------------------- - // Get the implementation for the target component - // ----------------------------------------------- - Component* targetComponent = service->getComponent(); - Implementation* impl = targetComponent->getImplementation(); - if (!impl) - { - msg = "Component " + targetComponent->getName() + " has no implementation defined"; - throw ServiceNotFoundException(msg.c_str()); - } - - // TODO: This only handle CPP implementation for now - if (impl->getImplementationType() == Implementation::CPP) - { - // ---------------------------------------------------- - // Get implementation dll name and wrapper factory name - // ---------------------------------------------------- - string dllName = ((CPPImplementation*)impl)->getDll(); - string wrapperFactoryName = ((CPPImplementation*)impl)->getHeaderStub() - + "_" + service->getName() + "_Wrapper_Factory"; - - // ------------ - // Load the dll - // ------------ - string fullDllName = targetComponent->getModule()->getRoot() + "/" + dllName; - typedef ComponentServiceWrapper* (* WRAPPERFACTORY) (Service*); - Library* wrapperLib = new Library(fullDllName); - - // ------------------------- - // Locate the factory method - // ------------------------- - WRAPPERFACTORY wrapperFactory = (WRAPPERFACTORY)wrapperLib->getSymbol(wrapperFactoryName); - if (!wrapperFactory) - { - LOGERROR_2(1, "ComponentServiceWrapper::createServiceWrapper: Unable to locate %s in library %s", - wrapperFactoryName.c_str(), fullDllName.c_str()); - msg = "Unable to locate " + wrapperFactoryName + " in library " + fullDllName; - throw ServiceNotFoundException(msg.c_str()); - } - - // ------------------------------------- - // Now create an instance of the wrapper - // ------------------------------------- - serviceWrapper = wrapperFactory(service); - if (!serviceWrapper) - { - LOGERROR_2(1, "ComponentServiceWrapper::createServiceWrapper: Factory method %s in library %s returned null", - wrapperFactoryName.c_str(), fullDllName.c_str()); - msg = "Factory method " + wrapperFactoryName + " in library " + fullDllName + " returned null"; - throw ServiceNotFoundException(msg.c_str()); - } - serviceWrapper->setLibrary(wrapperLib); - } - else - { - // ---------------------- - // Non CPP Implementation - // ---------------------- - msg = "Unsupported implementation type for service: " + service->getName(); - throw ServiceNotFoundException(msg.c_str()); - } - - return serviceWrapper; - } - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.h deleted file mode 100644 index 3a5e990bf0..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ComponentServiceWrapper.h +++ /dev/null @@ -1,156 +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 11:33:21 $ */ - -#ifndef tuscany_sca_core_componentservicewrapper_h -#define tuscany_sca_core_componentservicewrapper_h - -#include "osoa/sca/export.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/CPPInterface.h" -#include "tuscany/sca/util/Library.h" - -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - /** - * Wraps the service on a component implementation. - * This abstract class is extended by generated code which provides - * the implementation of some of the methods. - * An instance of this class wraps the actual component implementation which - * has been written by a developer of an SCA application. - */ - class ComponentServiceWrapper : public ServiceWrapper - { - public: - /** - * Factory method to create a new ComponentServiceWrapper for a given target - * service. This method will provide all the loading of dlls required to - * create the target component. - * @param target The service on the component for which this wrapper is to be - * created. - * @return A wrapper that references the given target. - */ - static SCA_API ComponentServiceWrapper* createServiceWrapper(Service* target); - - /** - * Constructor. - * @param target The component service to which this wrapper refers. - */ - SCA_API ComponentServiceWrapper(Service* target); - - /** - * Destructor. - */ - SCA_API virtual ~ComponentServiceWrapper(); - - /** - * All business method calls to the target component go through the invoke method. - * @param operation The details of the method, paramaters and return value for the - * business method to be called on the target component. - */ - SCA_API virtual void invoke(Operation& operation); - - /** - * Return the loaded shared library for the target component. - */ - Library* getLibrary() {return wrapperLibrary;} - protected: - /** - * Delegated method to invoke the correct method on the target component. - * Implemented by the subtype. - */ - SCA_API virtual void invokeService(Operation& operation) = 0; - - /** - * Delegated method to create a new component implementation. - * Implemented by the subtype. - * @return A pointer to an instance of the component implementation class. - */ - SCA_API virtual void* newImplementation() = 0; - - /** - * Delegated method to delete the current instance of the component - * implementation. - * Implemented by the subtype. - */ - SCA_API virtual void deleteImplementation() = 0; - - /** - * Return the current instance of the component implementation. - * @return A pointer to an instance of the component implementation class. - */ - SCA_API virtual void* getImplementation(); - - /** - * Indicates that the current instance of the component implementation - * has been finished with. - * Will call ComponentServiceWrapper#deleteImplementation if the - * implementation is stateless (so that a new instance is returned - * for each call). - */ - SCA_API virtual void releaseImplementation(); - - private: - /** - * Holds an implementation instance if the scope is set to module. - */ - static void* staticImpl; - - /** - * The component to which this wrapper refers. - */ - Component* component; - - /** - * The service on the component to which this wrapper refers. - */ - Service* service; - - /** - * A pointer to the interface which the service exposes. - */ - CPPInterface* interf; - - /** - * Set to true if the service is remotable. - */ - bool remotable; - - /** - * Pointer to the loaded library which contains the component - * implementation. - */ - Library* wrapperLibrary; - - /** - * Set the loaded library which contains the component - * implementation. - * @param lib The library. - */ - void setLibrary(Library* lib); - }; - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_core_componentservicewrapper_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.cpp deleted file mode 100644 index 2838bbe4d4..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.cpp +++ /dev/null @@ -1,102 +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 11:33:21 $ */ - -#include "tuscany/sca/core/ExternalServiceWrapper.h" -#include - -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" - -#include "tuscany/sca/ws/WSServiceWrapper.h" -using tuscany::sca::ws::WSServiceWrapper; - -using namespace osoa::sca; - - -namespace tuscany -{ - namespace sca - { - - ////////////////////////////////////////////////////////////////////// - // Construction/Destruction - ////////////////////////////////////////////////////////////////////// - - ExternalServiceWrapper::ExternalServiceWrapper(tuscany::sca::model::WireTarget* target) - : ServiceWrapper(target) - { - LOGENTRY(1,"ExternalServiceWrapper::constructor"); - if (target->getServiceType() != WireTarget::ExternalServiceType) - { - throw ServiceRuntimeException("ExternalServiceWrapper: target is not an ExternalService"); - } - - LOGEXIT(1,"ExternalServiceWrapper::constructor"); - - } - - ExternalServiceWrapper::~ExternalServiceWrapper() - { - LOGENTRY(1,"ExternalServiceWrapper::destructor"); - LOGEXIT(1,"ExternalServiceWrapper::destructor"); - } - - // ====================================================================== - // createServiceWrapper: create a wrapper for the target ExternalService - // ====================================================================== - ExternalServiceWrapper* ExternalServiceWrapper::createServiceWrapper(ExternalService* service) - { - string msg; - ExternalServiceWrapper* serviceWrapper = 0; - - // ----------------------------------------------- - // Get the binding for the target component - // ----------------------------------------------- - Binding* targetBinding = service->getBinding(); - if (!targetBinding) - { - msg = "External service " + service->getName() + " has no binding defined"; - throw ServiceNotFoundException(msg.c_str()); - } - - // TODO: This only handles ws implementation for now - if (targetBinding->getBindingType() == Binding::WS) - { - // ------------------------------------- - // Create an instance of the wrapper - // ------------------------------------- - serviceWrapper = new WSServiceWrapper(service); - - } - else - { - // ---------------------- - // Non WS Binding - // ---------------------- - msg = "Unsupported binding type for externalService: " + service->getName(); - throw ServiceNotFoundException(msg.c_str()); - } - - return serviceWrapper; - } - - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.h deleted file mode 100644 index b2dcfb3a6b..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ExternalServiceWrapper.h +++ /dev/null @@ -1,81 +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 11:33:21 $ */ - -#ifndef tuscany_sca_core_externalservicewrapper_h -#define tuscany_sca_core_externalservicewrapper_h - -#include "osoa/sca/export.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/ExternalService.h" -using tuscany::sca::model::ExternalService; - -namespace tuscany -{ - namespace sca - { - - /** - * Wraps an SCA external service so that it can be called by a - * proxy. - * This abstract class will be extended by a class which supports - * a specific external service binding (for example, the web services binding). - */ - class SCA_API ExternalServiceWrapper : public ServiceWrapper - { - public: - /** - * Factory method to create a new ExternaServiceWrapper for a given - * external service described in the SCA module. - */ - static ExternalServiceWrapper* createServiceWrapper(ExternalService* service); - - /** - * Constructor. - * @param target The target external service for which this wrapper is to be - * created. - * @return A wrapper that references the given target. - */ - ExternalServiceWrapper(tuscany::sca::model::WireTarget* target); - - /** - * Destructor. - */ - virtual ~ExternalServiceWrapper(); - - /** - * Return the external service (in the runtime model) that is wrapped by - * the instance of this class. - */ - virtual ExternalService* getExternalService() {return (ExternalService*)getTarget();}; - - /** - * All business method calls to the external service go through the invoke method. - * This is a delegated method which will be implemented by the subclass. - * @param operation The details of the method, paramaters and return value for the - * business method to be called on the external service. - */ - virtual void invoke(Operation& operation) = 0; - private: - - }; - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_core_externalservicewrapper_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.cpp deleted file mode 100644 index ea9dfdb15a..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.cpp +++ /dev/null @@ -1,88 +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 11:33:21 $ */ - -#include "tuscany/sca/core/Operation.h" -#include - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" - - - -namespace tuscany -{ - namespace sca - { - // =========== - // Constructor - // =========== - Operation::Operation(const char* operationName, unsigned int numParameters) - : name(operationName), nparms(numParameters) - { - LOGENTRY(1,"Operation::constructor"); - - parameters = new void*[nparms]; - - LOGEXIT(1,"Operation::constructor"); - } - - // ========== - // Destructor - // ========== - Operation::~Operation() - { - LOGENTRY(1,"Operation::destructor"); - LOGEXIT(1,"Operation::destructor"); - } - - - // ============================================== - // getParameter: return parameter at position pos - // ============================================== - void* Operation::getParameter(unsigned int pos) - { - if (pos < nparms) - { - return parameters[pos]; - } - - return 0; - } - - // =========================================== - // setParameter: set parameter at position pos - // =========================================== - void Operation::setParameter(unsigned int pos, void* parm) - { - if (pos < nparms) - { - parameters[pos] = parm; - } - } - - // ==================================== - // setReturnValue: set the return value - // ==================================== - void Operation::setReturnValue(void* val) - { - returnType = val; - } - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.h deleted file mode 100644 index 9e080363aa..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/Operation.h +++ /dev/null @@ -1,115 +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 11:33:21 $ */ - -#ifndef tuscany_sca_core_operation_h -#define tuscany_sca_core_operation_h -#include "osoa/sca/export.h" - -#include -using std::string; - -namespace tuscany -{ - namespace sca - { - /** - * Holds the details of a single invocation of a business method. - * This class is used to pass the parameters and operation name from the - * client to a service. It will also hold the return value on the - * return from the business method. - */ - class Operation - { - public: - /** - * Create a new operation. - * @param operationName The method name of the business method to be invoked. - * @param numParameters The number of parameters to be passed. - */ - SCA_API Operation(const char* operationName, unsigned int numParameters); - - /** - * Destructor. - */ - SCA_API virtual ~Operation(); - - /** - * Return the operation name. - * @return The name of the operation. - */ - SCA_API const char* getName() {return name;} - - /** - * Set a parameter on the operation. - * @param pos The position of the parameter in the parameter list. - * @param parm Pointer to the parameter to be passed. - */ - SCA_API void setParameter(unsigned int pos, void* parm); - - /** - * Get a parameter from the operation. - * @param pos The position of the parameter in the parameter list. - * @return Pointer to the paramter at the given postion. Should be - * cast to the appropriate type. - */ - SCA_API void* getParameter(unsigned int pos); - - /** - * Get the return value on the operation. - * Normally the client - * would set the return value and the service will get this - * return value pointer and set the return value. - * @return Pointer to the return type. - */ - SCA_API void* getReturnValue() {return returnType;} - - /** - * Set the return value on the operation. - * Normally the client - * would set the return value pointer so that the service can - * return a value - * @param valPtr Pointer to the return type. - */ - SCA_API void setReturnValue(void* valPtr); - - private: - /** - * Operation name (method name). - */ - const char* name; - - /** - * Number of paramaters passed for this operation. - */ - unsigned int nparms; - - /** - * Pointer to the array of parameters. - */ - void** parameters; - - /** - * The return value. - */ - void* returnType; - }; - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_core_operation_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp deleted file mode 100644 index a505ba9636..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.cpp +++ /dev/null @@ -1,215 +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 11:33:21 $ */ - -#include "tuscany/sca/core/SCAEntryPoint.h" - -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" -#include "tuscany/sca/core/ExternalServiceWrapper.h" -using namespace osoa::sca; - -namespace tuscany -{ - namespace sca - { - // =========== - // Constructor - // =========== - SCAEntryPoint::SCAEntryPoint(const char* epName) - : subsystem(0), entrypoint(0), module(0) - { - LOGENTRY(1,"SCAEntryPoint::constructor"); - string message; - - // initialize the system if necessary - System* system = SCARuntime::getInstance()->getSystem(); - - string subsystemName; - string entrypointName; - - Utils::tokeniseUri(epName, subsystemName, entrypointName); - - // -------------------- - // locate the Subsystem - // -------------------- - subsystem = system->findSubsystem(subsystemName); - if (!subsystem) - { - throw EntryPointNotFoundException(epName); - } - - // --------------------- - // locate the EntryPoint - // --------------------- - entrypoint = subsystem->findEntryPoint(entrypointName); - if (entrypoint) - { - // found Subsystem EntryPoint - throw EntryPointNotFoundException("Subsystem EntryPoint not yet supported"); - } - else - { - // ----------------------------------- - // locate the EntryPoint in the Module - // ----------------------------------- - string moduleComponentName; - Utils::tokeniseUri(entrypointName, moduleComponentName, entrypointName); - module = subsystem->findModuleByComponentName(moduleComponentName); - if (module) - { - dataFactory = module->getDataFactory(); - entrypoint = module->findEntryPoint(entrypointName); - } - } - - if (!entrypoint) - { - throw EntryPointNotFoundException(epName); - } - - // --------------------------------- - // Get Wrappers for each wire target - // --------------------------------- - - // Get the target services from the EntryPoint - const EntryPoint::TARGETS& targets = entrypoint->getTargets(); - - // -------------------- - // Validate the request - // -------------------- - switch (entrypoint->getMultiplicity()) - { - case EntryPoint::ONE_MANY: - case EntryPoint::ONE_ONE: - { - if (targets.size() == 0) - { - message = "EntryPoint " + entrypoint->getName() + " not wired"; - throw ServiceNotFoundException(message.c_str()); - } - } - default: - { - } - } // end switch - - for (EntryPoint::TARGETS::const_iterator iter = targets.begin(); - iter!=targets.end(); - iter++) - { - ServiceWrapper* service = getServiceWrapper(*iter); - if (service) - { - services.push_back(service); - } - } - - LOGEXIT(1,"SCAEntryPoint::constructor"); - } - - // ========== - // Destructor - // ========== - SCAEntryPoint::~SCAEntryPoint() - { - LOGENTRY(1,"SCAEntryPoint::destructor"); - - // Delete any ServiceWrappers - for (SERVICES::iterator iter = services.begin(); iter < services.end(); iter++) - { - delete (*iter); - } - LOGEXIT(1,"SCAEntryPoint::destructor"); - } - - - // ====================================================================== - // invoke: - // ====================================================================== - SCA_API DataObjectPtr SCAEntryPoint::invoke(const char* operationName, DataObjectPtr inDataObject) - { - string message; - - // -------------------- - // Validate the request - // -------------------- - if (services.size() == 0) - { - message = "EntryPoint " + entrypoint->getName() + " not wired"; - throw ServiceNotFoundException(message.c_str()); - } - - // ------------------- - // Invoke each target - // ------------------- - Operation operation(operationName, 1); - operation.setParameter(0, &inDataObject); - DataObjectPtr ret; - operation.setReturnValue((void *)&ret); - - for (SERVICES::iterator iter = services.begin(); iter < services.end(); iter++) - { - (*iter)->invoke(operation); - } - - return ret; - } - - - // ====================================================================== - // getServiceWrapper: Create and return an instance of the ServiceWrapper - // ====================================================================== - ServiceWrapper* SCAEntryPoint::getServiceWrapper(WireTarget* target) - { - // ------------------------- - // Determine type of Service - // ------------------------- - switch (target->getServiceType()) - { - case WireTarget::ExternalServiceType: - { - // ---------------- - // External Service - // ---------------- - return ExternalServiceWrapper::createServiceWrapper((ExternalService*)target); - } - - case WireTarget::ComponentServiceType: - { - // ----------------- - // Component Service - // ----------------- - return ComponentServiceWrapper::createServiceWrapper((Service*)target); - } - - default: - { - string message = "Undefined wire target type for : "; - message = message + target->getName(); - throw ServiceNotFoundException(message.c_str()); - } - } // end switch - } - - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.h deleted file mode 100644 index 34c9f3e0d8..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCAEntryPoint.h +++ /dev/null @@ -1,126 +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 11:33:21 $ */ - -#ifndef tuscany_sca_core_scaentrypoint_h -#define tuscany_sca_core_scaentrypoint_h - -#include "osoa/sca/export.h" - -#include -using std::vector; -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/WireTarget.h" -#include "tuscany/sca/model/Subsystem.h" -#include "tuscany/sca/model/EntryPoint.h" -#include "tuscany/sca/model/Module.h" -using namespace tuscany::sca::model; -#include "commonj/sdo/SDO.h" -using commonj::sdo::DataObjectPtr; -using commonj::sdo::DataFactoryPtr; - -namespace tuscany -{ - namespace sca - { - /** - * A runtime class which is used by external bindings to provide the entry - * point into the SCA runtime. An entry point will be defined in an SCA - * module, and a binding class will be provided to service the - * communication between the external binding (e.g. for web services the - * SOAP/HTTP communication) and the SCA runtime. The binding class will - * use SCAEntryPoint to call into the SCA runtime. - */ - class SCAEntryPoint - { - public: - /** - * Constructor to create a new instance which will be associated with - * a given entry point in an SCA module. - * @param entryPointName The qualified name of the entry point in an - * SCA module. It is of the form - * "subsystem name"/"module component name"/"entry point name". - */ - SCA_API SCAEntryPoint(const char* entryPointName); - - /** - * Destructor. - */ - SCA_API virtual ~SCAEntryPoint(); - - /** - * Invokes an operation on the component to which the SCA entry point - * is wired in the SCA module. - * Note that the operation must take a single data object as a parameter, and - * the return is a single data object. - * @param operationName Name of the operation. - * @param inDataObject The parameter for the operation. - * @return The data object which holds the result of the operation. - */ - SCA_API virtual DataObjectPtr invoke(const char* operationName, DataObjectPtr inDataObject); - - /** - * Returns a SDO data factory from which all the types associated with the entry point - * and module can be created. - */ - SCA_API DataFactoryPtr getDataFactory() {return dataFactory;} - - protected: - - private: - /** - * The subsystem in which this entry point is found. - */ - Subsystem* subsystem; - - /** - * The entry point in the module. - */ - EntryPoint* entrypoint; - - /** - * The module component in the subsystem. - */ - Module* module; - - /** - * Cached data factory which has all the types defined for the module in which - * this entry point is found. - */ - DataFactoryPtr dataFactory; - - typedef vector SERVICES; - /** - * Vector of all the service wrappers created for this entry point. - * Used to destroy the wrappers when this class is destroyed. - */ - SERVICES services; - - /** - * Creates and returns the service wrapper for a given target. - * @param target The target of the wire for which a service wrapper is - * to be created. - * @return A service wrapper to be used for invoking the target implementation. - */ - ServiceWrapper* getServiceWrapper(WireTarget* target); - - }; - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_core_scaentrypoint_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp deleted file mode 100644 index deca72c378..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp +++ /dev/null @@ -1,288 +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 11:33:21 $ */ - -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/Exceptions.h" - -#include "tuscany/sca/model/System.h" -#include "tuscany/sca/model/Subsystem.h" -#include "tuscany/sca/model/ModelLoader.h" - -#if defined(WIN32) || defined (_WINDOWS) -#include -#endif - -namespace tuscany -{ - namespace sca - { - /** - * Environment variable names - */ - static const char* TUSCANY_SCACPP = "TUSCANY_SCACPP"; - static const char* TUSCANY_SCACPP_SYSTEM_ROOT = "TUSCANY_SCACPP_SYSTEM_ROOT"; - static const char* TUSCANY_SCACPP_DEFAULT_MODULE = "TUSCANY_SCACPP_DEFAULT_MODULE"; - - - // ========================================================== - // Initialize static class member to not pointing at anything - // ========================================================== - SCARuntime* SCARuntime::instance = 0; - - - // =================================================================== - // Constructor for the SCARuntime class. This will be a singleton that - // holds all the information about the current runtime. - // =================================================================== - SCARuntime::SCARuntime() : system(new System()), defaultModule(0) - { - LOGENTRY(1, "SCARuntime::constructor"); - - // Locate the SCA install root - char* root = 0; - root = getenv(TUSCANY_SCACPP); - if (root == 0) - { - string msg = TUSCANY_SCACPP; - msg += " environment variable not set"; - throw SystemConfigurationException(msg.c_str()); - } - else - { - SCARoot = root; - } - - LOGEXIT(1, "SCARuntime::constructor"); - } - - // ============================================================= - // Get the instance of the runtime, creates it if does not exist - // static method - // ============================================================= - SCARuntime* SCARuntime::getInstance() - { - LOGENTRY(1, "SCARuntime::getInstance"); - - if (instance == NULL) - { - instance = new SCARuntime(); - - // Load the runtime - // Get root from environment variable TUSCANY_SCACPP_SYSTEM_ROOT - char* systemRoot = getenv(TUSCANY_SCACPP_SYSTEM_ROOT); - if (systemRoot == 0) - { - string msg = TUSCANY_SCACPP_SYSTEM_ROOT; - msg += " environment variable not set"; - throw SystemConfigurationException(msg.c_str()); - } - instance->load(systemRoot); - } - - LOGEXIT(1, "SCARuntime::getInstance"); - - return instance; - - } - - // ====================================== - // Load up all the details of the runtime - // ====================================== - void SCARuntime::load(const char *configurationRoot) - { - LOGENTRY(1, "SCARuntime::load"); - std::string root = configurationRoot; - - LOGINFO_1(2,"configuration root: %s", configurationRoot); - - ModelLoader loader(system); - // Load details of the module - loader.load(configurationRoot); - - LOGEXIT(1, "SCARuntime::load"); - } - - - // =================================== - // Return the top of the runtime model - // =================================== - System* SCARuntime::getSystem() - { - return system; - } - - - // =================================================== - // setCurrentComponent: push component for this thread - // =================================================== - void SCARuntime::setCurrentComponent(Component* component) - { - -#if defined(WIN32) || defined (_WINDOWS) - DWORD currentThreadId = GetCurrentThreadId(); -#else - pthread_t currentThreadId = pthread_self(); -#endif - COMPONENTS_MAP::iterator iter = components.find(currentThreadId); - if (iter == components.end()) - { - components[currentThreadId] = COMPONENT_STACK(); - iter = components.find(currentThreadId); - } - - COMPONENT_STACK& compStack = iter->second; - compStack.push(component); - } - - - // ==================================================== - // unsetCurrentComponent: pop component for this thread - // ==================================================== - Component* SCARuntime::unsetCurrentComponent() - { -#if defined(WIN32) || defined (_WINDOWS) - DWORD currentThreadId = GetCurrentThreadId(); -#else - pthread_t currentThreadId = pthread_self(); -#endif - - COMPONENTS_MAP::iterator iter = components.find(currentThreadId); - if (iter != components.end()) - { - COMPONENT_STACK& compStack = iter->second; - if (compStack.size() > 0) - { - Component* component = compStack.top(); - compStack.pop(); - return component; - } - } - - return 0; - } - - // ============================================================= - // getCurrentComponent: return current component for this thread - // ============================================================= - Component* SCARuntime::getCurrentComponent() - { -#if defined(WIN32) || defined (_WINDOWS) - DWORD currentThreadId = GetCurrentThreadId(); -#else - pthread_t currentThreadId = pthread_self(); -#endif - - COMPONENTS_MAP::iterator iter = components.find(currentThreadId); - if (iter == components.end()) - { - components[currentThreadId] = COMPONENT_STACK(); - iter = components.find(currentThreadId); - } - - COMPONENT_STACK& compStack = iter->second; - if (compStack.size() > 0) - { - return compStack.top(); - } - else - { - return 0; - } - - } - - - // =========================================== - // getCurrentModule: return the current module - // =========================================== - Module* SCARuntime::getCurrentModule() - { - // --------------------------------------------- - // Get module from current component if possible - // --------------------------------------------- - Component* comp = getCurrentComponent(); - if (comp != 0) - { - return comp->getModule(); - } - - // ---------------------- - // Get the default Module - // ---------------------- - string message; - if (!defaultModule) - { - // ------------------------------------------- - // Get the default module from the environment - // ------------------------------------------- - const char* defMod = getenv(TUSCANY_SCACPP_DEFAULT_MODULE); - if (!defMod) - { - message = TUSCANY_SCACPP_DEFAULT_MODULE; - message += " environment variable not set"; - throw SystemConfigurationException(message.c_str()); - } - - string subsystemName, moduleName; - Utils::tokeniseUri(defMod, subsystemName, moduleName); - - // --------------------------- - // Subsystem must be specified - // --------------------------- - Subsystem* subsystem = system->findSubsystem(subsystemName); - if (!subsystem) - { - message = "Default subsystem \'" + subsystemName + "\' not found"; - throw SystemConfigurationException(message.c_str()); - } - - // -------------------------------------------------------------------------- - // If module is not specified then get the default module for this subsystem. - // This will be the ONLY module for this subsystem - // -------------------------------------------------------------------------- - if (moduleName == "") - { - defaultModule = subsystem->getDefaultModule(); - if (!defaultModule) - { - message = "Default module not found for subsystem \'" + subsystemName + "\'"; - throw SystemConfigurationException(message.c_str()); - } - } - else - { - // ----------------------------- - // get the named ModuleComponent - // ----------------------------- - defaultModule = subsystem->findModuleByComponentName(moduleName); - if (!defaultModule) - { - message = "Default module \'" + moduleName + "\' not found in subsystem \'" + subsystemName +"\'"; - throw SystemConfigurationException(message.c_str()); - } - } - } - return defaultModule; - } - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.h deleted file mode 100644 index 42deb85751..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/SCARuntime.h +++ /dev/null @@ -1,166 +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 11:33:21 $ */ - -#ifndef tuscany_sca_core_scaruntime_h -#define tuscany_sca_core_scaruntime_h - -#include "osoa/sca/export.h" - -#include "osoa/sca/ComponentContext.h" -using osoa::sca::ComponentContext; - -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/System.h" -using namespace tuscany::sca::model; - -#if defined(WIN32) || defined (_WINDOWS) -#include -#else -#include -#endif - -#include -#include -#include -using namespace std; - -namespace tuscany -{ - namespace sca - { - - /** - * A singleton which represents the executing SCA runtime. - */ - class SCARuntime { - public: - /** - * Get the single instance. - * @return The single instance of the runtime. - */ - SCA_API static SCARuntime* getInstance(); - - /** - * Set the current component for the current thread. - * @param component The current component. - */ - SCA_API void setCurrentComponent(Component* component); - - /** - * Remove the current component from this thread, and return - * to the previous component (if there was one). - * @return The previous component. - */ - SCA_API Component* unsetCurrentComponent(); - - /** - * Get a pointer to the configured SCA system which this - * SCA runtime represents. - * The rest of the SCA configuration can be navigated from - * the System. - * @return The configured SCA system. - */ - System* getSystem(); - - /** - * The directory in which the Tuscany runtime has been installed. - */ - const string& getInstallRoot() {return SCARoot;} - - /** - * Return the current component for this thread. - * @return The current component for this thread. - */ - Component* getCurrentComponent(); - - /** - * Get the current module. The current module will either - * be the module in which the current component for this thread - * is defined, or it will be the default module if there is no current - * component. There will not be a current component if a client of - * the SCA runtime is making a call into the SCA runtime. - */ - Module* getCurrentModule(); - - private: - /** - * Default constructor is private to prevent more than one instance. - */ - SCARuntime(); - - /** - * Load the SCA configuration from the scdl files (sca.module, - * *.fragment, etc). - * This will create the runtime model from which the SCA runtime - * will operate. - * @param configurationRoot The path to the configuration of the - * SCA runtime. Under this root will be the subsystems and modules - * directories. - */ - void load(const char* configurationRoot); - - /** - * The single instance of this class. - */ - static SCARuntime* instance; - - /** - * Pointer to the top of the runtime model. - */ - System* system; - - /** - * The installed path of the Tuscany runtime. - */ - string SCARoot; - - /** - * Get the default module set for this runtime. - * @return The default module. - */ - Module* getDefaultModule() {return defaultModule;} - - /** - * The default module set for this runtime. - */ - Module* defaultModule; - - - typedef stack COMPONENT_STACK; -#if defined(WIN32) || defined (_WINDOWS) - typedef map COMPONENTS_MAP; -#else - typedef map COMPONENTS_MAP; -#endif - - /** - * A map of threads to components. - */ - COMPONENTS_MAP components; - }; - - - } // End namespace sca -} // End namespace tuscany - - - - -#endif // tuscany_sca_core_scaruntime_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.cpp deleted file mode 100644 index ef2f2744eb..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.cpp +++ /dev/null @@ -1,121 +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 11:33:21 $ */ - -#include "tuscany/sca/core/ServiceProxy.h" - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/CPPImplementation.h" - -using namespace osoa::sca; - -namespace tuscany -{ - namespace sca - { - // ============================ - // Constructor: Create a proxy - // ============================ - ServiceProxy::ServiceProxy(Component* component, const string& name, ServiceWrapper* target) - { - LOGENTRY(1,"ServiceProxy::constructor"); - string msg; - - // ---------------------- - // Get the implementation - // ---------------------- - Implementation* impl = component->getImplementation(); - if (!impl) - { - msg = "Component " + component->getName() + " has no implementation defined"; - throw ServiceNotFoundException(msg.c_str()); - } - - // TODO: This only handle CPP implementation for now - if (impl->getImplementationType() == Implementation::CPP) - { - // ---------------------------------------------------- - // Get implementation dll name and service factory name - // ---------------------------------------------------- - string dllName = ((CPPImplementation*)impl)->getDll(); - string headerStub = ((CPPImplementation*)impl)->getHeaderStub(); - - string fullDllName = component->getModule()->getRoot() + "/" + dllName; - string proxyFactoryName = headerStub + "_" + name + "_Proxy_Factory"; - string proxyDestructorName = headerStub + "_" + name + "_Proxy_Destructor"; - typedef void* (* PROXYFACTORY) (ServiceWrapper*); - - // ------------ - // Load the dll - // ------------ - proxyLibrary = Library(fullDllName); - - // ------------------------- - // Locate the factory method - // ------------------------- - PROXYFACTORY proxyFactory = (PROXYFACTORY)proxyLibrary.getSymbol(proxyFactoryName); - if (!proxyFactory) - { - LOGERROR_2(1, "ComponentContextImpl::getServiceProxy: Unable to locate %s in library %s", - proxyFactoryName.c_str(), fullDllName.c_str()); - msg = "Unable to locate " + proxyFactoryName + " in library " + fullDllName; - throw ServiceNotFoundException(msg.c_str()); - } - - // ----------------------------------- - // Now create an instance of the proxy - // ----------------------------------- - proxy = proxyFactory(target); - if (!proxy) - { - LOGERROR_2(1, "ComponentContextImpl::getServiceProxy: Factory method %s in library %s returned null", - proxyFactoryName.c_str(), fullDllName.c_str()); - msg = "Factory method " + proxyFactoryName + " in library " + fullDllName + " returned null"; - throw ServiceNotFoundException(msg.c_str()); - } - - // ------------------------- - // Get the destructor method - // ------------------------- - destructor = (PROXYDESTRUCTOR)proxyLibrary.getSymbol(proxyDestructorName); - } - - LOGEXIT(1,"ServiceProxy::constructor"); - - } - - // ========== - // Destructor - // ========== - ServiceProxy::~ServiceProxy() - { - LOGENTRY(1,"ServiceProxy::destructor"); - - // Delete the proxy - if (destructor) - { - destructor(proxy); - } - LOGEXIT(1,"ServiceProxy::destructor"); - } - - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.h deleted file mode 100644 index 073b379cd7..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceProxy.h +++ /dev/null @@ -1,89 +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 11:33:21 $ */ - -#ifndef tuscany_sca_core_serviceproxy_h -#define tuscany_sca_core_serviceproxy_h - -#include "osoa/sca/export.h" - -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/util/Library.h" - -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - /** - * Holds a proxy for a given component and reference. - * The proxy which is held inside a ServiceProxy will be specific to the component - * and reference and will have been code generated and be contained in a dll - * created by a developer of an SCA application. - */ - class ServiceProxy - { - public: - /** - * Create a new service proxy for a given component and reference name. The - * create proxy will contain a pointer to the target ServiceWrapper. - * @param component The component for which this proxy will be created (the - * source component). - * @param name The name of the reference on the component. - * @param target The wrapper of the component which is wired to this component and - * reference. - */ - ServiceProxy(Component* component, const string& name, ServiceWrapper* target); - - /** - * Destructor. - */ - virtual ~ServiceProxy(); - - /** - * Return an instance of the proxy created for this particular component and reference. - * @return The proxy. - */ - void* getProxy() {return proxy;} - - - private: - /** - * Holds the instance of the code generated proxy. - */ - void* proxy; - - typedef void (* PROXYDESTRUCTOR) (void*); - - /** - * A function pointer to the destructor of the proxy. - */ - PROXYDESTRUCTOR destructor; - - /** - * The library which contains the code for the proxy. - */ - Library proxyLibrary; - - }; - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_core_serviceproxy_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.cpp deleted file mode 100644 index 5936f526f1..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.cpp +++ /dev/null @@ -1,55 +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 11:33:21 $ */ - -#include "tuscany/sca/core/ServiceWrapper.h" -#include - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" - - - -namespace tuscany -{ - namespace sca - { - - // =========== - // Constructor - // =========== - ServiceWrapper::ServiceWrapper(WireTarget* targ) - : target(targ) - { - LOGENTRY(1,"ServiceWrapper::constructor"); - - LOGEXIT(1,"ServiceWrapper::constructor"); - - } - - // ========== - // Destructor - // ========== - ServiceWrapper::~ServiceWrapper() - { - LOGENTRY(1,"ServiceWrapper::destructor"); - LOGEXIT(1,"ServiceWrapper::destructor"); - } - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.h deleted file mode 100644 index 21c162d77f..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/core/ServiceWrapper.h +++ /dev/null @@ -1,73 +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 11:33:21 $ */ - -#ifndef tuscany_sca_core_servicewrapper_h -#define tuscany_sca_core_servicewrapper_h - -#include "osoa/sca/export.h" - -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/WireTarget.h" -using tuscany::sca::model::WireTarget; - -namespace tuscany -{ - namespace sca - { - /** - * An abstract class that wraps a component implementation or an external - * service. - */ - class SCA_API ServiceWrapper - { - public: - /** - * Constructor. - * @param target The service wrapper wraps the target of a wire. - */ - ServiceWrapper(WireTarget* target); - - /** - * Destructor. - */ - virtual ~ServiceWrapper(); - - /** - * Get the target represented by this wrapper. - * @return The target represented by this wrapper. - */ - virtual WireTarget* getTarget() {return target;} - - /** - * All business method calls on the target service are performed through - * this invoke method. - * @param operation The details of the method, paramaters and return value for the - * business method to be called on the target service. - */ - virtual void invoke(Operation& operation) = 0; - private: - /** - * The target represented by this wrapper. - */ - WireTarget* target; - }; - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_core_servicewrapper_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.cpp deleted file mode 100644 index c312d7a077..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.cpp +++ /dev/null @@ -1,44 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Binding.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Binding::Binding(const string& uri) : uri(uri) - { - } - - Binding::~Binding() - { - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.h deleted file mode 100644 index ff97990dc6..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Binding.h +++ /dev/null @@ -1,85 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_binding_h -#define tuscany_sca_model_binding_h -#include -using std::string; - - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about the binding for EntryPoint and ExternalService. An - * abstract class which will be extended by classes that hold specific - * information for each type of binding. - */ - class Binding - { - - public: - /** - * Supported binding types. - */ - enum Type - { - WS, - SCA - }; - - /** - * Constructor to create a new binding. - * @param uri The uri specified in the scdl file. - */ - Binding(const string& uri); - - /** - * Destructor. - */ - virtual ~Binding(); - - /** - * Return the enumerated type of binding. - * @return The type of the binding (see Binding#Type). - */ - virtual Type getBindingType() = 0; - - /** - * Return the uri of the binding. - * @return The uri of the binding. - */ - string getUri() {return uri;}; - - private: - /** - * The uri of the binding. - */ - string uri; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_binding_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.cpp deleted file mode 100644 index 7212e777b1..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.cpp +++ /dev/null @@ -1,54 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/CPPImplementation.h" -#include "tuscany/sca/util/Utils.h" - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - CPPImplementation::CPPImplementation(const string& dllName, const string& head, const string& classN) - : dll(dllName), header(head), className(classN) - { - // Separate any path element - Utils::rTokeniseString("/", head, headerPath, headerStub); - if (headerPath != "") - { - headerPath += "/"; - } - - // Determine the header stub name - string tmp; - Utils::rTokeniseString(".h", headerStub, headerStub, tmp); - } - - CPPImplementation::~CPPImplementation() - { - } - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.h deleted file mode 100644 index 0294649af7..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPImplementation.h +++ /dev/null @@ -1,125 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_cppimplementation_h -#define tuscany_sca_model_cppimplementation_h -#include "tuscany/sca/model/Implementation.h" - -#include -using std::map; -#include -using std::string; - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Holds informatio about an SCA implementation written in C++ - */ - class CPPImplementation : public Implementation - { - - public: - /** - * Constructor. - * @param dllName Name of the shared library. - * @param header Name of the header file that contains the class declaring the - * implementation class. - * @param className Name of the class in the header file (could be a blank string - * if this is not specified). - */ - CPPImplementation(const string& dllName, const string& header, const string& className); - - /** - * Destructor - */ - virtual ~CPPImplementation(); - - /** - * Return the implementation type. - * @return Always returns CPP. - */ - virtual Type getImplementationType() {return CPP;} - - /** - * Returns the name of the shared library. - * @return The name of the shared library. - */ - const string& getDll() {return dll;} - - /** - * Get the name of the header file. - * @return Name of the header file. - */ - const string& getHeader() {return header;} - - /** - * Get the header file name without the extension. - * @return The name of the header file without any extension. - */ - const string& getHeaderStub() {return headerStub;} - - /** - * Get the header path. - * @return The pathe element of the header. - */ - const string& getHeaderPath() {return headerPath;} - - /** - * Get the name of the class. - * @return The class name if specified. - */ - const string& getClass() {return className;} - private: - /** - * Name of the shared library. - */ - string dll; - - /** - * Name of the header file describing the interface. - */ - string header; - - /** - * Name of the header file without the extension. - */ - string headerStub; - - /** - * Path element of the header. - */ - string headerPath; - - /** - * Name of the class in the header file declaring the implementation. - * May be an empty string if not set in the SCDL file. - */ - string className; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_cppimplementation_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.cpp deleted file mode 100644 index 015b54c259..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.cpp +++ /dev/null @@ -1,67 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/CPPInterface.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - CPPInterface::CPPInterface( - const string& head, - const string& classN, - const string& scop, - bool remote) - : header(head), className(classN), remotable(remote) - { - string::size_type dot = header.rfind(".h"); // this will also find .hpp - if (dot != string::npos) - { - headerStub = header.substr(0, dot); - } - else - { - headerStub = header; - } - - if (scop == "module") - { - scope = MODULE; - } - else - { - scope = STATELESS; - } - } - - CPPInterface::~CPPInterface() - { - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.h deleted file mode 100644 index 7b37b1892e..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/CPPInterface.h +++ /dev/null @@ -1,143 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_cppinterface_h -#define tuscany_sca_model_cppinterface_h - -#include "tuscany/sca/model/Interface.h" - - -#include -using std::map; -#include -using std::string; - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Holds information about an interface described using a C++ - * header file. - */ - class CPPInterface : public Interface - { - - public: - /** - * Constuctor. - * @param header Name of the header file containing the class that - * describes the interface. - * @param className Name of the class in the header file that - * describes the interface. - * @param scope The scope of the interface (stateless or module). - * @param remotable True if the interface is remotable. - */ - CPPInterface( - const string& header, - const string& className, - const string& scope, - bool remotable); - - /** - * Destructor. - */ - virtual ~CPPInterface(); - - /** - * Return the type of the interface. - * @return Always returns CPP. - */ - virtual Type getInterfaceType() {return CPP;} - - /** - * Get the name of the header file. - * @return The name of the header file containing the definition of the - * interface. - */ - const string& getHeader() {return header;} - - /** - * Return the name of the header file without the extension. - * @return Header file name without any extension. - */ - const string& getHeaderStub() {return headerStub;} - - /** - * Get the name of the class. - * @return The name of the class defining the interface. - */ - const string& getClass() {return className;} - - /** - * Scope of interface. - */ - enum SCOPE - { - MODULE, - STATELESS - }; - - /** - * Get the scope of the interface. - * @return The scope of the interface. - */ - SCOPE getScope() {return scope;} - - /** - * Return whether the interface is remotable or local. - * @return True if the interface is remotable, otherwise false. - */ - bool getRemotable() {return remotable;} - - private: - /** - * Name of the header file containing the definition of the interface. - */ - string header; - - /** - * Name of the header file without the extension. - */ - string headerStub; - - /** - * Name of the class in the header file. - */ - string className; - - /** - * Scope of the interface. - */ - SCOPE scope; - - /** - * Remotable interface or not. - */ - bool remotable; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_cppinterface_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.cpp deleted file mode 100644 index 3e52591b3d..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.cpp +++ /dev/null @@ -1,303 +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 11:33:21 $ */ - -// Component.cpp : Represent a loaded Component -// -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Component.h" - -using namespace commonj::sdo; - -namespace tuscany -{ - namespace sca - { - namespace model - { - // Constructor - Component::Component(const std::string& componentName, Module* module) - : name(componentName), containingModule(module), implementation(0) - { - LOGENTRY(1, "Component::constructor"); - LOGINFO_1(3, "Component::constructor: Component name: %s", name.c_str()); - LOGEXIT(1, "Component::constructor"); - } - - Component::~Component() - { - } - - Service* Component::addService(const std::string& serviceName) - { - Service* service = new Service(serviceName, this); - services[serviceName] = service; - return service; - } - - Service* Component::findService(const std::string& serviceName) - { - // If serviceName is null then return the ONLY service - if (serviceName == "" - && services.size() == 1) - { - return services.begin()->second; - } - else - { - return services[serviceName]; - } - } - - ServiceReference* Component::findReference(const std::string& referenceName) - { - return references[referenceName]; - } - - ServiceReference* Component::addReference(const std::string& referenceName) - { - ServiceReference* serviceReference = references[referenceName]; - if (!serviceReference) - { - references[referenceName] = new ServiceReference(referenceName); - } - return references[referenceName]; - } - - void Component::setImplementation(Implementation* impl) - { - implementation = impl; - } - - void Component::addProperty(const string& name, - const string& type, - bool many, - bool required, - const char* defaultValue) - { - // Create a Type in the Properties dataFactory - DataFactoryPtr factory = getPropertyDataFactory(); - - string typeUri, typeName; - Utils::tokeniseQName(type, typeUri, typeName); - - if (typeUri == "http://www.w3.org/2001/XMLSchema") - { - typeUri = Type::SDOTypeNamespaceURI; - if (typeName == "string") - { - typeName = "String"; - } - else if (typeName == "anyType") - { - typeName = "DataObject"; - } - else if (typeName == "int") - { - typeName = "Integer"; - } - else if (typeName == "integer") - { - typeName = "Integer"; - } - else if (typeName == "negativeInteger") - { - typeName = "Integer"; - } - else if (typeName == "nonNegativeInteger") - { - typeName = "Integer"; - } - else if (typeName == "positiveInteger") - { - typeName = "Integer"; - } - else if (typeName == "nonPositiveInteger") - { - typeName = "Integer"; - } - else if (typeName == "unsignedLong") - { - typeName = "Integer"; - } - else if (typeName == "unsignedShort") - { - typeName = "Integer"; - } - else if (typeName == "unsignedInt") - { - typeName = "Long"; - } - else if (typeName == "long") - { - typeName = "Long"; - } - else if (typeName == "double") - { - typeName = "Double"; - } - else if (typeName == "short") - { - typeName = "Short"; - } - else if (typeName == "unsignedByte") - { - typeName = "Short"; - } - else if (typeName == "float") - { - typeName = "Float"; - } - else if (typeName == "boolean") - { - typeName = "Boolean"; - } - else if (typeName == "byte") - { - typeName = "Byte"; - } - else if (typeName == "base64Binary") - { - typeName = "Bytes"; - } - else if (typeName == "hexBinary") - { - typeName = "Bytes"; - } - else if (typeName == "anyURI") - { - typeName = "URI"; - } - else if (typeName == "QName") - { - typeName = "URI"; - } - else - { - // Default unknown xs: types to string?? - typeName = "String"; - } - } - else - { - // It's not an XML type - } - - - factory->addPropertyToType( - "org/osoa/sca", - "Properties", - name.c_str(), - typeUri.c_str(), - typeName.c_str(), - many, - false, - true); - - // Set the default - - - // Add to list of required properties - if (required) - { - } - } - - DataFactoryPtr Component::getPropertyDataFactory() - { - if (!propertyFactory) - { - propertyFactory = DataFactory::getDataFactory(); - // Add the root type - propertyFactory->addType("org/osoa/sca", "Properties", false, false, false, false); - } - return propertyFactory; - } - - DataObjectPtr Component::getProperties() - { - if (!properties) - { - properties = getPropertyDataFactory()->create("org/osoa/sca", "Properties"); - } - return properties; - } - - void Component::addProperties(DataObjectPtr values) - { - if (!values) - { - return; - } - - DataObjectPtr props = getProperties(); - - PropertyList pl = values->getInstanceProperties(); - for (int i=0; i < pl.size(); i++) - { - if (!values->isSet(i)) - { - continue; - } - - // Add the property value to the component to be resolved later - string propName = pl[i].getName(); - - // Get the property's type - try - { - const Property& propProperty = props->getProperty(pl[i].getName()); - const Type& propType = propProperty.getType(); - - DataObjectList& proplist = values->getList(pl[i]); - for (int proplistI=0; proplistIgetList(pl[i]); - dol.append(proplist.getCString(proplistI)); - } - else - { - props->setCString(pl[i], proplist.getCString(proplistI)); - } - } - else - { - // Create a new instance of the DO - // iterate over properties setting each one - } - } - } - catch (SDOPropertyNotFoundException&) - { - // Configuration error: property is not defined - string message = "Undefined property: " + propName; - throw SystemConfigurationException(message.c_str()); - } - - } - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.h deleted file mode 100644 index f40690c859..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Component.h +++ /dev/null @@ -1,202 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_component_h -#define tuscany_sca_model_component_h - -#include -using std::string; - -#include - -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/Implementation.h" -#include "tuscany/sca/model/ServiceReference.h" - -#include "commonj/sdo/SDO.h" -using commonj::sdo::DataObjectPtr; -using commonj::sdo::DataFactoryPtr; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - class Module; - - /** - * Information about an SCA component. - */ - class Component - { - public: - /** - * Constructor - * @param name The name of the component. - * @param module The module containing this component. - */ - Component(const std::string& name, Module* module); - - /** - * Destructor. - */ - virtual ~Component(); - - /** - * Returns the name of the component. - * @return The name of the component. - */ - const string& getName() {return name;} - - /** - * Get the module containing this component. - * @return The containing module. - */ - Module* getModule() {return containingModule;} - - /** - * Add a new service to this component. - * @param serviceName The name of the service to add. - * @return The newly added service. - */ - Service* addService(const std::string& serviceName); - - /** - * Find an existing service on this component. - * @param serviceName The name of the service to find. - * If the serviceName is the zero length string then if there is - * only one service it will be returned. - * @return The found service, or 0 if not found. - */ - Service* findService(const std::string& serviceName); - - /** - * Add a new reference to this component. - * @param referenceName The name of the reference to add. - * @return The newly added reference. - */ - ServiceReference* addReference(const std::string& referenceName); - - /** - * Find an existing reference on this component. - * @param referenceName The name of the reference to find. - * @return The found reference, or 0 if not found. - */ - ServiceReference* findReference(const std::string& referenceName); - - /** - * Set the details of the implementation of this component. - * @param impl The details of the implementation. - */ - void setImplementation(Implementation* impl); - - /** - * Returns the details of the implementation of this component. - * @return The details of the implementation. - */ - Implementation* getImplementation() {return implementation;} - - /** - * Add a new property to this component. Properties are - * added one at a time. The property definitions come from the component - * type file. - * @param name The name of the property. - * @param type The full name of the type (including uri and local name). - * @param many True if this is a many valued property. - * @param required True if this property must have a value set. - * @param defaultValue The default value if the property does not have a - * value set. - */ - void addProperty(const string& name, - const string& type, - bool many, - bool required, - const char* defaultValue = 0); - - /** - * Add the property values to the properties defined on this - * component. The values will come from the sca.module file. - * @param properties A data object representing all the values set - * for this component. - */ - void addProperties(DataObjectPtr properties); - - /** - * Returns a data object from which all the properties and their - * values can be accessed. - * @return A data object holding the property values. - */ - DataObjectPtr getProperties(); - private: - /** - * Name of the component. - */ - string name; - - /** - * Module containing this component for navigating up the tree. - */ - Module* containingModule; - - /** - * Information about the implementation of this component. - */ - Implementation* implementation; - - typedef std::map SERVICE_MAP; - /** - * Map of all the services defined on this component. - */ - SERVICE_MAP services; - - typedef std::map REFERENCE_MAP; - /** - * Map of all the references defined on this component. - */ - REFERENCE_MAP references; - - /** - * SDO data factory which has all the property types defined from - * the component type file - */ - DataFactoryPtr propertyFactory; - - /** - * Return the SDO data factory which has the property types defined - * in it. - * @return The data factory. - */ - DataFactoryPtr getPropertyDataFactory(); - - /** - * The properties and their values for this component. - */ - DataObjectPtr properties; - - }; - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_component_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.cpp deleted file mode 100644 index 3ca0f8cc5e..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.cpp +++ /dev/null @@ -1,96 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/EntryPoint.h" -#include "tuscany/sca/util/Exceptions.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - EntryPoint::EntryPoint(const std::string& epName) - : name(epName) - { - LOGENTRY(1, "EntryPoint::constructor"); - LOGERROR_1(0, "EntryPoint::constructor: EntryPoint name: %s", name.c_str()); - LOGEXIT(1, "EntryPoint::constructor"); - } - - EntryPoint::~EntryPoint() - { - } - - void EntryPoint::addTarget(WireTarget* targ) - { - if (multiplicity == ONE_ONE || multiplicity == ZERO_ONE) - { - if (targets.size() > 0) - { - // throw exception - string message = "Duplicate wire for reference: " + name; - throw SystemConfigurationException(message.c_str()); - } - } - - // TODO - must be remotable - - targets.push_back(targ); - } - - void EntryPoint::setMultiplicity(const std::string& multip) - { - if (multip == "0..1") - { - multiplicity = ZERO_ONE; - } - else if (multip == "1..1") - { - multiplicity = ONE_ONE; - } - else if (multip == "0..n") - { - multiplicity = ZERO_MANY; - } - else if (multip == "1..n") - { - multiplicity = ONE_MANY; - } - else - { - string msg = "Invalid multiplicity specified, " + multip + ", for reference: " +name; - throw SystemConfigurationException(msg.c_str()); - } - } - - void EntryPoint::setInterface(Interface* interf) - { - iface = interf; - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.h deleted file mode 100644 index f6e4b485f9..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/EntryPoint.h +++ /dev/null @@ -1,138 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_entrypoint_h -#define tuscany_sca_model_entrypoint_h - -#include -using std::string; -#include -using std::vector; - -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/model/WireTarget.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Represents the information about an entry point. - */ - class EntryPoint - { - - public: - /** - * Constructor. - * @param name The name of the entry point. - */ - EntryPoint(const std::string& name); - - /** - * Destructor. - */ - virtual ~EntryPoint(); - - /** - * Return the name of the entry point. - * @return The name of the entry point. - */ - const string& getName() {return name;} - - /** - * How many wires can be wired from this entry point. - */ - enum Multiplicity - { - ZERO_ONE, - ONE_ONE, - ZERO_MANY, - ONE_MANY - }; - - /** - * Set the multiplicity of this entry point. - * @param multiplicity One of 0..1, 1..1, 0..n, 1..n - */ - void setMultiplicity(const std::string& multiplicity); - - /** - * Return the multiplicity of this entry point (how - * many wires can be wired from this entry point). - * @return The multiplicity. - */ - Multiplicity getMultiplicity() {return multiplicity;} - - /** - * Set the interface describing this entry point. - * @param iface The interface. - */ - void setInterface(Interface* iface); - - /** - * Get the interface describing this entry point. Use - * Interface#getType to find out the type of interface - * describing this entry point. - * @return iface The interface. - */ - Interface* getInterface() {return iface;} - - /** - * Add a target to the entry point. - * @param target Add a target (derived from a wire) to - * the entry point. - */ - void addTarget(WireTarget* target); - typedef vector TARGETS; - - /** - * Get a vector of targets added to this entry point. - */ - const TARGETS& getTargets() {return targets;} - private: - /** - * Name of the entry point. - */ - string name; - - /** - * The interface describing this entry point. - */ - Interface* iface; - - /** - * The multiplicity of this entry point.. - */ - Multiplicity multiplicity; - - /** - * The vector of targets added to this entry point. - */ - TARGETS targets; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_entrypoint_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.cpp deleted file mode 100644 index c0e3afc682..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.cpp +++ /dev/null @@ -1,55 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/ExternalService.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - ExternalService::ExternalService(const std::string& serviceName, Module *module) - : WireTarget(serviceName), containingModule(module) - { - LOGENTRY(1, "ExternalService::constructor"); - LOGERROR_1(0, "ExternalService::constructor: ExternalService name: %s", getName().c_str()); - LOGEXIT(1, "ExternalService::constructor"); - } - - ExternalService::~ExternalService() - { - delete binding; - } - - void ExternalService::setBinding(Binding* bind) - { - binding = bind; - } - - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.h deleted file mode 100644 index fe9640d1b8..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ExternalService.h +++ /dev/null @@ -1,97 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_externalservice_h -#define tuscany_sca_model_externalservice_h - -#include - -#include "tuscany/sca/model/WireTarget.h" -#include "tuscany/sca/model/Binding.h" - -namespace tuscany -{ - namespace sca - { - - namespace model - { - class Module; - - /** - * Information about an external service. - */ - class ExternalService : public WireTarget - { - public: - /** - * Constructor. - * @param name The name of the external service. - * @param module The module containing this external service. - */ - ExternalService(const std::string& name, Module *module); - - /** - * Destructor. - */ - virtual ~ExternalService(); - - /** - * Return the type of service. - * @return Always returns ExternalServiceType - */ - virtual Type getServiceType() {return ExternalServiceType;} - - /** - * Set the binding for this external service. - * @param binding The binding to set. - */ - virtual void setBinding(Binding* binding); - - /** - * Get the binding set for this external service. - * @return The binding. - */ - virtual Binding* getBinding() {return binding;}; - - /** - * Get the module containing this external service. - * @return The containing module. - */ - Module* getContainingModule() {return containingModule;}; - - private: - /** - * The binding for this external service. - */ - Binding* binding; - - /** - * The module containing this external service. - */ - Module* containingModule; - - - }; - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_externalservice_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.cpp deleted file mode 100644 index 9703d1bab3..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.cpp +++ /dev/null @@ -1,44 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Implementation.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Implementation::Implementation() - { - } - - Implementation::~Implementation() - { - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.h deleted file mode 100644 index 17414c359b..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Implementation.h +++ /dev/null @@ -1,66 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_implementation_h -#define tuscany_sca_model_implementation_h - -#include - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Abstract class representing information about an implementation - * of a component. The subtypes will hold information specific to - * the type of implementation. - */ - class Implementation - { - - public: - /** - * Supported types of implementation. - */ - enum Type - { - CPP, - JAVA - }; - - Implementation(); - virtual ~Implementation(); - - /** - * Return the type of the implementation. - * @return Will depend on the subtype. - */ - virtual Type getImplementationType() = 0; - - private: - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_implementation_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.cpp deleted file mode 100644 index 9e0aa45889..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.cpp +++ /dev/null @@ -1,44 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Interface.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Interface::Interface() - { - } - - Interface::~Interface() - { - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.h deleted file mode 100644 index 24bb43224b..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Interface.h +++ /dev/null @@ -1,65 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_interface_h -#define tuscany_sca_model_interface_h - -#include - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about an interface. Subtypes will hold information - * specific to a type of interface. - */ - class Interface - { - - public: - /** - * The supported types of interface. - */ - enum Type - { - CPP, - JAVA - }; - - Interface(); - virtual ~Interface(); - - /** - * Returns the type of the interface. - * @return Will depend on the subtype. - */ - virtual Type getInterfaceType() = 0; - - private: - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_interface_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.cpp deleted file mode 100644 index 751bbe0c9c..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.cpp +++ /dev/null @@ -1,1555 +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 11:33:21 $ */ - -#include "osoa/sca/export.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/ModelLoader.h" -#include "tuscany/sca/model/CPPImplementation.h" -#include "tuscany/sca/model/CPPInterface.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/WSBinding.h" - - -using namespace commonj::sdo; - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - // =========== - // Constructor - // =========== - ModelLoader::ModelLoader(System* system) : system(system) - { - LOGENTRY(1, "ModelLoader::constructor"); - - - LOGEXIT(1, "ModelLoader::constructor"); - } - - // ========== - // Destructor - // ========== - ModelLoader::~ModelLoader() - { - } - - // ========================================================= - // load: Load the runtime model from the deployed xml files - // This class has the responsibility for translating from - // the SCA scdl files to the SCA runtime's in memory model. - // ========================================================= - void ModelLoader::load(const char* configurationRoot) - { - LOGENTRY(1, "ModelLoader::load"); - LOGINFO_1(2,"configuration root: %s", configurationRoot); - - // The configuration root path will point to a directory structure: - // root/ - // The sca.subsystem files can be located anywhere under this directory - // structure. - loadSubsystems(configurationRoot); - - // sca.module files represent the root of a module, and can occur anywhere - // under the directory structure - loadModules(configurationRoot); - - system->resolveWires(); - LOGEXIT(1, "ModelLoader::load"); - } - - // ======================================================================== - // loadSubsystems: - // Load all the subsystems from any directory below the configuration root. - // Translate the subsystem information to the runtime information - // ======================================================================== - void ModelLoader::loadSubsystems(const char* configurationRoot) - { - // Get all the sca.subsystem files in the module - LOGENTRY(1, "ModelLoader::loadSubsystems"); - Files files(configurationRoot, "sca.subsystem", true); - for (unsigned int i=0; i < files.size(); i++) - { - loadSubsystemFile(files[i]); - } - LOGEXIT(1, "ModelLoader::loadSubsystems"); - } - - - // ===================================================================== - // loadSubsystemFile: - // This method is called for each sca.subsystem file found in the module - // folder structure - // ===================================================================== - void ModelLoader::loadSubsystemFile(const File& file) - { - LOGENTRY(1, "ModelLoader::loadSubsystemFile"); - LOGINFO_1(2, "subsystem filename: %s", file.getFileName().c_str()); - - try - { - string filename = file.getDirectory() + "/" + file.getFileName(); - XMLDocumentPtr subsystemFile = getXMLHelper()->loadFile(filename.c_str()); - if (subsystemFile->getRootDataObject() == 0) - { - LOGERROR_1(0, "ModelLoader::loadSubsystemFile: Unable to load file: %s", filename.c_str()); - } - else - { - //Utils::printDO(subsystemFile->getRootDataObject()); - mapSubsystem(subsystemFile->getRootDataObject()); - } - } catch (SDORuntimeException ex) - { - LOGERROR_1(0, "ModelLoader::loadSubsytemFile: Exception caught: %s", ex.getMessageText()); - } - - LOGEXIT(1, "ModelLoader::loadSubsystemFile"); - } - - // =============== - // mapSubsystem: - // =============== - void ModelLoader::mapSubsystem(DataObjectPtr root) - { - LOGENTRY(1, "ModelLoader::mapSubsystem"); - - LOGINFO_1(2, "ModelLoader::mapSubsystem: Loaded subsystem: %s", root->getCString("name")); - - Subsystem* subsystem; - subsystem = system->addSubsystem(root->getCString("name")); - - DataObjectList& Modules = root->getList("moduleComponent"); - LOGINFO_1(2, "ModelLoader::mapSubsystem: number of module components: %d", Modules.size()); - - // Iterate over module components - for (int i=0; iaddModuleComponent(Modules[i]->getCString("name"), Modules[i]->getCString("module")); - } - - - /// @todo Add external services and entry points - - - LOGEXIT(1, "ModelLoader::mapSubsystem"); - } - - - // ===================================================================== - // loadModules: - // Load all the modules from any directory below the configuration root. - // Translate the module information to the runtime information - // ===================================================================== - void ModelLoader::loadModules(const char* configurationRoot) - { - // Get all the sca.module files in the module - LOGENTRY(1, "ModelLoader::loadModules"); - Files files(configurationRoot, "sca.module", true); - for (unsigned int i=0; i < files.size(); i++) - { - loadModuleFile(files[i]); - } - LOGEXIT(1, "ModelLoader::loadModules"); - } - - - // ==================================================================== - // loadModuleFile: - // This method is called for each sca.module file found in the module - // folder structure - // The location of this module file will indicate the root of a module - // ==================================================================== - void ModelLoader::loadModuleFile(const File& file) - { - LOGENTRY(1, "ModelLoader::loadModuleFile"); - LOGINFO_1(2, "module filename: %s", file.getFileName().c_str()); - - try - { - string filename = file.getDirectory() + "/" + file.getFileName(); - - XMLDocumentPtr moduleFile = getXMLHelper()->loadFile(filename.c_str()); - if (moduleFile->getRootDataObject() == 0) - { - LOGERROR_1(0, "ModelLoader::loadModuleFile: Unable to load file: %s", filename.c_str()); - } - else - { - string moduleName = moduleFile->getRootDataObject()->getCString("name"); - mapModule(moduleName, moduleFile->getRootDataObject(), file.getDirectory()); - - // -------------------------------------------------------------- - // Load any module Fragments in the same folder as the sca.module - // -------------------------------------------------------------- - Files files(file.getDirectory(), "*.fragment", false); - for (unsigned int i=0; i < files.size(); i++) - { - filename = file.getDirectory() + "/" + files[i].getFileName(); - moduleFile = getXMLHelper()->loadFile(filename.c_str()); - if (moduleFile->getRootDataObject() == 0) - { - LOGERROR_1(0, "ModelLoader::loadModuleFile: Unable to load file: %s", filename.c_str()); - } - else - { - mapModule(moduleName, moduleFile->getRootDataObject(), file.getDirectory()); - } - } - - // Load the xsd types and wsdl files in the module - loadModuleConfig(file.getDirectory(), moduleName); - } - - } catch (SDORuntimeException ex) - { - LOGERROR_1(0, "ModelLoader::loadModuleFile: Exception caught: %s", ex.getMessageText()); - } - - LOGEXIT(1, "ModelLoader::loadModuleFile"); - } - - // =========== - // mapModule - // =========== - void ModelLoader::mapModule(const string& moduleName, DataObjectPtr root, string moduleRootDir) - { - LOGENTRY(1, "ModelLoader::mapModule"); - - LOGINFO_2(2, "ModelLoader::mapModule: Loading module: %s, root Dir: %s", moduleName.c_str(), moduleRootDir.c_str()); - - // Find the ModuleComponent(s) that refer to this module. If a ModuleComponent does not refer to this - // module then ignore it - MODULE_LIST moduleList = system->findModules(moduleName); - MODULE_LIST::iterator moduleIter; - - for (moduleIter = moduleList.begin(); - moduleIter != moduleList.end(); - moduleIter++ ) - { - LOGINFO_1(2, "ModelLoader::mapModule: Loading module details for module component: %s", (*moduleIter)->getName().c_str()); - - string message; // for exceptions - // Set module root - (*moduleIter)->setRoot(moduleRootDir); - - // ---------------------------- - // Add components to the module - // ---------------------------- - DataObjectList& componentList = root->getList("component"); - int i; - for (i=0; i < componentList.size(); i++) - { - addComponent(*moduleIter, componentList[i]); - } - - // ------------ - // Entry points - // ------------ - DataObjectList& entryPointList = root->getList("entryPoint"); - for (i=0; i < entryPointList.size(); i++) - { - addEntryPoint(*moduleIter, entryPointList[i]); - } - - - // ----------------- - // External services - // ----------------- - DataObjectList& externalServiceList = root->getList("externalService"); - for (i=0; i < externalServiceList.size(); i++) - { - addExternalService(*moduleIter, externalServiceList[i]); - } - - // ----- - // Wires - // ----- - DataObjectList& wireList = root->getList("wire"); - for (int l=0; l < wireList.size(); l++) - { - string source = wireList[l]->getCString("sourceUri"); - string target = wireList[l]->getCString("targetUri"); - (*moduleIter)->addWire(source, target); - } - - } - - LOGEXIT(1, "ModelLoader::mapModule"); - } - - // ================================= - // addComponent: - // ================================= - void ModelLoader::addComponent(Module* module, DataObjectPtr componentDO) - { - Component* component = module->addComponent(componentDO->getCString("name")); - - string message; - - // ------------------- - // Implementation type - // ------------------- - DataObjectPtr impl = componentDO->getDataObject("implementation"); - if (!impl) - { - message = "No implementation for component: "; - message = message + componentDO->getCString("name"); - throw SystemConfigurationException(message.c_str()); - } - // Determine the type - string componentTypeName; - string componentTypePath; - string implType = impl->getType().getName(); - if (implType == "CPPImplementation") - { - string dll = impl->getCString("dll"); - string header = impl->getCString("header"); - string className = impl->getCString("class"); - CPPImplementation* cppImpl = new CPPImplementation(dll, header, className); - componentTypePath = cppImpl->getHeaderPath(); - componentTypeName = cppImpl->getHeaderStub(); - component->setImplementation(cppImpl); - - } - else if (implType == "JavaImplementation") - { - } - - // ----------------------- - // Load the .componentType - // ----------------------- - string typeFileName = module->getRoot() + "/" + componentTypePath + componentTypeName + ".componentType"; - try - { - XMLDocumentPtr componentTypeFile = getXMLHelper()->loadFile(typeFileName.c_str()); - if (componentTypeFile->getRootDataObject() == 0) - { - LOGERROR_1(0, "ModelLoader::mapModule: Unable to load file: %s", typeFileName.c_str()); - } - else - { - //Utils::printDO(componentTypeFile->getRootDataObject()); - //commonj::sdo::SDOUtils::printDataObject(componentTypeFile->getRootDataObject()); - addServices(component, componentTypeFile->getRootDataObject()); - addReferences(component, componentTypeFile->getRootDataObject()); - addProperties(component, componentTypeFile->getRootDataObject()); - } - } catch (SDORuntimeException& ex) - { - LOGERROR_1(0, "ModelLoader::mapModule: Exception caught: %s", ex.getMessageText()); - throw SystemConfigurationException(ex.getMessageText()); - } - - // ---------- - // Properties - // ---------- - DataObjectPtr props = componentDO->getDataObject("properties"); - component->addProperties(props); - - // ---------- - // References - // ---------- - DataObjectPtr refs = componentDO->getDataObject("references"); - if (refs) - { - PropertyList pl = refs->getInstanceProperties(); - for (int refI=0; refI < pl.size(); refI++) - { - // ---------------------------------------------------------- - // Add the reference to the module wires to be resolved later - // ---------------------------------------------------------- - string refName = pl[refI].getName(); - if (!component->findReference(pl[refI].getName())) - { - // Configuration error: reference is not defined - message = "Undefined reference: " + refName; - throw SystemConfigurationException(message.c_str()); - } - - string src = component->getName() + "/" + refName; - DataObjectList& reflist = refs->getList(pl[refI]); - for (int refslistI=0; refslistIaddWire(src, targ); - } - } - } - } - - - // ===================================================================== - // addServices: add the services from the componentType to the component - // ===================================================================== - void ModelLoader::addServices(Component* component, DataObjectPtr componentType) - { - DataObjectList& services = componentType->getList("service"); - for (int i=0; iaddService(services[i]->getCString("name")); - service->setInterface(getInterface(services[i])); - } - } - - // =================================================== - // addReferences: add the references to the component - // =================================================== - void ModelLoader::addReferences(Component* component, DataObjectPtr componentType) - { - DataObjectList& refs = componentType->getList("reference"); - for (int i=0; iaddReference(refs[i]->getCString("name")); - string multiplicity = "1..1"; - if (refs[i]->isSet("multiplicity")) - { - multiplicity = refs[i]->getCString("multiplicity"); - } - serviceRef->setMultiplicity(multiplicity); - serviceRef->setInterface(getInterface(refs[i])); - } - } - - - // ============== - // getInterface - // ============== - Interface* ModelLoader::getInterface(DataObjectPtr obj) - { - // ----------------- - // get the interface - // ----------------- - DataObjectPtr iface = obj->getDataObject("interface"); - if (!iface) - { - string message = "No interface for: "; - message = message + obj->getCString("name"); - throw SystemConfigurationException(message.c_str()); - } - - // Determine the type - string componentTypeName; - string ifType = iface->getType().getName(); - if (ifType == "CPPInterface") - { - string header = iface->getCString("header"); - string className = iface->getCString("class"); - string scope = iface->getCString("scope"); - bool remotable = iface->getBoolean("remotable"); - - return new CPPInterface(header, className, scope, remotable); - } - else - { - // Error? - return 0; - } - } - - // ============================================== - // addProperties: add Properties to the component - // ============================================== - void ModelLoader::addProperties(Component* component, DataObjectPtr componentType) - { - DataObjectList& props = componentType->getList("property"); - for (int i=0; igetCString("name"); - string type = props[i]->getCString("type"); - bool many=false; - if (props[i]->isSet("many")) - { - many = props[i]->getBoolean("many"); - } - - bool required=false; - if (props[i]->isSet("required")) - { - many = props[i]->getBoolean("required"); - } - - const char* defaultValue = 0; - if (props[i]->isSet("default")) - { - defaultValue = props[i]->getCString("default"); - } - - component->addProperty(name, type, many, required, defaultValue); - } - } - - // =============================================== - // addEntryPoint: add an EntryPoint to the module - // =============================================== - void ModelLoader::addEntryPoint(Module* module, DataObjectPtr entryPointDO) - { - //Utils::printDO(entryPointDO); - EntryPoint* entryPoint = module->addEntryPoint(entryPointDO->getCString("name")); - - string multiplicity = "1..1"; - if (entryPointDO->isSet("multiplicity")) - { - multiplicity = entryPointDO->getCString("multiplicity"); - } - - entryPoint->setMultiplicity(multiplicity); - entryPoint->setInterface(getInterface(entryPointDO)); - - DataObjectList& refs = entryPointDO->getList("reference"); - for (int i=0; iaddWire(entryPoint->getName(), targ); - } - } - - - // ========================================================= - // addExternalService: add an ExternalService to the module - // ========================================================= - void ModelLoader::addExternalService(Module* module, DataObjectPtr externalServiceDO) - { - string message; - - ExternalService* externalService = module->addExternalService(externalServiceDO->getCString("name")); - // Add the interface - externalService->setInterface(getInterface(externalServiceDO)); - - // Get binding, it will be the first and only binding - DataObjectPtr binding = externalServiceDO->getList("binding")[0]; - if (!binding) - { - message = "No binding for externalService: "; - message = message + externalServiceDO->getCString("name"); - throw SystemConfigurationException(message.c_str()); - } - - //Utils::printDO(binding); - - string uri = binding->getCString("uri"); - - // Determine the binding type - string bindingType = binding->getType().getName(); - if (bindingType == "WebServiceBinding") - { - string port = binding->getCString("port"); - - WSBinding* wsBinding = new WSBinding(uri,port); - - externalService->setBinding(wsBinding); - - } - else if (bindingType == "SCABinding") - { - } - } - - - - /// - /// Use the Tuscany-model.config file in the module root directory to - /// determine which xsds and wsdls to load into a dataFactory. - /// - void ModelLoader::loadModuleConfig(const string &moduleRootDir, const string &moduleName) - { - LOGENTRY(1, "ModelLoader::loadModuleConfig"); - - // Load the "Tuscany-model.config" file, if it exists - Files files(moduleRootDir, "Tuscany-model.config", false); - for (unsigned int i=0; i < files.size(); i++) - { - string filename = moduleRootDir + "/" + files[i].getFileName(); - XMLDocumentPtr moduleConfigFile = getXMLHelper()->loadFile(filename.c_str()); - if (moduleConfigFile->getRootDataObject() == 0) - { - LOGERROR_1(0, "ModelLoader::loadModuleConfig: Unable to load file: %s", filename.c_str()); - } - else - { - LOGINFO_2(2, "ModelLoader::loadModuleConfig: Loading module config for: %s, root Dir: %s", moduleName.c_str(), moduleRootDir.c_str()); - - DataObjectList& xsds = moduleConfigFile->getRootDataObject()->getList("xsd/file"); - for (int i=0; i set the types in the moduleComponents data factory file - string xsdName = moduleRootDir + "/" +xsds[i]->getCString("name"); - loadTypes(xsdName.c_str(), moduleName); - - - } - - DataObjectList& wsdls = moduleConfigFile->getRootDataObject()->getList("wsdl/file"); - for (int j=0; jgetCString("name"); - // Load a wsdl file -> get the types, then the contents of the wsdl - loadTypes(wsdlName.c_str(), moduleName); - - // Load the contents of the wsdl files - loadWsdl(wsdlName.c_str(), moduleName); - - } - - } - } - - - LOGEXIT(1, "ModelLoader::loadModuleConfig"); - } - - - /// - /// Use the types from an xsd or wsdl file - /// - void ModelLoader::loadTypes(const char *fileName, const string &moduleName) - { - - - // Load a xsd file -> set the types in the moduleComponents data factory file - - MODULE_LIST moduleList = system->findModules(moduleName); - MODULE_LIST::iterator moduleIter; - - for (moduleIter = moduleList.begin(); - moduleIter != moduleList.end(); - moduleIter++ ) - { - try { - (*moduleIter)->getXSDHelper()->defineFile(fileName); - //Utils::printTypes((*moduleIter)->getXSDHelper()->getDataFactory()); - - } catch (SDOTypeNotFoundException ex) - { - LOGERROR_1(0, "ModuleLoader: Exception caught: %s", ex.getMessageText()); - throw ex; - } - } - - } - - /// - /// Load the web services definition from a wsdl - /// - void ModelLoader::loadWsdl(const char *fileName, const string &moduleName) - { - - try { - // Load the wsdl file - XMLDocumentPtr doc = getXMLHelper()->loadFile(fileName); - - - if (doc->getRootDataObject()!=0) - { - MODULE_LIST moduleList = system->findModules(moduleName); - MODULE_LIST::iterator moduleIter; - - for (moduleIter = moduleList.begin(); - moduleIter != moduleList.end(); - moduleIter++ ) - { - // Add the root object to the module - (*moduleIter)->addWsdl(doc->getRootDataObject()); - - } - - } - else - { - LOGERROR_1(0, "ModuleLoader: Unable to load %s", fileName); - } - - } catch (SDOTypeNotFoundException ex) - { - LOGERROR_1(0, "ModuleLoader: Exception caught: %s", ex.getMessageText()); - throw ex; - } - - - - } - - ////////////////////////////////////////////////////////////////////////////// - // Methods used to load the model into memory - ////////////////////////////////////////////////////////////////////////////// - - /// - /// Get an XSDHelper that has the appropriate XSDs already loaded - /// - const XSDHelperPtr ModelLoader::getXSDHelper() - { - if (myXSDHelper == 0) - { - - // Create an xsd helper - myXSDHelper = HelperProvider::getXSDHelper(); - - // Now add to it some xsd files - try { - string root = SCARuntime::getInstance()->getInstallRoot(); - string filename = root + "/xsd/sca.xsd"; - - myXSDHelper->defineFile(filename.c_str()); - - // Tuscany specific xsd for config files - filename = root + "/xsd/tuscany.xsd"; - myXSDHelper->defineFile(filename.c_str()); - - // Load types derived from WSDL schema - loadWSDLTypes(myXSDHelper->getDataFactory()); - - //Utils::printTypes(myXSDHelper->getDataFactory()); - - } catch (SDOTypeNotFoundException ex) - { - LOGERROR_1(0, "ModuleLoader: Exception caught: %s", ex.getMessageText()); - throw ex; - } - } - - - return myXSDHelper; - } - - - /// - /// Get an XMLHelper to load files - /// - const XMLHelperPtr ModelLoader::getXMLHelper() - { - if (myXMLHelper == 0) { - - // Create an xml helper - myXMLHelper = HelperProvider::getXMLHelper(getXSDHelper()->getDataFactory()); - - } - - return myXMLHelper; - } - - void ModelLoader::loadWSDLTypes(DataFactoryPtr dataFactory) - { - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - false, true, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tDocumentation", - true, true, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tDocumented", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement", - false, false, true); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented", - false, true, true); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented", - false, true, true); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tFault", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tImport", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tPart", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tPort", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tService", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/", "tTypes", - false, false, false); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "definitions", - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "import", - "http://schemas.xmlsoap.org/wsdl/", "tImport", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "types", - "http://schemas.xmlsoap.org/wsdl/", "tTypes", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "message", - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "portType", - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "binding", - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "service", - "http://schemas.xmlsoap.org/wsdl/", "tService", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "input", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "output", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "fault", - "http://schemas.xmlsoap.org/wsdl/", "tFault", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "output", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "input", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "fault", - "http://schemas.xmlsoap.org/wsdl/", "tFault", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "arrayType", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "RootType", - "required", - "commonj.sdo", "Boolean", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - "operation", - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - "type", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - "input", - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - "output", - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - "fault", - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperation", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationFault", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tBindingOperationMessage", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "import", - "http://schemas.xmlsoap.org/wsdl/", "tImport", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "types", - "http://schemas.xmlsoap.org/wsdl/", "tTypes", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "message", - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "portType", - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "binding", - "http://schemas.xmlsoap.org/wsdl/", "tBinding", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "service", - "http://schemas.xmlsoap.org/wsdl/", "tService", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "targetNamespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDefinitions", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tDocumented", - "documentation", - "http://schemas.xmlsoap.org/wsdl/", "tDocumentation", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement", - "required", - "commonj.sdo", "Boolean", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented", - "http://schemas.xmlsoap.org/wsdl/", "tDocumented"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented", - "http://schemas.xmlsoap.org/wsdl/", "tDocumented"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tFault", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tFault", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tFault", - "message", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tImport", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tImport", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tImport", - "location", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - "part", - "http://schemas.xmlsoap.org/wsdl/", "tPart", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tMessage", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "input", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "output", - "http://schemas.xmlsoap.org/wsdl/", "tParam", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "fault", - "http://schemas.xmlsoap.org/wsdl/", "tFault", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - "parameterOrder", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tParam", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tParam", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tParam", - "message", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tPart", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPart", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPart", - "element", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPart", - "type", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tPort", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPort", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPort", - "binding", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleAttributesDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - "operation", - "http://schemas.xmlsoap.org/wsdl/", "tOperation", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tPortType", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tService", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tService", - "port", - "http://schemas.xmlsoap.org/wsdl/", "tPort", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/", "tService", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/", "tTypes", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibleDocumented"); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - false, false, true); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, false); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "binding", - "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "operation", - "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "body", - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "fault", - "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "header", - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "message", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "part", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "headerfault", - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "RootType", - "address", - "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tAddress", - "location", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", - "transport", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBinding", - "style", - "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - "parts", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFault", - "name", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "http://schemas.xmlsoap.org/wsdl/soap/", "tBody"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "required", - "commonj.sdo", "Boolean", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "parts", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tFaultRes", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "headerfault", - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - true, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "message", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "part", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeader", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - "message", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - "part", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - "use", - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - "encodingStyle", - "http://schemas.xmlsoap.org/wsdl/soap/", "encodingStyle", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tHeaderFault", - "namespace", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", - "soapAction", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tOperation", - "style", - "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "tStyleChoice", - "commonj.sdo", "String"); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/soap/", "useChoice", - "commonj.sdo", "String"); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "addressType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "operationType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "urlEncoded", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/http/", "urlReplacement", - false, false, false); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - "address", - "http://schemas.xmlsoap.org/wsdl/http/", "addressType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - "binding", - "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - "operation", - "http://schemas.xmlsoap.org/wsdl/http/", "operationType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - "urlEncoded", - "http://schemas.xmlsoap.org/wsdl/http/", "urlEncoded", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "RootType", - "urlReplacement", - "http://schemas.xmlsoap.org/wsdl/http/", "urlReplacement", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/http/", "addressType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "addressType", - "location", - "commonj.sdo", "URI", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "bindingType", - "verb", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/http/", "operationType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/http/", "operationType", - "location", - "commonj.sdo", "URI", - false, false, true); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", - false, false, false); - dataFactory->addType( - "http://schemas.xmlsoap.org/wsdl/mime/", "tPart", - false, true, false); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", - "content", - "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", - "multipartRelated", - "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "RootType", - "mimeXml", - "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", - "type", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "contentType", - "part", - "commonj.sdo", "String", - false, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "multipartRelatedType", - "part", - "http://schemas.xmlsoap.org/wsdl/mime/", "tPart", - true, false, true); - dataFactory->setBaseType( - "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", - "http://schemas.xmlsoap.org/wsdl/", "tExtensibilityElement"); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "tMimeXml", - "part", - "commonj.sdo", "String", - false, false, true); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/wsdl/mime/", "tPart", - "name", - "commonj.sdo", "String", - false, false, true); - } - - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.h deleted file mode 100644 index 6d6e19a510..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ModelLoader.h +++ /dev/null @@ -1,104 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_modelloader_h -#define tuscany_sca_model_modelloader_h - -#include "osoa/sca/export.h" -#include "commonj/sdo/SDO.h" -using commonj::sdo::DataObjectPtr; -using commonj::sdo::DataFactoryPtr; - -#include "tuscany/sca/model/System.h" -#include "tuscany/sca/model/Subsystem.h" - -#include "tuscany/sca/util/File.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Provides methods to load the runtime model from the SCDL file. - */ - class ModelLoader { - public: - /** - * Constructor. - * @param system The SCA system to load. - */ - ModelLoader(System* system); - - /** - * Destructor. - */ - virtual ~ModelLoader(); - - /** - * Load the model from the configuration information. - * @param configurationRoot The location of the deployed SCA - * modules and subsystems. - */ - void load(const char *configurationRoot); - - private: - System* system; - void loadModule(const char *moduleRoot); - - - commonj::sdo::XMLHelperPtr myXMLHelper; // Used to load scdl files - commonj::sdo::XSDHelperPtr myXSDHelper; // Used to load xsds - const commonj::sdo::XSDHelperPtr getXSDHelper(void); - const commonj::sdo::XMLHelperPtr getXMLHelper(void); - - void loadSubsystems(const char *configurationRoot); - void loadSubsystemFile(const File& file); - void mapSubsystem(commonj::sdo::DataObjectPtr rootDO); - - void loadModules(const char *configurationRoot); - void loadModuleFile(const File& file); - void mapModule(const string& moduleName, commonj::sdo::DataObjectPtr rootDO, std::string moduleRootDir); - - void addComponent(Module* module, DataObjectPtr componentDO); - void addEntryPoint(Module* module, DataObjectPtr entryPointDO); - void addExternalService(Module* module, DataObjectPtr externalServiceDO); - - void addServices(Component* component, DataObjectPtr componentType); - void addReferences(Component* component, DataObjectPtr componentType); - void addProperties(Component* component, DataObjectPtr componentType); - - - void loadModuleConfig(const string &moduleRootDir, const string &moduleName); - void loadTypes(const char *fileName, const string &moduleName); - void loadWsdl(const char *fileName, const string &moduleName); - - void loadWSDLTypes(DataFactoryPtr dataFactory); - - Interface* getInterface(DataObjectPtr obj); - - - }; - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_modelloader_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.cpp deleted file mode 100644 index 43702144a2..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.cpp +++ /dev/null @@ -1,235 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Module.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Module::Module(const std::string& moduleName) - : name(moduleName) - { - LOGENTRY(1, "Module::constructor"); - LOGEXIT(1, "Module::constructor"); - } - - Module::~Module() - { - } - - void Module::setRoot(const std::string& rootDirectory) - { - moduleRoot = rootDirectory; - } - - - /// - /// Add a new component to the module component - /// - Component* Module::addComponent(const std::string& name) - { - LOGENTRY(1, "Module::addComponent"); - Component* newComponent = new Component(name, this); - components[name] = newComponent; - LOGEXIT(1, "Module::addComponent"); - return newComponent; - } - - Component* Module::findComponent(const std::string& name) - { - LOGENTRY(1, "Module::findComponent"); - Component* foundComponent = components[name]; - LOGEXIT(1, "Module::findComponent"); - return foundComponent; - } - - Service* Module::findComponentService(const std::string& name) - { - LOGENTRY(1, "Module::findComponentService"); - - Service* service = 0; - - string componentName; - string serviceName; - Utils::tokeniseUri(name, componentName, serviceName); - - // Locate the component - Component* foundComponent = components[name]; - if (foundComponent) - { - // Locate the service - service = foundComponent->findService(serviceName); - } - LOGEXIT(1, "Module::findComponentService"); - return service; - } - - ExternalService* Module::findExternalService(const std::string& name) - { - LOGENTRY(1, "Module::findExternalService"); - ExternalService* foundService = externalServices[name]; - LOGEXIT(1, "Module::findExternalService"); - return foundService; - } - - - EntryPoint* Module::addEntryPoint(const std::string& name) - { - LOGENTRY(1, "Module::addEntryPoint"); - EntryPoint* ep = new EntryPoint(name); - entryPoints[name] = ep; - LOGEXIT(1, "Module::addEntryPoint"); - return findEntryPoint(name); - } - - EntryPoint* Module::findEntryPoint(const std::string& name) - { - return entryPoints[name]; - } - - - ExternalService* Module::addExternalService(const std::string& name) - { - LOGENTRY(1, "Module::addExternalService"); - ExternalService* es = new ExternalService(name, this); - externalServices[name] = es; - LOGEXIT(1, "Module::addExternalService"); - return es; - } - - void Module::addWire(const std::string& source, const std::string& target) - { - LOGENTRY(1, "Module::addWire"); - wires.push_back(Wire(source, target)); - LOGEXIT(1, "Module::addWire"); - } - - - void Module::resolveWires() - { - LOGENTRY(1, "Module::resolveWires"); - for (WIRES::iterator iter = wires.begin(); - iter != wires.end(); - iter++) - { - // ----------------- - // Locate the target - // ----------------- - WireTarget* target = findComponentService(iter->getTarget()); - if (!target) - { - target = findExternalService(iter->getTarget()); - } - if (!target) - { - LOGERROR_1(0, "Module::resolveWires: Wire target %s not found", iter->getTarget().c_str()); - } - else - { - EntryPoint* entrypoint = findEntryPoint(iter->getSourceComponent()); - if (entrypoint) - { - entrypoint->addTarget(target); - } - else - { - Component* component = findComponent(iter->getSourceComponent()); - if (component) - { - ServiceReference* serviceReference = component->findReference(iter->getSourceReference()); - if (serviceReference) - { - serviceReference->addTarget(target); - } - else - { - LOGERROR_1(0, "Module::resolveWires: Wire source reference %s not found", iter->getSourceReference().c_str()); - } - } - else - { - LOGERROR_1(0, "Module::resolveWires: Wire source %s not found", iter->getSourceComponent().c_str()); - } - } - } - } - - LOGEXIT(1, "Module::resolveWires"); - } - - - - void Module::addWsdl(commonj::sdo::DataObjectPtr wsdlModel) - { - LOGENTRY(1, "Module::addWsdl"); - Wsdl* wsdl = new Wsdl(wsdlModel); - wsdls[wsdl->getNamespace()] = wsdl; - LOGEXIT(1, "Module::addWsdl"); - - } - - Wsdl* Module::findWsdl(const std::string& wsdlNamespace ) - { - return wsdls[wsdlNamespace]; - - } - - - // Get an XSDHelper - one will be created for each module - commonj::sdo::XSDHelperPtr Module::getXSDHelper() - { - if (xsdHelper == 0) - { - xsdHelper = commonj::sdo::HelperProvider::getXSDHelper(); - } - - return xsdHelper; - } - - // Get an XMLHelper - one will be created for each module - commonj::sdo::XMLHelperPtr Module::getXMLHelper() - { - if (xmlHelper == 0) - { - xmlHelper = commonj::sdo::HelperProvider::getXMLHelper(getXSDHelper()->getDataFactory()); - } - - return xmlHelper; - } - - - // Get a data factory - the one in the xsd/xml helper - commonj::sdo::DataFactoryPtr Module::getDataFactory() - { - return getXSDHelper()->getDataFactory(); - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.h deleted file mode 100644 index f73f1d36bc..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Module.h +++ /dev/null @@ -1,235 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_module_h -#define tuscany_sca_model_module_h - -#include -using std::string; - -#include -using std::map; -#include -using std::vector; - -#include "commonj/sdo/SDO.h" - - -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ExternalService.h" -#include "tuscany/sca/model/EntryPoint.h" -#include "tuscany/sca/model/Wire.h" -#include "tuscany/sca/model/Wsdl.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - /** - * Information about a module. - */ - class Module - { - public: - /** - * Constructor. - * @param name the name of the module. - */ - Module(const std::string& name); - - /** - * Destructor. - */ - virtual ~Module(); - - /** - * Set the root directory of the module information. - * @param rootDirectory The root of the module in the file system. - */ - void setRoot(const std::string& rootDirectory); - - /** - * Get the root directory of the module. - * @return The root of the module in the file system. - */ - const std::string& getRoot() {return moduleRoot;} - - /** - * Return the name of the module. - * @return Name of the module. - */ - const std::string& getName() {return name;} - - /** - * Add a new component to the module. - * @param componentName The name of the new component. - * @return The Component added to the module. - */ - Component* addComponent(const std::string& componentName); - - /** - * Add a new entry point to the module. - * @param name The name of the new entry point. - * @return The entry point added to the module. - */ - EntryPoint* addEntryPoint(const std::string& name); - - /** - * Find an entry point by name. - * @param name The name of the entry point to be found. - * @return The entry point that was found, or 0 if not found. - */ - EntryPoint* findEntryPoint(const std::string& name); - - /** - * Add a new external service to the module. - * @param name The name of the new external service. - * @return The external service added to the module. - */ - ExternalService* addExternalService(const std::string& name); - - /** - * Add a wire to the model. - * @param source The source location. Either the source component and - * reference (optional), or an entry point. - * @param target The target location. Either the target component and - * service (optional), or an external service. - */ - void addWire(const std::string& source, const std::string& target); - - /** - * Find a component by name. - * @param componentName The name of the component to be found. - * @return The component that was found, or 0 if not found. - */ - Component* findComponent(const std::string& componentName); - - /** - * Find a component and service by name. - * @param componentServiceName A string of the form - * "componentName"/"serviceName" where the service name is optional - * if there is only one service on the component. - * @return The Service that was found, or 0 if not found. - */ - Service* findComponentService(const std::string& componentServiceName); - - /** - * Find an external service by name. - * @param serviceName The name of the external service to be found. - * @return The external service that was found, or 0 if not found. - */ - ExternalService* findExternalService(const std::string& serviceName); - - /** - * Add a WSDL definition to the module. - * @param wsdlModel A data object holding all the information about - * the WSDL definition from a WSDL file. - */ - void addWsdl(commonj::sdo::DataObjectPtr wsdlModel); - - /** - * Find a WSDL definition by target namespace. - * @param wsdlNamespace The namespace of the WSDL definitions to find. - */ - Wsdl* findWsdl(const std::string& wsdlNamespace); - - /** - * Return a cached SDO XSDHelper. - */ - commonj::sdo::XSDHelperPtr getXSDHelper(void); - - /** - * Return a cached SDO XMLHelper. - */ - commonj::sdo::XMLHelperPtr getXMLHelper(void); - - /** - * Return a data factory which has all the types defined in XSDs and - * WSDL files configured for this module. - * @return The data factory for this module. - */ - commonj::sdo::DataFactoryPtr getDataFactory(void); - - /** - * Work through the list of wires and connect the source and target uris. - */ - void resolveWires(); - - private: - /** - * Name of the module. - */ - string name; - - /** - * Directory of the root of the module. - */ - string moduleRoot; - - /** - * Cached XSDHelper. - */ - commonj::sdo::XSDHelperPtr xsdHelper; - - /** - * Cached XMLHelper. - */ - commonj::sdo::XMLHelperPtr xmlHelper; - - typedef map COMPONENT_MAP; - /** - * Map (by name) of all the components in this module. - */ - COMPONENT_MAP components; - - typedef map EXTERNALSERVICE_MAP; - /** - * Map (by name) of all the external services in this module. - */ - EXTERNALSERVICE_MAP externalServices; - - typedef map ENTRYPOINT_MAP; - /** - * Map (by name) of all the entry points in this module. - */ - ENTRYPOINT_MAP entryPoints; - - typedef vector WIRES; - /** - * Vector of all the wires in this module. - */ - WIRES wires; - - typedef map WSDL_MAP; - /** - * Map by namespace of all the wsdl definitions in this module. - */ - WSDL_MAP wsdls; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // SCA_ModuleComponent_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.cpp deleted file mode 100644 index 42ccecbc99..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.cpp +++ /dev/null @@ -1,47 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Service.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Constructor - Service::Service(const std::string& serviceName, Component* comp) - : WireTarget(serviceName), - component(comp) - { - LOGENTRY(1, "Service::constructor (Component)"); - LOGINFO_1(3, "Service::constructor: Service name: %s", serviceName.c_str()); - LOGEXIT(1, "Service::constructor"); - } - - Service::~Service() - { - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.h deleted file mode 100644 index 6c37dabb3e..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Service.h +++ /dev/null @@ -1,81 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_service_h -#define tuscany_sca_model_service_h - -#include -using std::string; - -#include "tuscany/sca/model/WireTarget.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - class Component; - - /** - * Information about a service defined on a component. - */ - class Service : public WireTarget - { - public: - /** - * Destructor. - */ - virtual ~Service(); - - /** - * Return the type of the wire target. - * @return Always returns ComponentServiceType. - */ - virtual Type getServiceType() {return ComponentServiceType;} - - /** - * Get the component on which this service is defined. - * @return The component on which this service is defined. - */ - Component* getComponent() {return component;} - - - private: - friend class Component; - /** - * Constructor. - * @param name The name of the service. - * @param component The component on which this service is defined. - */ - Service(const std::string& name, Component* component); - - /** - * The component on which this service is defined. - */ - Component* component; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_service_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.cpp deleted file mode 100644 index cada38dec2..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.cpp +++ /dev/null @@ -1,89 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/model/ServiceReference.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Constructor - ServiceReference::ServiceReference(const std::string& referenceName) - : name(referenceName), multiplicity(ONE_ONE) - { - } - - ServiceReference::~ServiceReference() - { - } - - void ServiceReference::addTarget(WireTarget* targ) - { - if (multiplicity == ONE_ONE || multiplicity == ZERO_ONE) - { - if (targets.size() > 0) - { - // throw exception - string message = "Duplicate wire for reference: " + name; - throw SystemConfigurationException(message.c_str()); - } - } - - targets.push_back(targ); - } - - void ServiceReference::setMultiplicity(const std::string& multip) - { - if (multip == "0..1") - { - multiplicity = ZERO_ONE; - } - else if (multip == "1..1") - { - multiplicity = ONE_ONE; - } - else if (multip == "0..n") - { - multiplicity = ZERO_MANY; - } - else if (multip == "1..n") - { - multiplicity = ONE_MANY; - } - else - { - string msg = "Invalid multiplicity specified, " + multip + ", for reference: " +name; - throw SystemConfigurationException(msg.c_str()); - } - } - - void ServiceReference::setInterface(Interface* interf) - { - iface = interf; - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.h deleted file mode 100644 index 062d7a4c19..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/ServiceReference.h +++ /dev/null @@ -1,136 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_servicereference_h -#define tuscany_sca_model_servicereference_h - -#include -using std::string; -#include -using std::vector; - -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/model/WireTarget.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about a reference on a serivce. - */ - class ServiceReference - { - public: - /** - * Constructor. - * @param name The name of the reference. - */ - ServiceReference(const std::string& name) - - /** - * Destructor. - */; - virtual ~ServiceReference(); - - /** - * Get the name of the service. - * @return The name of the service. - */ - const std::string& getName() {return name;} - - /** - * Multiplicity (how many wires can be attached to this - * reference as their source) - */ - enum Multiplicity - { - ZERO_ONE, - ONE_ONE, - ZERO_MANY, - ONE_MANY - }; - - /** - * Set the multiplicity of this reference. - * @param multiplicity One of "0..1", "1..1", "0..n", "1..n" - */ - void setMultiplicity(const std::string& multiplicity); - - /** - * Get the multiplicity of this reference. - * @return The multiplicity. - */ - Multiplicity getMultiplicity() {return multiplicity;} - - /** - * Set the interface required by this reference. - * @param iface The interface. - */ - void setInterface(Interface* iface); - - /** - * Get the interface. - * @return The interface. - */ - Interface* getInterface() {return iface;} - - /** - * Add a target for a reference. There may be more than - * one if the multiplicity is 0..n or 1..n. - * @param target The target for a wire. - */ - void addTarget(WireTarget* target); - typedef vector TARGETS; - - /** - * Get a vector of all the targets from this reference. - * @return The targets of this reference. - */ - const TARGETS& getTargets() {return targets;} - private: - /** - * Name of this reference. - */ - string name; - - /** - * The interface defining this reference. - */ - Interface* iface; - - /** - * The multiplicity of this reference. - */ - Multiplicity multiplicity; - - /** - * Vector of all the targets wired from this reference. - */ - TARGETS targets; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_servicereference_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.cpp deleted file mode 100644 index 08ef0dde49..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.cpp +++ /dev/null @@ -1,122 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Subsystem.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - Subsystem::Subsystem(const std::string& subsystemName) : name(subsystemName) - { - LOGENTRY(1, "Subsystem::constructor"); - - - LOGEXIT(1, "Subsystem::constructor"); - } - - Subsystem::~Subsystem() - { - } - - /// - /// Add a new module component - /// - Module* Subsystem::addModuleComponent(const std::string& name, const std::string& moduleName) - { - LOGENTRY(1, "Subsystem::addModuleComponent"); - - Module* newModule = new Module(moduleName); - - // TODO: Should check for duplicates and throw exception - moduleComponents[name] = newModule; - - LOGEXIT(1, "Subsystem::addModuleComponent"); - - return newModule; - } - - Module* Subsystem::findModule(const std::string& moduleName) - { - for (MODULECOMPONENT_MAP::iterator moduleComponentIter = moduleComponents.begin(); - moduleComponentIter != moduleComponents.end(); - moduleComponentIter++) - { - if (moduleName == moduleComponentIter->second->getName()) - { - return (Module*)moduleComponentIter->second; - } - } - return 0; - } - - Module* Subsystem::findModuleByComponentName(const std::string& moduleComponentName) - { - return moduleComponents[moduleComponentName]; - } - - Module* Subsystem::getDefaultModule() - { - if (moduleComponents.size() == 1) - { - MODULECOMPONENT_MAP::iterator moduleComponentIter = moduleComponents.begin(); - return moduleComponentIter->second; - } - return 0; - } - - /// - /// Add a new entrypoint - /// - EntryPoint* Subsystem::addEntryPoint(const std::string& name) - { - LOGENTRY(1, "Subsystem::addEntryPoint"); - - EntryPoint* newEntryPoint = new EntryPoint(name); - entryPoints[name] = newEntryPoint; - LOGEXIT(1, "Subsystem::addEntryPoint"); - return findEntryPoint(name); - } - - EntryPoint* Subsystem::findEntryPoint(const std::string& name) - { - return entryPoints[name]; - } - - void Subsystem::resolveWires() - { - for (MODULECOMPONENT_MAP::iterator moduleComponentIter = moduleComponents.begin(); - moduleComponentIter != moduleComponents.end(); - moduleComponentIter++) - { - moduleComponentIter->second->resolveWires(); - } - - // Resolve EntryPoint wires - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.h deleted file mode 100644 index b3c59898eb..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Subsystem.h +++ /dev/null @@ -1,131 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_h -#define tuscany_sca_model_h - -#include -using std::string; -#include -using std::map; - -#include "tuscany/sca/model/Module.h" -#include "tuscany/sca/model/EntryPoint.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about a subsystem. - */ - class Subsystem { - public: - /** - * Constructor. - * @param name The name of the subsystem. - */ - Subsystem(const std::string& name); - - /** - * Destructor. - */ - virtual ~Subsystem(); - - /** - * Add a new module component to the subsystem. - * @param name The name of the module component. - * @param moduleName The name of the module. - * @return The new Module added to the subsystem. - */ - Module* addModuleComponent(const std::string& name, const std::string& moduleName); - - /** - * Find a module by module name. - * @param moduleName The name of the module to be found. - * @return The Module that was found, or 0 if not found. - */ - Module* findModule(const std::string& moduleName); - - /** - * Find a module by the module component name. - * @param moduleComponentName The module component name to be used to find - * the module. - * @return The Module that was found, or 0 if not found. - */ - Module* findModuleByComponentName(const std::string& moduleComponentName); - - /** - * Get the default module set for this subsystem. - * @return The default module. - */ - Module* getDefaultModule(); - - /** - * Add an new entry point to the subsystem. - * @param name The name of the entry point. - * @return The new EntryPoint added to the subsystem. - */ - EntryPoint* addEntryPoint(const std::string& name); - - /** - * Find an entry point by name. - * @param name The name of the entry point to be found. - * @return The EntryPoint that was found, or 0 if not found. - */ - EntryPoint* findEntryPoint(const std::string& name); - - /** - * Return the name of the subsystem. - * @return The name. - */ - const std::string& getName() {return name;} - - /** - * Resolve all the wires configured in all the modules in this - * subsystem. - */ - void resolveWires(); - - private: - /** - * The name of the subsystem. - */ - std::string name; - - typedef std::map MODULECOMPONENT_MAP; - /** - * A map by module component name of modules. - */ - MODULECOMPONENT_MAP moduleComponents; - - typedef map ENTRYPOINT_MAP; - /** - * A map of entry points defined in this subsystem. - */ - ENTRYPOINT_MAP entryPoints; - }; - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.cpp deleted file mode 100644 index dfc4a21b1c..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.cpp +++ /dev/null @@ -1,118 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/System.h" - - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // ============ - // Constructor - // ============ - System::System() - { - LOGENTRY(1, "System::constructor"); - - - LOGEXIT(1, "System::constructor"); - } - - System::~System() - { - SUBSYSTEM_MAP::iterator subsystemsIter; - for (subsystemsIter = subsystemMap.begin(); - subsystemsIter != subsystemMap.end(); - subsystemsIter++ ) - { - delete subsystemsIter->second; - } - } - - // ================================= - // Add a new subsystem to the system - // ================================= - Subsystem* System::addSubsystem(const std::string& name) - { - LOGENTRY(1, "System::addSubsystem"); - - Subsystem* newSubsystem = new Subsystem(name); - - subsystemMap[name] = newSubsystem; - - LOGEXIT(1, "System::addSubsystem"); - - return newSubsystem; - } - - // ==================================================================== - // Get a map of all the moduleComponents that use a particular module - // ==================================================================== - MODULE_LIST System::findModules(const std::string& name) - { - LOGENTRY(1, "System::findModules"); - MODULE_LIST foundModules; - - SUBSYSTEM_MAP::iterator subsystemsIter; - for (subsystemsIter = subsystemMap.begin(); - subsystemsIter != subsystemMap.end(); subsystemsIter++ ) { - LOGINFO_1(2, "System::findModules: Found subsystem: %s", subsystemsIter->second->getName().c_str()); - // In each subsystem, find module components with this module defined - - Module* module = subsystemsIter->second->findModule(name); - if (module) - { - LOGINFO_1(2, "System::findModules: Found module: %s", module->getName().c_str()); - foundModules.push_back(module); - } - } - LOGEXIT(1, "System::findModules"); - - return foundModules; - } - - - // ==================================================================== - // Get a map of all the moduleComponents that use a particular module - // ==================================================================== - Subsystem* System::findSubsystem(const std::string& subsystem) - { - return subsystemMap[subsystem]; - } - - void System::resolveWires() - { - SUBSYSTEM_MAP::iterator subsystemsIter; - for (subsystemsIter = subsystemMap.begin(); - subsystemsIter != subsystemMap.end(); - subsystemsIter++ ) - { - subsystemsIter->second->resolveWires(); - } - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.h deleted file mode 100644 index a0f62ce67a..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/System.h +++ /dev/null @@ -1,89 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_system_h -#define tuscany_sca_model_system_h - -#include -#include -#include - -#include "tuscany/sca/model/Subsystem.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - typedef std::vector MODULE_LIST; - - /** - * The root of the runtime model supported by a Tuscany runtime. - */ - class System { - public: - System(); - virtual ~System(); - - /** - * Add a new subsystem to the system. - * @param subsystemName The name of the new subsystem to add. - * @return The new Subsystem added to the system. - */ - Subsystem* addSubsystem(const std::string& subsystemName); - - /** - * Find subsystem by name. - * @param subsystemName The name of the subsystem to be found. - * @return The Subsystem found, or 0 if not found. - */ - Subsystem* findSubsystem(const std::string& subsystemName); - - typedef std::vector MODULE_LIST; - - /** - * Return a vector of all the modules with a given module name. - * @param moduleName The name of the module to find - * @return A vector of all the times the module appears in the - * system. It can be more than once because the same module name - * is used by more than one module component. - */ - MODULE_LIST findModules(const std::string& moduleName); - - /** - * Resolve all the wires defined in the system. - */ - void resolveWires(); - - private: - - typedef std::map SUBSYSTEM_MAP; - - /** - * Map by name of subsystems. - */ - SUBSYSTEM_MAP subsystemMap; - }; - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_system_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.cpp deleted file mode 100644 index 85cb7482bd..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.cpp +++ /dev/null @@ -1,127 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/WSBinding.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - WSBinding::WSBinding(const string& uri, const string& port) - : Binding(uri), port(port) - { - - // Port is of the form: #wsdl.endpoint(/) - string::size_type hash = port.find("#"); - if (hash != string::npos) - { - // Found a hash - - // Namepace is the part before the # - wsdlNamespaceURL = port.substr(0, hash); - - - if ( (hash+1) < port.length()) - { - // Check the next part is wsdl.endpoint( - int ending = hash+15; - string check = port.substr(hash+1, 14); - if (check.compare("wsdl.endpoint(") == 0) - { - // Find the matching ) - int endBracket = port.find(")",ending); - if (endBracket-1 > ending+1) - { - string serviceAndPort = port.substr(ending, endBracket-ending); - // Look for a '/' - string::size_type slash = serviceAndPort.find("/"); - if (slash != string::npos) - { - serviceName = serviceAndPort.substr(0, slash); - - if ( (slash+1) < serviceAndPort.length()) - { - portName = serviceAndPort.substr(slash+1); - } - else - { - portName = ""; - } - - } - else - { - // No '/' so all of it is the service name - serviceName = serviceAndPort; - portName = ""; - - } - } - else - { - // Nothing between the () - serviceName = ""; - portName = ""; - } - } - else - { - // not the correct characters after the #, ignore the rest - serviceName = ""; - portName = ""; - } - - } - else - { - // Nothing after the hash - serviceName = ""; - portName = ""; - } - } - else - { - // No hash at all - wsdlNamespaceURL = port; - serviceName = ""; - portName = ""; - } - - - - - - - } - - WSBinding::~WSBinding() - { - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.h deleted file mode 100644 index e7963d205b..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WSBinding.h +++ /dev/null @@ -1,106 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_wsbinding_h -#define tuscany_sca_model_wsbinding_h - -#include "tuscany/sca/model/Binding.h" - -#include - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about a web service binding for an entry point or an - * external service. - */ - class WSBinding : public Binding - { - public: - /** - * Constructor. - * @param uri The uri of the binding. - * @param port The definition of the port to which the entrypoint - * or external service is to be bound. This is of the form - * "namespace"#endpoint("service"/"port") - */ - WSBinding(const string&uri, const string& port); - - /** - * Destructor. - */ - virtual ~WSBinding(); - - /** - * Return the type of the binding. - * @return Always returns WS. - */ - virtual Type getBindingType() {return WS;}; - - /** - * Return the part of the port definition describing the wsdl - * namespace. - * @return The wsdl namespace. - */ - string getWSDLNamespaceURL() {return wsdlNamespaceURL;}; - - /** - * Return the service part of the port definition. - * @return The service to use. - */ - string getServiceName() {return serviceName;}; - - /** - * Return the port name part of the port definition. - * @return The port name to use. - */ - string getPortName() {return portName;}; - - private: - /** - * The full port string. - */ - string port; - - /** - * Namespace from the port. - */ - string wsdlNamespaceURL; - - /** - * Service name from the port. - */ - string serviceName; - - /** - * Port name from the port. - */ - string portName; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wsbinding_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.cpp deleted file mode 100644 index 6c1b14940f..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.cpp +++ /dev/null @@ -1,46 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Wire.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - Wire::Wire(const std::string& source, const std::string& targ) - { - Utils::tokeniseUri(source, sourceComponent, sourceReference); - target = targ; - } - - Wire::~Wire() - { - } - - } // End namespace model - - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.h deleted file mode 100644 index b126137118..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wire.h +++ /dev/null @@ -1,91 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_wire_h -#define tuscany_sca_model_wire_h - -#include -using std::string; - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about a wire in the model. - */ - class Wire - { - public: - /** - * Constructor. - * @param source The source of the wire. Either the component and - * reference name (optional) or an entry point. - * @param target The target of the wire. Either a component and service - * service name (optional) or an external sevice. - */ - Wire(const std::string& source, const std::string& target); - - /** - * Destructor. - */ - virtual ~Wire(); - - /** - * Get the component name defined by the source of the wire. - * @return The component name which is the source of the wire. - */ - const std::string& getSourceComponent() {return sourceComponent;} - - /** - * Get the reference name defined by the source of the wire. - * @return The reference name which is the source of the wire. - */ - const std::string& getSourceReference() {return sourceReference;} - - /** - * Get the target uri defined by the target of the wire. - * @return The target uri which is the source of the wire. - */ - const std::string& getTarget() {return target;} - private: - /** - * The source component of the wire. - */ - string sourceComponent; - - /** - * The source reference of the wire. - */ - string sourceReference; - - /** - * The target uri of the wire. - */ - string target; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wire_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.cpp deleted file mode 100644 index a35b07f5fe..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.cpp +++ /dev/null @@ -1,49 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/WireTarget.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - WireTarget::WireTarget(const std::string& targetName) - : name(targetName) - { - } - - WireTarget::~WireTarget() - { - } - - void WireTarget::setInterface(Interface* interf) - { - iface = interf; - } - - } // End namespace model - - - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.h deleted file mode 100644 index 312d20a704..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WireTarget.h +++ /dev/null @@ -1,106 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_wiretarget_h -#define tuscany_sca_model_wiretarget_h - -#include -using std::string; - -#include "tuscany/sca/model/Interface.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Represents the target of a wire. This could be a service on a - * component or an external service. - */ - class WireTarget - { - public: - /** - * Supported types of wire target. - */ - enum Type - { - ComponentServiceType, - ExternalServiceType - }; - - /** - * Constructor. - * @param name The name of the wire target. - */ - WireTarget(const std::string& name); - - /** - * Destructor. - */ - virtual ~WireTarget(); - - /** - * Return the name of the wire target. - */ - string getName() {return name;} - - /** - * Get the type of the wire target. - * @return Depends on the type of the wire target. - */ - virtual Type getServiceType() = 0; - - /** - * Set the interface describing the wire target. - * @param iface The interface. - */ - void setInterface(Interface* iface); - - /** - * Get the interface describing the wire target. - * @return The interface. - */ - Interface* getInterface() {return iface;} - - private: - /** - * Name of the wire target (service name or external service name) - */ - string name; - - /** - * Type of the service. - */ - Type serviceType; - - /** - * Interface describing the wire target. - */ - Interface* iface; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wiretarget_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.cpp deleted file mode 100644 index fcc86c78e5..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.cpp +++ /dev/null @@ -1,345 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Wsdl.h" -#include "tuscany/sca/util/Exceptions.h" - -using namespace tuscany::sca; - -using namespace commonj::sdo; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Constructor - Wsdl::Wsdl(DataObjectPtr wsdlModel) - : wsdlModel(wsdlModel) - { - LOGENTRY(1, "Wsdl::constructor"); - - // Trace - Utils::printDO(wsdlModel); - - - - LOGEXIT(1, "Wsdl::constructor"); - } - - Wsdl::~Wsdl() - { - } - - - /// - /// The namespace of the service and other definitions defined in this wsdl definition - string Wsdl::getNamespace() - { - - return wsdlModel->getCString("targetNamespace"); - - } - - /// - /// Find the operation defined in this wsdl - /// - WsdlOperation Wsdl::findOperation(const string& serviceName, - const string& portName, - const string& operationName) - { - string message; - - // Find the service - DataObjectPtr service = findService(serviceName); - if (!service) - { - // Service not found - message = "Unable to find service "; - message = message + serviceName; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - else - { - - - // Found the service - DataObjectList& portList = service->getList("port"); - for (int j=0; jgetCString("name")); - if (portListName.compare(portName) == 0) - { - - // found port - // Add address at this point - string targetAddress(portList[j]->getCString("address/location")); - - // find operation by traversing the binding, portType then operation - string wsBindingName(portList[j]->getCString("binding")); - - DataObjectPtr wsBinding = findBinding(wsBindingName); - if (!wsBinding) - { - message = "Unable to find binding "; - message = message + wsBindingName; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - - // Get the soapAction - string soapAction = getSoapAction(wsBinding, operationName); - - - // Found the binding, get the portType - string wsPortTypeName(wsBinding->getCString("type")); - DataObjectPtr wsPortType = findPortType(wsPortTypeName); - if (!wsPortType) - { - message = "Unable to find PortType "; - message = message + wsPortTypeName; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - - Utils::printDO(wsPortType); - - // Found the portType, find the operation - DataObjectList& operationList = wsPortType->getList("operation"); - for (int k=0; k< operationList.size(); k++) - { - string opName(operationList[k]->getCString("name")); - if( opName.compare(operationName) == 0) - { - // Found the operation - - // Find the type of the request message - string inputMessageType = string(operationList[k]->getCString("input/message")); - - DataObjectPtr wsMessageIn = findMessage(inputMessageType); - if (!wsMessageIn) - { - message = "Unable to find message "; - message = message + inputMessageType; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - - string requestType(wsMessageIn->getList("part")[0]->getCString("element")); - string requestTypeName; - string requestTypeUri; - // Utils::tokeniseQName(requestType, requestTypeUri, requestTypeName); - Utils::rTokeniseString(":", requestType, requestTypeUri, requestTypeName); - - // Find the type of the response message - string outputMessageType = string(operationList[k]->getCString("output/message")); - - DataObjectPtr wsMessageOut = findMessage(outputMessageType); - if (!wsMessageOut) - { - message = "Unable to find message "; - message = message + outputMessageType; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - - string responseType(wsMessageOut->getList("part")[0]->getCString("element")); - string responseTypeName; - string responseTypeUri; - // Utils::tokeniseQName(responseType, responseTypeUri, responseTypeName); - Utils::rTokeniseString(":", responseType, responseTypeUri, responseTypeName); - - return WsdlOperation(requestTypeName, - soapAction, - targetAddress, - responseTypeName); - } - - } - - message = "Unable to find Operation "; - message = message + operationName; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - - - - - } - - - - - } - // cannot find the port - message = "Unable to find port "; - message = message + portName; - message = message + " in the WSDL definition"; - throw SystemConfigurationException(message.c_str()); - } - - } - - - - /// - /// Find a service - /// - DataObjectPtr Wsdl::findService(const string& serviceName) - { - DataObjectPtr service = 0; - - - // Find the binding - DataObjectList& serviceList = wsdlModel->getList("service"); - for (int i=0; igetCString("name")); - - if (name.compare(serviceName) == 0) - { - return serviceList[i]; - } - } - - return service; - } - - - /// - /// Find a named binding - /// - DataObjectPtr Wsdl::findBinding(const string& bindingName) - { - DataObjectPtr binding = 0; - string uri; - string name; - - - //Utils::tokeniseQName(bindingName, uri, name); - Utils::rTokeniseString(":", bindingName, uri, name); - - - // Find the binding - DataObjectList& bindingList = wsdlModel->getList("binding"); - for (int i=0; igetCString("name")); - - if (nameBinding.compare(name) == 0) - { - return bindingList[i]; - } - } - - return binding; - } - - /// - /// Find a named portType - /// - DataObjectPtr Wsdl::findPortType(const string& portTypeName) - { - DataObjectPtr portType = 0; - string uri; - string name; - - - // Utils::tokeniseQName(portTypeName, uri, name); - Utils::rTokeniseString(":", portTypeName, uri, name); - - - // Find the binding - DataObjectList& portTypeList = wsdlModel->getList("portType"); - for (int i=0; igetCString("name")); - - if (namePortType.compare(name) == 0) - { - return portTypeList[i]; - } - } - - return portType; - } - - /// - /// Find a named message - /// - DataObjectPtr Wsdl::findMessage(const string& messageName) - { - DataObjectPtr message = 0; - string uri; - string name; - - - // Utils::tokeniseQName(messageName, uri, name); - Utils::rTokeniseString(":", messageName, uri, name); - - - // Find the binding - DataObjectList& messageList = wsdlModel->getList("message"); - for (int i=0; igetCString("name")); - - if (nameMessage.compare(name) == 0) - { - return messageList[i]; - } - } - - return message; - } - - /// - /// Get the soap action - /// - string Wsdl::getSoapAction(DataObjectPtr binding, const string& operationName) - { - - - // Find the binding operation - DataObjectList& bindingOperationList = binding->getList("operation"); - for (int i=0; igetCString("name")); - - if (name.compare(operationName) == 0) - { - // Found the binding operation, return the soap action - string soapAction(bindingOperationList[i]->getCString("operation/soapAction")); - return soapAction; - } - } - - return string(""); - } - - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.h deleted file mode 100644 index 440ecc4c2d..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/Wsdl.h +++ /dev/null @@ -1,132 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_wsdl_h -#define tuscany_sca_model_wsdl_h - -#include -using std::string; - -#include "tuscany/sca/model/WsdlOperation.h" - -#include "commonj/sdo/SDO.h" -using commonj::sdo::DataObjectPtr; - - -namespace tuscany -{ - namespace sca - { - namespace model - { - - /** - * Holds information about a WSDL definition loaded into the runtime. - */ - class Wsdl - { - public: - /** - * Constructor. - * @param wsdlModel The data object representing the WSDL document - * defining a web service. - */ - Wsdl(DataObjectPtr wsdlModel); - - /** - * Destructor. - */ - ~Wsdl(); - - - /** - * Returns the target namespace of the WSDL definitions. - * @return The target namespace. - */ - string getNamespace(void); - - /** - * Find an operation in the WSDL definitions. - * @param serviceName The name of the service on which this - * operation is defined. - * @param portName The name of the port in the service to - * use. - * @param operationName The name of the operation to find. - * @return The operation if found. Exception thrown if not found. - */ - WsdlOperation findOperation(const string& serviceName, - const string& portName, - const string& operationName); - - private: - - /** - * Find a service in the wsdl definition. - * @param serviceName The name of the service. - * @return A data object describing the service if found, otherwise - * a 0 if not found. - */ - DataObjectPtr findService(const string& serviceName); - - /** - * Find a binding in the wsdl definition. - * @param bindingName The name of the binding to find. - * @return A data object describing the binding if found, otherwise - * a 0 if not found. - */ - DataObjectPtr findBinding(const string& bindingName); - - /** - * Find a portType in the wsdl definition. - * @param portTypeName The name of the portType. - * @return A data object describing the portType if found, otherwise - * a 0 if not found. - */ - DataObjectPtr findPortType(const string& portTypeName); - - /** - * Find a message in the wsdl definition. - * @param messageName The name of the message. - * @return A data object describing the message if found, otherwise - * a 0 if not found. - */ - DataObjectPtr findMessage(const string& messageName); - - /** - * The the details of the soap action setting for an operation - * on a soap binding. - * @param binding The data object describing the binding. - * @param operationName The name of the operation. - * @return The soap action setting from the WSDL. - */ - string getSoapAction(DataObjectPtr binding, const string& operationName); - - - /** - * The data object representation of the WSDL document. - */ - DataObjectPtr wsdlModel; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wsdl_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.cpp deleted file mode 100644 index e248f64caf..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.cpp +++ /dev/null @@ -1,57 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Wsdl.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Constructor - WsdlOperation::WsdlOperation(const string& operation, - const string& soapAct, - const string& endpointAddress, - const string& response) - : operationName(operation), - responseName(response), - soapAction(soapAct), - endpoint(endpointAddress) - { - LOGENTRY(1, "WsdlOperation::constructor"); - - - - - LOGEXIT(1, "WsdlOperation::constructor"); - } - - WsdlOperation::~WsdlOperation() - { - } - - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.h deleted file mode 100644 index a77d576a4f..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/model/WsdlOperation.h +++ /dev/null @@ -1,117 +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 11:33:21 $ */ - -#ifndef tuscany_sca_model_wsdlOperation_h -#define tuscany_sca_model_wsdlOperation_h - -#include -using std::string; - - -namespace tuscany -{ - namespace sca - { - namespace model - { - - /** - * Represents a single.,bound WSDL defined operation. - * This class includes information from the soapBinding - * in addition to the WSDL definition of the operation. - */ - class WsdlOperation - { - public: - /** - * Constructor. - * @param operation The name of the operation. - * @param soapAction The soapAction associated with this operation - * in the SOAP binding of the operation. - * @param endpoint The endpoint address of the operation. - * @param responseName The name of the response message. - */ - WsdlOperation(const string& operation, - const string& soapAction, - const string& endpoint, - const string& responseName); - - /** - * Destructor. - */ - ~WsdlOperation(); - - /** - * Return the name of the operation for use when serializing an - * outgoing message. - * @return The name of the element in the request message. - */ - const string& getOperationName() {return operationName;}; - - /** - * Return the name of the response for use when deserializing an - * incoming message. - * @return The name of the element in the response message. - */ - const string& getResponseName() {return responseName;}; - - /** - * The soap action string for this operation. - * @return The soap action. - */ - const string& getSoapAction() {return soapAction;}; - - /** - * Return the endpoint address for the target web service. - * @return The endpoint address. - */ - const string& getEndpoint() {return endpoint;}; - - - - private: - /** - * The name of the operation for use when serializing an - * outgoing message. - */ - string operationName; - - /** - * The name of the response for use when deserializing an - * incoming message. - */ - string responseName; - - /** - * The soap action string for this operation. - */ - string soapAction; - - /** - * The endpoint address of the target web service. - */ - string endpoint; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wsdlOperation_h - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp deleted file mode 100644 index 3ea2212f7c..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp +++ /dev/null @@ -1,43 +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 11:33:21 $ */ - -#include "tuscany/sca/util/DefaultLogWriter.h" -#include -using namespace std; - -namespace tuscany -{ - namespace sca - { - DefaultLogWriter::~DefaultLogWriter() - { - } - - void DefaultLogWriter::log(int level, const char* msg) - { - for (int i=0; i < level; i++) - { - cout << " "; - } - cout << msg < - -#include - -#if defined(WIN32) || defined (_WINDOWS) -#include -#else -#include -#include -#include -#endif - -namespace tuscany -{ - namespace sca - { - File::File(const string& dir, const string& file) - : directory(dir), fileName(file) - { - } - File::~File() - { - } - - - Files::Files(const string& rootDir, const string& pattern, bool subdirectories) - : rootDirectory(rootDir) - { - findFiles(rootDirectory, pattern, subdirectories); - } - - Files::~Files() - { - } - - unsigned int Files::size() - { - return files.size(); - } - - const File& Files::operator[] (unsigned int index) - { - if (size() <= index) - { - throw ServiceRuntimeException("Files::operator[] index out of bounds"); - } - - FILES::iterator iter = files.begin(); - for (unsigned int i=0; id_name; - struct stat statbuf; - if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) - continue; - if (stat(entryName.c_str(), &statbuf) != 0) - { - perror("stat"); - } - else - { - if (S_ISDIR(statbuf.st_mode)) - { - if (subdirectories) - { - findFiles(entryName, pattern, subdirectories); - } - } - else if (S_ISREG(statbuf.st_mode)) - { - string filename = entry->d_name; - - if ((exactMatch && filename == pattern) || - (!exactMatch && - ((filename.find(token1) == 0) - && (filename.length() >= token2.length()) - && (filename.rfind(token2) == (filename.length() - token2.length())) ))) - { - // Add the file to our list - files.push_back(File(rootDir, filename)); - } - } - } - } - closedir(root); -#endif - } - - - } // End namespace sca -} // End namespace tuscany - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/File.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/File.h deleted file mode 100644 index f177401442..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/File.h +++ /dev/null @@ -1,133 +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 11:33:21 $ */ - -#ifndef tuscany_sca_util_file_h -#define tuscany_sca_util_file_h - -#include -using std::string; -#include -using std::vector; - -namespace tuscany -{ - namespace sca - { - /** - * File access methods. Provides platform independent - * access to files. - */ - class File - { - public: - /** - * Constructor. - * @param directory Name of the directory in which this file is located. - * Either / or \ can be used interchangeably for separating directory elements. - * @param fileName Name of the file in the dirctory. - */ - File(const string& directory, const string& fileName); - - /** - * Destructor. - */ - virtual ~File(); - - /** - * Return the directory in which this file is located. - * @return Name of the directory. - */ - const string& getDirectory() const {return directory;} - - /** - * Name of the file. - * @return Name of the file. - */ - const string& getFileName() const {return fileName;} - private: - /** - * Name of the directory. - */ - string directory; - - /** - * Name of the file. - */ - string fileName; - }; - - /** - * Collection of File to provide platform independent access - * to files and directories. - */ - class Files - { - public: - /** - * Constructor which will search a given directory with a pattern and return a - * new instance of this collection class. - * @param rootDirectory The directory in which to search. - * @param pattern A pattern for matching file names. Can include * and ?. - * @param subdirectories Whether subdirectories should be searched too. - */ - Files(const string& rootDirectory, const string& pattern, bool subdirectories = false); - - /** - * Destructor. - */ - virtual ~Files(); - - /** - * Return the number of files found. - * @return The number of files found. - */ - unsigned int size(); - - /** - * Return a File at this position in the collection. - * @param index The index into the collection. - * @return The File at this index in the collection. - */ - const File& operator[] (unsigned int index); - - private: - /** - * Search the given directory and pattern for matching files. - * @param rootDirectory The directory in which to search. - * @param pattern A pattern for matching file names. Can include * and ?. - * @param subdirectories Whether subdirectories should be searched too. - */ - void findFiles(const string& rootDirectory, const string& pattern, bool subdirectories); - - /** - * The top level directory to search. - */ - string rootDirectory; - - typedef vector FILES; - - /** - * Vector of File. - */ - FILES files; - }; - - } // End namespace sca -} // End namespace tuscany -#endif // tuscany_sca_util_file_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.cpp deleted file mode 100644 index 452d185dcd..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.cpp +++ /dev/null @@ -1,119 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Library.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/util/Logging.h" -using namespace osoa::sca; - -namespace tuscany -{ - namespace sca - { - Library::Library() - : hDLL(NULL) - { - } - - Library::Library(const string& libraryName) - : name(libraryName), hDLL(NULL) - { - LOGINFO_1(3, "Library::construcor : %s", name.c_str()); - load(); - } - - Library::Library(const Library& lib) - : name(lib.name), hDLL(NULL) - { - LOGINFO_1(3, "Library::copy constructor : %s", name.c_str()); - if (lib.hDLL) - { - load(); - } - } - - Library& Library::operator=(const Library& lib) - { - LOGINFO_1(3, "Library::operator= : %s", name.c_str()); - if (&lib != this) - { - unload(); - name = lib.name; - load(); - } - return *this; - } - - Library::~Library() - { - LOGINFO_1(3, "Library::destructor: %s", name.c_str()); - unload(); - } - - - void Library::load() - { - LOGINFO_1(3, "Library::load : %s", name.c_str()); - string msg; -#if defined(WIN32) || defined (_WINDOWS) - hDLL = LoadLibrary(name.c_str()); -#else - hDLL = dlopen(name.c_str(), RTLD_NOW); -#endif - if (hDLL == NULL) - { - LOGERROR_1(1, "Library::load: Unable to load library %s", name.c_str()); - msg = "Unable to load dll: " + name; - throw ServiceRuntimeException(msg.c_str()); - } - } - - void Library::unload() - { - if (hDLL != NULL) - { - LOGINFO_1(3, "Library::unload : %s", name.c_str()); -#if defined(WIN32) || defined (_WINDOWS) - FreeLibrary(hDLL); -#else - dlclose(hDLL); -#endif - hDLL = NULL; - } - } - - void* Library::getSymbol(const string& symbol) - { - LOGINFO_1(3, "Library::getSymbol : %s", symbol.c_str()); - if (!hDLL) - { - return 0; - } -#if defined(WIN32) || defined (_WINDOWS) - return GetProcAddress(hDLL, symbol.c_str()); -#else - return dlsym(hDLL, symbol.c_str()); -#endif - } - - } // End namespace sca -} // End namespace tuscany - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.h deleted file mode 100644 index 69b2f5352a..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Library.h +++ /dev/null @@ -1,97 +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 11:33:21 $ */ - -#ifndef tuscany_sca_util_library_h -#define tuscany_sca_util_library_h - - -#if defined(WIN32) || defined (_WINDOWS) -#include -#else -#include -#include -#endif - -#include -using std::string; - -namespace tuscany -{ - namespace sca - { - /** - * Information about shared libraries and methods to - * access these shared libraries. - */ - class Library - { - public: - Library(); - - /** - * Constructor. Will load the library. - * @param libraryName Fully qualified name of the library. - */ - Library(const string& libraryName); - - /** - * Destructor. Will unload the library. - */ - virtual ~Library(); - - Library(const Library& lib); - Library& operator=(const Library& lib); - - /** - * Find an externalized symbol in the library. - * @param symbol The name of the symbol to be found. - * @return The pointer to the symbol if found, otherwise 0. - */ - void* getSymbol(const string& symbol); - private: - /** - * Name of the library. - */ - string name; - - /** - * Handle to the loaded library. - */ -#if defined(WIN32) || defined (_WINDOWS) - HINSTANCE hDLL; -#else - void* hDLL; -#endif - - /** - * Load the library. - */ - void load(); - - /** - * Unload the library, if successfully loaded. - */ - void unload(); - - }; - - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_util_library_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.cpp deleted file mode 100644 index d77d1e4bfd..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.cpp +++ /dev/null @@ -1,32 +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 11:33:21 $ */ - -#include "tuscany/sca/util/LogWriter.h" - -namespace tuscany -{ - namespace sca - { - LogWriter::~LogWriter() - { - } - - } // End namespace sca -} // End namespace tuscany - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.h deleted file mode 100644 index edb07c3684..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/LogWriter.h +++ /dev/null @@ -1,47 +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 11:33:21 $ */ - -#ifndef tuscany_sca_util_logwriter_h -#define tuscany_sca_util_logwriter_h - -#include "osoa/sca/export.h" - -namespace tuscany -{ - namespace sca - { - /** - * Abstract class for extending logging to other destinations. - */ - class SCA_API LogWriter - { - public: - virtual ~LogWriter(); - - /** - * Log a message. - * @param level The level of logging for this message. - * @param msg The message to log. - */ - virtual void log(int level, const char* msg) = 0; - }; - - } // End namespace sca -} // End namespace tuscany -#endif // tuscany_sca_util_logwriter_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.cpp deleted file mode 100644 index ccb7cccd03..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.cpp +++ /dev/null @@ -1,100 +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 11:33:21 $ */ - -#include -#include - -#include "tuscany/sca/util/Logger.h" -#include "tuscany/sca/util/DefaultLogWriter.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - LogWriter* Logger::logWriter = getLogWriter(); - - LogWriter* Logger::getLogWriter() - { - if (logWriter == 0) - { - setLogWriter(0); - } - return logWriter; - } - - void Logger::setLogWriter(LogWriter* writer) - { - if (logWriter != writer) - { - delete logWriter; - } - - if (writer == 0) - { - logWriter = new DefaultLogWriter; - } - else - { - logWriter = writer; - } - } - - int Logger::loggingLevel = setLogging(); - - int Logger::setLogging() - { - char* loggingVar = 0; - loggingVar = getenv("SCA4CPP_LOGGING"); - if (loggingVar == 0) - return 0; - else - return atoi(loggingVar); - } - - void Logger::setLogging(int level) - { - loggingLevel = level; - } - - void Logger::log(int level, const char* msg) - { - if (level <= loggingLevel) - { - logWriter->log(level, msg); - } - } - - void Logger::logArgs(int level, const char* msg, ...) - { - if (level <= loggingLevel) - { - va_list variableArguments; - va_start(variableArguments, msg); - char messageBuffer[1024]; - vsprintf(messageBuffer, msg, variableArguments); - logWriter->log(level, messageBuffer); - va_end(variableArguments); - } - } - - } // End namespace sca -} // End namespace tuscany - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.h deleted file mode 100644 index 8ba934afa5..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logger.h +++ /dev/null @@ -1,89 +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 11:33:21 $ */ - -#ifndef tuscany_sca_util_logger_h -#define tuscany_sca_util_logger_h - -#include "osoa/sca/export.h" -#include "tuscany/sca/util/LogWriter.h" -namespace tuscany -{ - namespace sca - { - /** - * Provide a logging interface. - */ - class Logger { - - public: - /** - * Set the log writer to use. - * @param writer The writer to use for all subsequent logging. - */ - SCA_API static void setLogWriter(LogWriter* writer); - - /** - * Set or reset the logging level. Any message with a higher logging - * level than this value will be filtered (i.e. not shown). - * @param level The level of logging to use for all subsequent logging. - */ - SCA_API static void setLogging(int level); - - /** - * Log a message. - * @param level The log level of this message. - * @param msg The message to be logged. - */ - static void log(int level, const char* msg); - - /** - * Log a message with variable arguments. - * @param level The log level of this message. - * @param msg The message to be logged. Must include template - * characters as described in printf. - * @param ... Variable arguments. - */ - static void logArgs(int level, const char* msg, ...); - - /** - * The currently set logging level - */ - static int loggingLevel; - - private: - /** - * The current log writer. - */ - static LogWriter* logWriter; - - /** - * Get the current log writer. - * @return The current log writer. - */ - static LogWriter* getLogWriter(); - - /** - * Retrieves the logging level set as an environment variable. - */ - static int setLogging(); - }; - - } // End namespace sca -} // End namespace tuscany -#endif // tuscany_sca_util_logger_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logging.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logging.h deleted file mode 100644 index 066f6a5733..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Logging.h +++ /dev/null @@ -1,72 +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 11:33:21 $ */ - -#ifndef tuscany_sca_util_logging_h -#define tuscany_sca_util_logging_h - -#include "tuscany/sca/util/Logger.h" - -#ifdef _DEBUG -#define LOGENTRY(level, methodName) \ -if (Logger::loggingLevel >= level) \ -Logger::log(level, "Entering: " methodName); - -#define LOGEXIT(level, methodName) \ -if (Logger::loggingLevel >= level) \ -Logger::log(level, "Exiting: " methodName); - -#define LOGINFO(level, message) \ -if (Logger::loggingLevel >= level) \ -Logger::log(level, message); - -#define LOGINFO_1(level, message, arg1) \ -if (Logger::loggingLevel >= level) \ -Logger::logArgs(level, message, arg1); - -#define LOGINFO_2(level, message, arg1, arg2) \ -if (Logger::loggingLevel >= level) \ -Logger::logArgs(level, message, arg1, arg2); - -#define LOGERROR(level, message) \ -if (Logger::loggingLevel >= level) \ -Logger::log(level, message); - -#define LOGERROR_1(level, message, arg1) \ -if (Logger::loggingLevel >= level) \ -Logger::logArgs(level, message, arg1); - -#define LOGERROR_2(level, message, arg1, arg2) \ -if (Logger::loggingLevel >= level) \ -Logger::logArgs(level, message, arg1, arg2); -#else // Not DEBUG -#define LOGENTRY(level, methodName) - -#define LOGEXIT(level, methodName) - -#define LOGINFO(level, message) - -#define LOGINFO_1(level, message, arg1) - -#define LOGINFO_2(level, message, arg1, arg2) -#define LOGERROR(level, message) -#define LOGERROR_1(level, message, arg1) -#define LOGERROR_2(level, message, arg1, arg2) - -#endif -#endif // tuscany_sca_util_logging_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Utils.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Utils.cpp deleted file mode 100644 index 7f457e68ed..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/util/Utils.cpp +++ /dev/null @@ -1,212 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace commonj::sdo; -namespace tuscany -{ - namespace sca - { - void Utils::tokeniseUri(const string& uri, string& token1, string& token2) - { - tokeniseString("/", uri, token1, token2); - } - - void Utils::tokeniseQName(const string& qname, string& uri, string& name) - { - tokeniseString("#", qname, uri, name); - if (name == "") - { - name = uri; - uri = ""; - } - } - - void Utils::tokeniseString( - const string& separator, - const string& str, - string& token1, - string& token2) - { - string::size_type sep = str.find(separator); - if (sep != string::npos) - { - token1 = str.substr(0, sep); - if ( (sep+1) < str.length()) - { - token2 = str.substr(sep+1); - } - else - { - token2 = ""; - } - } - else - { - token1 = str; - token2 = ""; - } - } - - void Utils::rTokeniseString( - const string& separator, - const string& str, - string& token1, - string& token2) - { - string::size_type sep = str.rfind(separator); - if (sep != string::npos) - { - token1 = str.substr(0, sep); - if ( (sep+1) < str.length()) - { - token2 = str.substr(sep+1); - } - else - { - token2 = ""; - } - } - else - { - token1 = ""; - token2 = str; - } - } - - ////////////////////////////////////////////////////////////////////////// - // Print a DatObject tree - ////////////////////////////////////////////////////////////////////////// - void Utils::tabs(int inc) - { - for (int ind=0; ind getType(); - tabs(inc); - cout << "DataObject type: " << dataObjectType.getURI()<< "#" << dataObjectType.getName() << endl; - inc++; - - ////////////////////////////////////////////////////////////////////////// - // Iterate over all the properties - ////////////////////////////////////////////////////////////////////////// - PropertyList pl = dataObject->getInstanceProperties(); - for (int i = 0; i < pl.size(); i++) - { - tabs(inc); - cout << "Property: " << pl[i].getName() << endl; - - const Type& propertyType = pl[i].getType(); - - tabs(inc); - cout << "Property Type: " << propertyType.getURI()<< "#" << propertyType.getName() << endl; - - if (dataObject->isSet(pl[i])) - { - - ////////////////////////////////////////////////////////////////////// - // For a many-valued property get the list of values - ////////////////////////////////////////////////////////////////////// - if (pl[i].isMany()) - { - inc++; - DataObjectList& dol = dataObject->getList(pl[i]); - for (int j = 0; j getCString(pl[i]) <getDataObject(pl[i]), inc); - inc--; - } - } - else - { - tabs(inc); - cout<< "Property Value: not set" <getTypes(); - for (int i = 0; i < tl.size(); i++) - { - cout << "Type: " << tl[i].getURI()<< "#" << tl[i].getName() << endl; - PropertyList pl = tl[i].getProperties(); - for (int j = 0; j < pl.size(); j++) - { - cout << "\tProperty: " << pl[j].getName() - << " type: " < -using std::string; -#include "commonj/sdo/SDO.h" - -#include "osoa/sca/export.h" - -namespace tuscany -{ - namespace sca - { - /** - * Utility methods to parse strings and provide debugging information. - */ - class Utils { - - public: - static void tokeniseUri(const string& uri, string& token1, string& token2); - static void tokeniseQName(const string& sdoname, string& uri, string& name); - static void tokeniseString( - const string& separator, - const string& str, - string& token1, - string& token2); - - static void rTokeniseString( - const string& separator, - const string& str, - string& token1, - string& token2); - - SCA_API static void printDO(commonj::sdo::DataObjectPtr dataObject, int increment=0); - SCA_API static void printTypes(commonj::sdo::DataFactoryPtr df); - - private: - static void tabs(int increment=0); - }; - - } // End namespace sca -} // End namespace tuscany -#endif // tuscany_sca_util_utils_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.cpp deleted file mode 100644 index 0b9a4fbd28..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.cpp +++ /dev/null @@ -1,476 +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 11:33:21 $ */ - -#include "SDOStub.h" -#include "commonj/sdo/HelperProvider.h" -#include "osoa/sca/export.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Exceptions.h" -#include "tuscany/sca/util/Utils.h" - - -// For Axis stub code -#include -#include -#include -#include - -using namespace std; - -AXIS_CPP_NAMESPACE_USE - -using namespace commonj::sdo; -using namespace tuscany::sca; - - -namespace tuscany -{ -namespace sca -{ - namespace ws - { - /** Construct an SDOStub using the default HTTP 1.1 transport. - */ - SDOStub::SDOStub() - : Stub(" ", APTHTTP1_1), - m_strEndpoint(""), - m_strTargetNamespace(""), - m_strOperationName(""), - m_strOperationResponseName(""), - m_strSoapAction("") - { - } - - - /** Construct an SDOStub using the default HTTP 1.1 transport - * and set the web service endpoint URI. - * @param endpoint - web service endpoint URI - */ - SDOStub::SDOStub(const char* endpoint) - : Stub(endpoint, APTHTTP1_1), - m_strEndpoint(endpoint), - m_strTargetNamespace(""), - m_strOperationName(""), - m_strOperationResponseName(""), - m_strSoapAction("") - { - } - - - /** Destruct the SDOStub - */ - SDOStub::~SDOStub() - { - } - - /** Set the web service endpoint URI. - * The endpoint is the value of the soap:address element in the WSDL. - * @param endpoint - web service endpoint URI. - */ - void SDOStub::setEndpoint(const char* endpoint) - { - m_strEndpoint = endpoint; - // Stub::setEndPoint - setEndPoint(endpoint); - } - - /** Get the web service endpoint URI. - * @return web service endpoint URI. - */ - const char* SDOStub::getEndpoint() - { - return m_strEndpoint.c_str(); - } - - /** Set the target namespace for elements and operations. - * @param targetNamespace - the target namespace. - */ - void SDOStub::setTargetNamespace(const char* targetNamespace) - { - m_strTargetNamespace = targetNamespace; - } - - /** Get the target namespace. - * @return - target namespace. - */ - const char* SDOStub::getTargetNamesapce() - { - return m_strTargetNamespace.c_str(); - } - - /** Set the name of the operation to invoke. - * @param operationName - operation name - */ - void SDOStub::setOperationName(const char* operationName) - { - m_strOperationName = operationName; - } - - /** Get the operation name. - * @return operation name. - */ - const char* SDOStub::getOperationName() - { - return m_strOperationName.c_str(); - } - - /** Set the name of the element that is returned as the result of a soap method. - * @param operationResponseName - name of the response element. - */ - void SDOStub::setOperationResponseName(const char* operationResponseName) - { - m_strOperationResponseName = operationResponseName; - } - - /** Get the name of the element that is returned as the result of a soap method. - * @return operation response name. - */ - const char* SDOStub::getOperationResponseName() - { - return m_strOperationResponseName.c_str(); - } - - /** Set the SOAPAction header. - * @param soapAction - the soap action. - */ - void SDOStub::setSoapAction(const char* soapAction) - { - m_strSoapAction = soapAction; - } - - /** Get the SoapAction header. - * @return soap action. - */ - const char* SDOStub::getSoapAction() - { - return m_strSoapAction.c_str(); - } - - /** Invoke the operation on the web service. - * @param requestDO - SDO containing the input parameters for the operation. - * @param dataFactory - DataFactory for de/serialzing the SDOs. - * @return DataObjectPtr - SDO containg the response from the web service. - */ - DataObjectPtr SDOStub::invoke(DataObjectPtr requestDO, DataFactoryPtr dataFactory) - { - // SDO return object - DataObjectPtr pReturn; - - // For faults - //const char* pcCmplxFaultName = NULL; - - // Get an XMLHelper - XMLHelperPtr xmlHelper = HelperProvider::getXMLHelper(dataFactory); - - - try - { - // Initialize the call structure for Doc Literal request/response. - if (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER)) - { - return pReturn; // Return if there is a failure - } - - // Set the SoapAction if it is not already set. - if (NULL == m_pCall->getTransportProperty("SOAPAction",false)) - { - m_pCall->setTransportProperty(SOAPACTION_HEADER , m_strSoapAction.c_str()); - } - - // Set the Soap Version. - m_pCall->setSOAPVersion(SOAP_VER_1_1); - - // Set the Operation (operationName and targetNamespace) - m_pCall->setOperation(m_strOperationName.c_str(), m_strTargetNamespace.c_str()); - - //includeSecure(); - //applyUserPreferences(); - - // - // Serialize the DataObject. - // - - // DEBUG - XMLDocumentPtr requestDoc = - xmlHelper->createDocument(requestDO, - m_strTargetNamespace.c_str(), - m_strOperationName.c_str()); - requestDoc->setXMLDeclaration(false); - char *requestXML = xmlHelper->save(requestDoc); - cout << "SDOStub::invoke: Request XML= " << endl; - cout << requestXML << endl; - cout << endl; - // DEBUG - - // Loop through the top level data object, serializing individual properties. - // We cannot simply serialize the request DataObject to an XML string and add - // the XML as an AnyType parameter because Axis will wrap the request with an - // element named for the operationName (Doc Literal/Wrapped), duplicating the - // top-level element. - PropertyList properties = requestDO->getInstanceProperties(); - for (int i=0; i < properties.size() ; i++) - { - Property& property = properties[i]; - const char *propertyName = property.getName(); - - // If the property is not set, don't bother adding it as a parameter. - if (!requestDO->isValid(property)) continue; - - switch (property.getTypeEnum()) - { - // Simple string property - add it as an XSD_STRING parameter. - case Type::StringType: - { - if (!property.isMany()) - { - string strPrefixAndParamName; - const char *namespacePrefix = - m_pCall->getNamespacePrefix(m_strTargetNamespace.c_str()); - strPrefixAndParamName.append(namespacePrefix); - strPrefixAndParamName.append(":"); - strPrefixAndParamName.append(propertyName); - const char *paramValue = requestDO->getCString(i); - m_pCall->addParameter((void *)paramValue, - strPrefixAndParamName.c_str(), - XSD_STRING); - } - } - break; - - // DataObject property. - case Type::DataObjectType: - { - const char *dobXML = NULL; - if (property.isMany()) - { - // Many valued property - get the list. - DataObjectList& dobList = requestDO->getList(property); - for (int j=0; j< dobList.size(); j++) - { - DataObjectPtr dob = dobList[j]; - if (dob != 0) - { - // Create an XML string from the DataObject. - XMLDocumentPtr doc = - xmlHelper->createDocument(dob, - m_strTargetNamespace.c_str(), - propertyName); - doc->setXMLDeclaration(false); - dobXML = xmlHelper->save(doc); - - // DEBUG - cout << "SDOStub::invoke: DataObject \"" << propertyName << "\" as XML:" << endl; - cout << dobXML << endl; - cout << endl; - // DEBUG - - // Add the XML to the call as an AnyType. - AnyType* pAny = new AnyType(); - pAny->_size = 1; - pAny->_array = new char*[1]; - pAny->_array[0] = strdup(dobXML); - m_pCall->addAnyObject(pAny); - } - } - } // if isMany - else - { - // Single valued property. - DataObjectPtr dob = requestDO->getDataObject(property); - if (dob != 0) - { - // Create an XML string from the DataObject. - XMLDocumentPtr doc = - xmlHelper->createDocument(dob, - m_strTargetNamespace.c_str(), - propertyName); - doc->setXMLDeclaration(false); - dobXML = xmlHelper->save(doc); - - // DEBUG - cout << "SDOStub::invoke: DataObject \"" << propertyName << "\" as XML:" << endl; - cout << dobXML << endl; - cout << endl; - // DEBUG - - // Add the XML to the call as an AnyType. - AnyType* pAny = new AnyType(); - pAny->_size = 1; - pAny->_array = new char*[1]; - pAny->_array[0] = strdup(dobXML); - m_pCall->addAnyObject(pAny); - } - } - } - break; - - default: - break; - } - } - - // Invoke the operation. - if (AXIS_SUCCESS == m_pCall->invoke()) - { - // Make sure the response element is what we expect; ie that the element matches - // the operation response name set on the stub and its targetNamespace matches - // the targetNamespace set on the stub. - if (AXIS_SUCCESS == m_pCall->checkMessage(m_strOperationResponseName.c_str(), - m_strTargetNamespace.c_str())) - { - cout << "SDOStub::invoke: Successful call..." << endl; - - // Deserialize the soap response. - string strResponse = getSoapResponse(); - - // DEBUG - cout << "SDOStub::invoke: Response XML= " << endl; - cout << strResponse.c_str() << endl; - cout << endl; - // DEBUG - - // Create an XMLDocument from the soap reponse - XMLDocumentPtr returnDoc = - xmlHelper->load(strResponse.c_str(), m_strTargetNamespace.c_str()); - // Get the root DataObject to return as the result. - pReturn = returnDoc->getRootDataObject(); - // DEBUG - cout << "SDOStub::invoke: Response DataObject= " << endl; - Utils::printDO(pReturn); - cout << endl; - // DEBUG - } - } - else - { - cout << "SDOStub::invoke: checkMessage failed:" << endl; - cout << "SDOStub::invoke: Expected \'" - << m_strOperationResponseName.c_str() - << "\' element with namespace \'" - << m_strTargetNamespace.c_str() - << "\'." - << endl; - } - - - // Invoked the operation successfully - uninitialize the Call object. - m_pCall->unInitialize(); - - } - catch (AxisException& e) - { - // Get the exception code. - int iExceptionCode = e.getExceptionCode(); - - if (AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode) - { - m_pCall->unInitialize(); - throw ServiceRuntimeException("AxisException", ServiceRuntimeException::Error, e.what()); - } - - // Get the details of the SoapFault. - ISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault("Fault", m_strEndpoint.c_str()); - - if (pSoapFault) - { - const char *detail = pSoapFault->getSimpleFaultDetail(); - bool deleteDetail=false; - - if (NULL==detail || 0==strlen(detail)) - { - detail=m_pCall->getFaultAsXMLString(); - - - if (NULL==detail) - { - detail=""; - } - else - { - deleteDetail=true; - } - } - - OtherFaultException ofe(pSoapFault->getFaultcode(), - pSoapFault->getFaultstring(), - pSoapFault->getFaultactor(), - detail, iExceptionCode); - - if (deleteDetail && NULL!=detail) - { - delete [] const_cast(detail); - } - - m_pCall->unInitialize(); - throw ofe; - } - else - { - m_pCall->unInitialize(); - throw ServiceRuntimeException("AxisException", ServiceRuntimeException::Error, e.what()); - } - } - catch(SDORuntimeException sdoE) - { - cout << "SDOStub::invoke: SDORuntimeException: " << endl; - sdoE.PrintSelf(cout); - } - - - return pReturn; - - } - - // Deserialize the soap response from the web service. - string SDOStub::getSoapResponse() - { - // Get the response as an XML string. - AnyType* soapAny = m_pCall->getAnyObject(); - - // The Doc Literal response does not include the top level - // response element if we use getAnyObject - we need to wrap - // the response with the response element. - string strResponse("<"); - strResponse.append(m_strOperationResponseName); - strResponse.append(" xmlns=\""); - strResponse.append(m_strTargetNamespace); - strResponse.append("\">"); - - for (int j=0; j < soapAny->_size ; j++) - { - // DEBUG - cout << "SDOStub::getSoapResponse: soapAny->_array[" << j << "]=" << endl; - cout << soapAny->_array[j] << endl; - cout << endl; - // DEBUG - - strResponse.append(soapAny->_array[j]); - } - - strResponse.append(""); - - return strResponse; - } - - } // end namespace ws -} // end namespace sca -} // end namespace tuscany - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.h deleted file mode 100644 index d5743c9c78..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/SDOStub.h +++ /dev/null @@ -1,143 +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 11:33:21 $ */ - -#if !defined(SDOSTUB_H_INCLUDED) -#define SDOSTUB_H_INCLUDED - -#include "osoa/sca/export.h" -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -#include "commonj/sdo/SDO.h" - -// For stub code -#include -#include -#include - -#include - -AXIS_CPP_NAMESPACE_USE -using namespace commonj::sdo; - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - /** - * The SDOStub class is an Axis Stub that is used to invoke operations on a Web Service - * using SDO objects as input parameters and return values. - */ - class SDOStub : public Stub - { - public: - - /** Construct an SDOStub using the default HTTP 1.1 transport. - */ - SCA_API SDOStub(); - - /** Construct an SDOStub using the default HTTP 1.1 transport - * and set the web service endpoint URI. - * @param endpointURI - web service endpoint URI - */ - SCA_API SDOStub(const char* endpointURI); - - /** Destruct the SDOStub - */ - SCA_API virtual ~SDOStub(); - - /** Set the web service endpoint URI. - * The endpoint is the value of the soap:address element in the WSDL. - * @param endpoint - web service endpoint URI. - */ - SCA_API void setEndpoint(const char* endpoint); - - /** Get the web service endpoint URI. - * @return web service endpoint URI. - */ - SCA_API const char* getEndpoint(); - - /** Set the target namespace for elements and operations. - * @param targetNamespace - the target namespace. - */ - SCA_API void setTargetNamespace(const char* targetNamespace); - - /** Get the target namespace. - * @return - target namespace. - */ - SCA_API const char* getTargetNamesapce(); - - /** Set the name of the operation to invoke. - * @param operationName - operation name - */ - SCA_API void setOperationName(const char* operationName); - - /** Get the operation name. - * @return operation name. - */ - SCA_API const char* getOperationName(); - - /** Set the name of the element that is returned as the result of a soap method. - * @param operationResponseName - name of the response element. - */ - SCA_API void setOperationResponseName(const char* operationResponseName); - - /** Get the name of the element that is returned as the result of a soap method. - * @return operation response name. - */ - SCA_API const char* getOperationResponseName(); - - /** Set the SOAPAction header. - * @param soapAction - the soap action. - */ - SCA_API void setSoapAction(const char* soapAction); - - /** Get the SoapAction header. - * @return soap action. - */ - SCA_API const char* getSoapAction(); - - /** Invoke the operation on the web service. - * @param requestDO - SDO containing the input parameters for the operation. - * @param dataFactory - DataFactory for de/serialzing the SDOs. - * @return DataObjectPtr - SDO containg the response from the web service. - */ - SCA_API DataObjectPtr invoke(DataObjectPtr requestDO, DataFactoryPtr dataFactory); - - private: - // Deserialize the soap response from the web service. - string getSoapResponse(); - - string m_strEndpoint; - string m_strTargetNamespace; - string m_strOperationName; - string m_strOperationResponseName; - string m_strSoapAction; - }; - - } // end namespace ws - } // end namespace sca -} // end namespace tuscany - - -#endif // !defined(SDOSTUB_H_INCLUDED) diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.cpp b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.cpp deleted file mode 100644 index 672a48b697..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.cpp +++ /dev/null @@ -1,116 +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 11:33:21 $ */ - -#include "tuscany/sca/ws/WSServiceWrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/WSBinding.h" -#include "tuscany/sca/model/Wsdl.h" -#include "tuscany/sca/ws/SDOStub.h" -#include "tuscany/sca/util/Utils.h" -using namespace tuscany::sca; -using namespace tuscany::sca::ws; - - - -extern "C" -{ - /// - /// Factory function for creating service wrappers for web services. - /// - SCA_API WSServiceWrapper* WSServiceWrapper_Factory(tuscany::sca::model::WireTarget* target) - { - return new WSServiceWrapper(target); - } -} - - -WSServiceWrapper::WSServiceWrapper(tuscany::sca::model::WireTarget* target) : ExternalServiceWrapper(target) -{ - -} - -WSServiceWrapper::~WSServiceWrapper() -{ - -} - -/// -/// This method will be called when a web service call needs to be made. -/// -void WSServiceWrapper::invoke(Operation& operation) -{ - LOGENTRY(1, "WSServiceWrapper::invoke"); - - const string& operationName = operation.getName(); - - LOGINFO_2(2,"External service: %s, Operation: %s", getTarget()->getName().c_str() , operationName.c_str()); - - - // Check one parameter in/ one parameter out and that they are data objects. - - // Get the data factory for the module (it will already have the types loaded for the xsds) - - // From the external service ws-binding, get the namespace of the wsdl endpoint - ExternalService* externalService = getExternalService(); - WSBinding* binding = (WSBinding *)externalService->getBinding(); - - string portNamespace = binding->getWSDLNamespaceURL(); - - // Lookup the wsdl model from the module, keyed on the namespace - // (the wsdl will have been loaded at startup, based on the information in the config file) - Wsdl* wsdlDefinition = externalService->getContainingModule()->findWsdl(portNamespace); - - // Match the operation in Operation to the operation in the wsdl port type. - WsdlOperation wsdlOperation = wsdlDefinition->findOperation( - binding->getServiceName() - , binding->getPortName() - , operationName); - - // Get the name of the response by navigating from the wsdl operation to the return type - - // Get the name of the SoapAction by navigating from the wsdl. - - // Create an SDOStub - try - { - SDOStub wsStub(wsdlOperation.getEndpoint().c_str()); - wsStub.setTargetNamespace(portNamespace.c_str()); - wsStub.setOperationName(wsdlOperation.getOperationName().c_str()); - wsStub.setOperationResponseName(wsdlOperation.getResponseName().c_str()); - wsStub.setSoapAction(wsdlOperation.getSoapAction().c_str()); - - - // Call the service via the SDOStub - *(DataObjectPtr *)operation.getReturnValue() = wsStub.invoke(*((DataObjectPtr*)operation.getParameter(0)), - externalService->getContainingModule()->getDataFactory()); - - } - catch (AxisException& e) - { - throw ServiceRuntimeException("AxisException", ServiceRuntimeException::Error, e.what()); - } - - - LOGEXIT(1, "WSServiceWrapper::invoke"); - -} diff --git a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h b/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h deleted file mode 100644 index 7ae765950c..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/src/tuscany/sca/ws/WSServiceWrapper.h +++ /dev/null @@ -1,48 +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 11:33:21 $ */ - -#ifndef tuscany_sca_ws_wsservicewrapper_h -#define tuscany_sca_ws_wsservicewrapper_h - -#include "osoa/sca/export.h" - -#include "tuscany/sca/core/ExternalServiceWrapper.h" -#include "tuscany/sca/model/ExternalService.h" -#include "tuscany/sca/core/Operation.h" - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - class SCA_API WSServiceWrapper : public tuscany::sca::ExternalServiceWrapper - { - public: - WSServiceWrapper(tuscany::sca::model::WireTarget* target); - virtual ~WSServiceWrapper(); - - virtual void invoke(Operation& operation); - }; - } // End namespace ws - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_ws_wsservicewrapper_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtbuild b/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtbuild deleted file mode 100644 index ed308ead8d..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtbuild +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtproject b/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtproject deleted file mode 100644 index 48a12e6664..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.cdtproject +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.project b/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.project deleted file mode 100644 index 60a0a75176..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.project +++ /dev/null @@ -1,19 +0,0 @@ - - - tuscany_sca_test_CustomerInfo - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.ccnature - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.settings/org.eclipse.cdt.managedbuilder.core.prefs deleted file mode 100644 index 691a33706a..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Tue Nov 29 15:05:50 GMT 2005 -eclipse.preferences.version=1 -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.180210457=\n\n\n\n\n -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.954607388=\n\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.180210457=\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.954607388=\n\n\n\n -environment/project=\n\n -environment/project/cdt.managedbuild.config.gnu.so.debug.180210457=\n\n -environment/project/cdt.managedbuild.config.gnu.so.release.954607388=\n\n diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfo.h b/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfo.h deleted file mode 100644 index 6372a5a45a..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfo.h +++ /dev/null @@ -1,30 +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 11:33:21 $ */ - -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: - virtual const char* getCustomerInformation(const char* customerID) = 0; - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp b/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp deleted file mode 100644 index 91996bace7..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/CustomerInfo/CustomerInfoImpl.cpp +++ /dev/null @@ -1,79 +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 11:33:21 $ */ - -#include "CustomerInfoImpl.h" -#include -#include -#include "osoa/sca/sca.h" -#include "commonj/sdo/DataObjectInstance.h" -using namespace osoa::sca; -using namespace commonj::sdo; - -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// - -CustomerInfoImpl::CustomerInfoImpl() -{ - cout << "Construct CustomerInfoImpl" << endl; - -} - -CustomerInfoImpl::~CustomerInfoImpl() -{ - cout << "Destroy CustomerInfoImpl" << endl; -} - -////////////////////////////////////////////////////////////////////// -// Other methods -////////////////////////////////////////////////////////////////////// -const char* CustomerInfoImpl::getCustomerInformation(const char* customerID) -{ - cout << "In getCustomerInformation with customerid: " << customerID << endl; - - - - ComponentContext myContext = ComponentContext::getCurrent(); - - DataObjectInstance properties = myContext.getProperties(); - DataObjectInstance props2 = properties; - if (properties) - { - const char* fredVal = properties->getCString("Fred"); - cout << "Property Fred value: " << fredVal <getList("Joe"); - for (int i=0; i - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.cdtproject b/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.cdtproject deleted file mode 100644 index 48a12e6664..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.cdtproject +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.project b/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.project deleted file mode 100644 index 113442bfd8..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.project +++ /dev/null @@ -1,19 +0,0 @@ - - - tuscany_sca_test_MyValue - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.ccnature - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.settings/org.eclipse.cdt.managedbuilder.core.prefs deleted file mode 100644 index 4c585d5bb1..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Tue Nov 29 15:11:39 GMT 2005 -eclipse.preferences.version=1 -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.903609302=\n\n\n\n\n -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.1558347965=\n\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.903609302=\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.1558347965=\n\n\n\n -environment/project=\n\n -environment/project/cdt.managedbuild.config.gnu.so.debug.903609302=\n\n -environment/project/cdt.managedbuild.config.gnu.so.release.1558347965=\n\n diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/Makefile.am b/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/Makefile.am deleted file mode 100644 index c6ea61654b..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -lib_LTLIBRARIES = libMyValue.la - -libMyValue_la_SOURCES = \ -MyValueImpl.cpp \ -MyValueImpl_customerInfo_Proxy.cpp \ -MyValueImpl_MyValueService_Proxy.cpp \ -MyValueImpl_MyValueService_Wrapper.cpp \ -MyValueImpl_stockQuote_Proxy.cpp - -libMyValue_la_LIBADD = - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include \ - -I${AXISCPP_DEPLOY}/include \ - -I../CustomerInfo - -install: \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValue.h b/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValue.h deleted file mode 100644 index 710910f08c..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValue.h +++ /dev/null @@ -1,34 +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 11:33:21 $ */ - -#ifndef MyValue_h -#define MyValue_h -#include -using std::string; -class MyValue -{ -public: - virtual float getMyValue(const char* customerID) = 0; - virtual float getMyValueS(const string& customerID) = 0; - virtual string getCustname(string& customerID) = 0; - virtual const string& getCustnamecs(string customerID) = 0; - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValueImpl.cpp b/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValueImpl.cpp deleted file mode 100644 index 8d45eac6e9..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/MyValue/MyValueImpl.cpp +++ /dev/null @@ -1,159 +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 11:33:21 $ */ - -#include "MyValueImpl.h" -#include "CustomerInfo.h" -#include "StockQuoteService.h" -#include -using namespace std; - -#include "osoa/sca/sca.h" -#include "commonj/sdo/SDO.h" -using namespace osoa::sca; -using namespace commonj::sdo; - -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// - -MyValueImpl::MyValueImpl() -{ - cout << "Construct MyValueImpl" << endl; - -} - -MyValueImpl::~MyValueImpl() -{ - cout << "Destroy MyValueImpl" << endl; -} - -////////////////////////////////////////////////////////////////////// -// Other methods -////////////////////////////////////////////////////////////////////// -float MyValueImpl::getMyValue(const char *customerID) -{ - cout << "In getMyValue with customerid: " << customerID << endl; - - - ComponentContext myContext = ComponentContext::getCurrent(); - CustomerInfo* customerInfoService = (CustomerInfo*)myContext.getService("customerInfo"); - - if (customerInfoService == 0) - { - cout << "unable to find customer info service" << endl; - - return 0.0f; - } - - const char * stock; - try - { - stock = customerInfoService->getCustomerInformation(customerID); - } - catch(const char* x) - { - cout << "Exception caught: " << x <getCustomerInformation(customerID); - cout << "Stock from getServices " << i << " : " << stock <create("http://swanandmokashi.com", "GetQuotes"); - requestDO->setCString("QuoteTicker", stock); - } catch (SDORuntimeException e) - { - cout << e; - } - - // Invoke the service - DataObjectPtr result = stockQuoteService->GetStockQuotes(requestDO); - - float stockPrice = 0.2f; - - try { - float stockPrice = result->getDataObject("GetQuotesResult")->getList("Quote")[0]->getFloat("StockQuote"); - //dataobjectlist& dlist = result->getdataobject("getquotesresult")->getlist("quote"); - //DataObjectList& dlist = result->getDataObject("GetQuotesResult")->getList((unsigned int)0); - //float stockPrice = result->getDataObject("GetQuotesResult")->getList(0u)[0]->getFloat("StockQuote"); - cout << "My stock price is " << stockPrice << endl; - //float stockPrice=((DataObject)result.getDataObject("GetQuotesResult").getList(0).get(0)).getFloat("StockQuote"); - // System.out.println(" [getMyValue] stock quote = "+stockPrice); - } catch (SDORuntimeException e) - { - cout << e; - } - - return stockPrice; - - /* - // Dummy method - - if (!strcmp(stock, "IBM")) - return 99.999f; - else - return 31.05f; - */ - -} - -float MyValueImpl::getMyValueS(const string& customerID) -{ - cout << "In getMyValueS with customerid: " << customerID.c_str() << endl; - return 87.35f; -} - -string MyValueImpl::getCustname(string& customerID) -{ - cout << "In getCustname with customerid: " << customerID.c_str() << endl; - customerID = "FRED"; - cout << "setting customer name to " << customerID.c_str() < -#include "commonj/sdo/SDO.h" -using std::string; -class StockQuoteService -{ -public: - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0; - -}; - -#endif // StockQuoteService_h diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtbuild b/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtbuild deleted file mode 100644 index 73f28e14fd..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtbuild +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtproject b/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtproject deleted file mode 100644 index 48a12e6664..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/src/.cdtproject +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/src/.project b/tags/cpp-stable-20060304/sca/runtime/core/test/src/.project deleted file mode 100644 index 5e5b12e9d8..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/src/.project +++ /dev/null @@ -1,19 +0,0 @@ - - - tuscany_sca_test - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.ccnature - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tags/cpp-stable-20060304/sca/runtime/core/test/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs deleted file mode 100644 index fe629d7d5b..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Tue Nov 29 17:30:33 GMT 2005 -eclipse.preferences.version=1 -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.debug.961609061=\n\n\n\n\n -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.release.278641057=\n\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.debug.961609061=\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.release.278641057=\n\n\n\n -environment/project=\n\n -environment/project/cdt.managedbuild.config.gnu.exe.debug.961609061=\n\n -environment/project/cdt.managedbuild.config.gnu.exe.release.278641057=\n\n diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/src/Makefile.am b/tags/cpp-stable-20060304/sca/runtime/core/test/src/Makefile.am deleted file mode 100644 index 1dfd79aa21..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/src/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -prgbindir=$(prefix)/bin/test -prgbin_PROGRAMS = tuscany_sca_test -SUBDIRS = -AM_CPPFLAGS = $(CPPFLAGS) -tuscany_sca_test_SOURCES = TestSCA.cpp - -tuscany_sca_test_LDADD = -L$(top_builddir)/runtime/core/src -ltuscany_sca \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sca -lxml2 -lstdc++ \ - -L${AXISCPP_DEPLOY}/lib -laxis_client -laxis_clientC - -INCLUDES = -I$(top_builddir)/runtime/core/test/MyValue \ - -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/src/TestSCA.cpp b/tags/cpp-stable-20060304/sca/runtime/core/test/src/TestSCA.cpp deleted file mode 100644 index 0143e32510..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/src/TestSCA.cpp +++ /dev/null @@ -1,77 +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 11:33:21 $ */ - -#include "tuscany/sca/util/Logger.h" -#include "commonj/sdo/Logger.h" -#include "osoa/sca/sca.h" -#include -using namespace osoa::sca; -using namespace tuscany::sca; -#include "MyValue.h" - -int main(int argc, char* argv[]) -{ - tuscany::sca::Logger::setLogging(3); - commonj::sdo::Logger::setLogging(20); - cout << "Start of SCA test" << endl; - - try - { - // Locate a service - ModuleContext myContext = ModuleContext::getCurrent(); - ModuleContext myContext2 = myContext; - - - MyValue* myService = (MyValue*) myContext.locateService("MyValueServiceComponent"); - if (myService == 0) - { - cout << "Unable to find service" << endl; - } - else - { - - try - { - float value = myService->getMyValue("12345"); - cout << "My value is: " << value << endl; - value = myService->getMyValueS("12345"); - cout << "My valueSS is: " << value << endl; - string custid = "fred"; - string name = myService->getCustname(custid); - cout << "Returned string: " << name.c_str() << " custid now: " << custid.c_str() <getCustnamecs(custid); - cout << "Returned string: " << csname.c_str() << " custid now: " << custid.c_str() <getMyValue("999"); - cout << "My value is: " << value << endl; - } - catch (char* x) - { - cout << "Exception caught: " << x << endl; - } - } - cout << "End of SCA test" << endl; - - } - catch (ServiceRuntimeException& ex) - { - cout << ex << endl; - } - return 0; -} diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment b/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment deleted file mode 100644 index f473f59748..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfo.fragment +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - x - 23 - 42 - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType b/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType deleted file mode 100644 index 48651b63fe..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/CustomerInfoImpl.componentType +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType b/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType deleted file mode 100644 index ace4154966..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/MyValueImpl.componentType +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl b/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl deleted file mode 100644 index 4917cde583..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/StockQuoteService.wsdl +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config b/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config deleted file mode 100644 index 7fee074333..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/Tuscany-model.config +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/sca.module b/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/sca.module deleted file mode 100644 index aedaf354e6..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/modules/MyValueServiceModule/sca.module +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - MyValueServiceComponent - - - - - - - - CustomerInfoComponent - StockQuoteService - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/subsystems/SubSystem1/sca.subsystem b/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/subsystems/SubSystem1/sca.subsystem deleted file mode 100644 index 1b32bf8a93..0000000000 --- a/tags/cpp-stable-20060304/sca/runtime/core/test/testSCASystem/subsystems/SubSystem1/sca.subsystem +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.dsw b/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.dsw deleted file mode 100644 index 7df3d3cbe8..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.dsw +++ /dev/null @@ -1,53 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "CalculatorModule"=.\CalculatorModule\CalculatorModule.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "CalculatorSubsystem"=.\CalculatorSubsystem\CalculatorSubsystem.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Client"=.\Client\Client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.ncb b/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.ncb deleted file mode 100644 index fd603e4f04..0000000000 Binary files a/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.ncb and /dev/null differ diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.opt b/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.opt deleted file mode 100644 index c399feabb4..0000000000 Binary files a/tags/cpp-stable-20060304/sca/samples/Calculator/Calculator.opt and /dev/null differ diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtbuild b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtbuild deleted file mode 100644 index ca7fa895f1..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtbuild +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtproject b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtproject deleted file mode 100644 index 48a12e6664..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.cdtproject +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.project b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.project deleted file mode 100644 index fa611e47c3..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.project +++ /dev/null @@ -1,19 +0,0 @@ - - - CalculatorModule - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.ccnature - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.settings/org.eclipse.cdt.managedbuilder.core.prefs deleted file mode 100644 index 415787c073..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ /dev/null @@ -1,6 +0,0 @@ -#Tue Dec 13 10:02:34 GMT 2005 -eclipse.preferences.version=1 -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.749943809=\n\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.749943809=\n\n\n\n -environment/project=\n\n -environment/project/cdt.managedbuild.config.gnu.so.debug.749943809=\n\n diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Calculator.h b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Calculator.h deleted file mode 100644 index 9284178d5f..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Calculator.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -+----------------------------------------------------------------------+ -| (c) Copyright IBM Corporation 2005. | -| All Rights Reserved. | -+----------------------------------------------------------------------+ -| | -| 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. | -+----------------------------------------------------------------------+ -*/ - -#ifndef CALCULATOR_H -#define CALCULATOR_H -class Calculator -{ -public: - virtual float add(float arg1, float arg2) = 0; - virtual float sub(float arg1, float arg2) = 0; - virtual float mul(float arg1, float arg2) = 0; - virtual float div(float arg1, float arg2) = 0; -}; - -#endif - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.componentType b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.componentType deleted file mode 100644 index 2033f431bb..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.componentType +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.cpp b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.cpp deleted file mode 100644 index 96bd363167..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -+----------------------------------------------------------------------+ -| (c) Copyright IBM Corporation 2005. | -| All Rights Reserved. | -+----------------------------------------------------------------------+ -| | -| 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. | -+----------------------------------------------------------------------+ -*/ - -#include "CalculatorImpl.h" - -CalculatorImpl::CalculatorImpl() -{ -} - -CalculatorImpl::~CalculatorImpl() -{ -} - -// Calculator interface -float CalculatorImpl::add(float arg1, float arg2) -{ - float result = arg1 + arg2; - return result; -} - -float CalculatorImpl::sub(float arg1, float arg2) -{ - float result = arg1 - arg2; - return result; -} - -float CalculatorImpl::mul(float arg1, float arg2) -{ - float result = arg1 * arg2; - return result; -} - -float CalculatorImpl::div(float arg1, float arg2) -{ - float result = arg1 / arg2; - return result; -} - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.h b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.h deleted file mode 100644 index 38570aae28..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorImpl.h +++ /dev/null @@ -1,39 +0,0 @@ -/* -+----------------------------------------------------------------------+ -| (c) Copyright IBM Corporation 2005. | -| All Rights Reserved. | -+----------------------------------------------------------------------+ -| | -| 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. | -+----------------------------------------------------------------------+ -*/ - -#ifndef CALCULATORIMPL_H -#define CALCULATORIMPL_H - -#include "Calculator.h" - -class CalculatorImpl : public Calculator -{ -public: - CalculatorImpl(); - virtual ~CalculatorImpl(); - - // Calculator interface - virtual float add(float arg1, float arg2); - virtual float sub(float arg1, float arg2); - virtual float mul(float arg1, float arg2); - virtual float div(float arg1, float arg2); -}; - -#endif - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.dsp b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.dsp deleted file mode 100644 index 43c6bfc044..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.dsp +++ /dev/null @@ -1,138 +0,0 @@ -# Microsoft Developer Studio Project File - Name="CalculatorModule" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=CalculatorModule - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "CalculatorModule.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "CalculatorModule.mak" CFG="CalculatorModule - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "CalculatorModule - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "CalculatorModule - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "CalculatorModule - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CALCULATORMODULE_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CALCULATORMODULE_EXPORTS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 - -!ELSEIF "$(CFG)" == "CalculatorModule - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CALCULATORMODULE_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /I "$(SDO4CPP)/include" /I "$(SCA4CPP)/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CALCULATORMODULE_EXPORTS" /YX /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"$(SDO4CPP)/lib" /libpath:"$(SCA4CPP)/lib" - -!ENDIF - -# Begin Target - -# Name "CalculatorModule - Win32 Release" -# Name "CalculatorModule - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\CalculatorImpl.cpp -# End Source File -# Begin Source File - -SOURCE=.\CalculatorImpl_CalculatorService_Proxy.cpp -# End Source File -# Begin Source File - -SOURCE=.\CalculatorImpl_CalculatorService_Wrapper.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\Calculator.h -# End Source File -# Begin Source File - -SOURCE=.\CalculatorImpl.h -# End Source File -# Begin Source File - -SOURCE=.\CalculatorImpl_CalculatorService_Proxy.h -# End Source File -# Begin Source File - -SOURCE=.\CalculatorImpl_CalculatorService_Wrapper.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;module;componentType;fragment" -# Begin Source File - -SOURCE=.\CalculatorImpl.componentType -# End Source File -# Begin Source File - -SOURCE=.\sca.module -# End Source File -# End Group -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.plg b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.plg deleted file mode 100644 index 33016bffaf..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/CalculatorModule.plg +++ /dev/null @@ -1,39 +0,0 @@ - - -
      -

      Build Log

      -

      ---------------------Configuration: CalculatorModule - Win32 Debug-------------------- -

      -

      Command Lines

      -Creating temporary file "C:\DOCUME~1\winadmin\LOCALS~1\Temp\RSP7D.tmp" with contents -[ -/nologo /MDd /W3 /Gm /GX /ZI /I "D:\Development\tuscany\cpp\sdo/include" /I "D:\Development\tuscany\cpp\sca/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CALCULATORMODULE_EXPORTS" /Fp"Debug/CalculatorModule.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"D:\Development\tuscany\cpp\sca\samples\Calculator\CalculatorModule\CalculatorImpl.cpp" -"D:\Development\tuscany\cpp\sca\samples\Calculator\CalculatorModule\CalculatorImpl_CalculatorService_Proxy.cpp" -"D:\Development\tuscany\cpp\sca\samples\Calculator\CalculatorModule\CalculatorImpl_CalculatorService_Wrapper.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\winadmin\LOCALS~1\Temp\RSP7D.tmp" -Creating temporary file "C:\DOCUME~1\winadmin\LOCALS~1\Temp\RSP7E.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sca.lib tuscany_sdo.lib /nologo /dll /incremental:yes /pdb:"Debug/CalculatorModule.pdb" /debug /machine:I386 /out:"Debug/CalculatorModule.dll" /implib:"Debug/CalculatorModule.lib" /pdbtype:sept /libpath:"D:\Development\tuscany\cpp\sdo/lib" /libpath:"D:\Development\tuscany\cpp\sca/lib" -.\Debug\CalculatorImpl.obj -.\Debug\CalculatorImpl_CalculatorService_Proxy.obj -.\Debug\CalculatorImpl_CalculatorService_Wrapper.obj -] -Creating command line "link.exe @C:\DOCUME~1\winadmin\LOCALS~1\Temp\RSP7E.tmp" -

      Output Window

      -Compiling... -CalculatorImpl.cpp -CalculatorImpl_CalculatorService_Proxy.cpp -CalculatorImpl_CalculatorService_Wrapper.cpp -Linking... - Creating library Debug/CalculatorModule.lib and object Debug/CalculatorModule.exp - - - -

      Results

      -CalculatorModule.dll - 0 error(s), 0 warning(s) -
      - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/makefile b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/makefile deleted file mode 100644 index 1e7f19fce8..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/makefile +++ /dev/null @@ -1,43 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ROOT := .. - --include $(ROOT)/makefile.init - -RM := rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include $(SUBDIRS:%=%/subdir.mk) --include objects.mk -ifneq ($(strip $(DEPS)),) --include $(DEPS) -endif - --include $(ROOT)/makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables - -# All Target -all: libCalculatorModule.so - -# Tool invocations -libCalculatorModule.so: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: GCC C++ Linker' - @echo g++ -L${SCA4CPP}/lib -shared -olibCalculatorModule.so $(OBJS) $(USER_OBJS) $(LIBS) - @g++ -L${SCA4CPP}/lib -shared -olibCalculatorModule.so $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(OBJS)$(DEPS)$(LIBRARIES) libCalculatorModule.so - -@echo ' ' - -.PHONY: all clean dependents -.SECONDARY: - --include $(ROOT)/makefile.targets diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/objects.mk b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/objects.mk deleted file mode 100644 index fbdb88403a..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/objects.mk +++ /dev/null @@ -1,7 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -LIBS := -ltuscany_sca - -USER_OBJS := \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/sources.mk b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/sources.mk deleted file mode 100644 index 8f0795952f..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/sources.mk +++ /dev/null @@ -1,20 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -C_UPPER_SRCS := -CPP_SRCS := -O_SRCS := -ASM_SRCS := -S_SRCS := -CXX_SRCS := -CC_SRCS := -OBJ_SRCS := -OBJS := -DEPS := -LIBRARIES := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/subdir.mk b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/subdir.mk deleted file mode 100644 index dd98e3ddc6..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/Debug/subdir.mk +++ /dev/null @@ -1,35 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -CPP_SRCS += \ -$(ROOT)/CalculatorImpl.cpp \ -$(ROOT)/CalculatorImpl_CalculatorService_Proxy.cpp \ -$(ROOT)/CalculatorImpl_CalculatorService_Wrapper.cpp - -OBJS += \ -./CalculatorImpl.o \ -./CalculatorImpl_CalculatorService_Proxy.o \ -./CalculatorImpl_CalculatorService_Wrapper.o - -DEPS += \ -${addprefix ./, \ -CalculatorImpl.d \ -CalculatorImpl_CalculatorService_Proxy.d \ -CalculatorImpl_CalculatorService_Wrapper.d \ -} - - -# Each subdirectory must supply rules for building sources it contributes -%.o: $(ROOT)/%.cpp - @echo 'Building file: $<' - @echo 'Invoking: GCC C++ Compiler' - @echo g++ -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -O0 -g3 -Wall -c -fmessage-length=0 -o$@ $< - @g++ -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -O0 -g3 -Wall -c -fmessage-length=0 -o$@ $< && \ - echo -n $(@:%.o=%.d) $(dir $@) > $(@:%.o=%.d) && \ - g++ -MM -MG -P -w -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -O0 -g3 -Wall -c -fmessage-length=0 $< >> $(@:%.o=%.d) - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module deleted file mode 100644 index c000e57411..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module.lin b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module.lin deleted file mode 100644 index 2298b5910f..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorModule/sca.module.lin +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/CalculatorSubsystem.dsp b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/CalculatorSubsystem.dsp deleted file mode 100644 index ed7ceef2a4..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/CalculatorSubsystem.dsp +++ /dev/null @@ -1,67 +0,0 @@ -# Microsoft Developer Studio Project File - Name="CalculatorSubsystem" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Generic Project" 0x010a - -CFG=CalculatorSubsystem - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "CalculatorSubsystem.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "CalculatorSubsystem.mak" CFG="CalculatorSubsystem - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "CalculatorSubsystem - Win32 Release" (based on "Win32 (x86) Generic Project") -!MESSAGE "CalculatorSubsystem - Win32 Debug" (based on "Win32 (x86) Generic Project") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -MTL=midl.exe - -!IF "$(CFG)" == "CalculatorSubsystem - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" - -!ELSEIF "$(CFG)" == "CalculatorSubsystem - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" - -!ENDIF - -# Begin Target - -# Name "CalculatorSubsystem - Win32 Release" -# Name "CalculatorSubsystem - Win32 Debug" -# Begin Source File - -SOURCE=.\sca.subsystem -# End Source File -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/sca.subsystem b/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/sca.subsystem deleted file mode 100644 index 4b9fdd1511..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/CalculatorSubsystem/sca.subsystem +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtbuild b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtbuild deleted file mode 100644 index 68fe431c95..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtbuild +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtproject b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtproject deleted file mode 100644 index 48a12e6664..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.cdtproject +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.project b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.project deleted file mode 100644 index 20d79410f9..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.project +++ /dev/null @@ -1,19 +0,0 @@ - - - CalculatorClient - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.ccnature - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.settings/org.eclipse.cdt.managedbuilder.core.prefs deleted file mode 100644 index 64ec20058b..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ /dev/null @@ -1,6 +0,0 @@ -#Tue Dec 13 10:20:35 GMT 2005 -eclipse.preferences.version=1 -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.debug.1274891422=\n\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.debug.1274891422=\n\n\n\n -environment/project=\n\n -environment/project/cdt.managedbuild.config.gnu.exe.debug.1274891422=\n\n diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calc.cpp b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calc.cpp deleted file mode 100644 index 8322532617..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calc.cpp +++ /dev/null @@ -1,144 +0,0 @@ -/* -+----------------------------------------------------------------------+ -| (c) Copyright IBM Corporation 2005. | -| All Rights Reserved. | -+----------------------------------------------------------------------+ -| | -| 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. | -+----------------------------------------------------------------------+ -*/ - -#include "Calculator.h" -#include "osoa/sca/sca.h" -#include -#include - -using namespace osoa::sca; -using namespace std; - -void usage(); -bool IsNumber(const char *p); - -int main(int argc, char* argv[]) -{ - const char *operation; - float arg1 = 0; - float arg2 = 0; - - if (argc == 4) - { - operation = argv[1]; - - if (!IsNumber(argv[2])) - { - cout << "Calc.exe: Argument 1 is not a number" << endl; - usage(); - } - else - { - arg1 = atof(argv[2]); - } - - if (!IsNumber(argv[3])) - { - cout << "Calc.exe: Argument 2 is not a number" << endl; - usage(); - } - else - { - arg2 = atof(argv[3]); - } - } - else - { - usage(); - } - - try - { - - // Set the default module environment variable: / - //char *defaultModule = "SCA4CPP_DEFAULT_MODULE=SubSystem2/CalculatorServiceModule"; - //putenv(defaultModule); - - // Locate a service - ModuleContext myContext = ModuleContext::getCurrent(); - Calculator *calcService = (Calculator*) myContext.locateService("CalculatorServiceComponent"); - if (calcService == 0) - { - cout << "Calc.exe: Unable to find Calculator service" << endl; - } - else - { - try - { - float result = 0; - if (strcmp(operation, "add") == 0) - { - result = calcService->add(arg1, arg2); - cout << "Calculator: add(" << arg1 << "," << arg2 << ") = " << result << endl; - } - else - if (strcmp(operation, "sub") == 0) - { - result = calcService->sub(arg1, arg2); - cout << "Calculator: sub(" << arg1 << "," << arg2 << ") = " << result << endl; - } - else - if (strcmp(operation, "mul") == 0) - { - result = calcService->mul(arg1, arg2); - cout << "Calculator: mul(" << arg1 << "," << arg2 << ") = " << result << endl; - } - else - if (strcmp(operation, "div") == 0) - { - result = calcService->div(arg1, arg2); - cout << "Calculator: div(" << arg1 << "," << arg2 << ") = " << result << endl; - } - else - { - cout << "Calculator: Unrecognized operation: " << operation << endl; - } - } - catch (char* x) - { - cout << "Calc.exe: exception caught: " << x << endl; - } - } - - } - catch (ServiceRuntimeException& ex) - { - cout << ex << endl; - } - return 0; -} - -void usage() -{ - cout << "Usage: calc add|sub|mul|div arg1 arg2" << endl; - exit(1); -} - -bool IsNumber (const char *p) -{ - int len = strlen(p); - for (int i = 0; i < len; i++) - { - if (!isdigit (p[i])) - { - return false; - } - } - return true; -} diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calculator.h b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calculator.h deleted file mode 100644 index 9284178d5f..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Calculator.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -+----------------------------------------------------------------------+ -| (c) Copyright IBM Corporation 2005. | -| All Rights Reserved. | -+----------------------------------------------------------------------+ -| | -| 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. | -+----------------------------------------------------------------------+ -*/ - -#ifndef CALCULATOR_H -#define CALCULATOR_H -class Calculator -{ -public: - virtual float add(float arg1, float arg2) = 0; - virtual float sub(float arg1, float arg2) = 0; - virtual float mul(float arg1, float arg2) = 0; - virtual float div(float arg1, float arg2) = 0; -}; - -#endif - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.dsp b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.dsp deleted file mode 100644 index 75a19ae815..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.dsp +++ /dev/null @@ -1,108 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Client - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "Client.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "Client.mak" CFG="Client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "Client - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "Client - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "Client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MD /W3 /Gm /GX /ZI /Od /I "$(SDO4CPP)/include" /I "$(SCA4CPP)/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib tuscany_sca.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"$(SDO4CPP)/lib" /libpath:"$(SCA4CPP)/lib" - -!ENDIF - -# Begin Target - -# Name "Client - Win32 Release" -# Name "Client - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\Calc.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\Calculator.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# Begin Source File - -SOURCE=.\readme.txt -# End Source File -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.plg b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.plg deleted file mode 100644 index 0f33cc8711..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Client.plg +++ /dev/null @@ -1,16 +0,0 @@ - - -
      -

      Build Log

      -

      ---------------------Configuration: Client - Win32 Debug-------------------- -

      -

      Command Lines

      - - - -

      Results

      -Client.exe - 0 error(s), 0 warning(s) -
      - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/makefile b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/makefile deleted file mode 100644 index 4fed2ace08..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/makefile +++ /dev/null @@ -1,43 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ROOT := .. - --include $(ROOT)/makefile.init - -RM := rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include $(SUBDIRS:%=%/subdir.mk) --include objects.mk -ifneq ($(strip $(DEPS)),) --include $(DEPS) -endif - --include $(ROOT)/makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables - -# All Target -all: CalculatorClient - -# Tool invocations -CalculatorClient: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: GCC C++ Linker' - @echo g++ -L${SCA4CPP}/lib -L${SDO4CPP}/lib -L${AXISCPP_DEPLOY}/lib -oCalculatorClient $(OBJS) $(USER_OBJS) $(LIBS) - @g++ -L${SCA4CPP}/lib -L${SDO4CPP}/lib -L${AXISCPP_DEPLOY}/lib -oCalculatorClient $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(OBJS)$(DEPS)$(EXECUTABLES) CalculatorClient - -@echo ' ' - -.PHONY: all clean dependents -.SECONDARY: - --include $(ROOT)/makefile.targets diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/objects.mk b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/objects.mk deleted file mode 100644 index a6aa648eba..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/objects.mk +++ /dev/null @@ -1,7 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -LIBS := -ltuscany_sca -ltuscany_sdo -lxml2 -laxis_clientC -laxis_client - -USER_OBJS := \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/sources.mk b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/sources.mk deleted file mode 100644 index 3c384d3f72..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/sources.mk +++ /dev/null @@ -1,20 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -C_UPPER_SRCS := -CPP_SRCS := -O_SRCS := -ASM_SRCS := -S_SRCS := -CXX_SRCS := -CC_SRCS := -OBJ_SRCS := -OBJS := -DEPS := -EXECUTABLES := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -. \ - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/subdir.mk b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/subdir.mk deleted file mode 100644 index 3328b2862f..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/Debug/subdir.mk +++ /dev/null @@ -1,29 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -CPP_SRCS += \ -$(ROOT)/Calc.cpp - -OBJS += \ -./Calc.o - -DEPS += \ -${addprefix ./, \ -Calc.d \ -} - - -# Each subdirectory must supply rules for building sources it contributes -%.o: $(ROOT)/%.cpp - @echo 'Building file: $<' - @echo 'Invoking: GCC C++ Compiler' - @echo g++ -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -I${SCA4CPP_HOME}/samples/Calculator/CalculatorModule -O0 -g3 -Wall -c -fmessage-length=0 -o$@ $< - @g++ -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -I${SCA4CPP_HOME}/samples/Calculator/CalculatorModule -O0 -g3 -Wall -c -fmessage-length=0 -o$@ $< && \ - echo -n $(@:%.o=%.d) $(dir $@) > $(@:%.o=%.d) && \ - g++ -MM -MG -P -w -D_DEBUG -I${SCA4CPP}/include -I${SDO4CPP}/include -I${SCA4CPP_HOME}/samples/Calculator/CalculatorModule -O0 -g3 -Wall -c -fmessage-length=0 $< >> $(@:%.o=%.d) - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/readme.txt b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/readme.txt deleted file mode 100644 index 615f1533b1..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/readme.txt +++ /dev/null @@ -1,53 +0,0 @@ -Tuscany SCA for C++ Samples - Calculator Sample -=============================================== - -This is a very simple sample to show how an SCA module with a single component -can be built and called from an executable. - -There are three sub projects in this workspace: - - CalculatorModule - This contains the source code and SCA artifacts for the SCA module. This - is the module that will be deployed into the SCA runtime. - - CalculatorSubsystem - This contains the sca.subsystem file which describes a subsystem to the - SCA runtime. - - Client - An example client which will call the service exposed by the single component - in the CalculatorModule. - - -Build instructions ------------------- - -1) Build the SCA module. - - Set CalculatorModule project as the active project. - Right click->Set as active project - - - Run the SCA generation tool to create the proxy and wrapper classes. - Either Tools->SCA Gen if you have added SCA Gen as an external tool - Or run from the command line: - scagen -dir -output - where the projectDirectory is the directory with the sca.module file. - - - Rebuild All - Build->Rebuild All - -2) Package and deploy the SCA module - - There is a script file in the sca/samples/Calculator directory which will - copy across all the files needed for deployment to the Tuscany runtime. - On a command line run pack_deploy.cmd - As a default, the sample will be copied to sca/samples/runtime directory - Both the SCA module and the subsystem will be copied. - -3) Build the client - - Set the Client project as the active project. - Right click->Set as active project - - - Rebuild All - Build->Rebuild All - -4) Run the client - - Use the command file in the sca/samples/Calculator/Client directory to run the - client. This command file will set the SCA environment variables before running - the client. For example, - runclient add 4 9 diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/runclient.cmd b/tags/cpp-stable-20060304/sca/samples/Calculator/Client/runclient.cmd deleted file mode 100644 index 8aa6f24f65..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/Client/runclient.cmd +++ /dev/null @@ -1,14 +0,0 @@ -@echo off -rem Runs the client after setting the SCA environment variables to use the -rem CalculatorSubsystem -setlocal -set SCA4CPP_SYSTEM_ROOT=%~d0%~p0\..\..\runtime - -rem Only need to specify the subsystem (and not the moduleComponent as well) because -rem there is only one moduleComponent in the subsystem - it is a very simple sample. -set SCA4CPP_DEFAULT_MODULE=CalculatorSubsystem - -rem Run the client -%~d0%~p0\debug\Client.exe %* - -endlocal \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/build.sh b/tags/cpp-stable-20060304/sca/samples/Calculator/build.sh deleted file mode 100755 index 3e2dbcb0bc..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/build.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh - -# 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. - -APFULLDIR=`pwd` - -export SCA4CPP_HOME="$APFULLDIR/../../" - -if [ x$SCA4CPP = x ]; then -export SCA4CPP="$SCA4CPP_HOME" -fi -echo "Using SCA installed at $SCA4CPP" - -if [ x$AXISCPP_DEPLOY = x ]; then -echo "AXISCPP_DEPLOY not set" -exit; -fi -echo "Using Axis C++ installed at $AXISCPP_DEPLOY" - -if [ x$XERCES_DEPLOY = x ]; then -echo "XERCES_DEPLOY not set" -exit; -fi -echo "Using Xerces C++ installed at $XERCES_DEPLOY" - -if [ x$SDO4CPP = x ]; then -echo "SDO4CPP not set" -export SDO4CPP=$SCA4CPP_HOME/../sdo -fi -echo "Using SDO installed at $SDO4CPP" - -TEST_ROOT=$APFULLDIR - -cd $SCA4CPP/bin -./scagen.sh -dir $TEST_ROOT/CalculatorModule -output $TEST_ROOT/CalculatorModule -cd $TEST_ROOT/CalculatorModule/Debug -make clean -make - -cd $TEST_ROOT/Client/Debug -make clean -make - -TEST_SYSTEM=$TEST_ROOT/../runtime - -mkdir -p $TEST_SYSTEM/modules/CalculatorModule -mkdir -p $TEST_SYSTEM/subsystems/CalculatorSubsystem - -cp $TEST_ROOT/CalculatorModule/sca.module.lin $TEST_SYSTEM/modules/CalculatorModule/sca.module -cp $TEST_ROOT/CalculatorModule/*.componentType $TEST_SYSTEM/modules/CalculatorModule -cp $TEST_ROOT/CalculatorModule/Calculator.h $TEST_SYSTEM/modules/CalculatorModule -cp $TEST_ROOT/CalculatorModule/CalculatorImpl.h $TEST_SYSTEM/modules/CalculatorModule -cp $TEST_ROOT/CalculatorModule/Debug/libCalculatorModule.so $TEST_SYSTEM/modules/CalculatorModule -cp $TEST_ROOT/CalculatorSubsystem/sca.subsystem $TEST_SYSTEM/subsystems/CalculatorSubsystem - -export LD_LIBRARY_PATH=$SCA4CPP/lib:$SDO4CPP/lib:$LD_LIBRARY_PATH:$AXISCPP_DEPLOY/lib:$XERCES_DEPLOY/lib - -export TUSCANY_SCACPP=$SCA4CPP -export TUSCANY_SCACPP_SYSTEM_ROOT=$TEST_SYSTEM -export TUSCANY_SCACPP_DEFAULT_MODULE=CalculatorSubsystem - -cd $TEST_ROOT/Client -Debug/CalculatorClient add 4 9 diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/pack_deploy.cmd b/tags/cpp-stable-20060304/sca/samples/Calculator/pack_deploy.cmd deleted file mode 100644 index eed6af8411..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/pack_deploy.cmd +++ /dev/null @@ -1,27 +0,0 @@ -@echo off -rem Will copy the correct files from the source tree for packaging and deployment of the -rem SCA sample. -setlocal -set sourcePath=%~d0%~p0 -if . == %1. ( -set destinationPath=%sourcePath%..\runtime -) ELSE ( -set destinationPath=%1 -) - -mkdir %destinationPath%\modules -mkdir %destinationPath%\modules\CalculatorModule -copy %sourcePath%\CalculatorModule\*.componentType %destinationPath%\modules\CalculatorModule -copy %sourcePath%\CalculatorModule\sca.module %destinationPath%\modules\CalculatorModule -copy %sourcePath%\CalculatorModule\Calculator.h %destinationPath%\modules\CalculatorModule -copy %sourcePath%\CalculatorModule\CalculatorImpl.h %destinationPath%\modules\CalculatorModule - -copy %sourcePath%\CalculatorModule\debug\CalculatorModule.dll %destinationPath%\modules\CalculatorModule - - -mkdir %destinationPath%\subsystems -mkdir %destinationPath%\subsystems\CalculatorSubsystem -copy %sourcePath%\CalculatorSubsystem\sca.subsystem %destinationPath%\subsystems\CalculatorSubsystem - - -endlocal \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/samples/Calculator/runclient.sh b/tags/cpp-stable-20060304/sca/samples/Calculator/runclient.sh deleted file mode 100755 index b16ec76414..0000000000 --- a/tags/cpp-stable-20060304/sca/samples/Calculator/runclient.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh - -# 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. - -APFULLDIR=`pwd` -export SCA4CPP_HOME="$APFULLDIR/../../" - -if [ x$SCA4CPP = x ]; then -export SCA4CPP="$SCA4CPP_HOME" -fi -echo "Using SCA installed at $SCA4CPP" - -if [ x$AXISCPP_DEPLOY = x ]; then -echo "AXISCPP_DEPLOY not set" -exit; -fi -echo "Using Axis C++ installed at $AXISCPP_DEPLOY" - -if [ x$XERCES_DEPLOY = x ]; then -echo "XERCES_DEPLOY not set" -exit; -fi -echo "Using Xerces C++ installed at $XERCES_DEPLOY" - -if [ x$SDO4CPP = x ]; then -echo "SDO4CPP not set" -export SDO4CPP=$SCA4CPP_HOME/../sdo -fi -echo "Using SDO installed at $SDO4CPP" - -TEST_ROOT=$APFULLDIR -TEST_SYSTEM=$TEST_ROOT/../runtime - -export LD_LIBRARY_PATH=$SCA4CPP/lib:$SDO4CPP/lib:$LD_LIBRARY_PATH:$AXISCPP_DEPLOY/lib:$XERCES_DEPLOY/lib - -export TUSCANY_SCACPP=$SCA4CPP -export TUSCANY_SCACPP_SYSTEM_ROOT=$TEST_SYSTEM -export TUSCANY_SCACPP_DEFAULT_MODULE=CalculatorSubsystem - -cd $TEST_ROOT/Client -Debug/CalculatorClient add 4 9 diff --git a/tags/cpp-stable-20060304/sca/scatest.sh b/tags/cpp-stable-20060304/sca/scatest.sh deleted file mode 100755 index e5feeda1f0..0000000000 --- a/tags/cpp-stable-20060304/sca/scatest.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh - -# 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. - - -APFULLDIR=`pwd` - -export SCA4CPP_HOME="$APFULLDIR" -if [ x$SCA4CPP = x ]; then -export TUSCANY_SCACPP="$SCA4CPP_HOME" -fi -echo "Using SCA installed at $SCA4CPP_HOME" - -if [ x$AXISCPP_DEPLOY = x ]; then -echo "AXISCPP_DEPLOY not set" -exit; -fi -echo "Using Axis C++ installed at $AXISCPP_DEPLOY" - -if [ x$XERCES_DEPLOY = x ]; then -echo "XERCES_DEPLOY not set" -exit; -fi -echo "Using Xerces C++ installed at $XERCES_DEPLOY" - -if [ x$TUSCANY_SDOCPP = x ]; then -echo "TUSCANY_SDOCPP not set"exit; -fi -echo "Using SDO installed at $TUSCANY_SDOCPP" - -TEST_ROOT=$SCA4CPP_HOME/runtime/core/test - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$LD_LIBRARY_PATH:$AXISCPP_DEPLOY/lib:$XERCES_DEPLOY/lib - -export TUSCANY_SCACPP_SYSTEM_ROOT=$TEST_ROOT/testSCASystem -export TUSCANY_SCACPP_DEFAULT_MODULE=SubSystem1 - -cd $TUSCANY_SCACPP/bin/test -./tuscany_sca_test diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/build.xml b/tags/cpp-stable-20060304/sca/tools/scagen/build.xml deleted file mode 100644 index 5207b6cc79..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/build.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SCA for C++ Tools]]> - - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-frame.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-frame.html deleted file mode 100644 index 1eb0408cef..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-frame.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - -All Classes (SCA for C++ Tools) - - - - - - - - - - -All Classes -
      - - - - - -
      BodyPart -
      -CParsingTool -
      -ComponentDomNodeHandler -
      -ComponentTypeFileHandler -
      -Configuration -
      -DirectoryScanner -
      -DirectoryTree -
      -DomHandler -
      -DomNodeHandler -
      -FileActor -
      -FilePart -
      -GenericDomNodeHandler -
      -Headers -
      -InputCppSourceCode -
      -LittleClass -
      -MethodPart -
      -ModuleOrFragmentFileHandler -
      -Options -
      -Parameter -
      -ParsingException -
      -PrototypePart -
      -ReferenceDomNodeHandler -
      -Scagen -
      -ServiceDomNodeHandler -
      -ServicesGenerator -
      -Signature -
      -Utils -
      -XMLFileActor -
      -
      - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-noframe.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-noframe.html deleted file mode 100644 index fdbfa13e1c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/allclasses-noframe.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - -All Classes (SCA for C++ Tools) - - - - - - - - - - -All Classes -
      - - - - - -
      BodyPart -
      -CParsingTool -
      -ComponentDomNodeHandler -
      -ComponentTypeFileHandler -
      -Configuration -
      -DirectoryScanner -
      -DirectoryTree -
      -DomHandler -
      -DomNodeHandler -
      -FileActor -
      -FilePart -
      -GenericDomNodeHandler -
      -Headers -
      -InputCppSourceCode -
      -LittleClass -
      -MethodPart -
      -ModuleOrFragmentFileHandler -
      -Options -
      -Parameter -
      -ParsingException -
      -PrototypePart -
      -ReferenceDomNodeHandler -
      -Scagen -
      -ServiceDomNodeHandler -
      -ServicesGenerator -
      -Signature -
      -Utils -
      -XMLFileActor -
      -
      - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/constant-values.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/constant-values.html deleted file mode 100644 index e9b450cd20..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/constant-values.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - -Constant Field Values (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      -
      -

      -Constant Field Values

      -
      -
      -Contents - - - - - - -
      -org.apache.*
      - -

      - - - - - - - - - - - - - - - - - - - - - - -
      org.apache.tuscany.sca.cpp.tools.common.BodyPart
      -public static final intCATCH2
      -public static final intRETURN1
      -public static final intTRAILING0
      - -

      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      org.apache.tuscany.sca.cpp.tools.common.FilePart
      -public static final intBEGINSCOPE4
      -public static final intCLASSATTRIBUTE9
      -public static final intCOMMENT1
      -public static final intDIRECTIVE6
      -public static final intENDSCOPE5
      -public static final intENUM10
      -public static final intFIELD3
      -public static final intMACRO8
      -public static final intMETHOD2
      -public static final intPROTOTYPE11
      -public static final intTYPEDEF12
      -public static final intUNKNOWN0
      -public static final intWHITESPACE7
      - -

      - -

      - - - - - - - - - - - - -
      org.apache.tuscany.sca.cpp.tools.common.Utils
      -public static final java.lang.Stringwhitespace" \t\r\n"
      - -

      - -

      - - - - - - - - - - - - -
      org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
      -public static final intELEMENT1
      - -

      - -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/deprecated-list.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/deprecated-list.html deleted file mode 100644 index 9063a7fff9..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/deprecated-list.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Deprecated List (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Deprecated API

      -
      -
      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/help-doc.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/help-doc.html deleted file mode 100644 index 5a4302b221..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/help-doc.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - -API Help (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -How This API Document Is Organized

      -
      -This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

      -Overview

      -
      - -

      -The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

      -

      -Package

      -
      - -

      -Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

        -
      • Interfaces (italic)
      • Classes
      • Exceptions
      • Errors
      -
      -

      -Class/Interface

      -
      - -

      -Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

        -
      • Class inheritance diagram
      • Direct Subclasses
      • All Known Subinterfaces
      • All Known Implementing Classes
      • Class/interface declaration
      • Class/interface description -

        -

      • Nested Class Summary
      • Field Summary
      • Constructor Summary
      • Method Summary -

        -

      • Field Detail
      • Constructor Detail
      • Method Detail
      -Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
      -

      -Use

      -
      -Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
      -

      -Tree (Class Hierarchy)

      -
      -There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
        -
      • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
      • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
      -
      -

      -Deprecated API

      -
      -The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
      -

      -Index

      -
      -The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
      -

      -Prev/Next

      -These links take you to the next or previous class, interface, package, or related page.

      -Frames/No Frames

      -These links show and hide the HTML frames. All pages are available with or without frames. -

      -

      -Serialized Form

      -Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. -

      - - -This help file applies to API documentation generated using the standard doclet. - -
      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index-all.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index-all.html deleted file mode 100644 index dab7cf9cd3..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index-all.html +++ /dev/null @@ -1,701 +0,0 @@ - - - - - - -Index (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - - -A B C D E F G H I L M O P Q R S T U V W X
      -

      -A

      -
      -
      actOnFile(File, File, int) - -Method in interface org.apache.tuscany.sca.cpp.tools.common.FileActor -
        -
      actOnFile(File, File, int) - -Method in class org.apache.tuscany.sca.cpp.tools.common.Headers -
        -
      actOnFile(File, File, int) - -Method in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor -
      This method is the main FileActor method -
      -
      -

      -B

      -
      -
      BEGINSCOPE - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      BodyPart - class org.apache.tuscany.sca.cpp.tools.common.BodyPart.
      A snippet of C or C++ source code.
      -
      -

      -C

      -
      -
      CATCH - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.BodyPart -
        -
      CLASSATTRIBUTE - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      COMMENT - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      CParsingTool - class org.apache.tuscany.sca.cpp.tools.common.CParsingTool.
      The superclass of tools that parse C/C++ code.
      CParsingTool(String[]) - -Constructor for class org.apache.tuscany.sca.cpp.tools.common.CParsingTool -
        -
      ComponentDomNodeHandler - class org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler.
      This class will do the required processing for the element of a - sca module or fragment file.
      ComponentDomNodeHandler() - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler -
        -
      ComponentTypeFileHandler - class org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler.
      The purpose of this class is to specialise the map of XML element handlers - for a XXX.componentType file that is used by the XMLFileActor
      ComponentTypeFileHandler() - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler -
        -
      Configuration - class org.apache.tuscany.sca.cpp.tools.common.Configuration.
      Encapsulates the tool's configuration file
      cPrimitives - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.Utils -
        -
      cTypeQualifiers - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.Utils -
        -
      checkFile(String) - -Method in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool -
      Checks the source directory looks good. -
      classExcluded(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration -
        -
      cppsource - -Variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      createDomFromXMLFile(File) - -Method in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor -
      This method builds an in memory DOM from an XML file -
      -
      -

      -D

      -
      -
      DIRECTIVE - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      DirectoryScanner - class org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner.
       
      DirectoryScanner(FileActor, Set) - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner -
        -
      DirectoryTree - class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree.
       
      DirectoryTree(FileActor, Set) - -Constructor for class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree -
        -
      DomHandler - class org.apache.tuscany.sca.cpp.tools.services.DomHandler.
      The purpose of this class it to provide a generic class that can handle both - a DOM and a DOM node.
      DomHandler() - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.DomHandler -
        -
      DomNodeHandler - interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler.
       
      -
      -

      -E

      -
      -
      ELEMENT - -Static variable in interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler -
        -
      ENDSCOPE - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      ENUM - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      equals(Object) - -Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter -
      For two parameters to match their types must match or both be null, but - the parameters names don't have to match. -
      equals(Object) - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      -
      -

      -F

      -
      -
      FIELD - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      FileActor - interface org.apache.tuscany.sca.cpp.tools.common.FileActor.
      DirectoryTree calls this interface to allow implementations of this interface - to act on a file in the directory tree.
      FilePart - class org.apache.tuscany.sca.cpp.tools.common.FilePart.
      A piece of C++ source code
      failed - -Variable in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool -
        -
      failed() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Headers -
        -
      failed() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter -
        -
      failed() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      failed - -Variable in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor -
        -
      fileExcluded(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration -
        -
      -
      -

      -G

      -
      -
      GenericDomNodeHandler - class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler.
       
      GenericDomNodeHandler() - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler -
        -
      getAllMethods() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Headers -
      Tuscany change - a method to get all the method signatures at once -
      getAttributes() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      getBodyParts() - -Method in class org.apache.tuscany.sca.cpp.tools.common.MethodPart -
      Returns the method body as code snippets, each ending with a place where - a trace statement belongs. -
      getCaughtValue() - -Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart -
        -
      getClassName() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      getCodeFragment() - -Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart -
        -
      getConfigured(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration -
        -
      getFilesActedOn() - -Method in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor -
        -
      getMethodName() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      getMethods(String) - -Method in class org.apache.tuscany.sca.cpp.tools.common.Headers -
        -
      getName() - -Method in class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode -
        -
      getName() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter -
        -
      getNamespace() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      getOption(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Options -
        -
      getOriginal() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      getOriginalSignature() - -Method in class org.apache.tuscany.sca.cpp.tools.common.MethodPart -
        -
      getParameter(String, Object) - -Method in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor -
      Get a parameter -
      getParameters() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      getPartIterator() - -Method in class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode -
        -
      getReturnType() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      getReturnValue() - -Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart -
        -
      getScope() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      getSignature() - -Method in class org.apache.tuscany.sca.cpp.tools.common.MethodPart -
        -
      getSignature() - -Method in class org.apache.tuscany.sca.cpp.tools.common.PrototypePart -
        -
      getTrimClassName() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      getType() - -Method in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      getType() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter -
        -
      getTypeWithoutConst() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter -
        -
      -
      -

      -H

      -
      -
      Headers - class org.apache.tuscany.sca.cpp.tools.common.Headers.
       
      Headers() - -Constructor for class org.apache.tuscany.sca.cpp.tools.common.Headers -
        -
      handleChildElements(Node, String, Map, Map) - -Method in class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler -
      This method will iterate through the DOM node's children and call the - appropriate handler for each one. -
      handleComponentTypeFile(File, File) - -Method in class org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler -
      This method just exists to add the default starting depth of 1 to the - underlying actOnFile interface -
      handleDom(Document, Map, Map) - -Static method in class org.apache.tuscany.sca.cpp.tools.services.DomHandler -
      This method will run through the initial level of the DOM using the - handlers map -
      handleInterfaceHeader(Map, boolean) - -Static method in class org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator -
        -
      handleNode(Node, String, Map, Map) - -Method in class org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler -
      This method will do the "normal" processing and then trigger a call to - processComponentNode. -
      handleNode(Node, String, Map, Map) - -Method in class org.apache.tuscany.sca.cpp.tools.services.DomHandler -
        -
      handleNode(Node, String, Map, Map) - -Method in interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler -
      An interface for classes that can process DOM nodes. -
      handleNode(Node, String, Map, Map) - -Method in class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler -
      This method will place the attributes in this node into the parameter - map keyed by the XPath and recursively continue processing for any - sub-elements of the node. -
      handleNode(Node, String, Map, Map) - -Method in class org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler -
        -
      handleNode(Node, String, Map, Map) - -Method in class org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler -
        -
      handlers - -Static variable in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor -
        -
      headers - -Variable in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool -
        -
      -
      -

      -I

      -
      -
      InputCppSourceCode - class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode.
       
      InputCppSourceCode(BufferedReader, String) - -Constructor for class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode -
        -
      initialise(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration -
      Reads in the configuration file -
      isAttribute(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration -
        -
      isCatch() - -Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart -
        -
      isClassName(String) - -Method in class org.apache.tuscany.sca.cpp.tools.common.Headers -
        -
      isConstructor() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      isDefine(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration -
        -
      isDestructor() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      isDotDotDot() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter -
        -
      isInstanceMethod(Signature) - -Method in class org.apache.tuscany.sca.cpp.tools.common.Headers -
        -
      isMacro(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration -
        -
      isReturn() - -Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart -
        -
      isStaticMethod(Signature) - -Method in class org.apache.tuscany.sca.cpp.tools.common.Headers -
        -
      isTrailing() - -Method in class org.apache.tuscany.sca.cpp.tools.common.BodyPart -
        -
      isVoid() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter -
        -
      iterator() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter -
        -
      -
      -

      -L

      -
      -
      LittleClass - class org.apache.tuscany.sca.cpp.tools.services.LittleClass.
      This class is just a convenient application class that is loaded in order to - get the application class loader.
      LittleClass() - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.LittleClass -
        -
      -
      -

      -M

      -
      -
      MACRO - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      METHOD - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      MODULE_EXTENSIONS - -Static variable in class org.apache.tuscany.sca.cpp.tools.services.Scagen -
        -
      MethodPart - class org.apache.tuscany.sca.cpp.tools.common.MethodPart.
      A C or C++ method from a piece of source code.
      ModuleOrFragmentFileHandler - class org.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler.
      The purpose of this class is purely to specialise the handler map to one with - a specific ComponentDomNodeHandler.
      ModuleOrFragmentFileHandler() - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler -
        -
      main(String[]) - -Static method in class org.apache.tuscany.sca.cpp.tools.services.Scagen -
      Take a directory scanning class and create a vistor that knows how to - handle any sca.module or .fragment that the scanner comes across. -
      mapNodeToHandlerAndHandle(Node, String, Map, Map) - -Static method in class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler -
      This method will resolve any registered handler for a particular DOM - element and call the handleNode method on it. -
      maybeAppendSeparator(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree -
        -
      maybeCreateDirectory(String) - -Method in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool -
      Checks the target directory and creates it if it doesn't already exist. -
      methodExcluded(String, String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Configuration -
        -
      -
      -

      -O

      -
      -
      Options - class org.apache.tuscany.sca.cpp.tools.common.Options.
      Command line options passed to a tool's main program.
      org.apache.tuscany.sca.cpp.tools.common - package org.apache.tuscany.sca.cpp.tools.common
      - -
      org.apache.tuscany.sca.cpp.tools.services - package org.apache.tuscany.sca.cpp.tools.services
      - -
      originalLength() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      outputDebugString(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Utils -
        -
      -
      -

      -P

      -
      -
      PROTOTYPE - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      Parameter - class org.apache.tuscany.sca.cpp.tools.common.Parameter.
      A parameter from a method signature.
      ParsingException - exception org.apache.tuscany.sca.cpp.tools.common.ParsingException.
       
      ParsingException() - -Constructor for class org.apache.tuscany.sca.cpp.tools.common.ParsingException -
        -
      ParsingException(String) - -Constructor for class org.apache.tuscany.sca.cpp.tools.common.ParsingException -
        -
      ParsingException(String, Throwable) - -Constructor for class org.apache.tuscany.sca.cpp.tools.common.ParsingException -
        -
      ParsingException(Throwable) - -Constructor for class org.apache.tuscany.sca.cpp.tools.common.ParsingException -
        -
      PrototypePart - class org.apache.tuscany.sca.cpp.tools.common.PrototypePart.
      A function prototype in an include file and possibly in a class definition.
      PrototypePart(String, String, String) - -Constructor for class org.apache.tuscany.sca.cpp.tools.common.PrototypePart -
        -
      parameters - -Static variable in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor -
        -
      preparseHeaders(String) - -Method in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool -
      Read in any include files before the main processing of the tool is done. -
      printUsage() - -Method in class org.apache.tuscany.sca.cpp.tools.common.CParsingTool -
        -
      printUsage() - -Method in class org.apache.tuscany.sca.cpp.tools.services.Scagen -
      Provide a hint to the user on how to call this class -
      -
      -

      -Q

      -
      -
      quiet() - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Options -
        -
      -
      -

      -R

      -
      -
      RETURN - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.BodyPart -
        -
      ReferenceDomNodeHandler - class org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler.
      The purpose of this class is to process a element in a - componentType file and then trigger a call to the method in ServicesGenerator - to process the interface header file
      ReferenceDomNodeHandler() - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler -
        -
      rude(String, String, int, String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Utils -
      Failed to parse the source code for some reason. -
      rude(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Utils -
      This method reports an error level problem -
      -
      -

      -S

      -
      -
      Scagen - class org.apache.tuscany.sca.cpp.tools.services.Scagen.
      This is the main top level class.
      Scagen(String[]) - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.Scagen -
        -
      ServiceDomNodeHandler - class org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler.
       
      ServiceDomNodeHandler() - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler -
        -
      ServicesGenerator - class org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator.
      This class is the main class that handles the function that parses a C++ - interface header file into a DOM that holds all the semantic information - about the interface - method names, parameters and return values.
      ServicesGenerator(String[]) - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator -
        -
      Signature - class org.apache.tuscany.sca.cpp.tools.common.Signature.
      A C or C++ method signature with the ability to parse it.
      safeEquals(Object, Object) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Utils -
      A better method than .equals() because it doesn't NullPointerException - when one of the parameters is null. -
      screenMessage(String) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Utils -
      This method reports an error level problem -
      set(String[]) - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Options -
      Initialises the options based on the args passed to main -
      setNamespace(String) - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      setParameter(String, Object) - -Method in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor -
      Set a parameter -
      setScope(String) - -Method in class org.apache.tuscany.sca.cpp.tools.common.PrototypePart -
        -
      setScope(String) - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
      Sets the scope, but only if the scope is not set by an explicit attribute - in the signature. -
      -
      -

      -T

      -
      -
      TRAILING - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.BodyPart -
        -
      TYPEDEF - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      toString() - -Method in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      toString() - -Method in class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode -
        -
      toString() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Parameter -
        -
      toString() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      toStringWithoutAttrs() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
        -
      traceable() - -Method in class org.apache.tuscany.sca.cpp.tools.common.Signature -
      Should this method be traced? -
      transferAttrsToParameters(Node, String, Map) - -Method in class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler -
      This method parses the DOM attributes into name value pairs in the - parameter map each valued keyed by its XPath. -
      transformerFactory - -Static variable in class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor -
        -
      type - -Variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      -
      -

      -U

      -
      -
      UNKNOWN - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      Utils - class org.apache.tuscany.sca.cpp.tools.common.Utils.
      Static utility methods.
      -
      -

      -V

      -
      -
      verbose() - -Static method in class org.apache.tuscany.sca.cpp.tools.common.Options -
        -
      -
      -

      -W

      -
      -
      WHITESPACE - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.FilePart -
        -
      walkTree(File, File, int) - -Method in class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree -
      Starts adding trace into the given file. -
      walkTree(File, File, int) - -Method in class org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner -
        -
      whitespace - -Static variable in class org.apache.tuscany.sca.cpp.tools.common.Utils -
        -
      -
      -

      -X

      -
      -
      XMLFileActor - class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor.
      The purpose of this abstract class is to provide a home for the standard - processing that is involved in turning a XML file into an internal DOM.
      XMLFileActor() - -Constructor for class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor -
        -
      -
      -A B C D E F G H I L M O P Q R S T U V W X - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index.html deleted file mode 100644 index 6595eb4eac..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - -SCA for C++ Tools - - - - - - - - - -<H2> -Frame Alert</H2> - -<P> -This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. -<BR> -Link to<A HREF="overview-summary.html">Non-frame version.</A> - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/BodyPart.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/BodyPart.html deleted file mode 100644 index 88b29695e0..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/BodyPart.html +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - -BodyPart (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class BodyPart

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.BodyPart
      -
      -
      -
      -
      public class BodyPart
      extends java.lang.Object
      - -

      -A snippet of C or C++ source code. If this snippet ends with a return - statement, this body part also contains the return value. -

      - -

      -


      - -

      - - - - - - - - - - - - - - - - - - - - - - -
      -Field Summary
      -static intCATCH - -
      -           
      -static intRETURN - -
      -           
      -static intTRAILING - -
      -           
      -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      - ParametergetCaughtValue() - -
      -           
      - java.lang.StringgetCodeFragment() - -
      -           
      - java.lang.StringgetReturnValue() - -
      -           
      - booleanisCatch() - -
      -           
      - booleanisReturn() - -
      -           
      - booleanisTrailing() - -
      -           
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - -
      -Field Detail
      - -

      -TRAILING

      -
      -public static final int TRAILING
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -RETURN

      -
      -public static final int RETURN
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -CATCH

      -
      -public static final int CATCH
      -
      -
      -
      See Also:
      Constant Field Values
      -
      - - - - - - - - - - - -
      -Method Detail
      - -

      -getCodeFragment

      -
      -public java.lang.String getCodeFragment()
      -
      -
      -
      -
      -
      -
      - -

      -isTrailing

      -
      -public boolean isTrailing()
      -
      -
      -
      -
      -
      -
      - -

      -isReturn

      -
      -public boolean isReturn()
      -
      -
      -
      -
      -
      -
      - -

      -isCatch

      -
      -public boolean isCatch()
      -
      -
      -
      -
      -
      -
      - -

      -getReturnValue

      -
      -public java.lang.String getReturnValue()
      -
      -
      -
      -
      -
      -
      - -

      -getCaughtValue

      -
      -public Parameter getCaughtValue()
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.html deleted file mode 100644 index f688955d94..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.html +++ /dev/null @@ -1,389 +0,0 @@ - - - - - - -CParsingTool (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class CParsingTool

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.CParsingTool
      -
      -
      -
      Direct Known Subclasses:
      Scagen, ServicesGenerator
      -
      -
      -
      -
      public class CParsingTool
      extends java.lang.Object
      - -

      -The superclass of tools that parse C/C++ code. This CParsingTool provides - some useful common methods. -

      - -

      -


      - -

      - - - - - - - - - - - - - - - - - - -
      -Field Summary
      -protected  booleanfailed - -
      -           
      -protected  Headersheaders - -
      -           
      -  - - - - - - - - - - - -
      -Constructor Summary
      -protected CParsingTool(java.lang.String[] args) - -
      -           
      -  - - - - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      -protected  java.io.FilecheckFile(java.lang.String option) - -
      -          Checks the source directory looks good.
      -protected  java.io.FilemaybeCreateDirectory(java.lang.String option) - -
      -          Checks the target directory and creates it if it doesn't already exist.
      -protected  HeaderspreparseHeaders(java.lang.String option) - -
      -          Read in any include files before the main processing of the tool is done.
      -protected  voidprintUsage() - -
      -           
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - -
      -Field Detail
      - -

      -failed

      -
      -protected boolean failed
      -
      -
      -
      -
      -
      - -

      -headers

      -
      -protected Headers headers
      -
      -
      -
      -
      - - - - - - - - -
      -Constructor Detail
      - -

      -CParsingTool

      -
      -protected CParsingTool(java.lang.String[] args)
      -                throws java.lang.Exception
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -preparseHeaders

      -
      -protected Headers preparseHeaders(java.lang.String option)
      -                           throws java.lang.Exception
      -
      -
      Read in any include files before the main processing of the tool is done. - This constructs the Headers. -

      -

      - -
      Throws: -
      java.lang.Exception
      -
      -
      -
      - -

      -checkFile

      -
      -protected java.io.File checkFile(java.lang.String option)
      -                          throws java.lang.Exception
      -
      -
      Checks the source directory looks good. -

      -

      - -
      Throws: -
      java.lang.Exception
      -
      -
      -
      - -

      -maybeCreateDirectory

      -
      -protected java.io.File maybeCreateDirectory(java.lang.String option)
      -                                     throws java.lang.Exception
      -
      -
      Checks the target directory and creates it if it doesn't already exist. -

      -

      - -
      Throws: -
      java.lang.Exception
      -
      -
      -
      - -

      -printUsage

      -
      -protected void printUsage()
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Configuration.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Configuration.html deleted file mode 100644 index 5fa0f3af67..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Configuration.html +++ /dev/null @@ -1,373 +0,0 @@ - - - - - - -Configuration (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class Configuration

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.Configuration
      -
      -
      -
      -
      public class Configuration
      extends java.lang.Object
      - -

      -Encapsulates the tool's configuration file -

      - -

      -


      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      -static booleanclassExcluded(java.lang.String s) - -
      -           
      -static booleanfileExcluded(java.lang.String s) - -
      -           
      -static java.lang.StringgetConfigured(java.lang.String key) - -
      -           
      -static voidinitialise(java.lang.String filename) - -
      -          Reads in the configuration file
      -static booleanisAttribute(java.lang.String s) - -
      -           
      -static booleanisDefine(java.lang.String s) - -
      -           
      -static booleanisMacro(java.lang.String s) - -
      -           
      -static booleanmethodExcluded(java.lang.String className, - java.lang.String method) - -
      -           
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - - - - -
      -Method Detail
      - -

      -initialise

      -
      -public static void initialise(java.lang.String filename)
      -                       throws java.lang.Exception
      -
      -
      Reads in the configuration file -

      -

      - -
      Throws: -
      java.lang.Exception
      -
      -
      -
      - -

      -fileExcluded

      -
      -public static boolean fileExcluded(java.lang.String s)
      -
      -
      -
      -
      -
      -
      - -

      -classExcluded

      -
      -public static boolean classExcluded(java.lang.String s)
      -
      -
      -
      -
      -
      -
      - -

      -methodExcluded

      -
      -public static boolean methodExcluded(java.lang.String className,
      -                                     java.lang.String method)
      -
      -
      -
      -
      -
      -
      - -

      -isMacro

      -
      -public static boolean isMacro(java.lang.String s)
      -
      -
      -
      -
      -
      -
      - -

      -isDefine

      -
      -public static boolean isDefine(java.lang.String s)
      -
      -
      -
      -
      -
      -
      - -

      -isAttribute

      -
      -public static boolean isAttribute(java.lang.String s)
      -
      -
      -
      -
      -
      -
      - -

      -getConfigured

      -
      -public static java.lang.String getConfigured(java.lang.String key)
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.html deleted file mode 100644 index 88913b0dc8..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - - -DirectoryTree (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class DirectoryTree

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.DirectoryTree
      -
      -
      -
      -
      public class DirectoryTree
      extends java.lang.Object
      - -

      -


      - -

      - - - - - - - - - - - - - - - - -
      -Constructor Summary
      DirectoryTree(FileActor actor, - java.util.Set extensions) - -
      -           
      -  - - - - - - - - - - - - - - - -
      -Method Summary
      -static java.lang.StringmaybeAppendSeparator(java.lang.String name) - -
      -           
      - voidwalkTree(java.io.File source, - java.io.File target, - int depth) - -
      -          Starts adding trace into the given file.
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -DirectoryTree

      -
      -public DirectoryTree(FileActor actor,
      -                     java.util.Set extensions)
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -walkTree

      -
      -public void walkTree(java.io.File source,
      -                     java.io.File target,
      -                     int depth)
      -              throws java.lang.Exception
      -
      -
      Starts adding trace into the given file. If the given file is a directory - then this the starting directory and all code beneath and in this - directory will be given trace. -

      -

      -
      Parameters:
      source - - - either the starting directory or one file to add trace to. -
      Throws: -
      java.lang.Exception
      -
      -
      -
      - -

      -maybeAppendSeparator

      -
      -public static java.lang.String maybeAppendSeparator(java.lang.String name)
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FileActor.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FileActor.html deleted file mode 100644 index adc1ec6aab..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FileActor.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - -FileActor (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Interface FileActor

      -
      -
      All Known Implementing Classes:
      Headers, XMLFileActor
      -
      -
      -
      -
      public interface FileActor
      - -

      -DirectoryTree calls this interface to allow implementations of this interface - to act on a file in the directory tree. -

      - -

      -


      - -

      - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      - voidactOnFile(java.io.File source, - java.io.File target, - int depth) - -
      -           
      -  -

      - - - - - - - - - - - - - - -
      -Method Detail
      - -

      -actOnFile

      -
      -public void actOnFile(java.io.File source,
      -                      java.io.File target,
      -                      int depth)
      -               throws java.lang.Exception
      -
      -
      - -
      Throws: -
      java.lang.Exception
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FilePart.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FilePart.html deleted file mode 100644 index c5e0c1da1c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/FilePart.html +++ /dev/null @@ -1,538 +0,0 @@ - - - - - - -FilePart (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class FilePart

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.FilePart
      -
      -
      -
      Direct Known Subclasses:
      MethodPart, PrototypePart
      -
      -
      -
      -
      public class FilePart
      extends java.lang.Object
      - -

      -A piece of C++ source code -

      - -

      -


      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Field Summary
      -static intBEGINSCOPE - -
      -           
      -static intCLASSATTRIBUTE - -
      -           
      -static intCOMMENT - -
      -           
      -protected  java.lang.Stringcppsource - -
      -           
      -static intDIRECTIVE - -
      -           
      -static intENDSCOPE - -
      -           
      -static intENUM - -
      -           
      -static intFIELD - -
      -           
      -static intMACRO - -
      -           
      -static intMETHOD - -
      -           
      -static intPROTOTYPE - -
      -           
      -protected  inttype - -
      -           
      -static intTYPEDEF - -
      -           
      -static intUNKNOWN - -
      -           
      -static intWHITESPACE - -
      -           
      -  - - - - - - - - - - - - - - - - - - -
      -Method Summary
      - intgetType() - -
      -           
      - java.lang.StringtoString() - -
      -           
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      -  -

      - - - - - - - - -
      -Field Detail
      - -

      -UNKNOWN

      -
      -public static final int UNKNOWN
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -COMMENT

      -
      -public static final int COMMENT
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -METHOD

      -
      -public static final int METHOD
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -FIELD

      -
      -public static final int FIELD
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -BEGINSCOPE

      -
      -public static final int BEGINSCOPE
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -ENDSCOPE

      -
      -public static final int ENDSCOPE
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -DIRECTIVE

      -
      -public static final int DIRECTIVE
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -WHITESPACE

      -
      -public static final int WHITESPACE
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -MACRO

      -
      -public static final int MACRO
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -CLASSATTRIBUTE

      -
      -public static final int CLASSATTRIBUTE
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -ENUM

      -
      -public static final int ENUM
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -PROTOTYPE

      -
      -public static final int PROTOTYPE
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -TYPEDEF

      -
      -public static final int TYPEDEF
      -
      -
      -
      See Also:
      Constant Field Values
      -
      -
      - -

      -cppsource

      -
      -protected java.lang.String cppsource
      -
      -
      -
      -
      -
      - -

      -type

      -
      -protected int type
      -
      -
      -
      -
      - - - - - - - - - - - -
      -Method Detail
      - -

      -getType

      -
      -public int getType()
      -
      -
      -
      -
      -
      -
      - -

      -toString

      -
      -public java.lang.String toString()
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Headers.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Headers.html deleted file mode 100644 index 3d08c1df43..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Headers.html +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - -Headers (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class Headers

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.Headers
      -
      -
      -
      All Implemented Interfaces:
      FileActor
      -
      -
      -
      -
      public class Headers
      extends java.lang.Object
      implements FileActor
      - -

      -


      - -

      - - - - - - - - - - - - - - - - -
      -Constructor Summary
      Headers() - -
      -           
      -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      - voidactOnFile(java.io.File header, - java.io.File ignored, - int depth) - -
      -           
      - booleanfailed() - -
      -           
      - java.util.ListgetAllMethods() - -
      -          Tuscany change - a method to get all the method signatures at once
      - java.util.ListgetMethods(java.lang.String method) - -
      -           
      - booleanisClassName(java.lang.String text) - -
      -           
      - booleanisInstanceMethod(Signature sign) - -
      -           
      - booleanisStaticMethod(Signature sign) - -
      -           
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -Headers

      -
      -public Headers()
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -actOnFile

      -
      -public void actOnFile(java.io.File header,
      -                      java.io.File ignored,
      -                      int depth)
      -               throws java.lang.Exception
      -
      -
      -
      Specified by:
      actOnFile in interface FileActor
      -
      -
      - -
      Throws: -
      java.lang.Exception
      -
      -
      -
      - -

      -failed

      -
      -public boolean failed()
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - -

      -isInstanceMethod

      -
      -public boolean isInstanceMethod(Signature sign)
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - -

      -isStaticMethod

      -
      -public boolean isStaticMethod(Signature sign)
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - -

      -getMethods

      -
      -public java.util.List getMethods(java.lang.String method)
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - -

      -getAllMethods

      -
      -public java.util.List getAllMethods()
      -
      -
      Tuscany change - a method to get all the method signatures at once -

      -

      -
      -
      -
      -
      -
      -
      -
      - -

      -isClassName

      -
      -public boolean isClassName(java.lang.String text)
      -
      -
      -
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.html deleted file mode 100644 index 0d48df2ac7..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.html +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - -InputCppSourceCode (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class InputCppSourceCode

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode
      -
      -
      -
      -
      public class InputCppSourceCode
      extends java.lang.Object
      - -

      -


      - -

      - - - - - - - - - - - - - - - - -
      -Constructor Summary
      InputCppSourceCode(java.io.BufferedReader br, - java.lang.String name) - -
      -           
      -  - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      - java.lang.StringgetName() - -
      -           
      - java.util.IteratorgetPartIterator() - -
      -           
      - java.lang.StringtoString() - -
      -           
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -InputCppSourceCode

      -
      -public InputCppSourceCode(java.io.BufferedReader br,
      -                          java.lang.String name)
      -                   throws java.lang.Exception
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -getPartIterator

      -
      -public java.util.Iterator getPartIterator()
      -
      -
      -
      -
      -
      -
      - -

      -getName

      -
      -public java.lang.String getName()
      -
      -
      -
      -
      -
      -
      - -

      -toString

      -
      -public java.lang.String toString()
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/MethodPart.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/MethodPart.html deleted file mode 100644 index 591a36b08c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/MethodPart.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - -MethodPart (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class MethodPart

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.FilePart
      -      extended byorg.apache.tuscany.sca.cpp.tools.common.MethodPart
      -
      -
      -
      -
      public class MethodPart
      extends FilePart
      - -

      -A C or C++ method from a piece of source code. The method has a signature and - a body (the bit between the braces). -

      - -

      -


      - -

      - - - - - - - - - - -
      -Field Summary
      - - - - - - - -
      Fields inherited from class org.apache.tuscany.sca.cpp.tools.common.FilePart
      BEGINSCOPE, CLASSATTRIBUTE, COMMENT, cppsource, DIRECTIVE, ENDSCOPE, ENUM, FIELD, MACRO, METHOD, PROTOTYPE, type, TYPEDEF, UNKNOWN, WHITESPACE
      -  - - - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      - BodyPart[]getBodyParts() - -
      -          Returns the method body as code snippets, each ending with a place where - a trace statement belongs.
      - java.lang.StringgetOriginalSignature() - -
      -           
      - SignaturegetSignature() - -
      -           
      - - - - - - - -
      Methods inherited from class org.apache.tuscany.sca.cpp.tools.common.FilePart
      getType, toString
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      -  -

      - - - - - - - - - - - - - - -
      -Method Detail
      - -

      -getSignature

      -
      -public Signature getSignature()
      -
      -
      -
      -
      -
      -
      - -

      -getOriginalSignature

      -
      -public java.lang.String getOriginalSignature()
      -
      -
      -
      -
      -
      -
      - -

      -getBodyParts

      -
      -public BodyPart[] getBodyParts()
      -                        throws ParsingException
      -
      -
      Returns the method body as code snippets, each ending with a place where - a trace statement belongs. The end of the first code snippet is where the - entry trace should go. The end of every other snippet is a return from - the method. -

      -

      - -
      Throws: -
      ParsingException
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Options.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Options.html deleted file mode 100644 index 57c1e42dab..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Options.html +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - -Options (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class Options

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.Options
      -
      -
      -
      -
      public class Options
      extends java.lang.Object
      - -

      -Command line options passed to a tool's main program. All command line - options should begin with a dash "-". Some command line options take a value - which is the next parameter after the option. Others do not. -

      - -

      -


      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      -static java.lang.ObjectgetOption(java.lang.String key) - -
      -           
      -static booleanquiet() - -
      -           
      -static voidset(java.lang.String[] args) - -
      -          Initialises the options based on the args passed to main
      -static booleanverbose() - -
      -           
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - - - - -
      -Method Detail
      - -

      -set

      -
      -public static void set(java.lang.String[] args)
      -
      -
      Initialises the options based on the args passed to main -

      -

      -
      -
      -
      -
      - -

      -getOption

      -
      -public static java.lang.Object getOption(java.lang.String key)
      -
      -
      -
      -
      -
      -
      - -

      -verbose

      -
      -public static boolean verbose()
      -
      -
      -
      -
      -
      -
      - -

      -quiet

      -
      -public static boolean quiet()
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Parameter.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Parameter.html deleted file mode 100644 index e61c2ae9ae..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Parameter.html +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - -Parameter (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class Parameter

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.Parameter
      -
      -
      -
      -
      public class Parameter
      extends java.lang.Object
      - -

      -A parameter from a method signature. The parameter is the datatype plus its - name but not its value. -

      - -

      -


      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      - booleanequals(java.lang.Object o) - -
      -          For two parameters to match their types must match or both be null, but - the parameters names don't have to match.
      - booleanfailed() - -
      -           
      - java.lang.StringgetName() - -
      -           
      - java.lang.StringgetType() - -
      -           
      - java.lang.StringgetTypeWithoutConst() - -
      -           
      - booleanisDotDotDot() - -
      -           
      - booleanisVoid() - -
      -           
      - java.util.Iteratoriterator() - -
      -           
      - java.lang.StringtoString() - -
      -           
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      -  -

      - - - - - - - - - - - - - - -
      -Method Detail
      - -

      -failed

      -
      -public boolean failed()
      -
      -
      -
      -
      -
      -
      - -

      -getType

      -
      -public java.lang.String getType()
      -
      -
      -
      -
      -
      -
      - -

      -getTypeWithoutConst

      -
      -public java.lang.String getTypeWithoutConst()
      -
      -
      -
      -
      -
      -
      - -

      -getName

      -
      -public java.lang.String getName()
      -
      -
      -
      -
      -
      -
      - -

      -isVoid

      -
      -public boolean isVoid()
      -
      -
      -
      -
      -
      -
      - -

      -isDotDotDot

      -
      -public boolean isDotDotDot()
      -
      -
      -
      -
      -
      -
      - -

      -equals

      -
      -public boolean equals(java.lang.Object o)
      -
      -
      For two parameters to match their types must match or both be null, but - the parameters names don't have to match. Just because a parameter is - called something different in a header file as in the the source file - doesn't mean it's a different parameter. -

      -

      -
      -
      -
      -
      - -

      -toString

      -
      -public java.lang.String toString()
      -
      -
      -
      -
      -
      -
      - -

      -iterator

      -
      -public java.util.Iterator iterator()
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/ParsingException.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/ParsingException.html deleted file mode 100644 index 29585ad7ee..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/ParsingException.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - -ParsingException (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class ParsingException

      -
      -java.lang.Object
      -  extended byjava.lang.Throwable
      -      extended byjava.lang.Exception
      -          extended byorg.apache.tuscany.sca.cpp.tools.common.ParsingException
      -
      -
      -
      All Implemented Interfaces:
      java.io.Serializable
      -
      -
      -
      -
      public class ParsingException
      extends java.lang.Exception
      - -

      -

      -
      See Also:
      Serialized Form
      -
      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Constructor Summary
      ParsingException() - -
      -           
      ParsingException(java.lang.String message) - -
      -           
      ParsingException(java.lang.String message, - java.lang.Throwable cause) - -
      -           
      ParsingException(java.lang.Throwable cause) - -
      -           
      -  - - - - - - - - - - -
      Methods inherited from class java.lang.Throwable
      fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -ParsingException

      -
      -public ParsingException()
      -
      -
      -
      - -

      -ParsingException

      -
      -public ParsingException(java.lang.String message)
      -
      -
      -
      - -

      -ParsingException

      -
      -public ParsingException(java.lang.String message,
      -                        java.lang.Throwable cause)
      -
      -
      -
      - -

      -ParsingException

      -
      -public ParsingException(java.lang.Throwable cause)
      -
      -
      - - - - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.html deleted file mode 100644 index bfd601d5b3..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - -PrototypePart (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class PrototypePart

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.FilePart
      -      extended byorg.apache.tuscany.sca.cpp.tools.common.PrototypePart
      -
      -
      -
      -
      public class PrototypePart
      extends FilePart
      - -

      -A function prototype in an include file and possibly in a class definition. -

      - -

      -


      - -

      - - - - - - - - - - -
      -Field Summary
      - - - - - - - -
      Fields inherited from class org.apache.tuscany.sca.cpp.tools.common.FilePart
      BEGINSCOPE, CLASSATTRIBUTE, COMMENT, cppsource, DIRECTIVE, ENDSCOPE, ENUM, FIELD, MACRO, METHOD, PROTOTYPE, type, TYPEDEF, UNKNOWN, WHITESPACE
      -  - - - - - - - - - - -
      -Constructor Summary
      PrototypePart(java.lang.String s, - java.lang.String className, - java.lang.String namespace) - -
      -           
      -  - - - - - - - - - - - - - - - -
      -Method Summary
      - SignaturegetSignature() - -
      -           
      - voidsetScope(java.lang.String scope) - -
      -           
      - - - - - - - -
      Methods inherited from class org.apache.tuscany.sca.cpp.tools.common.FilePart
      getType, toString
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -PrototypePart

      -
      -public PrototypePart(java.lang.String s,
      -                     java.lang.String className,
      -                     java.lang.String namespace)
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -getSignature

      -
      -public Signature getSignature()
      -
      -
      -
      -
      -
      -
      - -

      -setScope

      -
      -public void setScope(java.lang.String scope)
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Signature.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Signature.html deleted file mode 100644 index 2a2eef3678..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Signature.html +++ /dev/null @@ -1,584 +0,0 @@ - - - - - - -Signature (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class Signature

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.Signature
      -
      -
      -
      -
      public class Signature
      extends java.lang.Object
      - -

      -A C or C++ method signature with the ability to parse it. TODO: properly - support variable length argument lists using "..." TODO: passing or returning - function pointers (hopefully not needed) TODO: Cope with ~ Classname() -

      - -

      -


      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      - booleanequals(java.lang.Object obj) - -
      -           
      - booleanfailed() - -
      -           
      - java.lang.StringgetAttributes() - -
      -           
      - java.lang.StringgetClassName() - -
      -           
      - java.lang.StringgetMethodName() - -
      -           
      - java.lang.StringgetNamespace() - -
      -           
      - java.lang.StringgetOriginal() - -
      -           
      - Parameter[]getParameters() - -
      -           
      - ParametergetReturnType() - -
      -           
      - java.lang.StringgetScope() - -
      -           
      - java.lang.StringgetTrimClassName() - -
      -           
      - booleanisConstructor() - -
      -           
      - booleanisDestructor() - -
      -           
      - intoriginalLength() - -
      -           
      - voidsetNamespace(java.lang.String namespace) - -
      -           
      - voidsetScope(java.lang.String scope) - -
      -          Sets the scope, but only if the scope is not set by an explicit attribute - in the signature.
      - java.lang.StringtoString() - -
      -           
      - java.lang.StringtoStringWithoutAttrs() - -
      -           
      - booleantraceable() - -
      -          Should this method be traced?
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      -  -

      - - - - - - - - - - - - - - -
      -Method Detail
      - -

      -getOriginal

      -
      -public java.lang.String getOriginal()
      -
      -
      -
      -
      -
      -
      - -

      -originalLength

      -
      -public int originalLength()
      -
      -
      -
      -
      -
      -
      - -

      -failed

      -
      -public boolean failed()
      -
      -
      -
      -
      -
      -
      - -

      -getAttributes

      -
      -public java.lang.String getAttributes()
      -
      -
      -
      -
      -
      -
      - -

      -getClassName

      -
      -public java.lang.String getClassName()
      -
      -
      -
      -
      -
      -
      - -

      -setNamespace

      -
      -public void setNamespace(java.lang.String namespace)
      -
      -
      -
      Parameters:
      namespace - The namespace to set.
      -
      -
      -
      - -

      -getNamespace

      -
      -public java.lang.String getNamespace()
      -
      -
      - -
      Returns:
      Returns the namespace.
      -
      -
      -
      - -

      -getTrimClassName

      -
      -public java.lang.String getTrimClassName()
      -
      -
      -
      -
      -
      -
      - -

      -getMethodName

      -
      -public java.lang.String getMethodName()
      -
      -
      -
      -
      -
      -
      - -

      -getReturnType

      -
      -public Parameter getReturnType()
      -
      -
      -
      -
      -
      -
      - -

      -getParameters

      -
      -public Parameter[] getParameters()
      -
      -
      -
      -
      -
      -
      - -

      -isConstructor

      -
      -public boolean isConstructor()
      -
      -
      -
      -
      -
      -
      - -

      -isDestructor

      -
      -public boolean isDestructor()
      -
      -
      -
      -
      -
      -
      - -

      -getScope

      -
      -public java.lang.String getScope()
      -
      -
      -
      -
      -
      -
      - -

      -setScope

      -
      -public void setScope(java.lang.String scope)
      -
      -
      Sets the scope, but only if the scope is not set by an explicit attribute - in the signature. -

      -

      -
      -
      -
      -
      - -

      -traceable

      -
      -public boolean traceable()
      -
      -
      Should this method be traced? -

      -

      -
      -
      -
      -
      - -

      -equals

      -
      -public boolean equals(java.lang.Object obj)
      -
      -
      -
      -
      -
      -
      - -

      -toStringWithoutAttrs

      -
      -public java.lang.String toStringWithoutAttrs()
      -
      -
      -
      -
      -
      -
      - -

      -toString

      -
      -public java.lang.String toString()
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Utils.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Utils.html deleted file mode 100644 index 8571178678..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/Utils.html +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - -Utils (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.common -
      -Class Utils

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.Utils
      -
      -
      -
      -
      public final class Utils
      extends java.lang.Object
      - -

      -Static utility methods. Some of these methods are similar to the methods on - java.lang.String except they are aware of C/C++ comments and string literals. - - TODO: Many of these methods would perform better using StringBuffer not - String -

      - -

      -


      - -

      - - - - - - - - - - - - - - - - - - - - - - -
      -Field Summary
      -static java.util.SetcPrimitives - -
      -           
      -static java.util.SetcTypeQualifiers - -
      -           
      -static java.lang.Stringwhitespace - -
      -           
      -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      -static voidoutputDebugString(java.lang.String line) - -
      -           
      -static voidrude(java.lang.String reason) - -
      -          This method reports an error level problem
      -static voidrude(java.lang.String reason, - java.lang.String filename, - int lineno, - java.lang.String codefragment) - -
      -          Failed to parse the source code for some reason.
      -static booleansafeEquals(java.lang.Object o1, - java.lang.Object o2) - -
      -          A better method than .equals() because it doesn't NullPointerException - when one of the parameters is null.
      -static voidscreenMessage(java.lang.String msg) - -
      -          This method reports an error level problem
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - -
      -Field Detail
      - -

      -cPrimitives

      -
      -public static final java.util.Set cPrimitives
      -
      -
      -
      -
      -
      - -

      -cTypeQualifiers

      -
      -public static final java.util.Set cTypeQualifiers
      -
      -
      -
      -
      -
      - -

      -whitespace

      -
      -public static final java.lang.String whitespace
      -
      -
      -
      See Also:
      Constant Field Values
      -
      - - - - - - - - - - - -
      -Method Detail
      - -

      -rude

      -
      -public static void rude(java.lang.String reason,
      -                        java.lang.String filename,
      -                        int lineno,
      -                        java.lang.String codefragment)
      -                 throws ParsingException
      -
      -
      Failed to parse the source code for some reason. This method prints out a - suitably rude message, and then what? I haven't quite decided yet. - - TODO: Do something sensible here like throw an Exception which will give - up on this file completely and tidy up the output file. It may be just - too dangerous to try to carry on. But we need to fail in such a way that - the build system knows that we've failed for this file and can build this - file without trace. -

      -

      - -
      Throws: -
      ParsingException
      -
      -
      -
      - -

      -rude

      -
      -public static void rude(java.lang.String reason)
      -                 throws ParsingException
      -
      -
      This method reports an error level problem -

      -

      -
      Parameters:
      reason - why we have an error level problem -
      Throws: -
      ParsingException
      -
      -
      -
      - -

      -screenMessage

      -
      -public static void screenMessage(java.lang.String msg)
      -
      -
      This method reports an error level problem -

      -

      -
      -
      -
      -
      - -

      -safeEquals

      -
      -public static boolean safeEquals(java.lang.Object o1,
      -                                 java.lang.Object o2)
      -
      -
      A better method than .equals() because it doesn't NullPointerException - when one of the parameters is null. -

      -

      -
      -
      -
      -
      - -

      -outputDebugString

      -
      -public static void outputDebugString(java.lang.String line)
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/BodyPart.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/BodyPart.html deleted file mode 100644 index 109d6c539a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/BodyPart.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.BodyPart (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.BodyPart

      -
      - - - - - - - - - -
      -Packages that use BodyPart
      org.apache.tuscany.sca.cpp.tools.common
      - - 
      -  -

      - - - - - -
      -Uses of BodyPart in org.apache.tuscany.sca.cpp.tools.common
      -  -

      - - - - - - - - -
      Methods in org.apache.tuscany.sca.cpp.tools.common that return BodyPart -
      - BodyPart[]MethodPart.getBodyParts() - -
      -          Returns the method body as code snippets, each ending with a place where - a trace statement belongs.
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/CParsingTool.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/CParsingTool.html deleted file mode 100644 index 36cb776f02..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/CParsingTool.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.CParsingTool (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.CParsingTool

      -
      - - - - - - - - - -
      -Packages that use CParsingTool
      org.apache.tuscany.sca.cpp.tools.services
      - - 
      -  -

      - - - - - -
      -Uses of CParsingTool in org.apache.tuscany.sca.cpp.tools.services
      -  -

      - - - - - - - - - - - - -
      Subclasses of CParsingTool in org.apache.tuscany.sca.cpp.tools.services -
      - classScagen - -
      -          This is the main top level class.
      - classServicesGenerator - -
      -          This class is the main class that handles the function that parses a C++ - interface header file into a DOM that holds all the semantic information - about the interface - method names, parameters and return values.
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Configuration.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Configuration.html deleted file mode 100644 index bb2432666e..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Configuration.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.Configuration (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.Configuration

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.common.Configuration -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/DirectoryTree.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/DirectoryTree.html deleted file mode 100644 index 4140168273..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/DirectoryTree.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.DirectoryTree

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.common.DirectoryTree -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FileActor.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FileActor.html deleted file mode 100644 index 3ab90283bd..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FileActor.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - -Uses of Interface org.apache.tuscany.sca.cpp.tools.common.FileActor (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Interface
      org.apache.tuscany.sca.cpp.tools.common.FileActor

      -
      - - - - - - - - - - - - - -
      -Packages that use FileActor
      org.apache.tuscany.sca.cpp.tools.common
      - - 
      org.apache.tuscany.sca.cpp.tools.services
      - - 
      -  -

      - - - - - -
      -Uses of FileActor in org.apache.tuscany.sca.cpp.tools.common
      -  -

      - - - - - - - - -
      Classes in org.apache.tuscany.sca.cpp.tools.common that implement FileActor -
      - classHeaders - -
      -           
      -  -

      - - - - - - - -
      Constructors in org.apache.tuscany.sca.cpp.tools.common with parameters of type FileActor -
      DirectoryTree(FileActor actor, - java.util.Set extensions) - -
      -           
      -  -

      - - - - - -
      -Uses of FileActor in org.apache.tuscany.sca.cpp.tools.services
      -  -

      - - - - - - - - - - - - - - - - -
      Classes in org.apache.tuscany.sca.cpp.tools.services that implement FileActor -
      - classComponentTypeFileHandler - -
      -          The purpose of this class is to specialise the map of XML element handlers - for a XXX.componentType file that is used by the XMLFileActor
      - classModuleOrFragmentFileHandler - -
      -          The purpose of this class is purely to specialise the handler map to one with - a specific ComponentDomNodeHandler.
      - classXMLFileActor - -
      -          The purpose of this abstract class is to provide a home for the standard - processing that is involved in turning a XML file into an internal DOM.
      -  -

      - - - - - - - -
      Constructors in org.apache.tuscany.sca.cpp.tools.services with parameters of type FileActor -
      DirectoryScanner(FileActor actor, - java.util.Set extensions) - -
      -           
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FilePart.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FilePart.html deleted file mode 100644 index aa4796486e..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/FilePart.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.FilePart (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.FilePart

      -
      - - - - - - - - - -
      -Packages that use FilePart
      org.apache.tuscany.sca.cpp.tools.common
      - - 
      -  -

      - - - - - -
      -Uses of FilePart in org.apache.tuscany.sca.cpp.tools.common
      -  -

      - - - - - - - - - - - - -
      Subclasses of FilePart in org.apache.tuscany.sca.cpp.tools.common -
      - classMethodPart - -
      -          A C or C++ method from a piece of source code.
      - classPrototypePart - -
      -          A function prototype in an include file and possibly in a class definition.
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Headers.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Headers.html deleted file mode 100644 index 60190bbada..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Headers.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.Headers (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.Headers

      -
      - - - - - - - - - -
      -Packages that use Headers
      org.apache.tuscany.sca.cpp.tools.common
      - - 
      -  -

      - - - - - -
      -Uses of Headers in org.apache.tuscany.sca.cpp.tools.common
      -  -

      - - - - - - - - -
      Fields in org.apache.tuscany.sca.cpp.tools.common declared as Headers -
      -protected  HeadersCParsingTool.headers - -
      -           
      -  -

      - - - - - - - - -
      Methods in org.apache.tuscany.sca.cpp.tools.common that return Headers -
      -protected  HeadersCParsingTool.preparseHeaders(java.lang.String option) - -
      -          Read in any include files before the main processing of the tool is done.
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/InputCppSourceCode.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/InputCppSourceCode.html deleted file mode 100644 index 463968468c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/InputCppSourceCode.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/MethodPart.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/MethodPart.html deleted file mode 100644 index 19b474a7e7..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/MethodPart.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.MethodPart (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.MethodPart

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.common.MethodPart -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Options.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Options.html deleted file mode 100644 index 040187072f..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Options.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.Options (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.Options

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.common.Options -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Parameter.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Parameter.html deleted file mode 100644 index a91a2c687b..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Parameter.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.Parameter (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.Parameter

      -
      - - - - - - - - - -
      -Packages that use Parameter
      org.apache.tuscany.sca.cpp.tools.common
      - - 
      -  -

      - - - - - -
      -Uses of Parameter in org.apache.tuscany.sca.cpp.tools.common
      -  -

      - - - - - - - - - - - - - - - - -
      Methods in org.apache.tuscany.sca.cpp.tools.common that return Parameter -
      - ParameterSignature.getReturnType() - -
      -           
      - Parameter[]Signature.getParameters() - -
      -           
      - ParameterBodyPart.getCaughtValue() - -
      -           
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/ParsingException.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/ParsingException.html deleted file mode 100644 index dedd25a4f2..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/ParsingException.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.ParsingException (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.ParsingException

      -
      - - - - - - - - - -
      -Packages that use ParsingException
      org.apache.tuscany.sca.cpp.tools.common
      - - 
      -  -

      - - - - - -
      -Uses of ParsingException in org.apache.tuscany.sca.cpp.tools.common
      -  -

      - - - - - - - - - - - - - - - - -
      Methods in org.apache.tuscany.sca.cpp.tools.common that throw ParsingException -
      -static voidUtils.rude(java.lang.String reason, - java.lang.String filename, - int lineno, - java.lang.String codefragment) - -
      -          Failed to parse the source code for some reason.
      -static voidUtils.rude(java.lang.String reason) - -
      -          This method reports an error level problem
      - BodyPart[]MethodPart.getBodyParts() - -
      -          Returns the method body as code snippets, each ending with a place where - a trace statement belongs.
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/PrototypePart.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/PrototypePart.html deleted file mode 100644 index 22c4575fab..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/PrototypePart.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.PrototypePart (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.PrototypePart

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.common.PrototypePart -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Signature.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Signature.html deleted file mode 100644 index 228807ba8a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Signature.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.Signature (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.Signature

      -
      - - - - - - - - - -
      -Packages that use Signature
      org.apache.tuscany.sca.cpp.tools.common
      - - 
      -  -

      - - - - - -
      -Uses of Signature in org.apache.tuscany.sca.cpp.tools.common
      -  -

      - - - - - - - - - - - - -
      Methods in org.apache.tuscany.sca.cpp.tools.common that return Signature -
      - SignaturePrototypePart.getSignature() - -
      -           
      - SignatureMethodPart.getSignature() - -
      -           
      -  -

      - - - - - - - - - - - - -
      Methods in org.apache.tuscany.sca.cpp.tools.common with parameters of type Signature -
      - booleanHeaders.isInstanceMethod(Signature sign) - -
      -           
      - booleanHeaders.isStaticMethod(Signature sign) - -
      -           
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Utils.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Utils.html deleted file mode 100644 index cd93afeeb6..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/class-use/Utils.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.common.Utils (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.common.Utils

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.common.Utils -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-frame.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-frame.html deleted file mode 100644 index 2e0e528f32..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-frame.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - -org.apache.tuscany.sca.cpp.tools.common (SCA for C++ Tools) - - - - - - - - - - - -org.apache.tuscany.sca.cpp.tools.common - - - - -
      -Interfaces  - -
      -FileActor
      - - - - - - -
      -Classes  - -
      -BodyPart -
      -Configuration -
      -CParsingTool -
      -DirectoryTree -
      -FilePart -
      -Headers -
      -InputCppSourceCode -
      -MethodPart -
      -Options -
      -Parameter -
      -PrototypePart -
      -Signature -
      -Utils
      - - - - - - -
      -Exceptions  - -
      -ParsingException
      - - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-summary.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-summary.html deleted file mode 100644 index 3fa24db0cd..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-summary.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - -org.apache.tuscany.sca.cpp.tools.common (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -

      -Package org.apache.tuscany.sca.cpp.tools.common -

      -
      - - -

      -See: -
      -          Description -

      - - - - - - - - - -
      -Interface Summary
      FileActorDirectoryTree calls this interface to allow implementations of this interface - to act on a file in the directory tree.
      -  - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Class Summary
      BodyPartA snippet of C or C++ source code.
      ConfigurationEncapsulates the tool's configuration file
      CParsingToolThe superclass of tools that parse C/C++ code.
      DirectoryTree 
      FilePartA piece of C++ source code
      Headers 
      InputCppSourceCode 
      MethodPartA C or C++ method from a piece of source code.
      OptionsCommand line options passed to a tool's main program.
      ParameterA parameter from a method signature.
      PrototypePartA function prototype in an include file and possibly in a class definition.
      SignatureA C or C++ method signature with the ability to parse it.
      UtilsStatic utility methods.
      -  - -

      - - - - - - - - - -
      -Exception Summary
      ParsingException 
      -  - -

      -

      -Package org.apache.tuscany.sca.cpp.tools.common Description -

      - -

      -

      - -

      Overview

      - -This package can be used to reflect across C++ source code. It can produce -a network of descriptive objects describing C++ Headers, Signatures, Parameters and so -on that it finds in a given location of the file system. -Each of the descriptive objects has a set of getters that return either -the descriptive child objects, or for primitives, the string that represents the actual -value such as "int" or "myFunction". -

      -There are also various utility methods that help with navigating the information, for example the Signature -class has an isConstructor method. The API Javadoc contains further details of these. -

      -The package can scan a directory using a file mask to identify what types -of files are to be scanned. In this application we are interested only -in the function prototypes in the C++ header files. -

      -The implementation was originated using some java code that was also -contributed to the Apache org.apache.axis.tools.common package. Care -has been taken that the original code was not sourced via Apache. If -this project is adopted by Apache then it is very possible that this -package could be merged with or made obsolete by org.apache.axis.tools.common -and because of this the design and interfaces have been preserved from -the original code as much as possible. - -

      -

      -

      - -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-tree.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-tree.html deleted file mode 100644 index d6ca34c836..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-tree.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - -org.apache.tuscany.sca.cpp.tools.common Class Hierarchy (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Hierarchy For Package org.apache.tuscany.sca.cpp.tools.common -

      -
      -
      -
      Package Hierarchies:
      All Packages
      -
      -

      -Class Hierarchy -

      -
        -
      • class java.lang.Object
          -
        • class org.apache.tuscany.sca.cpp.tools.common.BodyPart
        • class org.apache.tuscany.sca.cpp.tools.common.Configuration
        • class org.apache.tuscany.sca.cpp.tools.common.CParsingTool
        • class org.apache.tuscany.sca.cpp.tools.common.DirectoryTree
        • class org.apache.tuscany.sca.cpp.tools.common.FilePart
            -
          • class org.apache.tuscany.sca.cpp.tools.common.MethodPart
          • class org.apache.tuscany.sca.cpp.tools.common.PrototypePart
          -
        • class org.apache.tuscany.sca.cpp.tools.common.Headers (implements org.apache.tuscany.sca.cpp.tools.common.FileActor) -
        • class org.apache.tuscany.sca.cpp.tools.common.InputCppSourceCode
        • class org.apache.tuscany.sca.cpp.tools.common.Options
        • class org.apache.tuscany.sca.cpp.tools.common.Parameter
        • class org.apache.tuscany.sca.cpp.tools.common.Signature
        • class java.lang.Throwable (implements java.io.Serializable) -
            -
          • class java.lang.Exception -
          -
        • class org.apache.tuscany.sca.cpp.tools.common.Utils
        -
      -

      -Interface Hierarchy -

      -
        -
      • interface org.apache.tuscany.sca.cpp.tools.common.FileActor
      -
      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-use.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-use.html deleted file mode 100644 index 36fda7a829..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/common/package-use.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - -Uses of Package org.apache.tuscany.sca.cpp.tools.common (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Package
      org.apache.tuscany.sca.cpp.tools.common

      -
      - - - - - - - - - - - - - -
      -Packages that use org.apache.tuscany.sca.cpp.tools.common
      org.apache.tuscany.sca.cpp.tools.common
      - - 
      org.apache.tuscany.sca.cpp.tools.services
      - - 
      -  -

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Classes in org.apache.tuscany.sca.cpp.tools.common used by org.apache.tuscany.sca.cpp.tools.common
      BodyPart - -
      -          A snippet of C or C++ source code.
      FileActor - -
      -          DirectoryTree calls this interface to allow implementations of this interface - to act on a file in the directory tree.
      FilePart - -
      -          A piece of C++ source code
      Headers - -
      -           
      Parameter - -
      -          A parameter from a method signature.
      ParsingException - -
      -           
      Signature - -
      -          A C or C++ method signature with the ability to parse it.
      -  -

      - - - - - - - - - - - -
      -Classes in org.apache.tuscany.sca.cpp.tools.common used by org.apache.tuscany.sca.cpp.tools.services
      CParsingTool - -
      -          The superclass of tools that parse C/C++ code.
      FileActor - -
      -          DirectoryTree calls this interface to allow implementations of this interface - to act on a file in the directory tree.
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.html deleted file mode 100644 index 84b07c500a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - -ComponentDomNodeHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class ComponentDomNodeHandler

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
      -      extended byorg.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler
      -
      -
      -
      All Implemented Interfaces:
      DomNodeHandler
      -
      -
      -
      -
      public class ComponentDomNodeHandler
      extends GenericDomNodeHandler
      - -

      -This class will do the required processing for the element of a - sca module or fragment file. -

      - -

      -


      - -

      - - - - - - - - - - -
      -Field Summary
      - - - - - - - -
      Fields inherited from interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
      ELEMENT
      -  - - - - - - - - - - -
      -Constructor Summary
      ComponentDomNodeHandler() - -
      -           
      -  - - - - - - - - - - - -
      -Method Summary
      - voidhandleNode(org.w3c.dom.Node node, - java.lang.String contextXPath, - java.util.Map handlers, - java.util.Map parameters) - -
      -          This method will do the "normal" processing and then trigger a call to - processComponentNode.
      - - - - - - - -
      Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
      handleChildElements, mapNodeToHandlerAndHandle, transferAttrsToParameters
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -ComponentDomNodeHandler

      -
      -public ComponentDomNodeHandler()
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -handleNode

      -
      -public void handleNode(org.w3c.dom.Node node,
      -                       java.lang.String contextXPath,
      -                       java.util.Map handlers,
      -                       java.util.Map parameters)
      -
      -
      This method will do the "normal" processing and then trigger a call to - processComponentNode. -

      -

      -
      Specified by:
      handleNode in interface DomNodeHandler
      Overrides:
      handleNode in class GenericDomNodeHandler
      -
      -
      -
      Parameters:
      node - the node being processed
      contextXPath - the XPath to the node
      handlers - the map pf element names to DomNodeHandlers
      parameters - a map of XPaths to parameters values found so far
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.html deleted file mode 100644 index 666f530637..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - - - -ComponentTypeFileHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class ComponentTypeFileHandler

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.services.XMLFileActor
      -      extended byorg.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler
      -
      -
      -
      All Implemented Interfaces:
      FileActor
      -
      -
      -
      -
      public class ComponentTypeFileHandler
      extends XMLFileActor
      - -

      -The purpose of this class is to specialise the map of XML element handlers - for a XXX.componentType file that is used by the XMLFileActor -

      - -

      -


      - -

      - - - - - - - - - - -
      -Field Summary
      - - - - - - - -
      Fields inherited from class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor
      failed, handlers, parameters, transformerFactory
      -  - - - - - - - - - - -
      -Constructor Summary
      ComponentTypeFileHandler() - -
      -           
      -  - - - - - - - - - - - -
      -Method Summary
      - voidhandleComponentTypeFile(java.io.File componentTypeXML, - java.io.File target) - -
      -          This method just exists to add the default starting depth of 1 to the - underlying actOnFile interface
      - - - - - - - -
      Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor
      actOnFile, createDomFromXMLFile, getFilesActedOn, getParameter, setParameter
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -ComponentTypeFileHandler

      -
      -public ComponentTypeFileHandler()
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -handleComponentTypeFile

      -
      -public void handleComponentTypeFile(java.io.File componentTypeXML,
      -                                    java.io.File target)
      -                             throws java.lang.Exception
      -
      -
      This method just exists to add the default starting depth of 1 to the - underlying actOnFile interface -

      -

      -
      Parameters:
      componentTypeXML -
      target - -
      Throws: -
      java.lang.Exception
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.html deleted file mode 100644 index c7c82a3cc0..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.html +++ /dev/null @@ -1,271 +0,0 @@ - - - - - - -DirectoryScanner (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class DirectoryScanner

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.services.DirectoryScanner
      -
      -
      -
      -
      public class DirectoryScanner
      extends java.lang.Object
      - -

      -


      - -

      - - - - - - - - - - - - - - - - -
      -Constructor Summary
      DirectoryScanner(FileActor actor, - java.util.Set extensions) - -
      -           
      -  - - - - - - - - - - - -
      -Method Summary
      - voidwalkTree(java.io.File source, - java.io.File target, - int depth) - -
      -           
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -DirectoryScanner

      -
      -public DirectoryScanner(FileActor actor,
      -                        java.util.Set extensions)
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -walkTree

      -
      -public void walkTree(java.io.File source,
      -                     java.io.File target,
      -                     int depth)
      -              throws java.lang.Exception
      -
      -
      -
      Parameters:
      source - The module root directory
      target - The directory that will holdthe generated output
      depth - The depth from the inial starting point, not significant for - the Scagen tool as we are only interested in the module root - directory but present due to the inherited actOnFile interface - whcih come from the oreg.apache.axis.tools practice This - interface has been left unchanged as we hope to reconverge the - parser here with the original one once the changes are fed - back into the original code. -
      Throws: -
      java.lang.Exception
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomHandler.html deleted file mode 100644 index cf6f2e436c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomHandler.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - -DomHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class DomHandler

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
      -      extended byorg.apache.tuscany.sca.cpp.tools.services.DomHandler
      -
      -
      -
      All Implemented Interfaces:
      DomNodeHandler
      -
      -
      -
      -
      public class DomHandler
      extends GenericDomNodeHandler
      - -

      -The purpose of this class it to provide a generic class that can handle both - a DOM and a DOM node. -

      - -

      -


      - -

      - - - - - - - - - - -
      -Field Summary
      - - - - - - - -
      Fields inherited from interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
      ELEMENT
      -  - - - - - - - - - - -
      -Constructor Summary
      DomHandler() - -
      -           
      -  - - - - - - - - - - - - - - - -
      -Method Summary
      -static voidhandleDom(org.w3c.dom.Document dom, - java.util.Map handlers, - java.util.Map parameters) - -
      -          This method will run through the initial level of the DOM using the - handlers map
      - voidhandleNode(org.w3c.dom.Node node, - java.lang.String contextXPath, - java.util.Map handlers, - java.util.Map parameters) - -
      -          This method will place the attributes in this node into the parameter - map keyed by the XPath and recursively continue processing for any - sub-elements of the node.
      - - - - - - - -
      Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
      handleChildElements, mapNodeToHandlerAndHandle, transferAttrsToParameters
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -DomHandler

      -
      -public DomHandler()
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -handleDom

      -
      -public static void handleDom(org.w3c.dom.Document dom,
      -                             java.util.Map handlers,
      -                             java.util.Map parameters)
      -
      -
      This method will run through the initial level of the DOM using the - handlers map -

      -

      -
      Parameters:
      dom - the document being consumed
      handlers - the map from element name to node handler
      parameters - a map of parameters - this is often used by a handler to place - a name-value pair, the name is often an Xpath representation - of the location of the data in the DOM but handlers are free - to use whatever they like - the contextXpath is generated as - an Xpath prefix for those handlers that wish to use it.
      -
      -
      -
      - -

      -handleNode

      -
      -public void handleNode(org.w3c.dom.Node node,
      -                       java.lang.String contextXPath,
      -                       java.util.Map handlers,
      -                       java.util.Map parameters)
      -
      -
      Description copied from class: GenericDomNodeHandler
      -
      This method will place the attributes in this node into the parameter - map keyed by the XPath and recursively continue processing for any - sub-elements of the node. -

      -

      -
      Specified by:
      handleNode in interface DomNodeHandler
      Overrides:
      handleNode in class GenericDomNodeHandler
      -
      -
      -
      Parameters:
      node - The DOM node being consumed
      contextXPath - The XPath to this node
      handlers - The map from element name to node handler
      parameters - A map of parameters - this is often used by a handler to place - a name-value pair, the name is often an Xpath representation - of the location of the data in the DOM but handlers are free - to use whatever they like - the contextXpath is generated as - an Xpath prefix for those handlers that wish to use it.
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.html deleted file mode 100644 index b62f5a4694..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - -DomNodeHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Interface DomNodeHandler

      -
      -
      All Known Implementing Classes:
      GenericDomNodeHandler
      -
      -
      -
      -
      public interface DomNodeHandler
      - -

      -


      - -

      - - - - - - - - - - - - - - -
      -Field Summary
      -static intELEMENT - -
      -           
      -  - - - - - - - - - - - - - - -
      -Method Summary
      - voidhandleNode(org.w3c.dom.Node node, - java.lang.String contextXPath, - java.util.Map handlers, - java.util.Map parameters) - -
      -          An interface for classes that can process DOM nodes.
      -  -

      - - - - - - - - -
      -Field Detail
      - -

      -ELEMENT

      -
      -public static final int ELEMENT
      -
      -
      -
      See Also:
      Constant Field Values
      -
      - - - - - - - - - - - -
      -Method Detail
      - -

      -handleNode

      -
      -public void handleNode(org.w3c.dom.Node node,
      -                       java.lang.String contextXPath,
      -                       java.util.Map handlers,
      -                       java.util.Map parameters)
      -
      -
      An interface for classes that can process DOM nodes. -

      -

      -
      Parameters:
      node - the DOM node being consumed
      contextXPath - the XPath to this node
      handlers - The map from element name to node handler
      parameters - A map of parameters - this is often used by a handler to place - a name-value pair, the name is often an Xpath representation of the - location of the data in the DOM but handlers are free to use whatever - they like - the contextXpath is generated as an Xpath prefix for those - handlers that wish to use it.
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.html deleted file mode 100644 index 2a7a65c242..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.html +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - -GenericDomNodeHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class GenericDomNodeHandler

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
      -
      -
      -
      All Implemented Interfaces:
      DomNodeHandler
      -
      -
      -
      Direct Known Subclasses:
      ComponentDomNodeHandler, DomHandler, ReferenceDomNodeHandler, ServiceDomNodeHandler
      -
      -
      -
      -
      public class GenericDomNodeHandler
      extends java.lang.Object
      implements DomNodeHandler
      - -

      -


      - -

      - - - - - - - - - - -
      -Field Summary
      - - - - - - - -
      Fields inherited from interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
      ELEMENT
      -  - - - - - - - - - - -
      -Constructor Summary
      GenericDomNodeHandler() - -
      -           
      -  - - - - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      - voidhandleChildElements(org.w3c.dom.Node node, - java.lang.String contextPath, - java.util.Map handlers, - java.util.Map parameters) - -
      -          This method will iterate through the DOM node's children and call the - appropriate handler for each one.
      - voidhandleNode(org.w3c.dom.Node node, - java.lang.String contextXPath, - java.util.Map handlers, - java.util.Map parameters) - -
      -          This method will place the attributes in this node into the parameter - map keyed by the XPath and recursively continue processing for any - sub-elements of the node.
      -static voidmapNodeToHandlerAndHandle(org.w3c.dom.Node node, - java.lang.String contextPath, - java.util.Map handlers, - java.util.Map parameters) - -
      -          This method will resolve any registered handler for a particular DOM - element and call the handleNode method on it.
      - voidtransferAttrsToParameters(org.w3c.dom.Node node, - java.lang.String contextPath, - java.util.Map parameters) - -
      -          This method parses the DOM attributes into name value pairs in the - parameter map each valued keyed by its XPath.
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -GenericDomNodeHandler

      -
      -public GenericDomNodeHandler()
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -transferAttrsToParameters

      -
      -public void transferAttrsToParameters(org.w3c.dom.Node node,
      -                                      java.lang.String contextPath,
      -                                      java.util.Map parameters)
      -
      -
      This method parses the DOM attributes into name value pairs in the - parameter map each valued keyed by its XPath. -

      -

      -
      -
      -
      -
      Parameters:
      node - the DOM node being processed
      contextPath - the XPath to the DOM node being processed
      parameters - a scratchpad map of name value pairs
      -
      -
      -
      - -

      -handleChildElements

      -
      -public void handleChildElements(org.w3c.dom.Node node,
      -                                java.lang.String contextPath,
      -                                java.util.Map handlers,
      -                                java.util.Map parameters)
      -
      -
      This method will iterate through the DOM node's children and call the - appropriate handler for each one. -

      -

      -
      -
      -
      -
      Parameters:
      node - the DOM node being processed
      contextPath - the XPath to the DOM node being processed
      handlers - a map of element name to handler objects
      parameters - a scratchpad map of name value pairs
      -
      -
      -
      - -

      -mapNodeToHandlerAndHandle

      -
      -public static void mapNodeToHandlerAndHandle(org.w3c.dom.Node node,
      -                                             java.lang.String contextPath,
      -                                             java.util.Map handlers,
      -                                             java.util.Map parameters)
      -
      -
      This method will resolve any registered handler for a particular DOM - element and call the handleNode method on it. If the handlers map has a - mapping from "entity" to an instance of EntityHandler which implements - the DomNodeHandler interface then any node that looks like - - - Will be passed to the EntityHandler to process. -

      -

      -
      -
      -
      -
      Parameters:
      node - the DOM node being processed
      contextPath - the XPath to the DOM node being processed
      handlers - a map of element name to handler objects
      parameters - a scratchpad map of name value pairs
      -
      -
      -
      - -

      -handleNode

      -
      -public void handleNode(org.w3c.dom.Node node,
      -                       java.lang.String contextXPath,
      -                       java.util.Map handlers,
      -                       java.util.Map parameters)
      -
      -
      This method will place the attributes in this node into the parameter - map keyed by the XPath and recursively continue processing for any - sub-elements of the node. -

      -

      -
      Specified by:
      handleNode in interface DomNodeHandler
      -
      -
      -
      Parameters:
      node - The DOM node being consumed
      contextXPath - The XPath to this node
      handlers - The map from element name to node handler
      parameters - A map of parameters - this is often used by a handler to place - a name-value pair, the name is often an Xpath representation - of the location of the data in the DOM but handlers are free - to use whatever they like - the contextXpath is generated as - an Xpath prefix for those handlers that wish to use it.
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/LittleClass.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/LittleClass.html deleted file mode 100644 index 3562f99e07..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/LittleClass.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - -LittleClass (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class LittleClass

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.services.LittleClass
      -
      -
      -
      -
      public class LittleClass
      extends java.lang.Object
      - -

      -This class is just a convenient application class that is loaded in order to - get the application class loader. We are interested in the application class - loader as we use its getResource method to resolve XML files independantly of - where they are. -

      - -

      -


      - -

      - - - - - - - - - - - - - - - - -
      -Constructor Summary
      LittleClass() - -
      -           
      -  - - - - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -LittleClass

      -
      -public LittleClass()
      -
      -
      - - - - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.html deleted file mode 100644 index 71448f7f04..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.html +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - -ModuleOrFragmentFileHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class ModuleOrFragmentFileHandler

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.services.XMLFileActor
      -      extended byorg.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler
      -
      -
      -
      All Implemented Interfaces:
      FileActor
      -
      -
      -
      -
      public class ModuleOrFragmentFileHandler
      extends XMLFileActor
      - -

      -The purpose of this class is purely to specialise the handler map to one with - a specific ComponentDomNodeHandler. -

      - -

      -


      - -

      - - - - - - - - - - -
      -Field Summary
      - - - - - - - -
      Fields inherited from class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor
      failed, handlers, parameters, transformerFactory
      -  - - - - - - - - - - -
      -Constructor Summary
      ModuleOrFragmentFileHandler() - -
      -           
      -  - - - - - - - - - - -
      Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor
      actOnFile, createDomFromXMLFile, getFilesActedOn, getParameter, setParameter
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -ModuleOrFragmentFileHandler

      -
      -public ModuleOrFragmentFileHandler()
      -
      -
      - - - - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.html deleted file mode 100644 index 506b804627..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - - -ReferenceDomNodeHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class ReferenceDomNodeHandler

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
      -      extended byorg.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler
      -
      -
      -
      All Implemented Interfaces:
      DomNodeHandler
      -
      -
      -
      -
      public class ReferenceDomNodeHandler
      extends GenericDomNodeHandler
      - -

      -The purpose of this class is to process a element in a - componentType file and then trigger a call to the method in ServicesGenerator - to process the interface header file -

      - -

      -


      - -

      - - - - - - - - - - -
      -Field Summary
      - - - - - - - -
      Fields inherited from interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
      ELEMENT
      -  - - - - - - - - - - -
      -Constructor Summary
      ReferenceDomNodeHandler() - -
      -           
      -  - - - - - - - - - - - -
      -Method Summary
      - voidhandleNode(org.w3c.dom.Node node, - java.lang.String contextXPath, - java.util.Map handlers, - java.util.Map parameters) - -
      -          This method will place the attributes in this node into the parameter - map keyed by the XPath and recursively continue processing for any - sub-elements of the node.
      - - - - - - - -
      Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
      handleChildElements, mapNodeToHandlerAndHandle, transferAttrsToParameters
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -ReferenceDomNodeHandler

      -
      -public ReferenceDomNodeHandler()
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -handleNode

      -
      -public void handleNode(org.w3c.dom.Node node,
      -                       java.lang.String contextXPath,
      -                       java.util.Map handlers,
      -                       java.util.Map parameters)
      -
      -
      Description copied from class: GenericDomNodeHandler
      -
      This method will place the attributes in this node into the parameter - map keyed by the XPath and recursively continue processing for any - sub-elements of the node. -

      -

      -
      Specified by:
      handleNode in interface DomNodeHandler
      Overrides:
      handleNode in class GenericDomNodeHandler
      -
      -
      -
      Parameters:
      node - The DOM node being consumed
      contextXPath - The XPath to this node
      handlers - The map from element name to node handler
      parameters - A map of parameters - this is often used by a handler to place - a name-value pair, the name is often an Xpath representation - of the location of the data in the DOM but handlers are free - to use whatever they like - the contextXpath is generated as - an Xpath prefix for those handlers that wish to use it.
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/Scagen.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/Scagen.html deleted file mode 100644 index 08c200c9e8..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/Scagen.html +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - -Scagen (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class Scagen

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.CParsingTool
      -      extended byorg.apache.tuscany.sca.cpp.tools.services.Scagen
      -
      -
      -
      -
      public class Scagen
      extends CParsingTool
      - -

      -This is the main top level class. Its purpose is to create a - Module/FragmentFile handler visitor and pass it to a DirectoryScanner for - processing. -

      - -

      -


      - -

      - - - - - - - - - - - - - - -
      -Field Summary
      -static java.util.SetMODULE_EXTENSIONS - -
      -           
      - - - - - - - -
      Fields inherited from class org.apache.tuscany.sca.cpp.tools.common.CParsingTool
      failed, headers
      -  - - - - - - - - - - -
      -Constructor Summary
      Scagen(java.lang.String[] args) - -
      -           
      -  - - - - - - - - - - - - - - - -
      -Method Summary
      -static voidmain(java.lang.String[] args) - -
      -          Take a directory scanning class and create a vistor that knows how to - handle any sca.module or .fragment that the scanner comes across.
      -protected  voidprintUsage() - -
      -          Provide a hint to the user on how to call this class
      - - - - - - - -
      Methods inherited from class org.apache.tuscany.sca.cpp.tools.common.CParsingTool
      checkFile, maybeCreateDirectory, preparseHeaders
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - -
      -Field Detail
      - -

      -MODULE_EXTENSIONS

      -
      -public static java.util.Set MODULE_EXTENSIONS
      -
      -
      -
      -
      - - - - - - - - -
      -Constructor Detail
      - -

      -Scagen

      -
      -public Scagen(java.lang.String[] args)
      -       throws java.lang.Exception
      -
      - -
      Throws: -
      java.lang.Exception
      - - - - - - - - -
      -Method Detail
      - -

      -main

      -
      -public static void main(java.lang.String[] args)
      -
      -
      Take a directory scanning class and create a vistor that knows how to - handle any sca.module or .fragment that the scanner comes across. -

      -

      -
      Parameters:
      args - standard main args. THe values we expect in this class are - scagen -dir input_dir -output output_dir
      -
      -
      -
      - -

      -printUsage

      -
      -protected void printUsage()
      -
      -
      Provide a hint to the user on how to call this class -

      -

      -
      Overrides:
      printUsage in class CParsingTool
      -
      -
      -
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.html deleted file mode 100644 index 5970989783..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - -ServiceDomNodeHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class ServiceDomNodeHandler

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
      -      extended byorg.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler
      -
      -
      -
      All Implemented Interfaces:
      DomNodeHandler
      -
      -
      -
      -
      public class ServiceDomNodeHandler
      extends GenericDomNodeHandler
      - -

      -


      - -

      - - - - - - - - - - -
      -Field Summary
      - - - - - - - -
      Fields inherited from interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
      ELEMENT
      -  - - - - - - - - - - -
      -Constructor Summary
      ServiceDomNodeHandler() - -
      -           
      -  - - - - - - - - - - - -
      -Method Summary
      - voidhandleNode(org.w3c.dom.Node node, - java.lang.String contextXPath, - java.util.Map handlers, - java.util.Map parameters) - -
      -          This method will place the attributes in this node into the parameter - map keyed by the XPath and recursively continue processing for any - sub-elements of the node.
      - - - - - - - -
      Methods inherited from class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler
      handleChildElements, mapNodeToHandlerAndHandle, transferAttrsToParameters
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -ServiceDomNodeHandler

      -
      -public ServiceDomNodeHandler()
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -handleNode

      -
      -public void handleNode(org.w3c.dom.Node node,
      -                       java.lang.String contextXPath,
      -                       java.util.Map handlers,
      -                       java.util.Map parameters)
      -
      -
      Description copied from class: GenericDomNodeHandler
      -
      This method will place the attributes in this node into the parameter - map keyed by the XPath and recursively continue processing for any - sub-elements of the node. -

      -

      -
      Specified by:
      handleNode in interface DomNodeHandler
      Overrides:
      handleNode in class GenericDomNodeHandler
      -
      -
      -
      Parameters:
      node - The DOM node being consumed
      contextXPath - The XPath to this node
      handlers - The map from element name to node handler
      parameters - A map of parameters - this is often used by a handler to place - a name-value pair, the name is often an Xpath representation - of the location of the data in the DOM but handlers are free - to use whatever they like - the contextXpath is generated as - an Xpath prefix for those handlers that wish to use it.
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.html deleted file mode 100644 index ebf2ec4ac5..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.html +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - -ServicesGenerator (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class ServicesGenerator

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.common.CParsingTool
      -      extended byorg.apache.tuscany.sca.cpp.tools.services.ServicesGenerator
      -
      -
      -
      -
      public class ServicesGenerator
      extends CParsingTool
      - -

      -This class is the main class that handles the function that parses a C++ - interface header file into a DOM that holds all the semantic information - about the interface - method names, parameters and return values. It then - uses XSLT to generate different "views" of this data plus the parameter map - from other sources that are the C++ programs for the proxy and wrapper - implementations and headers. -

      - -

      -


      - -

      - - - - - - - - - - -
      -Field Summary
      - - - - - - - -
      Fields inherited from class org.apache.tuscany.sca.cpp.tools.common.CParsingTool
      failed, headers
      -  - - - - - - - - - - -
      -Constructor Summary
      ServicesGenerator(java.lang.String[] args) - -
      -           
      -  - - - - - - - - - - - -
      -Method Summary
      -static voidhandleInterfaceHeader(java.util.Map parameters, - boolean forReference) - -
      -           
      - - - - - - - -
      Methods inherited from class org.apache.tuscany.sca.cpp.tools.common.CParsingTool
      checkFile, maybeCreateDirectory, preparseHeaders, printUsage
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - - - - -
      -Constructor Detail
      - -

      -ServicesGenerator

      -
      -public ServicesGenerator(java.lang.String[] args)
      -                  throws java.lang.Exception
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -handleInterfaceHeader

      -
      -public static void handleInterfaceHeader(java.util.Map parameters,
      -                                         boolean forReference)
      -                                  throws java.lang.Exception
      -
      -
      -
      Parameters:
      parameters -
      forReference - true if we are creating a proxy for a reference (rather than - for a service) -
      Throws: -
      java.lang.Exception - The design is -
        -
      • handleInterfaceHeader -
      • createDOMofMethods -
      • createProxyCPPFromDom(outputDir, dom); -
      • createProxyHeaderFromDom(outputDir, dom); -
      - - plus if we are not generating for a reference element -
        -
      • createWrapperCPPFromDom(outputDir, dom); -
      • createWrapperHeaderFromDom(outputDir, dom); -
          - Each of the create.... methods calls createOutputFromDom with a different - style sheet.
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.html deleted file mode 100644 index 67930e3ba8..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.html +++ /dev/null @@ -1,469 +0,0 @@ - - - - - - -XMLFileActor (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - -

      - -org.apache.tuscany.sca.cpp.tools.services -
      -Class XMLFileActor

      -
      -java.lang.Object
      -  extended byorg.apache.tuscany.sca.cpp.tools.services.XMLFileActor
      -
      -
      -
      All Implemented Interfaces:
      FileActor
      -
      -
      -
      Direct Known Subclasses:
      ComponentTypeFileHandler, ModuleOrFragmentFileHandler
      -
      -
      -
      -
      public abstract class XMLFileActor
      extends java.lang.Object
      implements FileActor
      - -

      -The purpose of this abstract class is to provide a home for the standard - processing that is involved in turning a XML file into an internal DOM. -

      - -

      -


      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Field Summary
      - booleanfailed - -
      -           
      -protected static java.util.Maphandlers - -
      -           
      -protected static java.util.Mapparameters - -
      -           
      -protected static javax.xml.transform.TransformerFactorytransformerFactory - -
      -           
      -  - - - - - - - - - - -
      -Constructor Summary
      XMLFileActor() - -
      -           
      -  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Method Summary
      - voidactOnFile(java.io.File moduleXML, - java.io.File target, - int depth) - -
      -          This method is the main FileActor method
      -protected  org.w3c.dom.DocumentcreateDomFromXMLFile(java.io.File xmlSourceFile) - -
      -          This method builds an in memory DOM from an XML file
      - intgetFilesActedOn() - -
      -           
      - java.lang.ObjectgetParameter(java.lang.String name, - java.lang.Object value) - -
      -          Get a parameter
      - voidsetParameter(java.lang.String name, - java.lang.Object value) - -
      -          Set a parameter
      - - - - - - - -
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -  -

      - - - - - - - - -
      -Field Detail
      - -

      -handlers

      -
      -protected static java.util.Map handlers
      -
      -
      -
      -
      -
      - -

      -parameters

      -
      -protected static java.util.Map parameters
      -
      -
      -
      -
      -
      - -

      -failed

      -
      -public boolean failed
      -
      -
      -
      -
      -
      - -

      -transformerFactory

      -
      -protected static javax.xml.transform.TransformerFactory transformerFactory
      -
      -
      -
      -
      - - - - - - - - -
      -Constructor Detail
      - -

      -XMLFileActor

      -
      -public XMLFileActor()
      -
      -
      - - - - - - - - -
      -Method Detail
      - -

      -actOnFile

      -
      -public void actOnFile(java.io.File moduleXML,
      -                      java.io.File target,
      -                      int depth)
      -               throws java.lang.Exception
      -
      -
      This method is the main FileActor method -

      -

      -
      Specified by:
      actOnFile in interface FileActor
      -
      -
      -
      Parameters:
      moduleXML - the sca.module or fragment file
      target - the target directory
      depth - not uesed here but in the -
      Throws: -
      java.lang.Exception
      See Also:
      Here we create an initial DOM - and kick off the processing (using the handler map that has been set - up by the concrete subclass)., -interface to allow for - recursive diving into a directory structure.
      -
      -
      -
      - -

      -createDomFromXMLFile

      -
      -protected org.w3c.dom.Document createDomFromXMLFile(java.io.File xmlSourceFile)
      -
      -
      This method builds an in memory DOM from an XML file -

      -

      -
      -
      -
      -
      Parameters:
      xmlSourceFile - the XML file we are handling -
      Returns:
      the resulting document
      -
      -
      -
      - -

      -setParameter

      -
      -public void setParameter(java.lang.String name,
      -                         java.lang.Object value)
      -
      -
      Set a parameter -

      -

      -
      -
      -
      -
      Parameters:
      name -
      value -
      -
      -
      -
      - -

      -getParameter

      -
      -public java.lang.Object getParameter(java.lang.String name,
      -                                     java.lang.Object value)
      -
      -
      Get a parameter -

      -

      -
      -
      -
      -
      Parameters:
      name -
      value - -
      Returns:
      the value of the parameter
      -
      -
      -
      - -

      -getFilesActedOn

      -
      -public int getFilesActedOn()
      -
      -
      -
      -
      -
      - -
      Returns:
      Returns the filesActedOn.
      -
      -
      - -
      - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentDomNodeHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentDomNodeHandler.html deleted file mode 100644 index 5b92855433..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentDomNodeHandler.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.services.ComponentDomNodeHandler -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentTypeFileHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentTypeFileHandler.html deleted file mode 100644 index 5b7fe28bdb..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ComponentTypeFileHandler.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.services.ComponentTypeFileHandler -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DirectoryScanner.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DirectoryScanner.html deleted file mode 100644 index 2b9b52e3bc..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DirectoryScanner.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.services.DirectoryScanner -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomHandler.html deleted file mode 100644 index 000ac87acc..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomHandler.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.DomHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.DomHandler

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.services.DomHandler -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomNodeHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomNodeHandler.html deleted file mode 100644 index ed14ed35cd..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/DomNodeHandler.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - -Uses of Interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Interface
      org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler

      -
      - - - - - - - - - -
      -Packages that use DomNodeHandler
      org.apache.tuscany.sca.cpp.tools.services
      - - 
      -  -

      - - - - - -
      -Uses of DomNodeHandler in org.apache.tuscany.sca.cpp.tools.services
      -  -

      - - - - - - - - - - - - - - - - - - - - - - - - -
      Classes in org.apache.tuscany.sca.cpp.tools.services that implement DomNodeHandler -
      - classComponentDomNodeHandler - -
      -          This class will do the required processing for the element of a - sca module or fragment file.
      - classDomHandler - -
      -          The purpose of this class it to provide a generic class that can handle both - a DOM and a DOM node.
      - classGenericDomNodeHandler - -
      -           
      - classReferenceDomNodeHandler - -
      -          The purpose of this class is to process a element in a - componentType file and then trigger a call to the method in ServicesGenerator - to process the interface header file
      - classServiceDomNodeHandler - -
      -           
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/GenericDomNodeHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/GenericDomNodeHandler.html deleted file mode 100644 index b35bfde41f..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/GenericDomNodeHandler.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.GenericDomNodeHandler

      -
      - - - - - - - - - -
      -Packages that use GenericDomNodeHandler
      org.apache.tuscany.sca.cpp.tools.services
      - - 
      -  -

      - - - - - -
      -Uses of GenericDomNodeHandler in org.apache.tuscany.sca.cpp.tools.services
      -  -

      - - - - - - - - - - - - - - - - - - - - -
      Subclasses of GenericDomNodeHandler in org.apache.tuscany.sca.cpp.tools.services -
      - classComponentDomNodeHandler - -
      -          This class will do the required processing for the element of a - sca module or fragment file.
      - classDomHandler - -
      -          The purpose of this class it to provide a generic class that can handle both - a DOM and a DOM node.
      - classReferenceDomNodeHandler - -
      -          The purpose of this class is to process a element in a - componentType file and then trigger a call to the method in ServicesGenerator - to process the interface header file
      - classServiceDomNodeHandler - -
      -           
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/LittleClass.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/LittleClass.html deleted file mode 100644 index a7597e3212..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/LittleClass.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.LittleClass (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.LittleClass

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.services.LittleClass -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ModuleOrFragmentFileHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ModuleOrFragmentFileHandler.html deleted file mode 100644 index 4115066abd..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ModuleOrFragmentFileHandler.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.services.ModuleOrFragmentFileHandler -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ReferenceDomNodeHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ReferenceDomNodeHandler.html deleted file mode 100644 index b86f9da242..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ReferenceDomNodeHandler.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.services.ReferenceDomNodeHandler -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/Scagen.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/Scagen.html deleted file mode 100644 index 2a212df7cf..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/Scagen.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.Scagen (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.Scagen

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.services.Scagen -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServiceDomNodeHandler.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServiceDomNodeHandler.html deleted file mode 100644 index 630cee5ec6..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServiceDomNodeHandler.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.services.ServiceDomNodeHandler -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServicesGenerator.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServicesGenerator.html deleted file mode 100644 index ecf5d60367..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/ServicesGenerator.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator

      -
      -No usage of org.apache.tuscany.sca.cpp.tools.services.ServicesGenerator -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/XMLFileActor.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/XMLFileActor.html deleted file mode 100644 index 4749bbd440..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/class-use/XMLFileActor.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - -Uses of Class org.apache.tuscany.sca.cpp.tools.services.XMLFileActor (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Class
      org.apache.tuscany.sca.cpp.tools.services.XMLFileActor

      -
      - - - - - - - - - -
      -Packages that use XMLFileActor
      org.apache.tuscany.sca.cpp.tools.services
      - - 
      -  -

      - - - - - -
      -Uses of XMLFileActor in org.apache.tuscany.sca.cpp.tools.services
      -  -

      - - - - - - - - - - - - -
      Subclasses of XMLFileActor in org.apache.tuscany.sca.cpp.tools.services -
      - classComponentTypeFileHandler - -
      -          The purpose of this class is to specialise the map of XML element handlers - for a XXX.componentType file that is used by the XMLFileActor
      - classModuleOrFragmentFileHandler - -
      -          The purpose of this class is purely to specialise the handler map to one with - a specific ComponentDomNodeHandler.
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-frame.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-frame.html deleted file mode 100644 index 67936195cb..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-frame.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -org.apache.tuscany.sca.cpp.tools.services (SCA for C++ Tools) - - - - - - - - - - - -org.apache.tuscany.sca.cpp.tools.services - - - - -
      -Interfaces  - -
      -DomNodeHandler
      - - - - - - -
      -Classes  - -
      -ComponentDomNodeHandler -
      -ComponentTypeFileHandler -
      -DirectoryScanner -
      -DomHandler -
      -GenericDomNodeHandler -
      -LittleClass -
      -ModuleOrFragmentFileHandler -
      -ReferenceDomNodeHandler -
      -Scagen -
      -ServiceDomNodeHandler -
      -ServicesGenerator -
      -XMLFileActor
      - - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-summary.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-summary.html deleted file mode 100644 index 7d4ef0c594..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-summary.html +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - -org.apache.tuscany.sca.cpp.tools.services (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -

      -Package org.apache.tuscany.sca.cpp.tools.services -

      -
      - - -

      -See: -
      -          Description -

      - - - - - - - - - -
      -Interface Summary
      DomNodeHandler 
      -  - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -Class Summary
      ComponentDomNodeHandlerThis class will do the required processing for the element of a - sca module or fragment file.
      ComponentTypeFileHandlerThe purpose of this class is to specialise the map of XML element handlers - for a XXX.componentType file that is used by the XMLFileActor
      DirectoryScanner 
      DomHandlerThe purpose of this class it to provide a generic class that can handle both - a DOM and a DOM node.
      GenericDomNodeHandler 
      LittleClassThis class is just a convenient application class that is loaded in order to - get the application class loader.
      ModuleOrFragmentFileHandlerThe purpose of this class is purely to specialise the handler map to one with - a specific ComponentDomNodeHandler.
      ReferenceDomNodeHandlerThe purpose of this class is to process a element in a - componentType file and then trigger a call to the method in ServicesGenerator - to process the interface header file
      ScagenThis is the main top level class.
      ServiceDomNodeHandler 
      ServicesGeneratorThis class is the main class that handles the function that parses a C++ - interface header file into a DOM that holds all the semantic information - about the interface - method names, parameters and return values.
      XMLFileActorThe purpose of this abstract class is to provide a home for the standard - processing that is involved in turning a XML file into an internal DOM.
      -  - -

      -

      -Package org.apache.tuscany.sca.cpp.tools.services Description -

      - -

      -

      - -

      Overview

      - - - -

      This package contains classes that generate C++ wrappers and -proxies for C++ implementations of SCA services.

      - -

      What the package does

      - -

      The Scagen class main method will take in an input and -output directory name. The input directory is taken to be the SCA module root -directory.  The tool will generate the wrapper and proxy headers and methods -bodies in the output directory.

      - -

      These proxies and wrappers enable the SCA for C++ runtime to -act as a conduit for SCA C++ calls in a type free manner. Client code can call -the type specific functions that are in the generated proxy classes. The call -is marshalled into a generic format and a SCA for C++ runtime function with a -standard signature is invoked. The details of the call are passed as data.

      - -

      On the other end of the runtime, a generated function with a -standard signature is called, this function will inspect the data that -represents the call’s method name and call the appropriate type specific -function in the C++ implementation.

      - -

      The Input Data Used

      - -

      The input directory passed to the Scagen method is taken to -be the SCA module root directory. All the sca.module and .fragment files in -that directory are inspected to resolve all the <component/> elements -within them.

      - -

      Each <component/> element found is inspected to see if -it has a <implementation.cpp/> element within it.

      - -

      Each <implementation.cpp/> element should have a -header attribute that represents a C++ header file that contains function -prototypes for the C++ implementation of the service. An optional class -attribute can be used to select one class if more than one that is present in -the header file. The default class is the one with the same name as the header -file. The tool will verify that the implementation header contains an -appropriate class prototype.

      - - - -

      The directory that contains the implementation header should -also contain a matching .componentType file for the equivalent SCA component. So -for example, a MyServiceImpl.h file would have a corresponding MyServiceImpl.componentType -file in the same directory.

      - - - -

      Each componentType file is inspected for <service/> -and <reference/> elements. For each <service/> element that is -found that contains a <interface.cpp/> element within it,

      - -

      the header attribute of the <interface.cpp/> is taken -as the filename of the C++ interface header for the SCA service.  This C++ -header file is opened and used as a means for specifying the SCA service -resulting in an appropriate wrapper and proxy being generated for this service -interface. Both method bodies and headers are generated in the given output -directory. The processing of a <reference/> element is the same except -that only a proxy header and implementation are generated.

      - - - - - -

      Outline Design: How it Works

      - - - -

      The basic approach is to scan in the XML files by first -creating a DOM document tree of them and then recursively rifling through the DOM  -with some generic code in the XMLFileActorClass by default this processing will -build up a map which maps the XPath location of attributes to their values. -Additionally subclasses can add to a “handlers map” which maps from the name of -a particular element to an object that implements the DomNodeHandler interface. -If the XMLFileActor code comes across any element that has an equivalent handler -in the handler map the objects handleNode method will be called.

      - -

      Typically the DomNodeHandler’s handle node interface will -use XPath to pull out the parameters that it is interested in from the -parameters map that is being built up by the generic code.

      - -

      This design was chosen as the Java level specified for the -original implementation did not have direct XPath query of XML data but it was -known that this would be available in Java 1.5 onwards. The design allows the -DOM and parameters map handling to be replaced in the future with JRE 1.5 code -with less impact on the rest of the code.

      - - - -

      The processing leads to the parsing of the C++ interface -files using the org\apache\tuscany\sca\cpp\tools\common package. This results -in a Headers object

      - -

      that contains a List of Signature objects, each one -representing a function prototype found in the header.

      - - - -

      We are aiming to get all the semantic data we want to use -into a DOM document (this represents the model of our input data) and then use -XSLT to create the 4 different views of this data:

      - -

      Proxy C++ header

      - -

      Proxy C++  body

      - -

      Wrapper C++ header

      - -

      Wrapper C++ body

      - - - -

      So we prepopulate the DOM with parameter data that comes -from the XML files and then iterate through the Signatures that are returned -from the C++ header parser transferring the useful data into the DOM.

      - - - -

      We than use 4 XSLT stylesheets to generate the C++ output -files as required.

      - -
      -

      - -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-tree.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-tree.html deleted file mode 100644 index adceb9d363..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-tree.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - -org.apache.tuscany.sca.cpp.tools.services Class Hierarchy (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Hierarchy For Package org.apache.tuscany.sca.cpp.tools.services -

      -
      -
      -
      Package Hierarchies:
      All Packages
      -
      -

      -Class Hierarchy -

      - -

      -Interface Hierarchy -

      - -
      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-use.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-use.html deleted file mode 100644 index f35093ab2a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/org/apache/tuscany/sca/cpp/tools/services/package-use.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - -Uses of Package org.apache.tuscany.sca.cpp.tools.services (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Uses of Package
      org.apache.tuscany.sca.cpp.tools.services

      -
      - - - - - - - - - -
      -Packages that use org.apache.tuscany.sca.cpp.tools.services
      org.apache.tuscany.sca.cpp.tools.services
      - - 
      -  -

      - - - - - - - - - - - - - - -
      -Classes in org.apache.tuscany.sca.cpp.tools.services used by org.apache.tuscany.sca.cpp.tools.services
      DomNodeHandler - -
      -           
      GenericDomNodeHandler - -
      -           
      XMLFileActor - -
      -          The purpose of this abstract class is to provide a home for the standard - processing that is involved in turning a XML file into an internal DOM.
      -  -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-frame.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-frame.html deleted file mode 100644 index ac9bf75355..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-frame.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - -Overview (SCA for C++ Tools) - - - - - - - - - - - - - - - -
      -
      - - - - - -
      All Classes -

      - -Packages -
      -org.apache.tuscany.sca.cpp.tools.common -
      -org.apache.tuscany.sca.cpp.tools.services -
      -

      - -

      -  - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-summary.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-summary.html deleted file mode 100644 index 8d79e7de28..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-summary.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - -Overview (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -


      - -
      -

      - -

      SCA for C++ Tools

      - - -
      - - - - - - - - - -
      -C++ Parser
      org.apache.tuscany.sca.cpp.tools.common
      - -
      - -

      -  - - - - - - - - -
      -SCA Services Generator
      org.apache.tuscany.sca.cpp.tools.services
      - -
      - -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-tree.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-tree.html deleted file mode 100644 index 0c3da7e516..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/overview-tree.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - -Class Hierarchy (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Hierarchy For All Packages

      -
      -
      -
      Package Hierarchies:
      org.apache.tuscany.sca.cpp.tools.common, org.apache.tuscany.sca.cpp.tools.services
      -
      -

      -Class Hierarchy -

      - -

      -Interface Hierarchy -

      -
        -
      • interface org.apache.tuscany.sca.cpp.tools.services.DomNodeHandler
      • interface org.apache.tuscany.sca.cpp.tools.common.FileActor
      -
      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/package-list b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/package-list deleted file mode 100644 index 2d78f0b38b..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/package-list +++ /dev/null @@ -1,2 +0,0 @@ -org.apache.tuscany.sca.cpp.tools.common -org.apache.tuscany.sca.cpp.tools.services diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/packages.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/packages.html deleted file mode 100644 index 5657522fec..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/packages.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - (SCA for C++ Tools) - - - - - - - - - - - -
      - -
      - -
      -
      -The front page has been relocated.Please see: -
      -          Frame version -
      -          Non-frame version.
      - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/resources/inherit.gif b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/resources/inherit.gif deleted file mode 100644 index c814867a13..0000000000 Binary files a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/resources/inherit.gif and /dev/null differ diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/serialized-form.html b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/serialized-form.html deleted file mode 100644 index 75a28975e2..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/serialized-form.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - -Serialized Form (SCA for C++ Tools) - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      - -
      -

      -Serialized Form

      -
      -
      - - - - - -
      -Package org.apache.tuscany.sca.cpp.tools.common
      - -

      - - - - - -
      -Class org.apache.tuscany.sca.cpp.tools.common.ParsingException extends java.lang.Exception implements Serializable
      - -

      - -

      -


      - - - - - - - - - - - - - - - -
      - -
      - - - -
      - - Copyright 2005 The Apache Software Foundation and Copyright IBM Corp. 2005 All Rights Reserved - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/stylesheet.css b/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/stylesheet.css deleted file mode 100644 index 6d31fdbc7f..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/docs/api/stylesheet.css +++ /dev/null @@ -1,29 +0,0 @@ -/* Javadoc style sheet */ - -/* Define colors, fonts and other style attributes here to override the defaults */ - -/* Page background color */ -body { background-color: #FFFFFF } - -/* Headings */ -h1 { font-size: 145% } - -/* Table colors */ -.TableHeadingColor { background: #CCCCFF } /* Dark mauve */ -.TableSubHeadingColor { background: #EEEEFF } /* Light mauve */ -.TableRowColor { background: #FFFFFF } /* White */ - -/* Font used in left-hand frame lists */ -.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif } -.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif } -.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif } - -/* Navigation bar fonts and colors */ -.NavBarCell1 { background-color:#EEEEFF;} /* Light mauve */ -.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */ -.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;} -.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;} - -.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} -.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/CalculatorTest.java b/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/CalculatorTest.java deleted file mode 100644 index 448fd6dd7d..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/CalculatorTest.java +++ /dev/null @@ -1,29 +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. - */ -package org.apache.tuscany.sca.cpp.tools.junit; - -import org.apache.tuscany.sca.cpp.tools.junit.TuscanyTestCase; - -/** - * This test case tests a simple Calculator service tools generation - */ -public class CalculatorTest extends TuscanyTestCase { - - public void testCalculatorModuleAndComponent() { - testModule("CalculatorModuleAndComponent", check_results); - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/EnvHandlerTest.java b/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/EnvHandlerTest.java deleted file mode 100644 index 2f1bf78921..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/EnvHandlerTest.java +++ /dev/null @@ -1,46 +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. -*/ -package org.apache.tuscany.sca.cpp.tools.junit; - -import org.apache.tuscany.sca.cpp.tools.services.Scagen; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as - * input data. - */ -public class EnvHandlerTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public EnvHandlerTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule - * proxy and wrapper generation. - */ - public void testEnvHandler() { - testModule("MyValueServiceModule", check_results); - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceTest.java b/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceTest.java deleted file mode 100644 index 1dfe302cf1..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceTest.java +++ /dev/null @@ -1,46 +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. -*/ -package org.apache.tuscany.sca.cpp.tools.junit; - -import org.apache.tuscany.sca.cpp.tools.services.Scagen; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as - * input data. - */ -public class ImplClassWithNameSpaceTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public ImplClassWithNameSpaceTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule - * proxy and wrapper generation. - */ - public void testEnvHandler() { - testModule("MyValueServiceModuleImplClassWithNamespace", check_results); - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceButNotInClassAttrTest.java b/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceButNotInClassAttrTest.java deleted file mode 100644 index 146c18fa1b..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceButNotInClassAttrTest.java +++ /dev/null @@ -1,46 +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. -*/ -package org.apache.tuscany.sca.cpp.tools.junit; - -import org.apache.tuscany.sca.cpp.tools.services.Scagen; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as - * input data. - */ -public class IntfClassWithNameSpaceButNotInClassAttrTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public IntfClassWithNameSpaceButNotInClassAttrTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule - * proxy and wrapper generation. - */ - public void testEnvHandler() { - testModule("MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr", check_results); - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceTest.java b/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceTest.java deleted file mode 100644 index c78f8a5f93..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceTest.java +++ /dev/null @@ -1,46 +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. -*/ -package org.apache.tuscany.sca.cpp.tools.junit; - -import org.apache.tuscany.sca.cpp.tools.services.Scagen; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as - * input data. - */ -public class IntfClassWithNameSpaceTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public IntfClassWithNameSpaceTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule - * proxy and wrapper generation. - */ - public void testEnvHandler() { - testModule("MyValueServiceModuleIntfClassWithNamespace", check_results); - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/MissingModuleAndFragmentTest.java b/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/MissingModuleAndFragmentTest.java deleted file mode 100644 index 4a8f8449a6..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/MissingModuleAndFragmentTest.java +++ /dev/null @@ -1,46 +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. -*/ -package org.apache.tuscany.sca.cpp.tools.junit; - -import org.apache.tuscany.sca.cpp.tools.services.Scagen; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as - * input data. - */ -public class MissingModuleAndFragmentTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public MissingModuleAndFragmentTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule - * proxy and wrapper generation. - */ - public void testEnvHandler() { - testModule("MyValueServiceModuleMissingScaModule",check_results); - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/SimplePublicPrivateProtectedTest.java b/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/SimplePublicPrivateProtectedTest.java deleted file mode 100644 index 9c05599286..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/SimplePublicPrivateProtectedTest.java +++ /dev/null @@ -1,47 +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. - */ -package org.apache.tuscany.sca.cpp.tools.junit; - -import org.apache.tuscany.sca.cpp.tools.services.Scagen; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule SCA module as - * input data. - */ -public class SimplePublicPrivateProtectedTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public SimplePublicPrivateProtectedTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule - * proxy and wrapper generation. - */ - public void testEnvHandler() { - - testModule("SimplePublicPrivateProtectedTest", check_results); - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllModulesTest.java b/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllModulesTest.java deleted file mode 100644 index fc5c8c5653..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllModulesTest.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * IBM Confidential - * - * OCO Source Materials - * - * - * - * (C) Copyright IBM Corp. 2005 - * - * The source code for this program is not published - * or otherwise divested of its trade secrets, - * irrespective of what has been deposited with the - * U. S. Copyright Office. - */ -package org.apache.tuscany.sca.cpp.tools.junit; - -import java.io.File; -import java.util.HashSet; -import java.util.Set; - -import org.apache.tuscany.sca.cpp.tools.junit.TuscanyTestCase; - -/** - * This test case will test all the modules placed in the "modules" directory - * against the results in their repectice "expected_results" folders. - */ -public class TestAllModulesTest extends TuscanyTestCase { - - String testsDir = TuscanyTestCase.junit_modules; - - Set excludes = new HashSet(); - - public TestAllModulesTest(String arg0) { - super(arg0); - excludes.add("MyValueServiceModuleMissingScaModule"); - excludes.add("CVS"); - } - - - /* main exists to allow running from the java ant task */ - public static void main(String[] args) { - TestAllModulesTest test = new TestAllModulesTest(""); - test.testAllModulesRegression(); - } - - public void testAllModulesRegression() { - File dir = new File(testsDir); - - if (dir.isDirectory()) { - System.out.println("Testing all modules under " - + dir.getAbsolutePath()); - String[] test_modules = dir.list(); - - for (int i = 0; i < test_modules.length; i++) { - File test_module = new File(testsDir, test_modules[i]); - - String module_name = null; - if (test_module.isDirectory()) { - module_name = test_module.getName(); - if (!excludes.contains(module_name.intern())) { - testModule(module_name, check_results); - System.out.println("Test of module \"" + module_name - + "\" passed."); - continue; - } else { - System.out - .println("Ignoring excluded module subdirectory \"" - + module_name + "\""); - } - } - } - - } else { - - fail("Test directory is not a directory! \r The variable org.apache.tuscany.sca.cpp.tools.junit.TuscanyTestCase.root sets the location of the junit input data,\r it is currently set as " - + TuscanyTestCase.root + "\rand we expect to find a testinput\\modules directory under there."); - } - - System.out.println("testAllModules test passed."); - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestDeployAssistTool.java b/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestDeployAssistTool.java deleted file mode 100644 index fb4cd4b606..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestDeployAssistTool.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * IBM Confidential - * - * OCO Source Materials - * - * - * - * (C) Copyright IBM Corp. 2005 - * - * The source code for this program is not published - * or otherwise divested of its trade secrets, - * irrespective of what has been deposited with the - * U. S. Copyright Office. - */ -package org.apache.tuscany.sca.cpp.tools.junit; - -import java.io.File; -import java.util.HashSet; -import java.util.Set; - -import org.apache.tuscany.sca.cpp.tools.common.Utils; -import org.apache.tuscany.sca.cpp.tools.junit.TuscanyTestCase; - -/** - * This test case will test all the modules placed in the "modules" directory - * against the results in their repectice "expected_results" folders. - */ -public class TestDeployAssistTool extends TuscanyTestCase { - - String testsDir = TuscanyTestCase.junit_modules; - - Set excludes = new HashSet(); - - public TestDeployAssistTool(String arg0) { - super(arg0); - excludes.add("MyValueServiceModuleMissingScaModule"); - excludes.add("CVS"); - } - - /* main exists to allow running from the test script which will - * wrap this test case and pipe the satandard output to somewhere - * for checking. - */ - - public static void main(String[] args) { - TestDeployAssistTool test = new TestDeployAssistTool(""); - test.testDeployToolNullParms(); - } - - public void testDeployTool() { - //Utils.setReportArtefacts(true); - TestAllModulesTest t = new TestAllModulesTest(""); - File dir = new File(testsDir); - - if (dir.isDirectory()) { - String[] test_modules = dir.list(); - - for (int i = 0; i < test_modules.length; i++) { - File test_module = new File(testsDir, test_modules[i]); - String module_name = null; - if (test_module.isDirectory()) { - module_name = test_module.getName(); - if (!excludes.contains(module_name.intern())) { - t.testModuleDeploy(module_name, create_results, "c:\\colin", "cp"); - } - } - System.out.println(""); - } - } - } - - public void testDeployToolNullParms() { - //Utils.setReportArtefacts(true); - TestAllModulesTest t = new TestAllModulesTest(""); - File dir = new File(testsDir); - - if (dir.isDirectory()) { - String[] test_modules = dir.list(); - - for (int i = 0; i < test_modules.length; i++) { - File test_module = new File(testsDir, test_modules[i]); - String module_name = null; - if (test_module.isDirectory()) { - module_name = test_module.getName(); - if (!excludes.contains(module_name.intern())) { - t.testModuleDeploy(module_name, create_results, null, null); - } - } - System.out.println(""); - } - } - } -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TuscanyTestCase.java b/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TuscanyTestCase.java deleted file mode 100644 index 00f6868ce6..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TuscanyTestCase.java +++ /dev/null @@ -1,332 +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. - */ -package org.apache.tuscany.sca.cpp.tools.junit; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.cpp.tools.common.Options; -import org.apache.tuscany.sca.cpp.tools.services.Scagen; - -/** - * A superclass for testcases that can be used to store common functions. - */ -public class TuscanyTestCase extends TestCase { - - public static String root = "cpp\\sca\\tools\\scagen\\junit\\"; - - public static String junit_modules = root + "testinput\\modules\\"; - - public static String junit_output = root + "testoutput\\"; - - private String testcase = "TESTCASE NOT SET BY SUBCLASS"; - - String input = null; - - String output = null; - - /** - * Check the resulting files with the contents of the expected_results - * folder in the testModule method - */ - public final static boolean check_results = true; - - /** - * Create test output but do not check it (useful for setting up new - * expected test output - */ - public final static boolean create_results = false; - - /** - * - */ - public TuscanyTestCase() { - super(); - } - - /** - * @param arg0 - */ - public TuscanyTestCase(String arg0) { - super(arg0); - } - - protected void setUp() throws Exception { - super.setUp(); - } - - protected void tearDown() throws Exception { - super.tearDown(); - } - - /** - * Tests to see if two files are the same - this is just a scratch method at - * the moment that flags up testcase output files not matching expected - * results rather than needing to be a fully robust implementation and needs - * a little further work. - * - * @param file1 - * the first file to compare - * @param file2 - * the second file to compare - * - */ - protected boolean areFilesEqual(String file1, String file2) { - - try { - FileInputStream fis1 = new java.io.FileInputStream(file1); - FileInputStream fis2 = new java.io.FileInputStream(file2); - - BufferedReader br1 = new BufferedReader(new InputStreamReader(fis1)); - BufferedReader br2 = new BufferedReader(new InputStreamReader(fis2)); - - String line1 = br1.readLine(); - String line2 = br2.readLine(); - boolean moretodo = (line1 != null) && (line2 != null); - - for (int line = 1; moretodo; line++) { - - if (line1.equals(line2)) { - - line1 = br1.readLine(); - line2 = br2.readLine(); - - } else { - - int l1i, l2i; - - if ((l1i = line1.lastIndexOf("$Id")) > 0) { - //allow CVS strings - line1 = br1.readLine(); - } - - if ((l2i = line2.lastIndexOf("$Id")) > 0) { - //allow CVS strings - line2 = br2.readLine(); - } - - if (l1i == -1 && l2i == -1) { - - // they don't match - System.out.println("file " + file1 + " and file " - + file2); - System.out.println(" don't match at line " + line); - System.out.println("1 is :" + line1); - System.out.println("2 is :" + line2); - - return false; - } - } - - moretodo = (line1 != null) && (line2 != null); - } - - System.out.println("MATCH FOR: file " + file1 + " and file " - + file2); - return true; - - } catch (Throwable t) { - t.printStackTrace(); - return true; - } - - } - - /** - * @param outputDir - */ - protected void clearDirButNotExpectedOutputSubDir(String outputDir) { - File dir = new File(outputDir); - if (dir.isDirectory()) { - String[] files = dir.list(); - for (int i = 0; i < files.length; i++) { - File child = new File(dir, files[i]); - if (child.isDirectory()) { - if (!child.getName().equals("expected_output")) { - clearDirButNotExpectedOutputSubDir(dir - .getAbsolutePath() - + File.separator + files[i]); - } - } - child.delete(); - } - - } - - } - - public void testModule(String module, boolean check) { - - Options.reset(); - setTestcase(module); - clearDirButNotExpectedOutputSubDir(output); - - String[] commandLine = new String[] { "-dir", input, "-output", output }; - try { - Scagen.main(commandLine); - } catch (Exception e) { - fail(e.getMessage()); - } - - if (check) { - checkDirWithExpected(output); - } - } - - public void testModuleDeploy(String module, boolean check, - String deployDir, String command) { - - Options.reset(); - setTestcase(module); - clearDirButNotExpectedOutputSubDir(output); - - String[] commandLine; - if (null == deployDir) { - commandLine = new String[] { "-dir", input, "-output", - output, "-deploy"}; - } else { - commandLine = new String[] { "-dir", input, "-output", - output, "-deploy", deployDir, "-command", command }; - } - try { - Scagen.main(commandLine); - } catch (Exception e) { - fail(e.getMessage()); - } - - if (check) { - checkDirWithExpected(output); - } - } - - /** - * @param outputDirName - */ - private void checkDirWithExpected(String outputDirName) { - - File actualDir = new File(outputDirName); - if (actualDir == null || !actualDir.isDirectory()) { - fail("result directory does not exist"); - } - - File expectedDir = new File(outputDirName + File.separator - + "expected_output"); - if (expectedDir == null || !actualDir.isDirectory()) { - fail("can't check results as expected directory does not exist"); - } - - //Check every file in the expected output directory is present - //in the actual directory - - String[] expectedFiles = expectedDir.list(); - - if (expectedFiles == null) { - fail("no expected results for " + expectedDir.getPath()); - } - for (int i = 0; expectedFiles != null && i < expectedFiles.length; i++) { - File expectedFile = new File(expectedDir, expectedFiles[i]); - if (expectedFile.isDirectory()) { - // we can't check subdirectories yet - // and it conveniently skips over "CVS" - } else { - File actualFile = checkFileExistsFailIfNot(actualDir, - expectedFile.getName()); - checkFileHasNoTabsAndEndsInNewline(actualDir, expectedFile - .getName()); - if (!areFilesEqual(expectedFile.getAbsolutePath(), actualFile - .getAbsolutePath())) { - fail("odd output for " + expectedFile.getPath()); - } - - } - - } - - } - - /** - * @param actualDir - * @param name - */ - private File checkFileExistsFailIfNot(File dir, String name) { - - File f = new File(dir, name); - if (f == null || !f.exists() || !f.isFile()) { - fail("Expected result file " + f + " does not exist"); - } - return f; - - } - - /** - * @param actualDir - * @param name - */ - private void checkFileHasNoTabsAndEndsInNewline(File dir, String name) { - - try { - File f = new File(dir, name); - FileInputStream fis = new FileInputStream(f); - InputStreamReader isr = new InputStreamReader(fis); - Reader br = new BufferedReader(isr); - int ch, charBeforeMinusOne = -1; - while ((ch = br.read()) > -1) { - if (ch == '\t') { - fail("found tab in output " + f.getPath()); - } - charBeforeMinusOne = ch; - } - //The last char must be newline; - if (charBeforeMinusOne != '\n') { - fail("last char in file is not a newline in " + "(char is:" - + ch + " " + dir.getName() + File.separator + name); - } - - br.close(); - } catch (IOException e) { - e.printStackTrace(); - fail("io exception in tab/newline checker for " + dir.getName() - + File.separator + name); - return; - } - - } - - /** - * @param testcase - * The testcase to set. - */ - void setTestcase(String testcase) { - this.testcase = testcase; - input = TuscanyTestCase.junit_modules + testcase; - output = TuscanyTestCase.junit_output + testcase; - } - - /** - * @return Returns the testcase. - */ - String getTestcase() { - return testcase; - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go.cmd b/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go.cmd deleted file mode 100644 index 6a303b1471..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go.cmd +++ /dev/null @@ -1,2 +0,0 @@ -rm -rf out -java -jar scagen.jar -dir c:\workspaces\wid60-no-core\Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule -output c:\hydra\out diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_dir_option.cmd b/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_dir_option.cmd deleted file mode 100644 index 13834b3aae..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_dir_option.cmd +++ /dev/null @@ -1 +0,0 @@ -java -jar scagen.jar -dirX c:\workspaces\wid60-no-core\Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule -output c:\hydra\out diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_input_dir.cmd b/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_input_dir.cmd deleted file mode 100644 index 4fa9a86b1f..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_input_dir.cmd +++ /dev/null @@ -1 +0,0 @@ -java -jar scagen.jar -dir x:\not_there -output c:\hydra\irrelevant diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_output_dir.cmd b/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_output_dir.cmd deleted file mode 100644 index 5e6b818ae3..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/go_no_output_dir.cmd +++ /dev/null @@ -1 +0,0 @@ -java -jar scagen.jar -dir c:\workspaces\wid60-no-core\Hydra.sca.core\test\testSCASystem\modules\MyValueServiceModule -output r:\hydra\out diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/refresh-tools-jar.cmd b/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/refresh-tools-jar.cmd deleted file mode 100644 index 2640ed87de..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/scripts_for_standalone_testing/refresh-tools-jar.cmd +++ /dev/null @@ -1 +0,0 @@ -copy c:\workspaces\wid60-no-core\Hydra.sca.tools\scagen.jar . \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/Calculator.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/Calculator.h deleted file mode 100644 index 3ab503ef1d..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/Calculator.h +++ /dev/null @@ -1,32 +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. - */ - -#ifndef CALCULATOR_H -#define CALCULATOR_H - - -class Calculator { - -private: - virtual long add(long a, long b) = 0; -public: - - virtual long subtract(long a, long b) = 0; -}; - - -#endif // CALCULATOR_H diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.componentType deleted file mode 100644 index ef0f346ba0..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.componentType +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.h deleted file mode 100644 index daa9b25627..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/CalculatorImpl.h +++ /dev/null @@ -1,33 +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. - */ - -#ifndef CALCULATORIMPL_H -#define CALCULATORIMPL_H - -#include "Calculator.h" - -class CalculatorImpl : public Calculator -{ -public: - CalculatorImpl(); - virtual ~CalculatorImpl(); - virtual long add(long a, long b); - virtual long subtract(long a, long b); - -}; - -#endif // diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/sca.module b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/sca.module deleted file mode 100644 index f74d5f690c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorModuleAndComponent/sca.module +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorBack.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorBack.h deleted file mode 100644 index da74be77a6..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorBack.h +++ /dev/null @@ -1,31 +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. - */ -#ifndef CALCULATOR_H -#define CALCULATOR_H - - -class CalculatorBack { - - - -public: - virtual long subtractBack(long a, long b) = 0; - virtual long addBack(long a, long b) = 0; -}; - - -#endif // CALCULATOR_H diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorForward.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorForward.h deleted file mode 100644 index 48a5ff5018..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/otherSubFolder/CalculatorForward.h +++ /dev/null @@ -1,30 +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. - */ -#ifndef CALCULATOR_H -#define CALCULATOR_H - - -class CalculatorForward { - -public: - - virtual long subtractForward(long a, long b) = 0; - virtual long addForward(long a, long b) = 0; -}; - - -#endif // CALCULATOR_H diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/sca.module b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/sca.module deleted file mode 100644 index b4aaa37a4c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/sca.module +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.componentType deleted file mode 100644 index 6a5a152266..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.componentType +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.h deleted file mode 100644 index 0cacc5916c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.h +++ /dev/null @@ -1,33 +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. - */ - -#ifndef CALCULATORIMPL_H -#define CALCULATORIMPL_H - -#include "Calculator.h" - -class CalculatorBackImpl : public Calculator -{ -public: - CalculatorImpl(); - virtual ~CalculatorImpl(); - virtual long addBack(long a, long b); - virtual long subtractBack(long a, long b); - -}; - -#endif // diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.componentType deleted file mode 100644 index 9617b22aee..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.componentType +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.h deleted file mode 100644 index f3b0467002..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.h +++ /dev/null @@ -1,32 +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. - */ -#ifndef CALCULATORIMPL_H -#define CALCULATORIMPL_H - -#include "Calculator.h" - -class CalculatorForwardImpl : public Calculator -{ -public: - CalculatorImpl(); - virtual ~CalculatorImpl(); - virtual long addForward(long a, long b); - virtual long subtractForward(long a, long b); - -}; - -#endif // diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.fragment b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.fragment deleted file mode 100644 index 29fd03c399..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.fragment +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - x - 23 - 42 - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.h deleted file mode 100644 index d5e1a702c6..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.h +++ /dev/null @@ -1,94 +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. - */ - -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: -//char (simple extra type) - virtual const char* getCustomerInformationChar(char * p1, const char* customerID ) = 0; - virtual const char* getCustomerInfoAChar(char * p1,const char*) = 0; - virtual const char* getCustomerInfoBChar(char * p1, char* customerID ) = 0; - virtual const char* getCustomerInfoCChar(char * p1, char customerID ) = 0; - virtual const char* getCustomerInfoDChar(char * p1,char) = 0; - virtual const char* getCustomerInfoEChar(char * p1 , char *) = 0; - virtual const char* getCustomerInfoFChar(char * p1, char * p1, char *customerID ) = 0; - virtual const char* getCustomerInfoGChar(char * p1, char *, char * p1,signed char *customerID ) = 0; - virtual const char* getCustomerInfoHChar(unsigned char *customerID, const char, ) = 0; - virtual const char* getCustomerInfoHChar(unsigned char *customerID, const char*) = 0; - -//long (duplicate the types) - virtual const long* getCustomerInformationLong(const long* customerID, const long* customerID ) = 0; - virtual const long* getCustomerInfoALong(const long*,const long*) = 0; - virtual const long* getCustomerInfoBLong(long* customerID, long* customerID2 ) = 0; - virtual const long* getCustomerInfoCLong(long customerID , long customerID2 ) = 0; - virtual const long* getCustomerInfoDLong(long,long) = 0; - virtual const long* getCustomerInfoELong(long *, long*) = 0; - virtual const long* getCustomerInfoFLong(long *customerID, long* customerID2 ) = 0; - virtual const long* getCustomerInfoGLong(signed long *customerID, signed long *customerID2 ) = 0; - virtual const long* getCustomerInfoHLong(signed long *customerID, signed long *customerID2 ) = 0; - -//int - virtual const int* getCustomerInformationInt(char*, const int* customerID ) = 0; - virtual const int* getCustomerInfoAInt(char*,const int*) = 0; - virtual const int* getCustomerInfoBInt(char*,int* customerID ) = 0; - virtual const int* getCustomerInfoCInt(char*,int customerID ) = 0; - virtual const int* getCustomerInfoDInt(char*,int) = 0; - virtual const int* getCustomerInfoEInt(char*,int *) = 0; - virtual const int* getCustomerInfoFInt(char*,int *customerID ) = 0; - virtual const int* getCustomerInfoGInt(char*,signed int *customerID ) = 0; - virtual const int* getCustomerInfoHInt(char*,unsigned int *customerID ) = 0; - - -//__int64 - virtual const __int64* getCustomerInformationint64(Diamond&,const __int64* customerID ) = 0; - virtual const __int64* getCustomerInfoAint64(Diamond&, const __int64*) = 0; - virtual const __int64* getCustomerInfoBint64( Diamond&, __int64* customerID ) = 0; - virtual const __int64* getCustomerInfoCint64(Diamond&,__int64 customerID ) = 0; - virtual const __int64* getCustomerInfoDint64(Diamond& myDiamond,__int64) = 0; - virtual const __int64* getCustomerInfoEint64(Diamond& myDiamond, __int64 *) = 0; - virtual const __int64* getCustomerInfoFint64(Diamond& myDiamond, __int64 *customerID ) = 0; - virtual const __int64* getCustomerInfoGint64(Diamond& myDiamond, signed __int64 *customerID ) = 0; - virtual const __int64* getCustomerInfoHint64(const Diamond& myDiamond, unsigned int64 *customerID ) = 0; - -//void - virtual const void* getCustomerInformationVoid(float& f, const __int64* customerID ) = 0; - virtual void getCustomerInfoAVoid(const float& f, const __int64*) = 0; - virtual void getCustomerInfoBVoid( ) = 0; - virtual void getCustomerInfoCVoid() = 0; - virtual void getCustomerInfoDVoid(void) = 0; - virtual char getCustomerInfoEVoid(void) = 0; - virtual char getCustomerInfoFVoid() = 0; - virtual char getCustomerInfoGVoid( void ) = 0; - -//inline - virtual inline const char * getCustomerInfoAInline(int,int,int,int, char* customer id) = 0; - inline int getCustomerInfoBInline(int*,int* f, int* g, char* customer id) = 0; - virtual inline friend const unsigned int * getCustomerInfoCInline(char* customer id) = 0; - -//tricky examples - int getCustomerInfoTrickyA(const char, const char) = 0; - int getCustomerInfoTrickyB(int myInt, int myInt) = 0; - - - - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.componentType deleted file mode 100644 index d39a3bdadf..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.componentType +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.h deleted file mode 100644 index 546df093a3..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - - -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.fragment b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.fragment deleted file mode 100644 index fa6d101363..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.fragment +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - x - 23 - 42 - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.h deleted file mode 100644 index d3be176bfd..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.h +++ /dev/null @@ -1,89 +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. - */ -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: -//char - virtual const char* getCustomerInformationChar(const char* customerID ) = 0; - virtual const char* getCustomerInfoAChar(const char*) = 0; - virtual const char* getCustomerInfoBChar(char* customerID ) = 0; - virtual const char* getCustomerInfoCChar(char customerID ) = 0; - virtual const char* getCustomerInfoDChar(char) = 0; - virtual const char* getCustomerInfoEChar(char *) = 0; - virtual const char* getCustomerInfoFChar(char *customerID ) = 0; - virtual const char* getCustomerInfoGChar(signed char *customerID ) = 0; - virtual const char* getCustomerInfoHChar(unsigned char *customerID ) = 0; - -//long - virtual const long* getCustomerInformationLong(const long* customerID ) = 0; - virtual const long* getCustomerInfoALong(const long*) = 0; - virtual const long* getCustomerInfoBLong(long* customerID ) = 0; - virtual const long* getCustomerInfoCLong(long customerID ) = 0; - virtual const long* getCustomerInfoDLong(long) = 0; - virtual const long* getCustomerInfoELong(long *) = 0; - virtual const long* getCustomerInfoFLong(long *customerID ) = 0; - virtual const long* getCustomerInfoGLong(signed long *customerID ) = 0; - virtual const long* getCustomerInfoHLong(unsigned long *customerID ) = 0; - -//int - virtual const int* getCustomerInformationInt(const int* customerID ) = 0; - virtual const int* getCustomerInfoAInt(const int*) = 0; - virtual const int* getCustomerInfoBInt(int* customerID ) = 0; - virtual const int* getCustomerInfoCInt(int customerID ) = 0; - virtual const int* getCustomerInfoDInt(int) = 0; - virtual const int* getCustomerInfoEInt(int *) = 0; - virtual const int* getCustomerInfoFInt(int *customerID ) = 0; - virtual const int* getCustomerInfoGInt(signed int *customerID ) = 0; - virtual const int* getCustomerInfoHInt(unsigned int *customerID ) = 0; - - -//__int64 - virtual const __int64* getCustomerInformationint64(const __int64* customerID ) = 0; - virtual const __int64* getCustomerInfoAint64(const __int64*) = 0; - virtual const __int64* getCustomerInfoBint64(__int64* customerID ) = 0; - virtual const __int64* getCustomerInfoCint64(__int64 customerID ) = 0; - virtual const __int64* getCustomerInfoDint64(__int64) = 0; - virtual const __int64* getCustomerInfoEint64(__int64 *) = 0; - virtual const __int64* getCustomerInfoFint64(__int64 *customerID ) = 0; - virtual const __int64* getCustomerInfoGint64(signed __int64 *customerID ) = 0; - virtual const __int64* getCustomerInfoHint64(unsigned int64 *customerID ) = 0; - -//void - virtual const void* getCustomerInformationVoid(const __int64* customerID ) = 0; - virtual void getCustomerInfoAVoid(const __int64*) = 0; - virtual void getCustomerInfoBVoid( ) = 0; - virtual void getCustomerInfoCVoid() = 0; - virtual void getCustomerInfoDVoid(void) = 0; - -//inline - virtual inline const char * getCustomerInfoAInline(char* customer id) = 0; - inline int getCustomerInfoBInline(char* customer id) = 0; - virtual inline friend const unsigned int * getCustomerInfoCInline(char* customer id) = 0; - -//tricky examples - int getCustomerInfoTrickyA(const char) = 0; - int getCustomerInfoTrickyB(int myInt) = 0; - - - - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.componentType deleted file mode 100644 index d39a3bdadf..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.componentType +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.h deleted file mode 100644 index 50d37ee4f2..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.h +++ /dev/null @@ -1,43 +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. - */ - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - - -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -class CustomerInfoImpl2 : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation2(const char* customerID); - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.fragment b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.fragment deleted file mode 100644 index 491e79f5e4..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.fragment +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - x - 23 - 42 - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.h deleted file mode 100644 index 7bd355b3ab..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfo.h +++ /dev/null @@ -1,36 +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. - */ -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: - virtual const char* getCustomerInformation(const char* customerID) = 0; - -}; - - -class CustomerInfoSecond -{ -public: - virtual const char* getCustomerInformationSecond(const char* customerID) = 0; - -}; - - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.componentType deleted file mode 100644 index 179af71dca..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.componentType +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.h deleted file mode 100644 index 85e96bb348..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/CustomerInfoImpl.h +++ /dev/null @@ -1,46 +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. - */ - - -// Class definition for the implementation - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - - -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -class CustomerInfoImpl2 : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation2(const char* customerID); - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValue.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValue.h deleted file mode 100644 index a65b1f944c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValue.h +++ /dev/null @@ -1,35 +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. - */ -// MyValue.h: interface for the MyValueImpl class. -// -////////////////////////////////////////////////////////////////////// - -#ifndef MyValue_h -#define MyValue_h -#include -using std::string; -class MyValue -{ -public: - virtual float getMyValue(const char* customerID) = 0; - virtual float getMyValueS(const string& customerID) = 0; - virtual string getCustname(string& customerID) = 0; - virtual const string& getCustnamecs(string customerID) = 0; - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.componentType deleted file mode 100644 index df0d97a438..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.componentType +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.hpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.hpp deleted file mode 100644 index f7a8171a65..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl.hpp +++ /dev/null @@ -1,38 +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. - */ -// Class definition for the implementation - -#ifndef MyValueImpl_h -#define MyValueImpl_h - -#include "MyValue.h" - - - -class MyValueImpl : public MyValue -{ -public: - MyValueImpl(); - virtual ~MyValueImpl(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname(string& customerID); - virtual const string& getCustnamecs(string customerID); - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl_stockQuote_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index 5c8293b51e..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/StockQuoteService.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/StockQuoteService.h deleted file mode 100644 index d96115fb3f..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/StockQuoteService.h +++ /dev/null @@ -1,33 +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. - */ - -// -////////////////////////////////////////////////////////////////////// - -#ifndef StockQuoteService_h -#define StockQuoteService_h -#include -#include "commonj/sdo/sdo.h" -using std::string; -class StockQuoteService -{ -public: - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0; - -}; - -#endif // StockQuoteService_h diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/sca.module b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/sca.module deleted file mode 100644 index 565f4a74ec..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModule/sca.module +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - MyValueServiceComponent - - - - - - - - CustomerInfoComponent - StockQuoteService - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.fragment b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.fragment deleted file mode 100644 index 5666c51a41..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.fragment +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - x - 23 - 42 - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.h deleted file mode 100644 index e41f9e8287..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfo.h +++ /dev/null @@ -1,37 +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. - */ - -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: - virtual const char* getCustomerInformation(const char* customerID) = 0; - -}; - - -class CustomerInfoSecond -{ -public: - virtual const char* getCustomerInformationSecond(const char* customerID) = 0; - -}; - - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.componentType deleted file mode 100644 index 179af71dca..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.componentType +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.h deleted file mode 100644 index b1360c5994..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/CustomerInfoImpl.h +++ /dev/null @@ -1,47 +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. - */ -// Class definition for the implementation - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - -/* -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -*/ -namespace Other { - class CustomerInfoImpl : public CustomerInfo - { - public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformationOther(const char* customerID); - - }; -} - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValue.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValue.h deleted file mode 100644 index 8b921bc2bf..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValue.h +++ /dev/null @@ -1,36 +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. - */ - -// MyValue.h: interface for the MyValueImpl class. -// -////////////////////////////////////////////////////////////////////// - -#ifndef MyValue_h -#define MyValue_h -#include -using std::string; -class MyValue -{ -public: - virtual float getMyValue(const char* customerID) = 0; - virtual float getMyValueS(const string& customerID) = 0; - virtual string getCustname(string& customerID) = 0; - virtual const string& getCustnamecs(string customerID) = 0; - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.componentType deleted file mode 100644 index df0d97a438..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.componentType +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.hpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.hpp deleted file mode 100644 index f7a8171a65..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl.hpp +++ /dev/null @@ -1,38 +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. - */ -// Class definition for the implementation - -#ifndef MyValueImpl_h -#define MyValueImpl_h - -#include "MyValue.h" - - - -class MyValueImpl : public MyValue -{ -public: - MyValueImpl(); - virtual ~MyValueImpl(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname(string& customerID); - virtual const string& getCustnamecs(string customerID); - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl_stockQuote_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index 5c8293b51e..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/StockQuoteService.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/StockQuoteService.h deleted file mode 100644 index 919b514e1a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/StockQuoteService.h +++ /dev/null @@ -1,32 +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. - */ -// -////////////////////////////////////////////////////////////////////// - -#ifndef StockQuoteService_h -#define StockQuoteService_h -#include -#include "commonj/sdo/sdo.h" -using std::string; -class StockQuoteService -{ -public: - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0; - -}; - -#endif // StockQuoteService_h diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/sca.module b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/sca.module deleted file mode 100644 index 565f4a74ec..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleImplClassWithNamespace/sca.module +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - MyValueServiceComponent - - - - - - - - CustomerInfoComponent - StockQuoteService - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValue.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValue.h deleted file mode 100644 index 503f771bb2..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValue.h +++ /dev/null @@ -1,39 +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. - */ - -// MyValue.h: interface for the MyValueImpl class. -// -////////////////////////////////////////////////////////////////////// - -#ifndef MyValue_h -#define MyValue_h -#include -using std::string; - -namespace Other { - class MyValue - { - public: - virtual float getMyValueOther(const char* customerID) = 0; - virtual float getMyValueSOther(const string& customerID) = 0; - virtual string getCustnameOther(string& customerID) = 0; - virtual const string& getCustnamecsOther(string customerID) = 0; - } -} - - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.componentType deleted file mode 100644 index 8673c813a6..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.componentType +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.hpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.hpp deleted file mode 100644 index f7a8171a65..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/MyValueImpl.hpp +++ /dev/null @@ -1,38 +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. - */ -// Class definition for the implementation - -#ifndef MyValueImpl_h -#define MyValueImpl_h - -#include "MyValue.h" - - - -class MyValueImpl : public MyValue -{ -public: - MyValueImpl(); - virtual ~MyValueImpl(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname(string& customerID); - virtual const string& getCustnamecs(string customerID); - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/sca.module b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/sca.module deleted file mode 100644 index 6572621f1d..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespace/sca.module +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - MyValueServiceComponent - - - - - - - - CustomerInfoComponent - StockQuoteService - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValue.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValue.h deleted file mode 100644 index ea8ebbb792..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValue.h +++ /dev/null @@ -1,37 +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. - */ - -// MyValue.h: interface for the MyValueImpl class. -// -////////////////////////////////////////////////////////////////////// - -#ifndef MyValue_h -#define MyValue_h -#include -using std::string; - -namespace Other { - class MyValue - { - public: - virtual float getMyValueOther(const char* customerID) = 0; - virtual float getMyValueSOther(const string& customerID) = 0; - virtual string getCustnameOther(string& customerID) = 0; - virtual const string& getCustnamecsOther(string customerID) = 0; - } -} -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType deleted file mode 100644 index c8d68fba5a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp deleted file mode 100644 index f7a8171a65..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp +++ /dev/null @@ -1,38 +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. - */ -// Class definition for the implementation - -#ifndef MyValueImpl_h -#define MyValueImpl_h - -#include "MyValue.h" - - - -class MyValueImpl : public MyValue -{ -public: - MyValueImpl(); - virtual ~MyValueImpl(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname(string& customerID); - virtual const string& getCustnamecs(string customerID); - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/sca.module b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/sca.module deleted file mode 100644 index 6572621f1d..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/sca.module +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - MyValueServiceComponent - - - - - - - - CustomerInfoComponent - StockQuoteService - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/CustomerInfo.fragmentX b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/CustomerInfo.fragmentX deleted file mode 100644 index 10c1805244..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/CustomerInfo.fragmentX +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - x - 23 - 42 - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/sca.moduleX b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/sca.moduleX deleted file mode 100644 index 3eea80439f..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleMissingScaModule/sca.moduleX +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - MyValueServiceComponent - - - - - - - - CustomerInfoComponent - StockQuoteService - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.fragment b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.fragment deleted file mode 100644 index 491e79f5e4..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.fragment +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - x - 23 - 42 - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.h deleted file mode 100644 index 7bd355b3ab..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfo.h +++ /dev/null @@ -1,36 +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. - */ -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: - virtual const char* getCustomerInformation(const char* customerID) = 0; - -}; - - -class CustomerInfoSecond -{ -public: - virtual const char* getCustomerInformationSecond(const char* customerID) = 0; - -}; - - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.componentType deleted file mode 100644 index 179af71dca..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.componentType +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.h deleted file mode 100644 index e247a9b0bb..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/CustomerInfoImpl.h +++ /dev/null @@ -1,45 +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. - */ - -// Class definition for the implementation - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - - -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -class CustomerInfoImpl2 : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValue.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValue.h deleted file mode 100644 index a65b1f944c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValue.h +++ /dev/null @@ -1,35 +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. - */ -// MyValue.h: interface for the MyValueImpl class. -// -////////////////////////////////////////////////////////////////////// - -#ifndef MyValue_h -#define MyValue_h -#include -using std::string; -class MyValue -{ -public: - virtual float getMyValue(const char* customerID) = 0; - virtual float getMyValueS(const string& customerID) = 0; - virtual string getCustname(string& customerID) = 0; - virtual const string& getCustnamecs(string customerID) = 0; - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.componentType deleted file mode 100644 index df0d97a438..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.componentType +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.hpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.hpp deleted file mode 100644 index f7a8171a65..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl.hpp +++ /dev/null @@ -1,38 +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. - */ -// Class definition for the implementation - -#ifndef MyValueImpl_h -#define MyValueImpl_h - -#include "MyValue.h" - - - -class MyValueImpl : public MyValue -{ -public: - MyValueImpl(); - virtual ~MyValueImpl(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname(string& customerID); - virtual const string& getCustnamecs(string customerID); - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl_stockQuote_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index 5c8293b51e..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/StockQuoteService.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/StockQuoteService.h deleted file mode 100644 index 919b514e1a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/StockQuoteService.h +++ /dev/null @@ -1,32 +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. - */ -// -////////////////////////////////////////////////////////////////////// - -#ifndef StockQuoteService_h -#define StockQuoteService_h -#include -#include "commonj/sdo/sdo.h" -using std::string; -class StockQuoteService -{ -public: - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0; - -}; - -#endif // StockQuoteService_h diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/sca.module b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/sca.module deleted file mode 100644 index 565f4a74ec..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/MyValueServiceModuleTwoClasses/sca.module +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - MyValueServiceComponent - - - - - - - - CustomerInfoComponent - StockQuoteService - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.fragment b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.fragment deleted file mode 100644 index 687162ec2a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.fragment +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - x - 23 - 42 - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.h deleted file mode 100644 index b944d161eb..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfo.h +++ /dev/null @@ -1,40 +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. - */ -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: - virtual const char* getCustomerInformationCharPublic(char * p1, const char* customerID ) = 0; - virtual const char* getCustomerInfoACharPublic(char * p1,const char*) = 0; - virtual const char* getCustomerInfoBCharPublic(char * p1, char* customerID ) = 0; - -private: - virtual const char* getCustomerInformationCharPrivate(char * p1, const char* customerID ) = 0; - virtual const char* getCustomerInfoACharPrivate(char * p1,const char*) = 0; - virtual const char* getCustomerInfoBCharPrivate(char * p1, char* customerID ) = 0; - -protected: - virtual const char* getCustomerInformationCharProtected(char * p1, const char* customerID ) = 0; - virtual const char* getCustomerInfoACharProtected(char * p1,const char*) = 0; - virtual const char* getCustomerInfoBCharProtected(char * p1, char* customerID ) = 0; - - -}; - -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.componentType b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.componentType deleted file mode 100644 index 179af71dca..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.componentType +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.h deleted file mode 100644 index 87cac61085..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testinput/modules/SimplePublicPrivateProtectedTest/CustomerInfoImpl.h +++ /dev/null @@ -1,34 +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. - */ -// Class definition for the implementation - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - - -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; -#endif diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp deleted file mode 100644 index 04980879e3..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp +++ /dev/null @@ -1,67 +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. - */ - -#include "CalculatorImpl_CalculatorService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorImpl_CalculatorService_Proxy* CalculatorImpl_CalculatorService_Proxy_Factory(ServiceWrapper* target) - { - return new CalculatorImpl_CalculatorService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CalculatorImpl_CalculatorService_Proxy_Destructor(void* proxy) - { - delete (CalculatorImpl_CalculatorService_Proxy*)proxy; - } -} - -CalculatorImpl_CalculatorService_Proxy::CalculatorImpl_CalculatorService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -CalculatorImpl_CalculatorService_Proxy::~CalculatorImpl_CalculatorService_Proxy() -{ - if (target) - delete target; -} - -long CalculatorImpl_CalculatorService_Proxy::subtract( long arg0, long arg1) -{ - Operation operation("subtract", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - long ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.h deleted file mode 100644 index 748c493865..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef CalculatorImpl_CalculatorService_Proxy_h -#define CalculatorImpl_CalculatorService_Proxy_h - -#include "Calculator.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CalculatorImpl_CalculatorService_Proxy : public Calculator -{ -public: - CalculatorImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CalculatorImpl_CalculatorService_Proxy(); - virtual long subtract( long a, long b); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CalculatorImpl_CalculatorService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp deleted file mode 100644 index c174fb3a47..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp +++ /dev/null @@ -1,71 +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. - */ - -#include "CalculatorImpl_CalculatorService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorImpl_CalculatorService_Wrapper* CalculatorImpl_CalculatorService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CalculatorImpl_CalculatorService_Wrapper(target); - } -} - -CalculatorImpl_CalculatorService_Wrapper::CalculatorImpl_CalculatorService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (CalculatorImpl*)getImplementation(); -} - -CalculatorImpl_CalculatorService_Wrapper::~CalculatorImpl_CalculatorService_Wrapper() -{ - releaseImplementation(); -} - -void* CalculatorImpl_CalculatorService_Wrapper::newImplementation() -{ - return new CalculatorImpl; -} - -void CalculatorImpl_CalculatorService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CalculatorImpl_CalculatorService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "subtract") - { - long& p0 = *( long*)operation.getParameter(0); - long& p1 = *( long*)operation.getParameter(1); - *(long*)operation.getReturnValue() = impl->subtract(p0, p1); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.h deleted file mode 100644 index 8856c7786c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorModuleAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef CalculatorImpl_CalculatorService_Wrapper_h -#define CalculatorImpl_CalculatorService_Wrapper_h - -#include "CalculatorImpl.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class CalculatorImpl_CalculatorService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - CalculatorImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CalculatorImpl_CalculatorService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CalculatorImpl* impl; -}; - -#endif // CalculatorImpl_CalculatorService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp deleted file mode 100644 index ded3e76eb0..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp +++ /dev/null @@ -1,81 +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. - */ - -#include "CalculatorBackImpl_CalculatorService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorBackImpl_CalculatorService_Proxy* CalculatorBackImpl_CalculatorService_Proxy_Factory(ServiceWrapper* target) - { - return new CalculatorBackImpl_CalculatorService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CalculatorBackImpl_CalculatorService_Proxy_Destructor(void* proxy) - { - delete (CalculatorBackImpl_CalculatorService_Proxy*)proxy; - } -} - -CalculatorBackImpl_CalculatorService_Proxy::CalculatorBackImpl_CalculatorService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -CalculatorBackImpl_CalculatorService_Proxy::~CalculatorBackImpl_CalculatorService_Proxy() -{ - if (target) - delete target; -} - -long CalculatorBackImpl_CalculatorService_Proxy::subtractBack( long arg0, long arg1) -{ - Operation operation("subtractBack", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - long ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -long CalculatorBackImpl_CalculatorService_Proxy::addBack( long arg0, long arg1) -{ - Operation operation("addBack", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - long ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.h deleted file mode 100644 index 2a2474aad1..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.h +++ /dev/null @@ -1,35 +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. - */ - -#ifndef CalculatorBackImpl_CalculatorService_Proxy_h -#define CalculatorBackImpl_CalculatorService_Proxy_h - -#include "otherSubFolder/CalculatorBack.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CalculatorBackImpl_CalculatorService_Proxy : public CalculatorBack -{ -public: - CalculatorBackImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CalculatorBackImpl_CalculatorService_Proxy(); - virtual long subtractBack( long a, long b); - virtual long addBack( long a, long b); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CalculatorBackImpl_CalculatorService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp deleted file mode 100644 index b9a7f0a69a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp +++ /dev/null @@ -1,78 +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. - */ - -#include "CalculatorBackImpl_CalculatorService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorBackImpl_CalculatorService_Wrapper* CalculatorBackImpl_CalculatorService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CalculatorBackImpl_CalculatorService_Wrapper(target); - } -} - -CalculatorBackImpl_CalculatorService_Wrapper::CalculatorBackImpl_CalculatorService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (CalculatorBackImpl*)getImplementation(); -} - -CalculatorBackImpl_CalculatorService_Wrapper::~CalculatorBackImpl_CalculatorService_Wrapper() -{ - releaseImplementation(); -} - -void* CalculatorBackImpl_CalculatorService_Wrapper::newImplementation() -{ - return new CalculatorBackImpl; -} - -void CalculatorBackImpl_CalculatorService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CalculatorBackImpl_CalculatorService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "subtractBack") - { - long& p0 = *( long*)operation.getParameter(0); - long& p1 = *( long*)operation.getParameter(1); - *(long*)operation.getReturnValue() = impl->subtractBack(p0, p1); - return; - } - if (operationName == "addBack") - { - long& p0 = *( long*)operation.getParameter(0); - long& p1 = *( long*)operation.getParameter(1); - *(long*)operation.getReturnValue() = impl->addBack(p0, p1); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.h deleted file mode 100644 index da132b9e34..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef CalculatorBackImpl_CalculatorService_Wrapper_h -#define CalculatorBackImpl_CalculatorService_Wrapper_h - -#include "subFolder/CalculatorBackImpl.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class CalculatorBackImpl_CalculatorService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - CalculatorBackImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CalculatorBackImpl_CalculatorService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CalculatorBackImpl* impl; -}; - -#endif // CalculatorBackImpl_CalculatorService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp deleted file mode 100644 index 77c6b7e29b..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp +++ /dev/null @@ -1,81 +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. - */ - -#include "CalculatorForwardImpl_CalculatorService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorForwardImpl_CalculatorService_Proxy* CalculatorForwardImpl_CalculatorService_Proxy_Factory(ServiceWrapper* target) - { - return new CalculatorForwardImpl_CalculatorService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CalculatorForwardImpl_CalculatorService_Proxy_Destructor(void* proxy) - { - delete (CalculatorForwardImpl_CalculatorService_Proxy*)proxy; - } -} - -CalculatorForwardImpl_CalculatorService_Proxy::CalculatorForwardImpl_CalculatorService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -CalculatorForwardImpl_CalculatorService_Proxy::~CalculatorForwardImpl_CalculatorService_Proxy() -{ - if (target) - delete target; -} - -long CalculatorForwardImpl_CalculatorService_Proxy::subtractForward( long arg0, long arg1) -{ - Operation operation("subtractForward", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - long ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -long CalculatorForwardImpl_CalculatorService_Proxy::addForward( long arg0, long arg1) -{ - Operation operation("addForward", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - long ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.h deleted file mode 100644 index 8714cddb83..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.h +++ /dev/null @@ -1,35 +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. - */ - -#ifndef CalculatorForwardImpl_CalculatorService_Proxy_h -#define CalculatorForwardImpl_CalculatorService_Proxy_h - -#include "otherSubFolder/CalculatorForward.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CalculatorForwardImpl_CalculatorService_Proxy : public CalculatorForward -{ -public: - CalculatorForwardImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CalculatorForwardImpl_CalculatorService_Proxy(); - virtual long subtractForward( long a, long b); - virtual long addForward( long a, long b); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CalculatorForwardImpl_CalculatorService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp deleted file mode 100644 index 019cf00ca8..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp +++ /dev/null @@ -1,78 +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. - */ - -#include "CalculatorForwardImpl_CalculatorService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorForwardImpl_CalculatorService_Wrapper* CalculatorForwardImpl_CalculatorService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CalculatorForwardImpl_CalculatorService_Wrapper(target); - } -} - -CalculatorForwardImpl_CalculatorService_Wrapper::CalculatorForwardImpl_CalculatorService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (CalculatorForwardImpl*)getImplementation(); -} - -CalculatorForwardImpl_CalculatorService_Wrapper::~CalculatorForwardImpl_CalculatorService_Wrapper() -{ - releaseImplementation(); -} - -void* CalculatorForwardImpl_CalculatorService_Wrapper::newImplementation() -{ - return new CalculatorForwardImpl; -} - -void CalculatorForwardImpl_CalculatorService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CalculatorForwardImpl_CalculatorService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "subtractForward") - { - long& p0 = *( long*)operation.getParameter(0); - long& p1 = *( long*)operation.getParameter(1); - *(long*)operation.getReturnValue() = impl->subtractForward(p0, p1); - return; - } - if (operationName == "addForward") - { - long& p0 = *( long*)operation.getParameter(0); - long& p1 = *( long*)operation.getParameter(1); - *(long*)operation.getReturnValue() = impl->addForward(p0, p1); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.h deleted file mode 100644 index 3ab3fd9a7d..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef CalculatorForwardImpl_CalculatorService_Wrapper_h -#define CalculatorForwardImpl_CalculatorService_Wrapper_h - -#include "subFolder/CalculatorForwardImpl.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class CalculatorForwardImpl_CalculatorService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - CalculatorForwardImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CalculatorForwardImpl_CalculatorService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CalculatorForwardImpl* impl; -}; - -#endif // CalculatorForwardImpl_CalculatorService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp deleted file mode 100644 index 9087c58b0f..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,699 +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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) - { - return new CustomerInfoImpl_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationChar( char* arg0, const char* arg1) -{ - Operation operation("getCustomerInformationChar", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAChar( char* arg0, const char* arg1) -{ - Operation operation("getCustomerInfoAChar", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBChar( char* arg0, char* arg1) -{ - Operation operation("getCustomerInfoBChar", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCChar( char* arg0, char arg1) -{ - Operation operation("getCustomerInfoCChar", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)&arg1); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDChar( char* arg0, char arg1) -{ - Operation operation("getCustomerInfoDChar", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)&arg1); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEChar( char* arg0, char* arg1) -{ - Operation operation("getCustomerInfoEChar", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFChar( char* arg0, char* arg1, char* arg2) -{ - Operation operation("getCustomerInfoFChar", 3); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - operation.setParameter(2, (void*)arg2); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGChar( char* arg0, char* arg1, char* arg2, signed char* arg3) -{ - Operation operation("getCustomerInfoGChar", 4); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - operation.setParameter(2, (void*)arg2); - - operation.setParameter(3, (void*)arg3); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHChar( unsigned char* arg0, const char arg1) -{ - Operation operation("getCustomerInfoHChar", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)&arg1); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHChar( unsigned char* arg0, const char* arg1) -{ - Operation operation("getCustomerInfoHChar", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationLong(const long* arg0, const long* arg1) -{ - Operation operation("getCustomerInformationLong", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoALong(const long* arg0, const long* arg1) -{ - Operation operation("getCustomerInfoALong", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBLong( long* arg0, long* arg1) -{ - Operation operation("getCustomerInfoBLong", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCLong( long arg0, long arg1) -{ - Operation operation("getCustomerInfoCLong", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDLong( long arg0, long arg1) -{ - Operation operation("getCustomerInfoDLong", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoELong( long* arg0, long* arg1) -{ - Operation operation("getCustomerInfoELong", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFLong( long* arg0, long* arg1) -{ - Operation operation("getCustomerInfoFLong", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGLong( signed long* arg0, signed long* arg1) -{ - Operation operation("getCustomerInfoGLong", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHLong( signed long* arg0, signed long* arg1) -{ - Operation operation("getCustomerInfoHLong", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationInt( char* arg0, const int* arg1) -{ - Operation operation("getCustomerInformationInt", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInt( char* arg0, const int* arg1) -{ - Operation operation("getCustomerInfoAInt", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInt( char* arg0, int* arg1) -{ - Operation operation("getCustomerInfoBInt", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInt( char* arg0, int arg1) -{ - Operation operation("getCustomerInfoCInt", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)&arg1); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDInt( char* arg0, int arg1) -{ - Operation operation("getCustomerInfoDInt", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)&arg1); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEInt( char* arg0, int* arg1) -{ - Operation operation("getCustomerInfoEInt", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFInt( char* arg0, int* arg1) -{ - Operation operation("getCustomerInfoFInt", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGInt( char* arg0, signed int* arg1) -{ - Operation operation("getCustomerInfoGInt", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHInt( char* arg0, unsigned int* arg1) -{ - Operation operation("getCustomerInfoHInt", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationint64( Diamond& arg0, const __int64* arg1) -{ - Operation operation("getCustomerInformationint64", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAint64( Diamond& arg0, const __int64* arg1) -{ - Operation operation("getCustomerInfoAint64", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBint64( Diamond& arg0, __int64* arg1) -{ - Operation operation("getCustomerInfoBint64", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCint64( Diamond& arg0, __int64 arg1) -{ - Operation operation("getCustomerInfoCint64", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDint64( Diamond& arg0, __int64 arg1) -{ - Operation operation("getCustomerInfoDint64", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEint64( Diamond& arg0, __int64* arg1) -{ - Operation operation("getCustomerInfoEint64", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFint64( Diamond& arg0, __int64* arg1) -{ - Operation operation("getCustomerInfoFint64", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGint64( Diamond& arg0, signed __int64* arg1) -{ - Operation operation("getCustomerInfoGint64", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHint64(const Diamond& arg0, unsigned int64* arg1) -{ - Operation operation("getCustomerInfoHint64", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const void* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationVoid( float& arg0, const __int64* arg1) -{ - Operation operation("getCustomerInformationVoid", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const void*)operation.getReturnValue(); - -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAVoid(const float& arg0, const __int64* arg1) -{ - Operation operation("getCustomerInfoAVoid", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return; - -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBVoid() -{ - Operation operation("getCustomerInfoBVoid", 0); - - target->invoke(operation); - return; - -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCVoid() -{ - Operation operation("getCustomerInfoCVoid", 0); - - target->invoke(operation); - return; - -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDVoid() -{ - Operation operation("getCustomerInfoDVoid", 0); - - target->invoke(operation); - return; - -} - -char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEVoid() -{ - Operation operation("getCustomerInfoEVoid", 0); - char ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFVoid() -{ - Operation operation("getCustomerInfoFVoid", 0); - char ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGVoid() -{ - Operation operation("getCustomerInfoGVoid", 0); - char ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInline( int arg0, int arg1, int arg2, int arg3, char* customer arg4) -{ - Operation operation("getCustomerInfoAInline", 5); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - operation.setParameter(2, (void*)&arg2); - - operation.setParameter(3, (void*)&arg3); - - operation.setParameter(4, (void*)arg4); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInline( int* arg0, int* arg1, int* arg2, char* customer arg3) -{ - Operation operation("getCustomerInfoBInline", 4); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - operation.setParameter(2, (void*)arg2); - - operation.setParameter(3, (void*)arg3); - - int ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -friend const unsigned int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInline( char* customer arg0) -{ - Operation operation("getCustomerInfoCInline", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (friend const unsigned int*)operation.getReturnValue(); - -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyA(const char arg0, const char arg1) -{ - Operation operation("getCustomerInfoTrickyA", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - int ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyB( int arg0, int arg1) -{ - Operation operation("getCustomerInfoTrickyB", 2); - operation.setParameter(0, (void*)&arg0); - - operation.setParameter(1, (void*)&arg1); - - int ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h deleted file mode 100644 index 47b604358a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,83 +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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h -#define CustomerInfoImpl_CustomerInfoService_Proxy_h - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformationChar( char* p1, const char* customerID); - virtual const char* getCustomerInfoAChar( char* p1, const char* ); - virtual const char* getCustomerInfoBChar( char* p1, char* customerID); - virtual const char* getCustomerInfoCChar( char* p1, char customerID); - virtual const char* getCustomerInfoDChar( char* p1, char ); - virtual const char* getCustomerInfoEChar( char* p1, char* ); - virtual const char* getCustomerInfoFChar( char* p1, char* p1, char* customerID); - virtual const char* getCustomerInfoGChar( char* p1, char* , char* p1, signed char* customerID); - virtual const char* getCustomerInfoHChar( unsigned char* customerID, const char ); - virtual const char* getCustomerInfoHChar( unsigned char* customerID, const char* ); - virtual const long* getCustomerInformationLong(const long* customerID, const long* customerID); - virtual const long* getCustomerInfoALong(const long* , const long* ); - virtual const long* getCustomerInfoBLong( long* customerID, long* customerID2); - virtual const long* getCustomerInfoCLong( long customerID, long customerID2); - virtual const long* getCustomerInfoDLong( long , long ); - virtual const long* getCustomerInfoELong( long* , long* ); - virtual const long* getCustomerInfoFLong( long* customerID, long* customerID2); - virtual const long* getCustomerInfoGLong( signed long* customerID, signed long* customerID2); - virtual const long* getCustomerInfoHLong( signed long* customerID, signed long* customerID2); - virtual const int* getCustomerInformationInt( char* , const int* customerID); - virtual const int* getCustomerInfoAInt( char* , const int* ); - virtual const int* getCustomerInfoBInt( char* , int* customerID); - virtual const int* getCustomerInfoCInt( char* , int customerID); - virtual const int* getCustomerInfoDInt( char* , int ); - virtual const int* getCustomerInfoEInt( char* , int* ); - virtual const int* getCustomerInfoFInt( char* , int* customerID); - virtual const int* getCustomerInfoGInt( char* , signed int* customerID); - virtual const int* getCustomerInfoHInt( char* , unsigned int* customerID); - virtual const __int64* getCustomerInformationint64( Diamond& , const __int64* customerID); - virtual const __int64* getCustomerInfoAint64( Diamond& , const __int64* ); - virtual const __int64* getCustomerInfoBint64( Diamond& , __int64* customerID); - virtual const __int64* getCustomerInfoCint64( Diamond& , __int64 customerID); - virtual const __int64* getCustomerInfoDint64( Diamond& myDiamond, __int64 ); - virtual const __int64* getCustomerInfoEint64( Diamond& myDiamond, __int64* ); - virtual const __int64* getCustomerInfoFint64( Diamond& myDiamond, __int64* customerID); - virtual const __int64* getCustomerInfoGint64( Diamond& myDiamond, signed __int64* customerID); - virtual const __int64* getCustomerInfoHint64(const Diamond& myDiamond, unsigned int64* customerID); - virtual const void* getCustomerInformationVoid( float& f, const __int64* customerID); - virtual void getCustomerInfoAVoid(const float& f, const __int64* ); - virtual void getCustomerInfoBVoid(); - virtual void getCustomerInfoCVoid(); - virtual void getCustomerInfoDVoid( void ); - virtual char getCustomerInfoEVoid( void ); - virtual char getCustomerInfoFVoid(); - virtual char getCustomerInfoGVoid( void ); - virtual const char* getCustomerInfoAInline( int , int , int , int , char* customer id); - virtual int getCustomerInfoBInline( int* , int* f, int* g, char* customer id); - virtual friend const unsigned int* getCustomerInfoCInline( char* customer id); - virtual int getCustomerInfoTrickyA(const char , const char ); - virtual int getCustomerInfoTrickyB( int myInt, int myInt); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index 51c975ec9b..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,449 +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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (CustomerInfoImpl*)getImplementation(); -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "getCustomerInformationChar") - { - char* p0 = ( char*)operation.getParameter(0); - const char* p1 = (const char*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInformationChar(p0, p1)); - return; - } - if (operationName == "getCustomerInfoAChar") - { - char* p0 = ( char*)operation.getParameter(0); - const char* p1 = (const char*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoAChar(p0, p1)); - return; - } - if (operationName == "getCustomerInfoBChar") - { - char* p0 = ( char*)operation.getParameter(0); - char* p1 = ( char*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoBChar(p0, p1)); - return; - } - if (operationName == "getCustomerInfoCChar") - { - char* p0 = ( char*)operation.getParameter(0); - char& p1 = *( char*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoCChar(p0, p1)); - return; - } - if (operationName == "getCustomerInfoDChar") - { - char* p0 = ( char*)operation.getParameter(0); - char& p1 = *( char*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoDChar(p0, p1)); - return; - } - if (operationName == "getCustomerInfoEChar") - { - char* p0 = ( char*)operation.getParameter(0); - char* p1 = ( char*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoEChar(p0, p1)); - return; - } - if (operationName == "getCustomerInfoFChar") - { - char* p0 = ( char*)operation.getParameter(0); - char* p1 = ( char*)operation.getParameter(1); - char* p2 = ( char*)operation.getParameter(2); - - operation.setReturnValue((void*) impl->getCustomerInfoFChar(p0, p1, p2)); - return; - } - if (operationName == "getCustomerInfoGChar") - { - char* p0 = ( char*)operation.getParameter(0); - char* p1 = ( char*)operation.getParameter(1); - char* p2 = ( char*)operation.getParameter(2); - signed char* p3 = ( signed char*)operation.getParameter(3); - - operation.setReturnValue((void*) impl->getCustomerInfoGChar(p0, p1, p2, p3)); - return; - } - if (operationName == "getCustomerInfoHChar") - { - unsigned char* p0 = ( unsigned char*)operation.getParameter(0); - const char& p1 = *(const char*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoHChar(p0, p1)); - return; - } - if (operationName == "getCustomerInfoHChar") - { - unsigned char* p0 = ( unsigned char*)operation.getParameter(0); - const char* p1 = (const char*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoHChar(p0, p1)); - return; - } - if (operationName == "getCustomerInformationLong") - { - const long* p0 = (const long*)operation.getParameter(0); - const long* p1 = (const long*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInformationLong(p0, p1)); - return; - } - if (operationName == "getCustomerInfoALong") - { - const long* p0 = (const long*)operation.getParameter(0); - const long* p1 = (const long*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoALong(p0, p1)); - return; - } - if (operationName == "getCustomerInfoBLong") - { - long* p0 = ( long*)operation.getParameter(0); - long* p1 = ( long*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoBLong(p0, p1)); - return; - } - if (operationName == "getCustomerInfoCLong") - { - long& p0 = *( long*)operation.getParameter(0); - long& p1 = *( long*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoCLong(p0, p1)); - return; - } - if (operationName == "getCustomerInfoDLong") - { - long& p0 = *( long*)operation.getParameter(0); - long& p1 = *( long*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoDLong(p0, p1)); - return; - } - if (operationName == "getCustomerInfoELong") - { - long* p0 = ( long*)operation.getParameter(0); - long* p1 = ( long*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoELong(p0, p1)); - return; - } - if (operationName == "getCustomerInfoFLong") - { - long* p0 = ( long*)operation.getParameter(0); - long* p1 = ( long*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoFLong(p0, p1)); - return; - } - if (operationName == "getCustomerInfoGLong") - { - signed long* p0 = ( signed long*)operation.getParameter(0); - signed long* p1 = ( signed long*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoGLong(p0, p1)); - return; - } - if (operationName == "getCustomerInfoHLong") - { - signed long* p0 = ( signed long*)operation.getParameter(0); - signed long* p1 = ( signed long*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoHLong(p0, p1)); - return; - } - if (operationName == "getCustomerInformationInt") - { - char* p0 = ( char*)operation.getParameter(0); - const int* p1 = (const int*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInformationInt(p0, p1)); - return; - } - if (operationName == "getCustomerInfoAInt") - { - char* p0 = ( char*)operation.getParameter(0); - const int* p1 = (const int*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoAInt(p0, p1)); - return; - } - if (operationName == "getCustomerInfoBInt") - { - char* p0 = ( char*)operation.getParameter(0); - int* p1 = ( int*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoBInt(p0, p1)); - return; - } - if (operationName == "getCustomerInfoCInt") - { - char* p0 = ( char*)operation.getParameter(0); - int& p1 = *( int*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoCInt(p0, p1)); - return; - } - if (operationName == "getCustomerInfoDInt") - { - char* p0 = ( char*)operation.getParameter(0); - int& p1 = *( int*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoDInt(p0, p1)); - return; - } - if (operationName == "getCustomerInfoEInt") - { - char* p0 = ( char*)operation.getParameter(0); - int* p1 = ( int*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoEInt(p0, p1)); - return; - } - if (operationName == "getCustomerInfoFInt") - { - char* p0 = ( char*)operation.getParameter(0); - int* p1 = ( int*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoFInt(p0, p1)); - return; - } - if (operationName == "getCustomerInfoGInt") - { - char* p0 = ( char*)operation.getParameter(0); - signed int* p1 = ( signed int*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoGInt(p0, p1)); - return; - } - if (operationName == "getCustomerInfoHInt") - { - char* p0 = ( char*)operation.getParameter(0); - unsigned int* p1 = ( unsigned int*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoHInt(p0, p1)); - return; - } - if (operationName == "getCustomerInformationint64") - { - Diamond& p0 = *(Diamond*)operation.getParameter(0); - const __int64* p1 = (const __int64*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInformationint64(p0, p1)); - return; - } - if (operationName == "getCustomerInfoAint64") - { - Diamond& p0 = *(Diamond*)operation.getParameter(0); - const __int64* p1 = (const __int64*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoAint64(p0, p1)); - return; - } - if (operationName == "getCustomerInfoBint64") - { - Diamond& p0 = *(Diamond*)operation.getParameter(0); - __int64* p1 = ( __int64*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoBint64(p0, p1)); - return; - } - if (operationName == "getCustomerInfoCint64") - { - Diamond& p0 = *(Diamond*)operation.getParameter(0); - __int64& p1 = *( __int64*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoCint64(p0, p1)); - return; - } - if (operationName == "getCustomerInfoDint64") - { - Diamond& p0 = *(Diamond*)operation.getParameter(0); - __int64& p1 = *( __int64*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoDint64(p0, p1)); - return; - } - if (operationName == "getCustomerInfoEint64") - { - Diamond& p0 = *(Diamond*)operation.getParameter(0); - __int64* p1 = ( __int64*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoEint64(p0, p1)); - return; - } - if (operationName == "getCustomerInfoFint64") - { - Diamond& p0 = *(Diamond*)operation.getParameter(0); - __int64* p1 = ( __int64*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoFint64(p0, p1)); - return; - } - if (operationName == "getCustomerInfoGint64") - { - Diamond& p0 = *(Diamond*)operation.getParameter(0); - signed __int64* p1 = ( signed __int64*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoGint64(p0, p1)); - return; - } - if (operationName == "getCustomerInfoHint64") - { - Diamond& p0 = *(Diamond*)operation.getParameter(0); - unsigned int64* p1 = ( unsigned int64*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoHint64(p0, p1)); - return; - } - if (operationName == "getCustomerInformationVoid") - { - float& p0 = *(float*)operation.getParameter(0); - const __int64* p1 = (const __int64*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInformationVoid(p0, p1)); - return; - } - if (operationName == "getCustomerInfoAVoid") - { - float& p0 = *(float*)operation.getParameter(0); - const __int64* p1 = (const __int64*)operation.getParameter(1); - impl->getCustomerInfoAVoid(p0, p1); - return; - } - if (operationName == "getCustomerInfoBVoid") - { - impl->getCustomerInfoBVoid(); - return; - } - if (operationName == "getCustomerInfoCVoid") - { - impl->getCustomerInfoCVoid(); - return; - } - if (operationName == "getCustomerInfoDVoid") - { - impl->getCustomerInfoDVoid(); - return; - } - if (operationName == "getCustomerInfoEVoid") - { - *(char*)operation.getReturnValue() = impl->getCustomerInfoEVoid(); - return; - } - if (operationName == "getCustomerInfoFVoid") - { - *(char*)operation.getReturnValue() = impl->getCustomerInfoFVoid(); - return; - } - if (operationName == "getCustomerInfoGVoid") - { - *(char*)operation.getReturnValue() = impl->getCustomerInfoGVoid(); - return; - } - if (operationName == "getCustomerInfoAInline") - { - int& p0 = *( int*)operation.getParameter(0); - int& p1 = *( int*)operation.getParameter(1); - int& p2 = *( int*)operation.getParameter(2); - int& p3 = *( int*)operation.getParameter(3); - char* customer p4 = ( char* customer)operation.getParameter(4); - - operation.setReturnValue((void*) impl->getCustomerInfoAInline(p0, p1, p2, p3, p4)); - return; - } - if (operationName == "getCustomerInfoBInline") - { - int* p0 = ( int*)operation.getParameter(0); - int* p1 = ( int*)operation.getParameter(1); - int* p2 = ( int*)operation.getParameter(2); - char* customer p3 = ( char* customer)operation.getParameter(3); - *(int*)operation.getReturnValue() = impl->getCustomerInfoBInline(p0, p1, p2, p3); - return; - } - if (operationName == "getCustomerInfoCInline") - { - char* customer p0 = ( char* customer)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoCInline(p0)); - return; - } - if (operationName == "getCustomerInfoTrickyA") - { - const char& p0 = *(const char*)operation.getParameter(0); - const char& p1 = *(const char*)operation.getParameter(1); - *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyA(p0, p1); - return; - } - if (operationName == "getCustomerInfoTrickyB") - { - int& p0 = *( int*)operation.getParameter(0); - int& p1 = *( int*)operation.getParameter(1); - *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyB(p0, p1); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h deleted file mode 100644 index 778a168220..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl_CustomerInfoService_Wrapper_h - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CustomerInfoImpl* impl; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp deleted file mode 100644 index a033e9b11e..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,556 +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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) - { - return new CustomerInfoImpl_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationChar(const char* arg0) -{ - Operation operation("getCustomerInformationChar", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAChar(const char* arg0) -{ - Operation operation("getCustomerInfoAChar", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBChar( char* arg0) -{ - Operation operation("getCustomerInfoBChar", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCChar( char arg0) -{ - Operation operation("getCustomerInfoCChar", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDChar( char arg0) -{ - Operation operation("getCustomerInfoDChar", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEChar( char* arg0) -{ - Operation operation("getCustomerInfoEChar", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFChar( char* arg0) -{ - Operation operation("getCustomerInfoFChar", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGChar( signed char* arg0) -{ - Operation operation("getCustomerInfoGChar", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHChar( unsigned char* arg0) -{ - Operation operation("getCustomerInfoHChar", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationLong(const long* arg0) -{ - Operation operation("getCustomerInformationLong", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoALong(const long* arg0) -{ - Operation operation("getCustomerInfoALong", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBLong( long* arg0) -{ - Operation operation("getCustomerInfoBLong", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCLong( long arg0) -{ - Operation operation("getCustomerInfoCLong", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDLong( long arg0) -{ - Operation operation("getCustomerInfoDLong", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoELong( long* arg0) -{ - Operation operation("getCustomerInfoELong", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFLong( long* arg0) -{ - Operation operation("getCustomerInfoFLong", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGLong( signed long* arg0) -{ - Operation operation("getCustomerInfoGLong", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHLong( unsigned long* arg0) -{ - Operation operation("getCustomerInfoHLong", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const long*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationInt(const int* arg0) -{ - Operation operation("getCustomerInformationInt", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInt(const int* arg0) -{ - Operation operation("getCustomerInfoAInt", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInt( int* arg0) -{ - Operation operation("getCustomerInfoBInt", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInt( int arg0) -{ - Operation operation("getCustomerInfoCInt", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDInt( int arg0) -{ - Operation operation("getCustomerInfoDInt", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEInt( int* arg0) -{ - Operation operation("getCustomerInfoEInt", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFInt( int* arg0) -{ - Operation operation("getCustomerInfoFInt", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGInt( signed int* arg0) -{ - Operation operation("getCustomerInfoGInt", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHInt( unsigned int* arg0) -{ - Operation operation("getCustomerInfoHInt", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const int*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationint64(const __int64* arg0) -{ - Operation operation("getCustomerInformationint64", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAint64(const __int64* arg0) -{ - Operation operation("getCustomerInfoAint64", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBint64( __int64* arg0) -{ - Operation operation("getCustomerInfoBint64", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCint64( __int64 arg0) -{ - Operation operation("getCustomerInfoCint64", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDint64( __int64 arg0) -{ - Operation operation("getCustomerInfoDint64", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEint64( __int64* arg0) -{ - Operation operation("getCustomerInfoEint64", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFint64( __int64* arg0) -{ - Operation operation("getCustomerInfoFint64", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGint64( signed __int64* arg0) -{ - Operation operation("getCustomerInfoGint64", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHint64( unsigned int64* arg0) -{ - Operation operation("getCustomerInfoHint64", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const __int64*)operation.getReturnValue(); - -} - -const void* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationVoid(const __int64* arg0) -{ - Operation operation("getCustomerInformationVoid", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const void*)operation.getReturnValue(); - -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAVoid(const __int64* arg0) -{ - Operation operation("getCustomerInfoAVoid", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return; - -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBVoid() -{ - Operation operation("getCustomerInfoBVoid", 0); - - target->invoke(operation); - return; - -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCVoid() -{ - Operation operation("getCustomerInfoCVoid", 0); - - target->invoke(operation); - return; - -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDVoid() -{ - Operation operation("getCustomerInfoDVoid", 0); - - target->invoke(operation); - return; - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInline( char* customer arg0) -{ - Operation operation("getCustomerInfoAInline", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInline( char* customer arg0) -{ - Operation operation("getCustomerInfoBInline", 1); - operation.setParameter(0, (void*)arg0); - - int ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -friend const unsigned int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInline( char* customer arg0) -{ - Operation operation("getCustomerInfoCInline", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (friend const unsigned int*)operation.getReturnValue(); - -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyA(const char arg0) -{ - Operation operation("getCustomerInfoTrickyA", 1); - operation.setParameter(0, (void*)&arg0); - - int ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyB( int arg0) -{ - Operation operation("getCustomerInfoTrickyB", 1); - operation.setParameter(0, (void*)&arg0); - - int ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h deleted file mode 100644 index f10da9c15e..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,79 +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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h -#define CustomerInfoImpl_CustomerInfoService_Proxy_h - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformationChar(const char* customerID); - virtual const char* getCustomerInfoAChar(const char* ); - virtual const char* getCustomerInfoBChar( char* customerID); - virtual const char* getCustomerInfoCChar( char customerID); - virtual const char* getCustomerInfoDChar( char ); - virtual const char* getCustomerInfoEChar( char* ); - virtual const char* getCustomerInfoFChar( char* customerID); - virtual const char* getCustomerInfoGChar( signed char* customerID); - virtual const char* getCustomerInfoHChar( unsigned char* customerID); - virtual const long* getCustomerInformationLong(const long* customerID); - virtual const long* getCustomerInfoALong(const long* ); - virtual const long* getCustomerInfoBLong( long* customerID); - virtual const long* getCustomerInfoCLong( long customerID); - virtual const long* getCustomerInfoDLong( long ); - virtual const long* getCustomerInfoELong( long* ); - virtual const long* getCustomerInfoFLong( long* customerID); - virtual const long* getCustomerInfoGLong( signed long* customerID); - virtual const long* getCustomerInfoHLong( unsigned long* customerID); - virtual const int* getCustomerInformationInt(const int* customerID); - virtual const int* getCustomerInfoAInt(const int* ); - virtual const int* getCustomerInfoBInt( int* customerID); - virtual const int* getCustomerInfoCInt( int customerID); - virtual const int* getCustomerInfoDInt( int ); - virtual const int* getCustomerInfoEInt( int* ); - virtual const int* getCustomerInfoFInt( int* customerID); - virtual const int* getCustomerInfoGInt( signed int* customerID); - virtual const int* getCustomerInfoHInt( unsigned int* customerID); - virtual const __int64* getCustomerInformationint64(const __int64* customerID); - virtual const __int64* getCustomerInfoAint64(const __int64* ); - virtual const __int64* getCustomerInfoBint64( __int64* customerID); - virtual const __int64* getCustomerInfoCint64( __int64 customerID); - virtual const __int64* getCustomerInfoDint64( __int64 ); - virtual const __int64* getCustomerInfoEint64( __int64* ); - virtual const __int64* getCustomerInfoFint64( __int64* customerID); - virtual const __int64* getCustomerInfoGint64( signed __int64* customerID); - virtual const __int64* getCustomerInfoHint64( unsigned int64* customerID); - virtual const void* getCustomerInformationVoid(const __int64* customerID); - virtual void getCustomerInfoAVoid(const __int64* ); - virtual void getCustomerInfoBVoid(); - virtual void getCustomerInfoCVoid(); - virtual void getCustomerInfoDVoid( void ); - virtual const char* getCustomerInfoAInline( char* customer id); - virtual int getCustomerInfoBInline( char* customer id); - virtual friend const unsigned int* getCustomerInfoCInline( char* customer id); - virtual int getCustomerInfoTrickyA(const char ); - virtual int getCustomerInfoTrickyB( int myInt); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index abf2b8ed1a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,376 +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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (CustomerInfoImpl*)getImplementation(); -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "getCustomerInformationChar") - { - const char* p0 = (const char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInformationChar(p0)); - return; - } - if (operationName == "getCustomerInfoAChar") - { - const char* p0 = (const char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoAChar(p0)); - return; - } - if (operationName == "getCustomerInfoBChar") - { - char* p0 = ( char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoBChar(p0)); - return; - } - if (operationName == "getCustomerInfoCChar") - { - char& p0 = *( char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoCChar(p0)); - return; - } - if (operationName == "getCustomerInfoDChar") - { - char& p0 = *( char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoDChar(p0)); - return; - } - if (operationName == "getCustomerInfoEChar") - { - char* p0 = ( char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoEChar(p0)); - return; - } - if (operationName == "getCustomerInfoFChar") - { - char* p0 = ( char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoFChar(p0)); - return; - } - if (operationName == "getCustomerInfoGChar") - { - signed char* p0 = ( signed char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoGChar(p0)); - return; - } - if (operationName == "getCustomerInfoHChar") - { - unsigned char* p0 = ( unsigned char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoHChar(p0)); - return; - } - if (operationName == "getCustomerInformationLong") - { - const long* p0 = (const long*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInformationLong(p0)); - return; - } - if (operationName == "getCustomerInfoALong") - { - const long* p0 = (const long*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoALong(p0)); - return; - } - if (operationName == "getCustomerInfoBLong") - { - long* p0 = ( long*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoBLong(p0)); - return; - } - if (operationName == "getCustomerInfoCLong") - { - long& p0 = *( long*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoCLong(p0)); - return; - } - if (operationName == "getCustomerInfoDLong") - { - long& p0 = *( long*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoDLong(p0)); - return; - } - if (operationName == "getCustomerInfoELong") - { - long* p0 = ( long*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoELong(p0)); - return; - } - if (operationName == "getCustomerInfoFLong") - { - long* p0 = ( long*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoFLong(p0)); - return; - } - if (operationName == "getCustomerInfoGLong") - { - signed long* p0 = ( signed long*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoGLong(p0)); - return; - } - if (operationName == "getCustomerInfoHLong") - { - unsigned long* p0 = ( unsigned long*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoHLong(p0)); - return; - } - if (operationName == "getCustomerInformationInt") - { - const int* p0 = (const int*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInformationInt(p0)); - return; - } - if (operationName == "getCustomerInfoAInt") - { - const int* p0 = (const int*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoAInt(p0)); - return; - } - if (operationName == "getCustomerInfoBInt") - { - int* p0 = ( int*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoBInt(p0)); - return; - } - if (operationName == "getCustomerInfoCInt") - { - int& p0 = *( int*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoCInt(p0)); - return; - } - if (operationName == "getCustomerInfoDInt") - { - int& p0 = *( int*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoDInt(p0)); - return; - } - if (operationName == "getCustomerInfoEInt") - { - int* p0 = ( int*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoEInt(p0)); - return; - } - if (operationName == "getCustomerInfoFInt") - { - int* p0 = ( int*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoFInt(p0)); - return; - } - if (operationName == "getCustomerInfoGInt") - { - signed int* p0 = ( signed int*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoGInt(p0)); - return; - } - if (operationName == "getCustomerInfoHInt") - { - unsigned int* p0 = ( unsigned int*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoHInt(p0)); - return; - } - if (operationName == "getCustomerInformationint64") - { - const __int64* p0 = (const __int64*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInformationint64(p0)); - return; - } - if (operationName == "getCustomerInfoAint64") - { - const __int64* p0 = (const __int64*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoAint64(p0)); - return; - } - if (operationName == "getCustomerInfoBint64") - { - __int64* p0 = ( __int64*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoBint64(p0)); - return; - } - if (operationName == "getCustomerInfoCint64") - { - __int64& p0 = *( __int64*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoCint64(p0)); - return; - } - if (operationName == "getCustomerInfoDint64") - { - __int64& p0 = *( __int64*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoDint64(p0)); - return; - } - if (operationName == "getCustomerInfoEint64") - { - __int64* p0 = ( __int64*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoEint64(p0)); - return; - } - if (operationName == "getCustomerInfoFint64") - { - __int64* p0 = ( __int64*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoFint64(p0)); - return; - } - if (operationName == "getCustomerInfoGint64") - { - signed __int64* p0 = ( signed __int64*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoGint64(p0)); - return; - } - if (operationName == "getCustomerInfoHint64") - { - unsigned int64* p0 = ( unsigned int64*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoHint64(p0)); - return; - } - if (operationName == "getCustomerInformationVoid") - { - const __int64* p0 = (const __int64*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInformationVoid(p0)); - return; - } - if (operationName == "getCustomerInfoAVoid") - { - const __int64* p0 = (const __int64*)operation.getParameter(0); - impl->getCustomerInfoAVoid(p0); - return; - } - if (operationName == "getCustomerInfoBVoid") - { - impl->getCustomerInfoBVoid(); - return; - } - if (operationName == "getCustomerInfoCVoid") - { - impl->getCustomerInfoCVoid(); - return; - } - if (operationName == "getCustomerInfoDVoid") - { - impl->getCustomerInfoDVoid(); - return; - } - if (operationName == "getCustomerInfoAInline") - { - char* customer p0 = ( char* customer)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoAInline(p0)); - return; - } - if (operationName == "getCustomerInfoBInline") - { - char* customer p0 = ( char* customer)operation.getParameter(0); - *(int*)operation.getReturnValue() = impl->getCustomerInfoBInline(p0); - return; - } - if (operationName == "getCustomerInfoCInline") - { - char* customer p0 = ( char* customer)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInfoCInline(p0)); - return; - } - if (operationName == "getCustomerInfoTrickyA") - { - const char& p0 = *(const char*)operation.getParameter(0); - *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyA(p0); - return; - } - if (operationName == "getCustomerInfoTrickyB") - { - int& p0 = *( int*)operation.getParameter(0); - *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyB(p0); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h deleted file mode 100644 index 778a168220..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl_CustomerInfoService_Wrapper_h - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CustomerInfoImpl* impl; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp deleted file mode 100644 index e1950f17a6..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,64 +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. - */ - -#include "CustomerInfoImpl2_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl2_CustomerInfoService_Proxy* CustomerInfoImpl2_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) - { - return new CustomerInfoImpl2_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl2_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl2_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl2_CustomerInfoService_Proxy::CustomerInfoImpl2_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl2_CustomerInfoService_Proxy::~CustomerInfoImpl2_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl2_CustomerInfoService_Proxy::getCustomerInformation(const char* arg0) -{ - Operation operation("getCustomerInformation", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h deleted file mode 100644 index 03fe3e3b93..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef CustomerInfoImpl2_CustomerInfoService_Proxy_h -#define CustomerInfoImpl2_CustomerInfoService_Proxy_h - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl2_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl2_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl2_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl2_CustomerInfoService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index 2d5f502b08..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,71 +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. - */ - -#include "CustomerInfoImpl2_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl2_CustomerInfoService_Wrapper* CustomerInfoImpl2_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl2_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl2_CustomerInfoService_Wrapper::CustomerInfoImpl2_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (CustomerInfoImpl2*)getImplementation(); -} - -CustomerInfoImpl2_CustomerInfoService_Wrapper::~CustomerInfoImpl2_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl2_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl2; -} - -void CustomerInfoImpl2_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl2_CustomerInfoService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "getCustomerInformation") - { - const char* p0 = (const char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInformation(p0)); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h deleted file mode 100644 index 7f7cb13a6b..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef CustomerInfoImpl2_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl2_CustomerInfoService_Wrapper_h - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class CustomerInfoImpl2_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - CustomerInfoImpl2_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl2_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CustomerInfoImpl2* impl; -}; - -#endif // CustomerInfoImpl2_CustomerInfoService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.cpp deleted file mode 100644 index c83eb661ca..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.cpp +++ /dev/null @@ -1,100 +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. - */ - -#include "MyValueImpl_MyValueService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(ServiceWrapper* target) - { - return new MyValueImpl_MyValueService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_MyValueService_Proxy*)proxy; - } -} - -MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() -{ - if (target) - delete target; -} - -float MyValueImpl_MyValueService_Proxy::getMyValue(const char* arg0) -{ - Operation operation("getMyValue", 1); - operation.setParameter(0, (void*)arg0); - - float ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -float MyValueImpl_MyValueService_Proxy::getMyValueS(const string& arg0) -{ - Operation operation("getMyValueS", 1); - operation.setParameter(0, (void*)&arg0); - - float ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -string MyValueImpl_MyValueService_Proxy::getCustname( string& arg0) -{ - Operation operation("getCustname", 1); - operation.setParameter(0, (void*)&arg0); - - string ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -const string& MyValueImpl_MyValueService_Proxy::getCustnamecs( string arg0) -{ - Operation operation("getCustnamecs", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return *(const string*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.h deleted file mode 100644 index 38f22384b0..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Proxy.h +++ /dev/null @@ -1,37 +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. - */ - -#ifndef MyValueImpl_MyValueService_Proxy_h -#define MyValueImpl_MyValueService_Proxy_h - -#include "MyValue.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_MyValueService_Proxy : public MyValue -{ -public: - MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_MyValueService_Proxy(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname( string& customerID); - virtual const string& getCustnamecs( string customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_MyValueService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.cpp deleted file mode 100644 index d9337c9341..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.cpp +++ /dev/null @@ -1,89 +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. - */ - -#include "MyValueImpl_MyValueService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new MyValueImpl_MyValueService_Wrapper(target); - } -} - -MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (MyValueImpl*)getImplementation(); -} - -MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() -{ - releaseImplementation(); -} - -void* MyValueImpl_MyValueService_Wrapper::newImplementation() -{ - return new MyValueImpl; -} - -void MyValueImpl_MyValueService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void MyValueImpl_MyValueService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "getMyValue") - { - const char* p0 = (const char*)operation.getParameter(0); - *(float*)operation.getReturnValue() = impl->getMyValue(p0); - return; - } - if (operationName == "getMyValueS") - { - string& p0 = *(string*)operation.getParameter(0); - *(float*)operation.getReturnValue() = impl->getMyValueS(p0); - return; - } - if (operationName == "getCustname") - { - string& p0 = *(string*)operation.getParameter(0); - *(string*)operation.getReturnValue() = impl->getCustname(p0); - return; - } - if (operationName == "getCustnamecs") - { - string& p0 = *( string*)operation.getParameter(0); - const string& ret = impl->getCustnamecs(p0); - operation.setReturnValue((void*)&ret); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.h deleted file mode 100644 index 2f5da06e30..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_MyValueService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef MyValueImpl_MyValueService_Wrapper_h -#define MyValueImpl_MyValueService_Wrapper_h - -#include "MyValueImpl.hpp" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); - virtual ~MyValueImpl_MyValueService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - MyValueImpl* impl; -}; - -#endif // MyValueImpl_MyValueService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.cpp deleted file mode 100644 index 7625556203..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.cpp +++ /dev/null @@ -1,64 +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. - */ - -#include "MyValueImpl_customerInfo_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_customerInfo_Proxy* MyValueImpl_customerInfo_Proxy_Factory(ServiceWrapper* target) - { - return new MyValueImpl_customerInfo_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_customerInfo_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_customerInfo_Proxy*)proxy; - } -} - -MyValueImpl_customerInfo_Proxy::MyValueImpl_customerInfo_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_customerInfo_Proxy::~MyValueImpl_customerInfo_Proxy() -{ - if (target) - delete target; -} - -const char* MyValueImpl_customerInfo_Proxy::getCustomerInformation(const char* arg0) -{ - Operation operation("getCustomerInformation", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.h deleted file mode 100644 index cc60ef5005..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_customerInfo_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef MyValueImpl_customerInfo_Proxy_h -#define MyValueImpl_customerInfo_Proxy_h - -#include "CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_customerInfo_Proxy : public CustomerInfo -{ -public: - MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_customerInfo_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_customerInfo_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.cpp deleted file mode 100644 index 14b37fa4bd..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.cpp +++ /dev/null @@ -1,66 +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. - */ - -#include "MyValueImpl_stockQuote_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_stockQuote_Proxy* MyValueImpl_stockQuote_Proxy_Factory(ServiceWrapper* target) - { - return new MyValueImpl_stockQuote_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_stockQuote_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_stockQuote_Proxy*)proxy; - } -} - -MyValueImpl_stockQuote_Proxy::MyValueImpl_stockQuote_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_stockQuote_Proxy::~MyValueImpl_stockQuote_Proxy() -{ - if (target) - delete target; -} - -commonj::sdo::DataObjectPtr MyValueImpl_stockQuote_Proxy::GetStockQuotes( commonj::sdo::DataObjectPtr arg0) -{ - Operation operation("GetStockQuotes", 1); - operation.setParameter(0, (void*)&arg0); - - commonj::sdo::DataObjectPtr ret = 0; - operation.setReturnValue((void*)&ret); - - target->invoke(operation); - return ret; - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index 850bc3861c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModule/expected_output/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes( commonj::sdo::DataObjectPtr request); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp deleted file mode 100644 index aaf2115547..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,64 +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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) - { - return new CustomerInfoImpl_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformation(const char* arg0) -{ - Operation operation("getCustomerInformation", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h deleted file mode 100644 index 3739cd72d1..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h -#define CustomerInfoImpl_CustomerInfoService_Proxy_h - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index d1fb6073c9..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,71 +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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (CustomerInfoImpl*)getImplementation(); -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "getCustomerInformation") - { - const char* p0 = (const char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInformation(p0)); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h deleted file mode 100644 index 778a168220..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl_CustomerInfoService_Wrapper_h - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CustomerInfoImpl* impl; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp deleted file mode 100644 index c83eb661ca..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp +++ /dev/null @@ -1,100 +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. - */ - -#include "MyValueImpl_MyValueService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(ServiceWrapper* target) - { - return new MyValueImpl_MyValueService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_MyValueService_Proxy*)proxy; - } -} - -MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() -{ - if (target) - delete target; -} - -float MyValueImpl_MyValueService_Proxy::getMyValue(const char* arg0) -{ - Operation operation("getMyValue", 1); - operation.setParameter(0, (void*)arg0); - - float ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -float MyValueImpl_MyValueService_Proxy::getMyValueS(const string& arg0) -{ - Operation operation("getMyValueS", 1); - operation.setParameter(0, (void*)&arg0); - - float ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -string MyValueImpl_MyValueService_Proxy::getCustname( string& arg0) -{ - Operation operation("getCustname", 1); - operation.setParameter(0, (void*)&arg0); - - string ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -const string& MyValueImpl_MyValueService_Proxy::getCustnamecs( string arg0) -{ - Operation operation("getCustnamecs", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return *(const string*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h deleted file mode 100644 index 38f22384b0..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h +++ /dev/null @@ -1,37 +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. - */ - -#ifndef MyValueImpl_MyValueService_Proxy_h -#define MyValueImpl_MyValueService_Proxy_h - -#include "MyValue.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_MyValueService_Proxy : public MyValue -{ -public: - MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_MyValueService_Proxy(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname( string& customerID); - virtual const string& getCustnamecs( string customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_MyValueService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp deleted file mode 100644 index d9337c9341..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp +++ /dev/null @@ -1,89 +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. - */ - -#include "MyValueImpl_MyValueService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new MyValueImpl_MyValueService_Wrapper(target); - } -} - -MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (MyValueImpl*)getImplementation(); -} - -MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() -{ - releaseImplementation(); -} - -void* MyValueImpl_MyValueService_Wrapper::newImplementation() -{ - return new MyValueImpl; -} - -void MyValueImpl_MyValueService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void MyValueImpl_MyValueService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "getMyValue") - { - const char* p0 = (const char*)operation.getParameter(0); - *(float*)operation.getReturnValue() = impl->getMyValue(p0); - return; - } - if (operationName == "getMyValueS") - { - string& p0 = *(string*)operation.getParameter(0); - *(float*)operation.getReturnValue() = impl->getMyValueS(p0); - return; - } - if (operationName == "getCustname") - { - string& p0 = *(string*)operation.getParameter(0); - *(string*)operation.getReturnValue() = impl->getCustname(p0); - return; - } - if (operationName == "getCustnamecs") - { - string& p0 = *( string*)operation.getParameter(0); - const string& ret = impl->getCustnamecs(p0); - operation.setReturnValue((void*)&ret); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h deleted file mode 100644 index 2f5da06e30..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef MyValueImpl_MyValueService_Wrapper_h -#define MyValueImpl_MyValueService_Wrapper_h - -#include "MyValueImpl.hpp" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); - virtual ~MyValueImpl_MyValueService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - MyValueImpl* impl; -}; - -#endif // MyValueImpl_MyValueService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp deleted file mode 100644 index 7625556203..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp +++ /dev/null @@ -1,64 +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. - */ - -#include "MyValueImpl_customerInfo_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_customerInfo_Proxy* MyValueImpl_customerInfo_Proxy_Factory(ServiceWrapper* target) - { - return new MyValueImpl_customerInfo_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_customerInfo_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_customerInfo_Proxy*)proxy; - } -} - -MyValueImpl_customerInfo_Proxy::MyValueImpl_customerInfo_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_customerInfo_Proxy::~MyValueImpl_customerInfo_Proxy() -{ - if (target) - delete target; -} - -const char* MyValueImpl_customerInfo_Proxy::getCustomerInformation(const char* arg0) -{ - Operation operation("getCustomerInformation", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.h deleted file mode 100644 index cc60ef5005..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef MyValueImpl_customerInfo_Proxy_h -#define MyValueImpl_customerInfo_Proxy_h - -#include "CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_customerInfo_Proxy : public CustomerInfo -{ -public: - MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_customerInfo_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_customerInfo_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp deleted file mode 100644 index 14b37fa4bd..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp +++ /dev/null @@ -1,66 +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. - */ - -#include "MyValueImpl_stockQuote_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_stockQuote_Proxy* MyValueImpl_stockQuote_Proxy_Factory(ServiceWrapper* target) - { - return new MyValueImpl_stockQuote_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_stockQuote_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_stockQuote_Proxy*)proxy; - } -} - -MyValueImpl_stockQuote_Proxy::MyValueImpl_stockQuote_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_stockQuote_Proxy::~MyValueImpl_stockQuote_Proxy() -{ - if (target) - delete target; -} - -commonj::sdo::DataObjectPtr MyValueImpl_stockQuote_Proxy::GetStockQuotes( commonj::sdo::DataObjectPtr arg0) -{ - Operation operation("GetStockQuotes", 1); - operation.setParameter(0, (void*)&arg0); - - commonj::sdo::DataObjectPtr ret = 0; - operation.setReturnValue((void*)&ret); - - target->invoke(operation); - return ret; - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index 850bc3861c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes( commonj::sdo::DataObjectPtr request); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp deleted file mode 100644 index 5e5a85a7c5..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp +++ /dev/null @@ -1,100 +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. - */ - -#include "MyValueImpl_MyValueService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(ServiceWrapper* target) - { - return new MyValueImpl_MyValueService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_MyValueService_Proxy*)proxy; - } -} - -MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() -{ - if (target) - delete target; -} - -float MyValueImpl_MyValueService_Proxy::getMyValueOther(const char* arg0) -{ - Operation operation("getMyValueOther", 1); - operation.setParameter(0, (void*)arg0); - - float ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -float MyValueImpl_MyValueService_Proxy::getMyValueSOther(const string& arg0) -{ - Operation operation("getMyValueSOther", 1); - operation.setParameter(0, (void*)&arg0); - - float ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -string MyValueImpl_MyValueService_Proxy::getCustnameOther( string& arg0) -{ - Operation operation("getCustnameOther", 1); - operation.setParameter(0, (void*)&arg0); - - string ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -const string& MyValueImpl_MyValueService_Proxy::getCustnamecsOther( string arg0) -{ - Operation operation("getCustnamecsOther", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return *(const string*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h deleted file mode 100644 index 19f4e9c89a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h +++ /dev/null @@ -1,37 +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. - */ - -#ifndef MyValueImpl_MyValueService_Proxy_h -#define MyValueImpl_MyValueService_Proxy_h - -#include "MyValue.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_MyValueService_Proxy : public Other::MyValue -{ -public: - MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_MyValueService_Proxy(); - virtual float getMyValueOther(const char* customerID); - virtual float getMyValueSOther(const string& customerID); - virtual string getCustnameOther( string& customerID); - virtual const string& getCustnamecsOther( string customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_MyValueService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp deleted file mode 100644 index 7a5e40e9ea..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp +++ /dev/null @@ -1,89 +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. - */ - -#include "MyValueImpl_MyValueService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new MyValueImpl_MyValueService_Wrapper(target); - } -} - -MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (MyValueImpl*)getImplementation(); -} - -MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() -{ - releaseImplementation(); -} - -void* MyValueImpl_MyValueService_Wrapper::newImplementation() -{ - return new MyValueImpl; -} - -void MyValueImpl_MyValueService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void MyValueImpl_MyValueService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "getMyValueOther") - { - const char* p0 = (const char*)operation.getParameter(0); - *(float*)operation.getReturnValue() = impl->getMyValueOther(p0); - return; - } - if (operationName == "getMyValueSOther") - { - string& p0 = *(string*)operation.getParameter(0); - *(float*)operation.getReturnValue() = impl->getMyValueSOther(p0); - return; - } - if (operationName == "getCustnameOther") - { - string& p0 = *(string*)operation.getParameter(0); - *(string*)operation.getReturnValue() = impl->getCustnameOther(p0); - return; - } - if (operationName == "getCustnamecsOther") - { - string& p0 = *( string*)operation.getParameter(0); - const string& ret = impl->getCustnamecsOther(p0); - operation.setReturnValue((void*)&ret); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h deleted file mode 100644 index 2f5da06e30..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef MyValueImpl_MyValueService_Wrapper_h -#define MyValueImpl_MyValueService_Wrapper_h - -#include "MyValueImpl.hpp" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); - virtual ~MyValueImpl_MyValueService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - MyValueImpl* impl; -}; - -#endif // MyValueImpl_MyValueService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp deleted file mode 100644 index 5e5a85a7c5..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp +++ /dev/null @@ -1,100 +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. - */ - -#include "MyValueImpl_MyValueService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(ServiceWrapper* target) - { - return new MyValueImpl_MyValueService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_MyValueService_Proxy*)proxy; - } -} - -MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() -{ - if (target) - delete target; -} - -float MyValueImpl_MyValueService_Proxy::getMyValueOther(const char* arg0) -{ - Operation operation("getMyValueOther", 1); - operation.setParameter(0, (void*)arg0); - - float ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -float MyValueImpl_MyValueService_Proxy::getMyValueSOther(const string& arg0) -{ - Operation operation("getMyValueSOther", 1); - operation.setParameter(0, (void*)&arg0); - - float ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -string MyValueImpl_MyValueService_Proxy::getCustnameOther( string& arg0) -{ - Operation operation("getCustnameOther", 1); - operation.setParameter(0, (void*)&arg0); - - string ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -const string& MyValueImpl_MyValueService_Proxy::getCustnamecsOther( string arg0) -{ - Operation operation("getCustnamecsOther", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return *(const string*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h deleted file mode 100644 index 19f4e9c89a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h +++ /dev/null @@ -1,37 +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. - */ - -#ifndef MyValueImpl_MyValueService_Proxy_h -#define MyValueImpl_MyValueService_Proxy_h - -#include "MyValue.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_MyValueService_Proxy : public Other::MyValue -{ -public: - MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_MyValueService_Proxy(); - virtual float getMyValueOther(const char* customerID); - virtual float getMyValueSOther(const string& customerID); - virtual string getCustnameOther( string& customerID); - virtual const string& getCustnamecsOther( string customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_MyValueService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp deleted file mode 100644 index 7a5e40e9ea..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp +++ /dev/null @@ -1,89 +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. - */ - -#include "MyValueImpl_MyValueService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new MyValueImpl_MyValueService_Wrapper(target); - } -} - -MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (MyValueImpl*)getImplementation(); -} - -MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() -{ - releaseImplementation(); -} - -void* MyValueImpl_MyValueService_Wrapper::newImplementation() -{ - return new MyValueImpl; -} - -void MyValueImpl_MyValueService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void MyValueImpl_MyValueService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "getMyValueOther") - { - const char* p0 = (const char*)operation.getParameter(0); - *(float*)operation.getReturnValue() = impl->getMyValueOther(p0); - return; - } - if (operationName == "getMyValueSOther") - { - string& p0 = *(string*)operation.getParameter(0); - *(float*)operation.getReturnValue() = impl->getMyValueSOther(p0); - return; - } - if (operationName == "getCustnameOther") - { - string& p0 = *(string*)operation.getParameter(0); - *(string*)operation.getReturnValue() = impl->getCustnameOther(p0); - return; - } - if (operationName == "getCustnamecsOther") - { - string& p0 = *( string*)operation.getParameter(0); - const string& ret = impl->getCustnamecsOther(p0); - operation.setReturnValue((void*)&ret); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h deleted file mode 100644 index 2f5da06e30..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef MyValueImpl_MyValueService_Wrapper_h -#define MyValueImpl_MyValueService_Wrapper_h - -#include "MyValueImpl.hpp" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); - virtual ~MyValueImpl_MyValueService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - MyValueImpl* impl; -}; - -#endif // MyValueImpl_MyValueService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp deleted file mode 100644 index e1950f17a6..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,64 +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. - */ - -#include "CustomerInfoImpl2_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl2_CustomerInfoService_Proxy* CustomerInfoImpl2_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) - { - return new CustomerInfoImpl2_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl2_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl2_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl2_CustomerInfoService_Proxy::CustomerInfoImpl2_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl2_CustomerInfoService_Proxy::~CustomerInfoImpl2_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl2_CustomerInfoService_Proxy::getCustomerInformation(const char* arg0) -{ - Operation operation("getCustomerInformation", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h deleted file mode 100644 index 03fe3e3b93..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef CustomerInfoImpl2_CustomerInfoService_Proxy_h -#define CustomerInfoImpl2_CustomerInfoService_Proxy_h - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl2_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl2_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl2_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl2_CustomerInfoService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index 2d5f502b08..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,71 +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. - */ - -#include "CustomerInfoImpl2_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl2_CustomerInfoService_Wrapper* CustomerInfoImpl2_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl2_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl2_CustomerInfoService_Wrapper::CustomerInfoImpl2_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (CustomerInfoImpl2*)getImplementation(); -} - -CustomerInfoImpl2_CustomerInfoService_Wrapper::~CustomerInfoImpl2_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl2_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl2; -} - -void CustomerInfoImpl2_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl2_CustomerInfoService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "getCustomerInformation") - { - const char* p0 = (const char*)operation.getParameter(0); - - operation.setReturnValue((void*) impl->getCustomerInformation(p0)); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h deleted file mode 100644 index 7f7cb13a6b..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef CustomerInfoImpl2_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl2_CustomerInfoService_Wrapper_h - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class CustomerInfoImpl2_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - CustomerInfoImpl2_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl2_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CustomerInfoImpl2* impl; -}; - -#endif // CustomerInfoImpl2_CustomerInfoService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp deleted file mode 100644 index c83eb661ca..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp +++ /dev/null @@ -1,100 +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. - */ - -#include "MyValueImpl_MyValueService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(ServiceWrapper* target) - { - return new MyValueImpl_MyValueService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_MyValueService_Proxy*)proxy; - } -} - -MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() -{ - if (target) - delete target; -} - -float MyValueImpl_MyValueService_Proxy::getMyValue(const char* arg0) -{ - Operation operation("getMyValue", 1); - operation.setParameter(0, (void*)arg0); - - float ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -float MyValueImpl_MyValueService_Proxy::getMyValueS(const string& arg0) -{ - Operation operation("getMyValueS", 1); - operation.setParameter(0, (void*)&arg0); - - float ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -string MyValueImpl_MyValueService_Proxy::getCustname( string& arg0) -{ - Operation operation("getCustname", 1); - operation.setParameter(0, (void*)&arg0); - - string ret; - operation.setReturnValue((void*)&ret); - target->invoke(operation); - return ret; - -} - -const string& MyValueImpl_MyValueService_Proxy::getCustnamecs( string arg0) -{ - Operation operation("getCustnamecs", 1); - operation.setParameter(0, (void*)&arg0); - - - target->invoke(operation); - return *(const string*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h deleted file mode 100644 index 38f22384b0..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h +++ /dev/null @@ -1,37 +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. - */ - -#ifndef MyValueImpl_MyValueService_Proxy_h -#define MyValueImpl_MyValueService_Proxy_h - -#include "MyValue.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_MyValueService_Proxy : public MyValue -{ -public: - MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_MyValueService_Proxy(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname( string& customerID); - virtual const string& getCustnamecs( string customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_MyValueService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp deleted file mode 100644 index d9337c9341..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp +++ /dev/null @@ -1,89 +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. - */ - -#include "MyValueImpl_MyValueService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new MyValueImpl_MyValueService_Wrapper(target); - } -} - -MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (MyValueImpl*)getImplementation(); -} - -MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() -{ - releaseImplementation(); -} - -void* MyValueImpl_MyValueService_Wrapper::newImplementation() -{ - return new MyValueImpl; -} - -void MyValueImpl_MyValueService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void MyValueImpl_MyValueService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "getMyValue") - { - const char* p0 = (const char*)operation.getParameter(0); - *(float*)operation.getReturnValue() = impl->getMyValue(p0); - return; - } - if (operationName == "getMyValueS") - { - string& p0 = *(string*)operation.getParameter(0); - *(float*)operation.getReturnValue() = impl->getMyValueS(p0); - return; - } - if (operationName == "getCustname") - { - string& p0 = *(string*)operation.getParameter(0); - *(string*)operation.getReturnValue() = impl->getCustname(p0); - return; - } - if (operationName == "getCustnamecs") - { - string& p0 = *( string*)operation.getParameter(0); - const string& ret = impl->getCustnamecs(p0); - operation.setReturnValue((void*)&ret); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h deleted file mode 100644 index 2f5da06e30..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef MyValueImpl_MyValueService_Wrapper_h -#define MyValueImpl_MyValueService_Wrapper_h - -#include "MyValueImpl.hpp" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); - virtual ~MyValueImpl_MyValueService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - MyValueImpl* impl; -}; - -#endif // MyValueImpl_MyValueService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp deleted file mode 100644 index 7625556203..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp +++ /dev/null @@ -1,64 +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. - */ - -#include "MyValueImpl_customerInfo_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_customerInfo_Proxy* MyValueImpl_customerInfo_Proxy_Factory(ServiceWrapper* target) - { - return new MyValueImpl_customerInfo_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_customerInfo_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_customerInfo_Proxy*)proxy; - } -} - -MyValueImpl_customerInfo_Proxy::MyValueImpl_customerInfo_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_customerInfo_Proxy::~MyValueImpl_customerInfo_Proxy() -{ - if (target) - delete target; -} - -const char* MyValueImpl_customerInfo_Proxy::getCustomerInformation(const char* arg0) -{ - Operation operation("getCustomerInformation", 1); - operation.setParameter(0, (void*)arg0); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.h deleted file mode 100644 index cc60ef5005..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef MyValueImpl_customerInfo_Proxy_h -#define MyValueImpl_customerInfo_Proxy_h - -#include "CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_customerInfo_Proxy : public CustomerInfo -{ -public: - MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_customerInfo_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_customerInfo_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp deleted file mode 100644 index 14b37fa4bd..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp +++ /dev/null @@ -1,66 +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. - */ - -#include "MyValueImpl_stockQuote_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_stockQuote_Proxy* MyValueImpl_stockQuote_Proxy_Factory(ServiceWrapper* target) - { - return new MyValueImpl_stockQuote_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_stockQuote_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_stockQuote_Proxy*)proxy; - } -} - -MyValueImpl_stockQuote_Proxy::MyValueImpl_stockQuote_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_stockQuote_Proxy::~MyValueImpl_stockQuote_Proxy() -{ - if (target) - delete target; -} - -commonj::sdo::DataObjectPtr MyValueImpl_stockQuote_Proxy::GetStockQuotes( commonj::sdo::DataObjectPtr arg0) -{ - Operation operation("GetStockQuotes", 1); - operation.setParameter(0, (void*)&arg0); - - commonj::sdo::DataObjectPtr ret = 0; - operation.setReturnValue((void*)&ret); - - target->invoke(operation); - return ret; - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index 850bc3861c..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/MyValueServiceModuleTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,34 +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. - */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes( commonj::sdo::DataObjectPtr request); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp deleted file mode 100644 index fae8534537..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,92 +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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(ServiceWrapper* target) - { - return new CustomerInfoImpl_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationCharPublic( char* arg0, const char* arg1) -{ - Operation operation("getCustomerInformationCharPublic", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoACharPublic( char* arg0, const char* arg1) -{ - Operation operation("getCustomerInfoACharPublic", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBCharPublic( char* arg0, char* arg1) -{ - Operation operation("getCustomerInfoBCharPublic", 2); - operation.setParameter(0, (void*)arg0); - - operation.setParameter(1, (void*)arg1); - - - target->invoke(operation); - return (const char*)operation.getReturnValue(); - -} - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h deleted file mode 100644 index ea4c69e376..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h -#define CustomerInfoImpl_CustomerInfoService_Proxy_h - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformationCharPublic( char* p1, const char* customerID); - virtual const char* getCustomerInfoACharPublic( char* p1, const char* ); - virtual const char* getCustomerInfoBCharPublic( char* p1, char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index 70a1e8cbd1..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,88 +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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(Service* target) : ComponentServiceWrapper(target) -{ - impl = (CustomerInfoImpl*)getImplementation(); -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - if (operationName == "getCustomerInformationCharPublic") - { - char* p0 = ( char*)operation.getParameter(0); - const char* p1 = (const char*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInformationCharPublic(p0, p1)); - return; - } - if (operationName == "getCustomerInfoACharPublic") - { - char* p0 = ( char*)operation.getParameter(0); - const char* p1 = (const char*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoACharPublic(p0, p1)); - return; - } - if (operationName == "getCustomerInfoBCharPublic") - { - char* p0 = ( char*)operation.getParameter(0); - char* p1 = ( char*)operation.getParameter(1); - - operation.setReturnValue((void*) impl->getCustomerInfoBCharPublic(p0, p1)); - return; - } - - - throw ServiceRuntimeException("Invalid operation"); - -} - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h deleted file mode 100644 index 778a168220..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,36 +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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl_CustomerInfoService_Wrapper_h - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/core/ComponentServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::ComponentServiceWrapper -{ -public: - CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CustomerInfoImpl* impl; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/lib/readme.txt b/tags/cpp-stable-20060304/sca/tools/scagen/lib/readme.txt deleted file mode 100644 index d99c666c6a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/lib/readme.txt +++ /dev/null @@ -1,4 +0,0 @@ -Place a junit.jar file (not shipped as part of Tuscany) -in this directory to get the scagen build.xml Ant build -file to find it and Junit classes (without setting the -property "junit.jar.folder". diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/scagen.cmd b/tags/cpp-stable-20060304/sca/tools/scagen/scagen.cmd deleted file mode 100644 index b222ce2f9f..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/scagen.cmd +++ /dev/null @@ -1 +0,0 @@ -@java -jar %~d0%~p0scagen.jar %* diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/scagen.sh b/tags/cpp-stable-20060304/sca/tools/scagen/scagen.sh deleted file mode 100755 index 23d6dedc47..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/scagen.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -# 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. - -java -jar scagen.jar -dir $2 -output $4 \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/BodyPart.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/BodyPart.java deleted file mode 100644 index 65b1e2f6fa..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/BodyPart.java +++ /dev/null @@ -1,90 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ - -package org.apache.tuscany.sca.cpp.tools.common; - -/** - * A snippet of C or C++ source code. If this snippet ends with a return - * statement, this body part also contains the return value. - */ -public class BodyPart { - public final static int TRAILING = 0; - - public final static int RETURN = 1; - - public final static int CATCH = 2; - - private String codeFragment; - - private String returnValue = null; - - private Parameter caughtValue = null; - - private int type; - - BodyPart(String cf) { - codeFragment = cf; - type = TRAILING; - } - - BodyPart(String cf, String rv) { - codeFragment = cf; - if (null != rv && !Utils.isSpace(rv)) { - type = RETURN; - returnValue = rv; - } else - type = TRAILING; - } - - BodyPart(String cf, Parameter cv) { - codeFragment = cf; - caughtValue = cv; - type = CATCH; - } - - public String getCodeFragment() { - return codeFragment; - } - - public boolean isTrailing() { - return TRAILING == type; - } - - public boolean isReturn() { - return RETURN == type; - } - - public boolean isCatch() { - return CATCH == type; - } - - public String getReturnValue() { - if (returnValue != null) - return returnValue.trim(); - else - return null; - } - - public Parameter getCaughtValue() { - return caughtValue; - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.java deleted file mode 100644 index 6846bb4096..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.java +++ /dev/null @@ -1,119 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; - -/** - * The superclass of tools that parse C/C++ code. This CParsingTool provides - * some useful common methods. - */ -public class CParsingTool { - protected boolean failed = false; - - protected Headers headers = new Headers(); - - protected CParsingTool(String[] args) throws Exception { - String text = new String(); - for (int i = 0; i < args.length; i++) - text += args[i] + " "; - Utils.outputDebugString(text); - - Options.set(args); - String config = (String) Options.getOption("-config"); - if (null != config) - Configuration.initialise(config); - } - - /** - * Read in any include files before the main processing of the tool is done. - * This constructs the Headers. - */ - protected Headers preparseHeaders(String option) throws Exception { - Headers headers = new Headers(); - Object o = Options.getOption(option); - if (null != o) { - Utils.outputDebugString("Pre-parsing headers..."); - List includeList; - if (o instanceof List) - includeList = (List) o; - else { - includeList = new ArrayList(); - includeList.add(o); - } - Iterator it = includeList.iterator(); - while (it.hasNext()) { - File include = new File((String) it.next()); - if (!include.isDirectory()) - Utils.rude("Bad include directory " + include); - - DirectoryTree tree = new DirectoryTree(headers, new HashSet( - Arrays.asList(new Object[] { "hpp", "h" }))); - tree.walkTree(include, null, 0); - } - Utils.outputDebugString("Parsing files..."); - } - - return headers; - } - - /** - * Checks the source directory looks good. - */ - protected File checkFile(String option) throws Exception { - String name = (String) Options.getOption(option); - if (null == name) { - printUsage(); - System.exit(-1); - } - - File file = new File(name); - if (!file.isFile() && !file.isDirectory()) - Utils.rude("Bad file or directory " + file); - return file; - } - - /** - * Checks the target directory and creates it if it doesn't already exist. - */ - protected File maybeCreateDirectory(String option) throws Exception { - String name = (String) Options.getOption(option); - if (null == name) { - printUsage(); - System.exit(-1); - } - - File file = new File(name); - if (!file.exists() && !file.mkdir()) - Utils.screenMessage("Failed to create directory " + file); - return file; - } - - protected void printUsage() { - System.out.println("usage: ??"); - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Configuration.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Configuration.java deleted file mode 100644 index 1a900ff711..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Configuration.java +++ /dev/null @@ -1,126 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -/** - * Encapsulates the tool's configuration file - */ -public class Configuration { - private static Set files = new HashSet(); - - private static Set classes = new HashSet(); - - private static Set methods = new HashSet(); - - private static Set macros = new HashSet(); - - private static Set defines = new HashSet(); - - private static Set attributes = new HashSet(); - - private static Map others = new HashMap(); - - /** - * No one creates an instance of this class. - */ - private Configuration() { - } - - /** - * Reads in the configuration file - */ - public static void initialise(String filename) throws Exception { - File file = new File(filename); - FileReader fr = new FileReader(file); - BufferedReader br = new BufferedReader(fr); - String line = br.readLine(); - for (int lineno = 1; null != line; lineno++, line = br.readLine()) { - // Ignore lines starting with a # (comments) and blank lines - if (line.startsWith("#")) - continue; - boolean blank = true; - for (int i = 0; i < line.length() && blank; i++) - if (!Character.isWhitespace(line.charAt(i))) - blank = false; - if (blank) - continue; - - int equals = line.indexOf("="); - if (-1 == equals) - Utils.rude("Bad line in configuration file " + filename - + " lineno " + lineno); - String key = line.substring(0, equals).trim(); - String value = line.substring(equals + 1).trim(); - if ("excludefile".equals(key)) { - files.add(value); - } else if ("excludeclass".equals(key)) { - classes.add(value); - } else if ("excludemethod".equals(key)) { - methods.add(value); - } else if ("macro".equals(key)) { - macros.add(value); - } else if ("define".equals(key)) { - defines.add(value); - } else if ("attribute".equals(key)) { - attributes.add(value); - } else { - others.put(key, value); - } - } - } - - public static boolean fileExcluded(String s) { - return files.contains(s); - } - - public static boolean classExcluded(String s) { - return classes.contains(s); - } - - public static boolean methodExcluded(String className, String method) { - return methods.contains(className + "::" + method); - } - - public static boolean isMacro(String s) { - return macros.contains(s); - } - - public static boolean isDefine(String s) { - return defines.contains(s); - } - - public static boolean isAttribute(String s) { - return attributes.contains(s); - } - - public static String getConfigured(String key) { - return (String) others.get(key); - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.java deleted file mode 100644 index a4f1ca9a21..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.java +++ /dev/null @@ -1,100 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.File; -import java.util.Set; -import java.util.StringTokenizer; - -public class DirectoryTree { - private FileActor actor; - - private Set extensions; - - public DirectoryTree(FileActor actor, Set extensions) { - this.actor = actor; - this.extensions = extensions; - } - - /** - * Starts adding trace into the given file. If the given file is a directory - * then this the starting directory and all code beneath and in this - * directory will be given trace. - * - * @param source - - * either the starting directory or one file to add trace to. - */ - public void walkTree(File source, File target, int depth) throws Exception { - depth++; - boolean noTarget = (null == target); - - if (!source.canRead()) - Utils.rude("Cannot read from source directory " + source); - if (!noTarget && !target.canWrite()) - Utils.rude("Cannot write to target directory " + target); - - if (source.isDirectory()) { - File[] filesInDirectory = source.listFiles(); - for (int i = 0; i < filesInDirectory.length; i++) { - File file = filesInDirectory[i]; - String name = file.getName(); - int dot = name.lastIndexOf('.'); - String ext = null; - if (-1 != dot) - ext = name.substring(dot + 1); - - if (file.isDirectory()) { - File newTarget = null; - if (!noTarget) { - StringTokenizer st = new StringTokenizer( - file.getPath(), "\\/"); - String newdir = null; - while (st.hasMoreTokens()) - newdir = st.nextToken(); - String targetName = maybeAppendSeparator(target - .toString()); - newTarget = new File(targetName + newdir); - if (!newTarget.mkdir()) - Utils.rude("Failed to create target directory " - + newTarget); - } - - // recurse - walkTree(file, newTarget, depth); - } else if (file.isFile() - && (extensions == null || (!file.isHidden() && extensions - .contains(ext)))) { - // this is a file and we need to add trace into it ! - actor.actOnFile(file, target, depth); - } - } - } else { - actor.actOnFile(source, target, depth); - } - } - - public static String maybeAppendSeparator(String name) { - if (!name.endsWith("/") && !name.endsWith("\\")) - name += "/"; - return name; - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FileActor.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FileActor.java deleted file mode 100644 index fc1c8ec5c3..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FileActor.java +++ /dev/null @@ -1,32 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.File; - -/** - * DirectoryTree calls this interface to allow implementations of this interface - * to act on a file in the directory tree. - */ -public interface FileActor { - public void actOnFile(File source, File target, int depth) throws Exception; -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FilePart.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FilePart.java deleted file mode 100644 index e629751ea4..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FilePart.java +++ /dev/null @@ -1,75 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ - -package org.apache.tuscany.sca.cpp.tools.common; - -/** - * A piece of C++ source code - */ -public class FilePart { - public final static int UNKNOWN = 0; - - public final static int COMMENT = 1; - - public final static int METHOD = 2; - - public final static int FIELD = 3; - - public final static int BEGINSCOPE = 4; - - public final static int ENDSCOPE = 5; - - public final static int DIRECTIVE = 6; - - public final static int WHITESPACE = 7; - - public final static int MACRO = 8; - - public final static int CLASSATTRIBUTE = 9; - - public final static int ENUM = 10; - - public final static int PROTOTYPE = 11; - - public final static int TYPEDEF = 12; - - protected String cppsource; - - protected int type; - - FilePart(String s, int type) { - cppsource = s; - this.type = type; - } - - public int getType() { - return type; - } - - int length() { - return cppsource.length(); - } - - public String toString() { - return cppsource; - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Headers.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Headers.java deleted file mode 100644 index 8deba2401d..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Headers.java +++ /dev/null @@ -1,162 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -public class Headers implements FileActor { - private ArrayList instanceMethods = new ArrayList(); - - private ArrayList staticMethods = new ArrayList(); - - private ArrayList allMethods = new ArrayList(); - - private ArrayList classNames = new ArrayList(); - - private boolean failed = false; - - public void actOnFile(File header, File ignored, int depth) - throws Exception { - if (Configuration.fileExcluded(header.getName())) { - Utils.outputDebugString("excluding " + header + "..."); - return; - } - - Utils.outputDebugString("pre-parsing " + header + "..."); - FileReader fr = null; - try { - fr = new FileReader(header); - } catch (FileNotFoundException fnfe) { - throw fnfe; - } - BufferedReader inputFile = new BufferedReader(fr); - - try { - InputCppSourceCode code = new InputCppSourceCode(inputFile, header - .getName()); - Iterator it = code.getPartIterator(); - while (it.hasNext()) { - FilePart fp = (FilePart) (it.next()); - if (fp.getType() != FilePart.PROTOTYPE) - continue; - PrototypePart pp = (PrototypePart) fp; - String className = pp.className(); - if (null == className) - continue; - String trimClassName = className; - if (className.endsWith("::")) - trimClassName = className.substring(0, - className.length() - 2); - if (!classNames.contains(trimClassName)) - classNames.add(trimClassName); - - Signature sign = new Signature(fp.toString()); - sign.setClassName(className); - //Tuscany - sign.setScope(pp.getSignature().getScope()); - sign.setNamespace(pp.getSignature().getNamespace()); - - // "Clean" the signature by stripping off attributes, - // semicolons, etc - Signature cleaned = new Signature(sign.toStringWithoutAttrs()); - //Tuscany - problem - cleaned.setClassName(className); - cleaned.setScope(pp.getSignature().getScope()); - cleaned.setNamespace(pp.getSignature().getNamespace()); - //Tuscany - end of problem - - - if (-1 == sign.getAttributes().indexOf("static")) - instanceMethods.add(cleaned); - else - staticMethods.add(cleaned); - } - } catch (ParsingException pe) { - failed = true; - } - - inputFile.close(); - allMethods.addAll(staticMethods); - allMethods.addAll(instanceMethods); - } - - public boolean failed() { - return failed; - } - - public boolean isInstanceMethod(Signature sign) { - Iterator it = instanceMethods.iterator(); - while (it.hasNext()) { - Signature s = (Signature) it.next(); - if (s.equals(sign)) - return true; - } - return false; - } - - public boolean isStaticMethod(Signature sign) { - Iterator it = staticMethods.iterator(); - while (it.hasNext()) { - Signature s = (Signature) it.next(); - if (s.equals(sign)) - return true; - } - return false; - } - - public List getMethods(String method) { - ArrayList list = new ArrayList(); - if (null == method) - return list; - - Iterator it = allMethods.iterator(); - while (it.hasNext()) { - Signature s = (Signature) it.next(); - if (method.equals(s.getMethodName())) - list.add(s); - } - return list; - } - - /** - * Tuscany change - a method to get all the method signatures at once - */ - public List getAllMethods() { - ArrayList list = new ArrayList(); - Iterator it = allMethods.iterator(); - while (it.hasNext()) { - Signature s = (Signature) it.next(); - list.add(s); - } - return list; - } - - public boolean isClassName(String text) { - return classNames.contains(text); - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.java deleted file mode 100644 index ae6a646eaf..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.java +++ /dev/null @@ -1,412 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.BufferedReader; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.StringTokenizer; - -public class InputCppSourceCode { - - private ArrayList parts = new ArrayList(); - - private String name; - - public InputCppSourceCode(BufferedReader br, String name) throws Exception { - this.name = name; - - String s = null; - StringBuffer buff = new StringBuffer(); - for (int i = 1;; i++) { - try { - s = br.readLine(); - } catch (Exception e) { - System.err.println("Ignoring exception thrown parsing file " - + name + " line number " + i); - e.printStackTrace(); - break; - } - if (s == null) - break; - buff.append(s + "\n"); - } - String str = buff.toString(); - - // TODO: When checking for rest.startsWith("struct") should - // check the next letter after struct is not alphanumeric otherwise - // we'll get false matches on a function called structify() for - // instance. Also applies to enum, union, public, typedef, etc - - String rest, text = ""; - int scopedepth = 0; - String scope = "public"; - String currentClass = null; - String currentNamespace = null; - for (int idx = 0; idx < str.length(); /* No idx++ */ - ) { - rest = str.substring(idx); - if (Character.isWhitespace(rest.charAt(0))) { - int ridx = 0; - while (ridx < rest.length() - && Character.isWhitespace(rest.charAt(ridx))) - ridx++; - text = rest.substring(0, ridx); - FilePart fp = new FilePart(text, FilePart.WHITESPACE); - parts.add(fp); - idx += ridx; - - } else if (rest.startsWith("/*")) { - int ridx = rest.indexOf("*/"); // Don't use Utils here - text = str.substring(idx, idx + ridx + 2); - FilePart fp = new FilePart(text, FilePart.COMMENT); - parts.add(fp); - idx += text.length(); - - } else if (rest.startsWith("//")) { - text = str.substring(idx, idx + rest.indexOf("\n")); - FilePart fp = new FilePart(text, FilePart.COMMENT); - parts.add(fp); - idx += text.length(); - - } else if (rest.startsWith("#")) { - int ridx = rest.indexOf("\n"); - char c = rest.charAt(ridx - 1); - while (-1 != ridx && '\\' == c) { - String rest2 = rest.substring(ridx + 1); - ridx += rest2.indexOf("\n") + 1; - c = rest.charAt(ridx - 1); - } - text = str.substring(idx, idx + ridx); - FilePart fp = new FilePart(text, FilePart.DIRECTIVE); - parts.add(fp); - idx += text.length(); - - } else if (rest.startsWith("}")) { - if (scopedepth <= 0) //Tuscany need to increase scopedepth for - // namespaces? - Utils.rude("Braces do not match", name, lineNo(str, idx), - rest.substring(0, rest.indexOf("\n"))); - else - scopedepth--; - // TODO: better checking that this brace really ends the class - if (0 == scopedepth) - currentClass = null; - scope = "public"; - parts.add(new FilePart("}", FilePart.ENDSCOPE)); - idx++; - - } else if (rest.startsWith(";")) { - parts.add(new FilePart(";", FilePart.FIELD)); - idx++; - - } else if (!Character.isLetter(rest.charAt(0)) - && '~' != rest.charAt(0) && '_' != rest.charAt(0)) { - Utils.rude("Lines must start with a letter ", name, lineNo(str, - idx), rest.substring(0, rest.indexOf("\n"))); - - } else if (MacroPart.isAMacro(rest)) { - MacroPart mp = MacroPart.create(rest); - parts.add(mp); - idx += mp.length(); - - } else if (beginsScope(rest)) { - - //Tuscany a namespace comes in here - scopedepth++; - text = rest.substring(0, Utils.indexOf(rest, "{") + 1); - FilePart fp = new FilePart(text, FilePart.BEGINSCOPE); - parts.add(fp); - idx += text.length(); - if (Utils.startsWith(text, "class")) { - // TODO: cope with comments here - // TODO: split out classes into a ClassPart - StringTokenizer st = new StringTokenizer(text, - Utils.whitespace + ":"); - st.nextToken(); // step over "class" - while (st.hasMoreTokens()) { - String word = st.nextToken(); - if (Configuration.isAttribute(word)) - continue; - currentClass = word; - break; - } - } - - //Tuscany - if (Utils.startsWith(text, "namespace")) { - // TODO: cope with comments here - StringTokenizer st = new StringTokenizer(text, - Utils.whitespace + "{"); - st.nextToken(); // step over "namespace" - String word = ""; - while (st.hasMoreTokens()) { - word = st.nextToken(); - if (word.equals("{")) { - break; - } - - } - currentNamespace = word; - //We have not got to the class yet - //so will need ot deal with the namespace - //when we do - } - // Tuscany end - - } else if (isEnumOrUnion(rest)) { - int ridx = Utils.findMatching(rest, '{', '}') + 1; - String rest2 = rest.substring(ridx); - ridx = idx + ridx + Utils.indexOf(rest2, ';') + 1; - text = str.substring(idx, ridx); - FilePart fp = new FilePart(text, FilePart.ENUM); - parts.add(fp); - idx += text.length(); - - } else if (scopedepth > 0 - && (rest.startsWith("public") - || rest.startsWith("protected") || rest - .startsWith("private"))) { - int colon = rest.indexOf(":"); - if (-1 == colon) - Utils.rude("No colon found after public or private ", name, - lineNo(str, idx), rest.substring(0, rest - .indexOf("\n"))); - scope = str.substring(idx, idx + colon); - text = str.substring(idx, idx + colon + 1); - FilePart fp = new FilePart(text, FilePart.CLASSATTRIBUTE); - parts.add(fp); - idx += text.length(); - - } else if (Utils.startsWith(rest, "typedef")) { - int semicolon = Utils.indexOf(rest, ';'); - int brace = Utils.indexOf(rest, '{'); - - if (-1 == semicolon) - Utils.rude("No semicolon found after typedef", name, - lineNo(str, idx), rest.substring(0, rest - .indexOf("\n"))); - - if (-1 == brace || semicolon < brace) { - // Simple typedef - text = str.substring(idx, idx + semicolon + 1); - } else { - // Typedef of a struct, etc - int endbrace = Utils.findMatching(rest, '{', '}'); - String rest2 = rest.substring(endbrace); - semicolon = Utils.indexOf(rest2, ';'); - text = str.substring(idx, idx + endbrace + semicolon + 1); - } - FilePart fp = new FilePart(text, FilePart.TYPEDEF); - parts.add(fp); - idx += text.length(); - - } else { - if (isMethod(rest)) { - - int brace = Utils.indexOf(rest, '{'); - Signature signature = new Signature(str.substring(idx, idx - + brace)); - if (signature.failed()) - Utils.rude("Signature parsing failed", name, lineNo( - str, idx), signature.getOriginal()); - if (null != currentClass - && null == signature.getClassName()) - signature.setClassName(currentClass); - signature.setScope(scope); - signature.setNamespace(currentNamespace); - - String body = rest.substring(brace); - int endBrace = Utils.findMatching(body, '{', '}'); - body = body.substring(0, endBrace + 1); - int endIdx = idx + signature.originalLength() - + body.length(); - text = str.substring(idx, endIdx); - MethodPart mp = new MethodPart(text, signature, body); - parts.add(mp); - idx += text.length(); - - } else if (isField(rest)) { - int semicolon = Utils.indexOf(rest, ';'); - text = str.substring(idx, idx + semicolon + 1); - FilePart fp = new FilePart(text, FilePart.FIELD); - parts.add(fp); - idx += text.length(); - - } else if (isPrototype(rest)) { - int semicolon = Utils.indexOf(rest, ';'); - text = str.substring(idx, idx + semicolon + 1); - PrototypePart pp = new PrototypePart(text, currentClass, currentNamespace); - pp.setScope(scope); - parts.add(pp); - idx += text.length(); - - } else { - //TODO other file parts here - not sure if there are any - // others? - Utils.rude("Unrecognised file part", name, - lineNo(str, idx), rest.substring(0, rest - .indexOf("\n"))); - } // end if - } // end if - } // end for - } - - public Iterator getPartIterator() { - return parts.iterator(); - } - - private int lineNo(String s, int idx) { - int n = 0; - for (int i = 0; i < idx && i < s.length(); i++) - if ('\n' == s.charAt(i)) - n++; - return n; - } - - /** - * Find out whether we are defining a class, struct or extern "C" which may - * contain function implementations. These will have braces which begin a - * new scope. Ignore function prototypes that return a struct. struct mystr { - * int f1; }; struct mystr func(); struct mystr func() { struct mystr a; - * return a; } - */ - private static boolean beginsScope(String s) throws ParsingException { - if (isMethod(s)) - return false; - - int brace = Utils.indexOf(s, '{'); - int semicolon = Utils.indexOf(s, ';'); - - // Return false for class prototypes, but true for class definitions. - if (Utils.startsWith(s, "class")) { - if (-1 == brace) - return false; - if (-1 == semicolon) - return true; - return brace < semicolon; - } - - if (Utils.startsWith(s, "struct")) { - if (-1 == brace || -1 == semicolon) - return false; - return brace < semicolon; - } - - //Tuscany handle namespace for prototypes - //in a similar way to "class" - if (Utils.startsWith(s, "namespace")) { - if (-1 == brace || -1 == semicolon) - return false; - return brace < semicolon; - } - - return startsWithExternScope(s); - } - - /** - * There are 4 types of extern ... extern int field; extern int func(); - * extern "C" int func() { return 2; } extern "C" { int func() { return 2; } } - * This method should return true only for the last of these three examples - * since only the last one creates a new scope using braces. - */ - private static boolean startsWithExternScope(String s) - throws ParsingException { - if (!s.startsWith("extern")) - return false; - - int brace = Utils.indexOf(s, '{'); - int semicolon = Utils.indexOf(s, ';'); - int bracket = Utils.indexOf(s, '('); - - if (-1 == brace) - return false; - return (-1 == semicolon || brace < semicolon) - && (-1 == bracket || brace < bracket); - } - - /** - * Find out whether we are defining an enum or union which will contain - * braces. Ignore function prototypes that return an enum or union. enum - * colour { red, blue }; enum colour func(); enum colour func() { return - * colour.red; } - */ - private static boolean isEnumOrUnion(String s) throws ParsingException { - if ((!Utils.startsWith(s, "enum") && !Utils.startsWith(s, "union")) - || isMethod(s)) - return false; - - int brace = Utils.indexOf(s, '{'); - int semicolon = Utils.indexOf(s, ';'); - return -1 != brace && (-1 == semicolon || brace < semicolon); - } - - /** - * Rules to recognise fields and methods... - * - * Fields must contain a semicolon Methods may or may not contain a - * semicolon Prototypes must contain a semicolon Fields may or may not - * contain a brace (array initialisers do) Methods must contain a brace - * Prototypes must not contain a brace Fields may or may not contain a - * bracket (casts do) Methods must contain a bracket Prototypes must contain - * a bracket - * - * It's a method if it contains a bracket and then a brace before the first - * semicolon (if there is a semicolon). It's a prototype if it's not a - * method and it contains brackets before a semicolon. It's a field if it's - * not a method or a prototype and it contains a semicolon. If it's not a - * field, a method or a prototype and we haven't recognised it previously - * then it's an error. - */ - private static boolean isMethod(String s) throws ParsingException { - int semicolon = Utils.indexOf(s, ';'); - int brace = Utils.indexOf(s, '{'); - int bracket = Utils.indexOf(s, '('); - - return (-1 != bracket && -1 != brace && bracket < brace && (-1 == semicolon || brace < semicolon)); - } - - private static boolean isPrototype(String s) throws ParsingException { - int semicolon = Utils.indexOf(s, ';'); - int bracket = Utils.indexOf(s, '('); - return !isMethod(s) && -1 != semicolon && -1 != bracket - && bracket < semicolon; - } - - private static boolean isField(String s) throws ParsingException { - int semicolon = Utils.indexOf(s, ';'); - return !isMethod(s) && !isPrototype(s) && -1 != semicolon; - } - - public String getName() { - return name; - } - - public String toString() { - StringBuffer text = new StringBuffer(); - for (int i = 0; i < parts.size(); i++) { - text.append(((FilePart) (parts.get(i))).toString()); - } - return text.toString(); - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MacroPart.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MacroPart.java deleted file mode 100644 index 813de0ff56..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MacroPart.java +++ /dev/null @@ -1,82 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ - -/* - * A C or C++ macro as it is used in the source code - */ -package org.apache.tuscany.sca.cpp.tools.common; - -class MacroPart extends FilePart { - /** - * Factory method to create a MacroPart. - * - * @param s - * unparsed source code which may start with a define or macro. - */ - static MacroPart create(String s) { - String orig = getOriginalText(s); - if (null == orig) - return null; - return new MacroPart(orig); - } - - MacroPart(String s) { - super(s, FilePart.MACRO); - } - - /** - * @param s - * unparsed source code which may start with a define or macro. - * @return all of s up to the end of the define or macro. - */ - private static String getOriginalText(String s) { - String name = getName(s); - int len = name.length(); - if (null == name) - return null; - else if (Configuration.isDefine(name)) { - return s.substring(0, len); - } else if (Configuration.isMacro(name)) { - String rest = s.substring(len); - len += Utils.findMatching(rest, '(', ')'); - return s.substring(0, len + 1); - } else - return null; - } - - static boolean isAMacro(String s) { - if (s == null || 0 == s.length()) - return false; - String name = getName(s); - return Configuration.isMacro(name) || Configuration.isDefine(name); - } - - private static String getName(String s) { - int i; - for (i = 0; i < s.length(); i++) - if (!Character.isLetterOrDigit(s.charAt(i)) && '_' != s.charAt(i)) - break; - if (s.length() == i) - return null; - return s.substring(0, i); - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MethodPart.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MethodPart.java deleted file mode 100644 index facebe84ef..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MethodPart.java +++ /dev/null @@ -1,128 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.util.ArrayList; - -/** - * A C or C++ method from a piece of source code. The method has a signature and - * a body (the bit between the braces). - */ -public class MethodPart extends FilePart { - private Signature signature; - - private String body; - - MethodPart(String s, Signature signature, String body) { - super(s, METHOD); - this.signature = signature; - this.body = body; - } - - public Signature getSignature() { - return signature; - } - - public String getOriginalSignature() { - return signature.getOriginal(); - } - - /** - * Returns the method body as code snippets, each ending with a place where - * a trace statement belongs. The end of the first code snippet is where the - * entry trace should go. The end of every other snippet is a return from - * the method. - */ - public BodyPart[] getBodyParts() throws ParsingException { - String b = body; // Don't alter field member - if (b.startsWith("{")) - b = b.substring(1); - - // Add in trace exit at all the return statements in the method. - ArrayList al = new ArrayList(); - int idxR = Utils.indexOf(b, "return"); - int idxC = Utils.indexOf(b, "catch"); - while (-1 != idxR || -1 != idxC) { - if (-1 == idxC || (-1 != idxR && idxR < idxC)) { - String frag = b.substring(0, idxR); - String rest = b.substring(idxR + "return".length()); - - int semicolon = Utils.indexOf(rest, ';'); - if (-1 == semicolon) - Utils.rude("Missing semicolon in " + signature); - String retVal = rest.substring(0, semicolon); - BodyPart bp = new BodyPart(frag, retVal); - al.add(bp); - b = b.substring(idxR + "return".length() + retVal.length() + 1); - } else { - String frag = b.substring(0, idxC); - String rest = b.substring(idxC); - - int brace = Utils.indexOf(rest, "{"); - if (-1 == brace) - Utils.rude("Missing open brace in " + signature); - Signature signature = new Signature(rest.substring(0, brace)); - frag = frag + rest.substring(0, brace + 1); - BodyPart bp = new BodyPart(frag, signature.getParameters()[0]); - al.add(bp); - b = rest.substring(brace + 1); - } - idxR = Utils.indexOf(b, "return"); - idxC = Utils.indexOf(b, "catch"); - } - - // Add in trace exit before the last } if there are no returns in - // the method or there is code after the last return and the method - // returns void. - // int f1(){try{return f2();}catch(Exception& e){throw;}} - // has code after the last return but having a traceexit before the - // last brace wouldn't compile since the method returns an int. We - // cope with this by only adding in a traceexit before the last brace - // if the method returns void. That may mean we add in an unreachable - // traceexit which may give a compiler warning, but that should be - // benign. - // - // TODO: Not quite good enough for - // void f(int a){if(a){printf("a");}else{printf("!a");return;}} - // as a trace exit is needed before the last } in case a>0 but - // void f(int a){if(a){printf("a");return;}else{printf("!a");return;}} - // would give compiler warnings about unreachable code if a trace - // exit is added before the last brace. This could be tricky to fix. - if ((0 == al.size() || -1 != Utils.indexOf(b, ';')) - && null == signature.getReturnType().getType()) { - - int last = b.lastIndexOf('}'); - if (-1 == last) - Utils.rude("Missing end brace in " + signature); - String b2 = b.substring(0, last); - al.add(new BodyPart(b2)); - b = b.substring(last); - } - - // The final body part is the last } - al.add(new BodyPart(b)); - - BodyPart[] bps = new BodyPart[al.size()]; - System.arraycopy(al.toArray(), 0, bps, 0, al.size()); - return bps; - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Options.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Options.java deleted file mode 100644 index dc9d941849..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Options.java +++ /dev/null @@ -1,159 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - * - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -/** - * Command line options passed to a tool's main program. All command line - * options should begin with a dash "-". Some command line options take a value - * which is the next parameter after the option. Others do not. - */ -public class Options { - static HashMap pairs = new HashMap(); - - static List values = new ArrayList(); - - /** - * No one constructs this class. - */ - private Options() { - } - - public static void reset() { - pairs = new HashMap(); - values = new ArrayList(); - } - - /** - * Initialises the options based on the args passed to main - */ - public static void set(String args[]) { - for (int i = 0; i < args.length; i++) { - if (args[i].startsWith("-")) { - if ((i + 1 <= args.length - 1) && // next one is testable - !args[i + 1].startsWith("-") // and it starts with a "-" - ) { - String key = args[i]; - Object pairValue = pairs.get(key); - if (null == pairValue) { - pairs.put(args[i], args[i + 1]); - } else if (pairValue instanceof String) { - List l = new ArrayList(); - l.add(pairValue); - l.add(args[i + 1]); - pairs.put(key, l); - } else if (pairValue instanceof List) { - ((List) pairValue).add(args[i + 1]); - } - i++; // Step over value for this key - } else - values.add(args[i]); - } - } - } - - public static Object getOption(String key) { - return pairs.get(key); - } - - static boolean isOptionSet(String key) { - return values.contains(key) || null!=pairs.get(key); - } - - /** - * This option will cause scagen to print out messages - * about the artefacts it is processing - * @return - */ - public static boolean verbose() { - return isOptionSet("-verbose"); - } - - /** - * This option will cause scagen to print out some - * basic internal log type messages - * @return - */ - public static boolean debug() { - return isOptionSet("-debug"); - } - - /** - * This option will cause scagen to print out some - * text that can be used or pasted into a command - * file to copy all the relevant artefacts from - * where they are found or generated to a specific - * deployment location - * - * @return - */ - public static boolean deploy() { - return isOptionSet("-deploy"); - } - - /** - * This option will prevent scagen from actually writing out - * the generated files. It is useful if used in conjunction - * with the "-deploy" option. - * @return - */ - public static boolean noGenerate() { - return isOptionSet("-nogenerate"); - } - - /** - * This option is useful only when used in conjunction with - * the "-deploy" option. It changes the output to be more like the - * source code of a command script to copy the files to a - * specific place. - * @return - */ - public static boolean outputCommand() { - return isOptionSet("-outputCommand"); - } - - /** - * This option is useful only when used in conjunction with - * the "-deploy" option. It changes the output to be a simple - * list of artefacts. It has no effect if the "-outputCommand" - * option is set. - * - * @return - */ - public static boolean list() { - return isOptionSet("-list"); - } - - /** - * This option is maintained for compatibility with the - * original package source. It is not used by new scagen code. - * - * @return - */ - public static boolean quiet() { - return isOptionSet("-quiet"); - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Parameter.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Parameter.java deleted file mode 100644 index 3f4b3e971e..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Parameter.java +++ /dev/null @@ -1,211 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - * - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * A parameter from a method signature. The parameter is the datatype plus its - * name but not its value. - */ -public class Parameter { - private ArrayList type = new ArrayList(); - - private String name = null; - - private boolean failed = false; - - /** - * Defaults to a parameter in a parameter list so it HAS a parameter name in - * it - */ - Parameter(List parts) { - this(parts, false); - } - - /** - * A parameter which is a return type does not have a parameter name. - * Parameters in a parameter list do have parameter names embedded in them - */ - Parameter(List parts, boolean isRetType) { - if (parts == null || parts.size() == 0) - return; - - // Tuscany: The original code below from apache axis blocks int - // getCustomer(long) - // i.e. no spaces in parameter list. - // We do not need to deal with "..." as parameters to SCS methods. - // - // if (!isRetType && parts.size() == 1) { - // if ("...".equals(parts.get(0))) { - // type.add("..."); - // name = ""; - // } else if (!"void".equals(parts.get(0))) - // failed = true; // Seems like bad C++ code here - // return; - // } - - if (isRetType) { - Iterator it = parts.iterator(); - while (it.hasNext()) - type.add(it.next()); - - // Some methods return have void on their signature and others - // have nothing. So to make them both the same, if a method - // doesn't return anything make type null. - // TODO: This assumption is wrong - methods that return nothing - // default to returning an int! - if (1 == type.size() && "void".equals(type.get(0))) - type = new ArrayList(); - - } else { - // Cope with array subscripts [] after the name - int arrIdx = -1; - for (int i = 0; i < parts.size(); i++) { - String tok = (String) parts.get(i); - if ("[".equals(tok)) { - arrIdx = i; - break; - } - } - - // Find the name - int nameIdx = parts.size() - 1; - if (-1 != arrIdx) - nameIdx = arrIdx - 1; - - // Even in real method declarations, parameters may not have a name - boolean noName = false; - name = (String) parts.get(nameIdx); - // Tuscany: The original code below from apache axis - // was updated to work with signatures of - // the form fn(int) a non-named, no-space, parameter list. - // if (Utils.cPrimitives.contains(name) || - // Utils.cTypeQualifiers.contains(name) ) - // - if (Utils.cPrimitives.contains(name) - || Utils.cTypeQualifiers.contains(name) - || parts.size() == 1) - noName = true; - - if (noName) { - name = null; - for (int i = 0; i < parts.size(); i++) - type.add(parts.get(i)); - } else { - // Construct the type - for (int i = 0; i < nameIdx; i++) - type.add(parts.get(i)); - - if (-1 != arrIdx) - for (int i = arrIdx; i < parts.size(); i++) - type.add(parts.get(i)); - } - } - } - - public boolean failed() { - return failed; - } - - public String getType() { - String s = null; - Iterator it = type.iterator(); - while (it.hasNext()) { - String next = (String) it.next(); - if (null == s) - s = next; - else if ("*".equals(next) || "&".equals(next)) - s += next; - else - s += " " + next; - } - return s; - } - - public String getTypeWithoutConst() { - String s = null; - Iterator it = type.iterator(); - while (it.hasNext()) { - String next = (String) it.next(); - if ("const".equals(next)) - continue; - else if (null == s) - s = next; - else if ("*".equals(next) || "&".equals(next)) - s += next; - else - s += " " + next; - } - return s; - } - - public String getName() { - return name; - } - - public boolean isVoid() { - return 0 == type.size(); - } - - public boolean isDotDotDot() { - return 1 == type.size() && "...".equals(type.get(0)); - } - - /** - * For two parameters to match their types must match or both be null, but - * the parameters names don't have to match. Just because a parameter is - * called something different in a header file as in the the source file - * doesn't mean it's a different parameter. - */ - public boolean equals(Object o) { - if (null == o || !(o instanceof Parameter)) - return false; - Parameter that = (Parameter) o; - if (type.size() != that.type.size()) - return false; - for (int i = 0; i < type.size(); i++) { - String s1 = (String) type.get(i); - String s2 = (String) that.type.get(i); - if (!Utils.safeEquals(s1, s2)) - return false; - } - return true; - } - - public String toString() { - if (0 == type.size()) - return "void"; - if (null == name) - return getType(); - return getType() + " " + name; - } - - public Iterator iterator() { - if (null == type) - return null; - return type.iterator(); - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/ParsingException.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/ParsingException.java deleted file mode 100644 index 3f140c0f9f..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/ParsingException.java +++ /dev/null @@ -1,42 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - * - */ -package org.apache.tuscany.sca.cpp.tools.common; - -public class ParsingException extends Exception { - - public ParsingException() { - super(); - } - - public ParsingException(String message) { - super(message); - } - - public ParsingException(String message, Throwable cause) { - super(message, cause); - } - - public ParsingException(Throwable cause) { - super(cause); - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.java deleted file mode 100644 index 64ed2e9542..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.java +++ /dev/null @@ -1,51 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - * - */ -package org.apache.tuscany.sca.cpp.tools.common; - -/** - * A function prototype in an include file and possibly in a class definition. - */ -public class PrototypePart extends FilePart { - private Signature signature; - - public PrototypePart(String s, String className, String namespace) { - super(s, PROTOTYPE); - signature = new Signature(s); - if (null != className) - signature.setClassName(className); - if (null != namespace && namespace.length()>0) - signature.setNamespace(namespace); - } - - String className() { - return signature.getClassName(); - } - - public Signature getSignature() { - return signature; - } - - public void setScope(String scope) { - signature.setScope(scope); - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Signature.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Signature.java deleted file mode 100644 index 3650839cab..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Signature.java +++ /dev/null @@ -1,501 +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. - */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - * - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -/** - * A C or C++ method signature with the ability to parse it. TODO: properly - * support variable length argument lists using "..." TODO: passing or returning - * function pointers (hopefully not needed) TODO: Cope with ~ Classname() - */ -public class Signature { - private String originalText; - - private String attributes; - - private String className = null; - - private String namespace = null; - - private String methodName = null; - - private Parameter returnType = null; - - private Parameter[] params = null; - - private String trailingAttributes; - - private String scope = "public"; - - private boolean failed = false; - - private boolean traceable = true; - - private final static Set knownAttrs = new HashSet(Arrays - .asList(new Object[] { "public", "private", "extern", "\"C\"", - "virtual", "static", "inline" })); - - private final static Set specialOperators = new HashSet( - Arrays.asList(new Object[] { "(", ")", "*", ",", "&", "]", "[", - "=", "~" })); - - /** - * Takes an unparsed signature string and parses it. - * - * TODO: Should optionally pass in the className here in case it's an inline - * method implementation inside the class{}. Just so the className comes out - * in the trace. - */ - Signature(String s) { - originalText = s; - - try { - List tokens = tokenise(s); - - ArrayList alAttrs = new ArrayList(); - ArrayList alName = new ArrayList(); - ArrayList alParms = new ArrayList(); - ArrayList alTrailAttrs = new ArrayList(); - ArrayList alInits = new ArrayList(); - if (!splitUp(tokens, alAttrs, alName, alParms, alTrailAttrs, - alInits)) { - failed = true; - return; - } - - parseAttributes(alAttrs); - parseNameAndRetType(alName); - parseParameters(alParms); - parseTrailingAttributes(alTrailAttrs); - - // Ignore any tokens after the ) since these are (hopefully) - // constructor initialisers - - traceable = !Configuration.methodExcluded(className, methodName); - } catch (NullPointerException npe) { - failed = true; - traceable = false; - } - } - - /** - * Parse the signature into tokens. This removes whitespace and comments and - * separates out "*", ",", "(", ")", "&", "[" and "]". - */ - private static List tokenise(String s) { - ArrayList tokens = new ArrayList(); - String tok = null; - boolean space = true; - for (int i = 0; i < s.length(); i++) { - char c = s.charAt(i); - if (Character.isWhitespace(c)) { - space = true; - continue; - } - if (space) { - if (tok != null) - tokens.add(tok); - tok = "" + c; - } else - tok += c; - space = false; - - if (tok.endsWith("/*")) { - String sub = s.substring(i); - int endcomm = sub.indexOf("*/"); - if (endcomm == -1) - break; - i += endcomm + 1; - if (tok.equals("/*")) - tok = ""; - else - tok = tok.substring(0, tok.length() - 2); - continue; - } - - if (tok.endsWith("//")) { - String sub = s.substring(i); - int endcomm = sub.indexOf("\n"); - if (endcomm == -1) - break; - i += endcomm; - if (tok.equals("//")) - tok = ""; - else - tok = tok.substring(0, tok.length() - 1); - continue; - } - - if (tok.endsWith("::")) - space = true; - - String sc = "" + c; - if (specialOperators.contains(sc)) { - if (!tok.equals(sc)) { - tokens.add(tok.substring(0, tok.length() - 1)); - tok = sc; - } - space = true; - } - } - tokens.add(tok); - return tokens; - } - - /** - * Split up a tokenised method signature into a list of attributes, a list - * of name and return type tokens, a list of parameter tokens and a list of - * initialiser tokens. - */ - private static boolean splitUp(List tokens, List attrs, List nameAndRet, - List parms, List trailAttrs, List inits) { - - // nameStart points to the start of the return type if there is one - // else the start of the method name - int nameStart; - for (nameStart = 0; nameStart < tokens.size(); nameStart++) { - String tok = (String) (tokens.get(nameStart)); - if (!knownAttrs.contains(tok) && !Configuration.isAttribute(tok)) - break; - } - if (nameStart == tokens.size()) - return false; - - // initStart points to the initialisers, or thrown exceptions after - // the parameter list. throw is a keyword so we can safely search for - // it. - int initStart = tokens.size(); - for (int i = nameStart; i < tokens.size(); i++) { - String tok = (String) tokens.get(i); - if ((tok.startsWith(":") && !tok.startsWith("::")) - || "throw".equals(tok)) - initStart = i; - } - - int parmEnd; - for (parmEnd = initStart - 1; parmEnd > nameStart; parmEnd--) - if (")".equals(tokens.get(parmEnd))) - break; - if (parmEnd == nameStart) - return false; - - int parmStart = parmEnd; - for (parmStart = parmEnd; parmStart > nameStart; parmStart--) - if ("(".equals(tokens.get(parmStart))) - break; - - for (int i = 0; i < tokens.size(); i++) { - Object tok = tokens.get(i); - if (i < nameStart || Configuration.isAttribute((String) tok)) - attrs.add(tok); - else if (i < parmStart) - nameAndRet.add(tok); - else if (i <= parmEnd) - parms.add(tok); - else if (i < initStart) - trailAttrs.add(tok); - else - inits.add(tok); - } - return true; - } - - private void parseAttributes(List list) { - attributes = new String(); - Iterator it = list.iterator(); - while (it.hasNext()) { - if (attributes.length() > 0) - attributes += " "; - String next = (String) it.next(); - - //Tuscancy - //the scope is not present in the attributes - //but is set later in the InputCppSource contructor - if ("public".equals(next) || "protected".equals(next) - || "private".equals(next)) - scope = next; - attributes += next; - } - } - - private void parseNameAndRetType(List list) { - int size = list.size(); - int idx; - // "operator" is a key word so if it's present we know we're - // dealing with operator overloading. The operator that's been - // overloaded might have been split up into multiple tokens. - for (idx = 0; idx < size; idx++) - if ("operator".equals(list.get(idx))) - break; - - if (idx < size) { - methodName = ""; - for (int i = idx; i < size; i++) - methodName += (String) list.get(i); - } else { // No operator overloading - methodName = "" + list.get(size - 1); - idx = size - 1; - } - - // If it's a destructor, the "~" will be split out into a separate - // token, so add it onto the methodName here. - if (idx > 0 && "~".equals(list.get(idx - 1))) { - methodName = "~" + methodName; - idx--; - } - - // The class name comes before the method name - while (idx > 0 && ((String) list.get(idx - 1)).endsWith("::")) { - if (null == className) - className = (String) list.get(idx - 1); - else - className = (String) list.get(idx - 1) + className; - idx--; - } - - // Whatever's left before the classname/methodname must be the - // return type - ArrayList retParm = new ArrayList(); - for (int i = 0; i < idx; i++) - retParm.add(list.get(i)); - - returnType = new Parameter(retParm, true); - } - - /** - * Constructs the parameter list - */ - private void parseParameters(List list) { - ArrayList alParams = new ArrayList(); - Iterator it = list.iterator(); - String token = (String) it.next(); // step over the ( - while (it.hasNext() && !")".equals(token)) { - token = (String) it.next(); - - int template = 0; // Depth of template scope - boolean foundEquals = false; - // Ignore default value for an optional parameter - ArrayList parm = new ArrayList(); - while (!token.equals(")") && (!token.equals(",") || template > 0)) { - if (token.equals("=")) - foundEquals = true; - if (!foundEquals) - parm.add(token); - if (contains(token, "<")) - template++; - if (contains(token, ">")) - template--; - token = (String) it.next(); - } - - // No parameters so break out - if (token.equals(")") && 0 == parm.size()) - break; - - Parameter p = new Parameter(parm); - if (p.failed()) { - failed = true; - return; - } - - // Copes with void func(void) - if (!p.isVoid()) - alParams.add(p); - } - - int size = alParams.size(); - if (size > 0) { - params = new Parameter[size]; - System.arraycopy(alParams.toArray(), 0, params, 0, size); - } - } - - private void parseTrailingAttributes(List list) { - trailingAttributes = new String(); - Iterator it = list.iterator(); - while (it.hasNext()) { - if (trailingAttributes.length() > 0) - trailingAttributes += " "; - trailingAttributes += (String) it.next(); - } - } - - public String getOriginal() { - return originalText; - } - - public int originalLength() { - return originalText.length(); - } - - public boolean failed() { - return failed; - } - - public String getAttributes() { - return attributes; - } - - public String getClassName() { - return className; - } - - /** - * @param namespace The namespace to set. - */ - public void setNamespace(String namespace) { - this.namespace = namespace; - } - - /** - * @return Returns the namespace. - */ - public String getNamespace() { - return namespace; - } - - public String getTrimClassName() { - return trimClassName(className); - } - - public String getMethodName() { - return methodName; - } - - public Parameter getReturnType() { - return returnType; - } - - public Parameter[] getParameters() { - return params; - } - - public boolean isConstructor() { - return className != null && methodName != null - && trimClassName(className).equals(methodName); - } - - public boolean isDestructor() { - return className != null && methodName != null - && methodName.startsWith("~") - && methodName.endsWith(trimClassName(className)); - } - - private static String trimClassName(String name) { - if (name.endsWith("::")) - return name.substring(0, name.length() - 2); - return name; - } - - void setClassName(String className) { - if (null == className) - return; - if (!className.endsWith("::")) - className += "::"; - this.className = className; - } - - public String getScope() { - return scope; - } - - /** - * Sets the scope, but only if the scope is not set by an explicit attribute - * in the signature. - */ - public void setScope(String scope) { - if (-1 == attributes.indexOf(this.scope)) - this.scope = scope; - } - - /** - * Should this method be traced? - */ - public boolean traceable() { - return traceable; - } - - private static boolean contains(String src, String tgt) { - if (src == null || tgt == null) - return false; - if (-1 == src.indexOf(tgt)) - return false; - return true; - } - - public boolean equals(Object obj) { - if (null == obj || !(obj instanceof Signature)) - return false; - Signature that = (Signature) obj; - if (!Utils.safeEquals(className, that.className)) - return false; - if (!Utils.safeEquals(methodName, that.methodName)) - return false; - if (!Utils.safeEquals(returnType, that.returnType)) - return false; - if (null == params && null == that.params) - return true; - if (null != params && null == that.params) - return false; - if (null == params && null != that.params) - return false; - if (params.length != that.params.length) - return false; - for (int i = 0; i < params.length; i++) - if (!Utils.safeEquals(params[i], that.params[i])) - return false; - return true; - } - - public String toStringWithoutAttrs() { - String s = new String(); - if (returnType != null) - s += returnType + " "; - if (className != null) - s += className; - s += methodName + "("; - for (int i = 0; params != null && i < params.length; i++) { - if (i > 0) - s += ", "; - s += params[i].toString(); - } - s += ")"; - return s; - } - - public String toString() { - String s = attributes; - if (attributes.length() > 0) - s += " "; - s += toStringWithoutAttrs(); - if (trailingAttributes.length() > 0) - s += " " + trailingAttributes; - return s; - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Utils.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Utils.java deleted file mode 100644 index 5bd80fc37a..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Utils.java +++ /dev/null @@ -1,543 +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. -*/ - -/* -* Branched from the original class that was also contributed to the -* org.apache.axis.tools.common package. -* -*/ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.File; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -//Apache Common Logging -//import org.apache.commons.logging.Log; -//import org.apache.commons.logging.LogFactory; - -/** -* Static utility methods. Some of these methods are similar to the methods on -* java.lang.String except they are aware of C/C++ comments and string literals. -* -* TODO: Many of these methods would perform better using StringBuffer not -* String -*/ -public final class Utils { - // All the C primitive data types - public final static Set cPrimitives = new HashSet(Arrays - .asList(new Object[] { "void", "byte", "char", "unsigned", - "signed", "int", "short", "long", "double", "float", - "struct", "class", "enum", "union" })); - - // All the qualifiers that can affect C types - public final static Set cTypeQualifiers = new HashSet( - Arrays.asList(new Object[] { "(", ")", "*", ",", "&", "]", "[", - "const" })); - - public final static String whitespace = " \t\r\n"; - - //private static Log log = LogFactory.getLog(CLASS.class); - - /** - * Never instantiate this class - */ - private Utils() { - } - - /** - * Is this string all whitespace? - */ - static boolean isSpace(String s) { - for (int i = 0; i < s.length(); i++) - if (!Character.isWhitespace(s.charAt(i))) - return false; - return true; - } - - // TODO look for other trailing chars like { (because of class{) - static boolean startsWith(String source, String target) { - if (source == null || target == null) - return false; - if (!source.startsWith(target)) - return false; - if (source.length() == target.length()) - return true; - if (Character.isWhitespace(source.charAt(target.length()))) - return true; - return false; - } - - /** - * Performs a C-aware version of String.indexOf(char) in that it skips - * characters in string literals and comments. - */ - static int indexOf(String s, char c) throws ParsingException { - if ('"' == c) - rude("Utils.indexOf cannot be passed quotes"); - - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == c) - return i; - - i = skip(s.substring(i), i); - if (-1 == i) - return -1; - } - return -1; - } - - /** - * Performs a C-aware version of String.indexOf(String) in that it skips - * characters in string literals and comments and makes sure that the target - * string is not embedded in a longer word. - */ - static int indexOf(String s, String t) { - char t0 = t.charAt(0); - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == t0 - && s.substring(i).startsWith(t) - && (0 == i || !Character.isLetterOrDigit(s.charAt(i - 1))) - && (s.length() == (i + t.length()) || !Character - .isLetterOrDigit(s.charAt(i + t.length())))) - return i; - - i = skip(s.substring(i), i); - if (-1 == i) - return -1; - } - return -1; - } - - /** - * Matches braces or quotes and is C-aware. It skips characters in string - * literals and comments. - */ - static int findMatching(String s, char c1, char c2) { - int depth = 0; - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == c1) - depth++; - else if (s.charAt(i) == c2) { - depth--; - if (depth == 0) - return i; - } else { - i = skip(s.substring(i), i); - if (-1 == i) - return -1; - } - } - return -1; - } - - /** - * Failed to parse the source code for some reason. This method prints out a - * suitably rude message, and then what? I haven't quite decided yet. - * - * TODO: Do something sensible here like throw an Exception which will give - * up on this file completely and tidy up the output file. It may be just - * too dangerous to try to carry on. But we need to fail in such a way that - * the build system knows that we've failed for this file and can build this - * file without trace. - */ - public static void rude(String reason, String filename, int lineno, - String codefragment) throws ParsingException { - - String text = "Bad C++ code!! "; - if (reason != null) - text += reason; - if (filename != null) - text += " " + filename + " lineno=" + lineno; - if (codefragment != null) - text += " <" + codefragment + ">"; - System.err.println(text); - throw new ParsingException(); - } - - /** - * This method reports an error level problem - * - * @param reason - * why we have an error level problem - */ - public static void rude(String reason) throws ParsingException { - // Apache commons logging - // log.error(Object line, null); - // or for now.... - rude(reason, null, 0, null); - } - - /** - * This method reports an error level problem - * - * @param reason - * why we have an error level problem - */ - public static void screenMessage(String msg) { - // Apache commons logging - // log.error(Object line, null); - // or for now.... - System.out.println(msg); - } - - /** - * Escapes special characters like " so that they can be output in a C - * string literal. Also removes newlines, since C string literals can't be - * split over lines. - */ - String pretty(String s) { - StringBuffer sb = new StringBuffer(s); - for (int i = 0; i < sb.length(); i++) - switch (sb.charAt(i)) { - case '"': - sb = sb.insert(i, '\\'); - i++; - break; - case '\n': - sb = sb.deleteCharAt(i); - i--; - break; - } - return sb.toString(); - } - - private static boolean startsWithComment(String s) { - if (null == s || s.length() < 2) - return false; - if (s.startsWith("//")) - return true; - if (s.startsWith("/*")) - return true; - return false; - } - - private static int endOfComment(String s) { - int idx; - if (s.startsWith("//")) - idx = s.indexOf("\n"); - else { - idx = s.indexOf("*/"); - if (-1 != idx) - idx++; // Step over */ - } - return idx; - } - - private static boolean startsWithStringLiteral(String s) { - if (null == s || s.length() < 1) - return false; - if (s.startsWith("\"") || s.startsWith("'")) - return true; - return false; - } - - private static int endOfStringLiteral(String s) { - boolean escape = false; - char c0 = s.charAt(0); - for (int i = 1; i < s.length(); i++) { - if (!escape && s.charAt(i) == c0) - return i; - - // \" or \' does not end the literal - if ('\\' == s.charAt(i)) - // Escaping a \ should switch escape off so \\' does end - // the literal - escape = !escape; - else - escape = false; - } - return -1; - } - - /** - * If the String s starts with a string literal or a comment, return i plus - * the index of the end of the literal or comment. String literals are - * enclosed in " or ' and comments start with /* or //. - */ - private static int skip(String s, int i) { - int j = 0; - if (startsWithStringLiteral(s)) { - j = endOfStringLiteral(s); - if (-1 == j) - return -1; - } else if (startsWithComment(s)) { - j = endOfComment(s); - if (-1 == j) - return -1; - } - return i + j; - } - - /** - * A better method than .equals() because it doesn't NullPointerException - * when one of the parameters is null. - */ - public static boolean safeEquals(Object o1, Object o2) { - if (null == o1 && null == o2) - return true; - if (null == o1 && null != o2) - return false; - if (null != o1 && null == o2) - return false; - return o1.equals(o2); - } - - public static void outputDebugString(String line) { - if (!Options.quiet()) { - if (Options.debug()) - // Apache commons logging - // log.debug(Object line, null); - // or for now - System.out.println(line); - } - } - - /** - * This static method allows different parts of the code to inform about - * significant events. Code interested in specific types of event can - * register a listener against that type (not written yet) - * - * @param eventType - * An int type enum indicating the type of event. - * @param message - * A message that can be output to the user. - */ - public static final int EVENT_TYPE_XML_ITEM_PARSED = 1; - - public static final int EVENT_TYPE_FILE_PARSED = 2; - - public static final int EVENT_TYPE_FILE_CREATE = 3; - - public static final int VERBOSE_LIMIT = 1024; - - public static final int DEPLOYMENT_ARTEFACT = VERBOSE_LIMIT; - - public static final int DEPLOYMENT_ARTEFACT_ENCOUNTERED = DEPLOYMENT_ARTEFACT + 1; - - public static final int DEPLOYMENT_ARTEFACT_GENERATED = DEPLOYMENT_ARTEFACT + 2; - - public static final int DEPLOYMENT_INPUT_DIRECTORY = DEPLOYMENT_ARTEFACT + 3; - - public static final int DEPLOYMENT_OUTPUT_DIRECTORY = DEPLOYMENT_ARTEFACT + 4; - - private static boolean reportArtefacts = false; - - /** - * An easily callable method to allow tracking/reposting of events in scagen - * and other tools. - * - * @param eventType - * used for classifying event - * @param message - * a user readable message - */ - public static void postEvent(int eventType, String message) { - if (Options.verbose() && eventType < VERBOSE_LIMIT) { - screenMessage(message); - } - - if ((eventType & DEPLOYMENT_ARTEFACT) > 0) { - reportArtefact(message, eventType); - } - - } - - /** - * @param message - * The user message - * @param eventType - * The type of event (input or output). This is used to determine - * if the path name of the file starts with the MODULE_ROOT - * directory or the given output directory as the one of these - * prefixes is removed from the path name in order to give the - * new (destination) path relative to the new module root - * - * - */ - - static String scagenInputDir = "MODULE_ROOT"; - - static String scagenOutputDir = "SCAGEN_OUTPUT"; - - static String newModuleRoot = "NEW_MODULE_ROOT"; - - static String generatedDirName = "$sourceDir1"; - - private static void reportArtefact(String message, int eventType) { - - if (Utils.isReportArtefacts()) { - - // Changing the value of the variable below will alter the output of - // the - // deploy assist strings: - // true will result in a "copy source NEW_MODULE_ROOT\dest" output - // and - // false will result in a "inputDir c:\fred" - // "outputDir c:\bob" - // "input c:\fred\sca.module" - // "output c:\bob\proxy.h" type output - String command = null; - - try { - newModuleRoot = (String) Options.getOption("-deploy"); - command = (String) Options.getOption("-command"); - } catch (Exception e) { - // let it default - } - - if (null == newModuleRoot) { - newModuleRoot = "DEPLOY_MODULE_ROOT"; - } - - if (null == command) { - command = "copy"; - } - - if (Options.outputCommand()) { - - String tail = message; - switch (eventType) { - case DEPLOYMENT_ARTEFACT_ENCOUNTERED: - if (message.startsWith(scagenInputDir)) { - tail = message.substring(scagenInputDir.length()); - } - - String dest = joinPathElements(newModuleRoot, tail); - - System.out.println(command + " " + platformSlashes(message) - + " " + platformSlashes(dest)); - break; - - case DEPLOYMENT_ARTEFACT_GENERATED: - if (message.startsWith(scagenOutputDir)) { - tail = message.substring(scagenOutputDir.length()); - } - - dest = joinPathElements(newModuleRoot, tail); - System.out.println(command + " " + platformSlashes(message) - + " " + platformSlashes(dest)); - break; - case DEPLOYMENT_INPUT_DIRECTORY: - scagenInputDir = message; - //System.out.println("inputDir " + message); - break; - case DEPLOYMENT_OUTPUT_DIRECTORY: - scagenOutputDir = message; - //System.out.println("outputDir " + message); - break; - default: - break; - } - - } else { - - if (Options.list()) { - switch (eventType) { - case DEPLOYMENT_ARTEFACT_ENCOUNTERED: - case DEPLOYMENT_ARTEFACT_GENERATED: - System.out.println(platformSlashes(message)); - break; - case DEPLOYMENT_INPUT_DIRECTORY: - case DEPLOYMENT_OUTPUT_DIRECTORY: - default: - break; - } - } else { - switch (eventType) { - case DEPLOYMENT_ARTEFACT_ENCOUNTERED: - //TODO make efficient - System.out.println("$sourceDir1" - + platformSlashes(message.substring(scagenInputDir.length()))); - break; - case DEPLOYMENT_ARTEFACT_GENERATED: - //TODO make efficient - System.out.println(generatedDirName - + platformSlashes(message.substring(scagenOutputDir.length()))); - break; - case DEPLOYMENT_INPUT_DIRECTORY: - scagenInputDir = platformSlashes(message); - System.out.println("sourceDir1=" + scagenInputDir); - break; - case DEPLOYMENT_OUTPUT_DIRECTORY: - scagenOutputDir = platformSlashes(message); - if (!scagenInputDir.equals(scagenOutputDir)) { - generatedDirName = "$sourceDir2"; - System.out.println("sourceDir2=" + scagenOutputDir); - } else { - //generatedDirName = "sourceDir1"; - } - break; - default: - break; - } - } - } - } - } - - /** - * @param tail - * @param tail - * @return - */ - public static String joinPathElements(String root, String tail) { - String separator; - // Stick in a "/" (File.separator) if required. - if ((tail.substring(0, 1).equals("/") || newModuleRoot.substring( - root.length() - 1, root.length()).equals("/")) - || (tail.substring(0, 1).equals("\\") || root.substring( - root.length() - 1, root.length()).equals("\\")) - - ) { - separator = ""; - } else { - separator = File.separator; - } - String dest = newModuleRoot + separator + tail; - return dest; - } - - /** - * @param reportArtefacts - * The reportArtefacts to set. - */ - public static void setReportArtefacts(boolean reportArtefacts) { - Utils.reportArtefacts = reportArtefacts; - } - - /** - * @return Returns the reportArtefacts. - */ - private static boolean isReportArtefacts() { - return reportArtefacts; - } - - private static String platformSlashes(String path) { - if (null == path) { - return path; - } - // We need a double level of \\ escapes if the slashes are - // this way round. - String separatorForRegex = File.separator - .replaceAll("\\\\", "\\\\\\\\"); - return path.replaceAll("[/\\\\]+", separatorForRegex); - - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/package.html b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/package.html deleted file mode 100644 index c86184f441..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/package.html +++ /dev/null @@ -1,39 +0,0 @@ - - - -Design documentation for org\apache\tuscany\sca\cpp\tools\common - - - - -
      - -

      Overview

      - -This package can be used to reflect across C++ source code. It can produce -a network of descriptive objects describing C++ Headers, Signatures, Parameters and so -on that it finds in a given location of the file system. -Each of the descriptive objects has a set of getters that return either -the descriptive child objects, or for primitives, the string that represents the actual -value such as "int" or "myFunction". -

      -There are also various utility methods that help with navigating the information, for example the Signature -class has an isConstructor method. The API Javadoc contains further details of these. -

      -The package can scan a directory using a file mask to identify what types -of files are to be scanned. In this application we are interested only -in the function prototypes in the C++ header files. -

      -The implementation was originated using some java code that was also -contributed to the Apache org.apache.axis.tools.common package. Care -has been taken that the original code was not sourced via Apache. If -this project is adopted by Apache then it is very possible that this -package could be merged with or made obsolete by org.apache.axis.tools.common -and because of this the design and interfaces have been preserved from -the original code as much as possible. - -

      -

      - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.java deleted file mode 100644 index ea27e33d09..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.java +++ /dev/null @@ -1,352 +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. - */ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.apache.tuscany.sca.cpp.tools.common.Headers; -import org.apache.tuscany.sca.cpp.tools.common.Signature; -import org.apache.tuscany.sca.cpp.tools.common.Utils; -import org.w3c.dom.Node; - -/** - * This class will do the required processing for the element of a - * sca module or fragment file. - */ -public class ComponentDomNodeHandler extends GenericDomNodeHandler { - - /** - * This method will do the "normal" processing and then trigger a call to - * processComponentNode. - * - * @param node - * the node being processed - * @param contextXPath - * the XPath to the node - * @param handlers - * the map pf element names to DomNodeHandlers - * @param parameters - * a map of XPaths to parameters values found so far - */ - - public void handleNode(Node node, String contextXPath, Map handlers, - Map parameters) { - - // Pick up attrs and the interface.cpp child elements - super.handleNode(node, contextXPath, handlers, parameters); - - try { - //OK now go and create the wrapper and proxy for the service - processComponentNode(contextXPath, parameters); - } catch (Exception e) { - e.printStackTrace(); - } - - } - - /** - * This method basically moved from the text names of things to operating on - * the actual Files. It will also verify or work out the correct class name - * for the implmentation and complain if this does match at least one - * potential service method in the class. - * - * @param contextXPath - * used to pull the correct values from the parameters map (as - * there can be multiple implementation.cpp elelements in there). - * @param parameters - * a map of XPath keys to attribute values - * @throws Exception - */ - private void processComponentNode(String contextXPath, Map parameters) - throws Exception { - - String implHeader = (String) parameters.get(contextXPath - + "/implementation.cpp/@header"); - String implClass = (String) parameters.get(contextXPath - + "/implementation.cpp/@class"); - - File moduleOrFragmentFile = (File) parameters - .get("moduleOrFragmentFile"); - File implHeaderFile = null; - if (null != moduleOrFragmentFile) { - File dir = moduleOrFragmentFile.getParentFile(); - implHeaderFile = new File(dir, implHeader); - } else { - throw new InternalError( - "Internal error: sca.module or fragment file not present in interal parameters"); - } - - try { - String resolvedImplClassName = getClassName(implHeaderFile, - implClass); - - // Check or retrieve the impl Class name. - if (null == resolvedImplClassName) { - try { - //A class attribute was set but there were no methods of - // the - // class in the header - System.out - .println("Classname given (" - + implClass - + ") does not match any header file method's classes in file: " - + implHeaderFile.getCanonicalPath()); - } catch (IOException e) { - System.out - .println("Classname given (" - + implClass - + ") does not match any header file method's classes in file: " - + implHeaderFile.getAbsolutePath()); - } - return; - } else { - File target = (File) parameters.get("targetFile"); - // go into the .componentType file and generate the cpp - processComponentTypeFile(implHeaderFile, target, - resolvedImplClassName); - - } - } catch (Exception e) { - String compName = (String) parameters - .get("/moduleFragment/component/@name"); - Utils - .screenMessage("Problem interpreting header or class attributes in " - + compName - + " component, in " - + moduleOrFragmentFile.getPath() + " file"); - System.exit(-2); - } - - } - - /** - * The purpose of this method is to move from the DOM parameters to dealing - * with the actual Files involved. It is from this method that we kick off - * the processing of the componentType file. - * - * @param header - * the implementation header - * @param target - * the directory for the output - * @param implClass - * @throws Exception - */ - private void processComponentTypeFile(File header, File target, - String implClass) throws Exception { - - // The componentType files should be in the same dir as the Impl - // header... - if (header == null || target == null) { - return; - } - - File componentTypeDirectory = header.getParentFile(); - String headerFileName = header.getName(); - String componentTypeName = headerFileName.substring(0, headerFileName - .lastIndexOf(".")); - - File componentTypeFile = new File(componentTypeDirectory, - componentTypeName + ".componentType"); - - ComponentTypeFileHandler ctParser = new ComponentTypeFileHandler(); - - // The implClass is used in the generated wrapper code so we need to - // store - // it so we can tunnel through the standard actOnFile signature. - - int namespaceEnd = -1; - if (null != implClass) { - namespaceEnd = implClass.lastIndexOf("::"); - } - - String namespace = null; - - if (-1 != namespaceEnd) { - namespace = implClass.substring(0, namespaceEnd); - ctParser.setParameter("namespace", namespace); - implClass = implClass.substring(namespaceEnd + 2); - } - - if (implClass != null) { - ctParser.setParameter("implClass", implClass); - } - - try { - ctParser.handleComponentTypeFile(componentTypeFile, target); - } catch (Exception e) { - Utils - .screenMessage("There has been a problem parsing the componentType file: " - + componentTypeFile.getCanonicalPath()); - Utils.screenMessage(" the reported errors is " - + e.getLocalizedMessage()); - Utils.screenMessage(" and the java exception stack is below."); - e.printStackTrace(); - throw e; - } - } - - /** - * The resolve and check the classname of the service. If we have an - * implementation class name we have to check that there is: at least one - * (non-private, non constructor or finalizer) method of that class in the - * header If there is no implementation class then we will return the class - * of the first non-private/constructor/finalizer method we find. - * - * @param header - * @param implementationCppClass - * @return - * @throws Exception - */ - private String getClassName(File header, String implementationCppClass) - throws Exception { - String methodClassName = null; - List methods = null; - - if (null == header) { - return null; - } - - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, header - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, - "Scagen processing C++ implementation header " - + header.getAbsolutePath()); - - try { - Headers headers = new Headers(); - - headers.actOnFile(header, null, 1); - - methods = headers.getAllMethods(); - - } catch (FileNotFoundException fnfe) { - String path; - try { - path = header.getCanonicalPath(); - } catch (IOException e1) { - path = header.getPath(); - } - Utils.screenMessage("The header file: " + path - + " referenced cannot be found."); - throw fnfe; - } catch (Exception e) { - String path = header.getPath(); - Utils.screenMessage("The header file: " + path - + " referenced is not valid. Reason given is " - + e.getLocalizedMessage()); - throw e; - } - - // We need at least some methods - if (null == methods) { - return null; - } - - // We need at least one service method of to do anything - methods = trimMethodsOfPrivatesConstructorsAndDestrutors(methods); - if (null == methods || methods.size() == 0) { - return null; - } - - // If the user specifies an implementation class then we need at - // least one service method of that class - if (implementationCppClass != null) { - methods = filterMethodsToOneClass(methods, implementationCppClass); - - if (null == methods || methods.size() == 0) { - return null; - } else { - // There was at least one method of the correct type - return implementationCppClass; - } - } else { - // Implementation class is null so we return the classname of the - // first service method - return ((Signature) methods.get(0)).getTrimClassName(); - } - } - - /** - * Filter the mthods supplied to only ones fo the supplied class. - * - * @param methods - * the list of methods - * @param implementationCppClass - * the class we wish - * @return a list of methods of the correct class - */ - private List filterMethodsToOneClass(List methods, - String implementationCppClass) { - - if (null == methods) { - return null; - } - - if (null == implementationCppClass - || implementationCppClass.length() == 0) { - return null; - } - - for (Iterator iter = methods.listIterator(); iter.hasNext();) { - Signature method = (Signature) iter.next(); - - String className = method.getTrimClassName(); - String namespace = method.getNamespace(); - - if (namespace != null && namespace.length() > 0) { - className = namespace + "::" + className; - } - - if (!implementationCppClass.equals(className)) { - iter.remove(); - } - } - - return methods; - - } - - /** - * This method removes contructor and destructor methods from the list. - * - * @param methods - * the list of methods - * @return - */ - private List trimMethodsOfPrivatesConstructorsAndDestrutors(List methods) { - - if (null == methods) { - return null; - } - - for (Iterator iter = methods.listIterator(); iter.hasNext();) { - Signature method = (Signature) iter.next(); - - if (method.isConstructor() || method.isDestructor()) { - iter.remove(); - } - } - - return methods; - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.java deleted file mode 100644 index 0ee9b97138..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.java +++ /dev/null @@ -1,124 +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. - */ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; - -import org.apache.tuscany.sca.cpp.tools.common.FileActor; -import org.apache.tuscany.sca.cpp.tools.common.Utils; - -/** - * The purpose of this class is to specialise the map of XML element handlers - * for a XXX.componentType file that is used by the XMLFileActor - */ -public class ComponentTypeFileHandler extends XMLFileActor { - - static { - // We set up a map for each element type we wish to handle - // this alows the XML handling code to be generic and type free - // while the handlers don't have to do mcuh XML handling. - - GenericDomNodeHandler gdnh = new GenericDomNodeHandler(); - handlers.put("componentType", gdnh); - handlers.put("interface.cpp", gdnh); - - ServiceDomNodeHandler sdnh = new ServiceDomNodeHandler(); - handlers.put("service", sdnh); - - ReferenceDomNodeHandler rdnh = new ReferenceDomNodeHandler(); - handlers.put("reference", rdnh); - } - - /** - * This method just exists to add the default starting depth of 1 to the - * underlying actOnFile interface - * - * @param componentTypeXML - * @param target - * @throws Exception - */ - public void handleComponentTypeFile(File componentTypeXML, File target) - throws Exception { - // We have already set up the XML element handlers. - actOnFile(componentTypeXML, target, 1); - // We need do no more, the service and reference handlers - // ServiceDomNodeHandler and ReferenceDomNodeHandler - // will take appropriate action. - } - - /** - * This method is the main FileActor method - * - * @see FileActor#actOnFile(File, File, int) Here we create an initial DOM - * and kick off the processing (using the handler map that has been set - * up by the concrete subclass). - * - * @param moduleXML - * the sca.module or fragment file - * @param target - * the target directory - * @param depth - * not uesed here but in the - * @see FileActor#actOnFile(File, File, int) interface to allow for - * recursive diving into a directory structure. - */ - public void actOnFile(File fileXML, File target, int depth) - throws Exception { - - if (null == fileXML || null == target) { - return; - } - - parameters.put("componentTypeFile", fileXML); - - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, fileXML.getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, "Scagen processing SCA componentType file " + fileXML.getAbsolutePath()); - - super.actOnFile(fileXML, target, depth); - - } - - /** - * @return an error message - usually over-ridden. - */ - protected String getContextMessage() { - - String module = ((File) parameters.get("moduleOrFragmentFile")).getPath(); - if (null == module) { - module = "unknown"; - } - - String component = (String) parameters.get("/module/component/@name"); - if (null == component) { - component = (String) parameters - .get("/moduleFragment/component/@name"); - } - if (null == component) { - module = "unknown"; - } - - String msg = "when processing module " + module; - - msg = msg - + "\nin this module file, the component \"" - + component - + "\" has an implementation.cpp element with a header attribute \nwhere the C++ header can be found but it has no matching .componentType file present in\nthe same directory as the header."; - - return msg; - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.java deleted file mode 100644 index 1ff4504fff..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.java +++ /dev/null @@ -1,87 +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. - */ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.util.Set; - -import org.apache.tuscany.sca.cpp.tools.common.FileActor; -import org.apache.tuscany.sca.cpp.tools.common.Utils; - -public class DirectoryScanner { - private FileActor actor; - - private Set actOnTheseFileExtensions; - - public DirectoryScanner(FileActor actor, Set extensions) { - this.actor = actor; - this.actOnTheseFileExtensions = extensions; - } - - /** - * - * @param source - * The module root directory - * @param target - * The directory that will hold the generated output - * @param depth - * The depth from the initial starting point, not significant for - * the Scagen tool as we are only interested in the module root - * directory but present due to the FileActor actOnFile interface - * method. This code is pulled from the code in the CParsingTool - * class and further work is needed to remove the duplication. - * Tnterface has been left unchanged as we hope to reconverge the - * parser here with the original one once the changes are fed - * back into the original code. - * @throws Exception - */ - public void walkTree(File source, File target, int depth) throws Exception { - depth++; - boolean noTarget = (null == target); - - if (!source.canRead()) - Utils.rude("Cannot read from source directory " + source); - if (!noTarget && !target.canWrite()) - Utils.rude("Cannot write to target directory " + target); - - if (source.isDirectory()) { - File[] filesInDirectory = source.listFiles(); - for (int i = 0; i < filesInDirectory.length; i++) { - File file = filesInDirectory[i]; - String name = file.getName(); - int dot = name.lastIndexOf('.'); - String ext = null; - if (-1 != dot) { - ext = name.substring(dot + 1); - } - - if (file.isFile() - && (actOnTheseFileExtensions == null || (!file - .isHidden() && actOnTheseFileExtensions - .contains(ext)))) { - // this is a file we need to act on! - actor.actOnFile(file, target, depth); - } - } - } else { - return; // Do not act on single files for now we expect a module - // root directory - // and the "main" class checks its parameters to ensure this is so. - } - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomHandler.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomHandler.java deleted file mode 100644 index 2ca4c7c881..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomHandler.java +++ /dev/null @@ -1,77 +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. -*/ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.util.Map; - -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * The purpose of this class it to provide a generic class that can handle both - * a DOM and a DOM node. - * - */ -public class DomHandler extends GenericDomNodeHandler { - /** - * This method will run through the initial level of the DOM using the - * handlers map - * - * @param dom - * the document being consumed - * @param handlers - * the map from element name to node handler - * @param parameters - * a map of parameters - this is often used by a handler to place - * a name-value pair, the name is often an Xpath representation - * of the location of the data in the DOM but handlers are free - * to use whatever they like - the contextXpath is generated as - * an Xpath prefix for those handlers that wish to use it. - */ - public static void handleDom(Document dom, Map handlers, Map parameters) { - if (dom != null) { - NodeList childNodes = dom.getChildNodes(); - for (int i = 0; i < childNodes.getLength(); i++) { - Node childNode = childNodes.item(i); - mapNodeToHandlerAndHandle(childNode, "/" - + childNode.getNodeName(), handlers, parameters); - } - } - } - - /** - * - * @param node - * The DOM node being consumed - * @param contextXPath - * The XPath to this node - * @param handlers - * The map from element name to node handler - * @param parameters - * A map of parameters - this is often used by a handler to place - * a name-value pair, the name is often an Xpath representation - * of the location of the data in the DOM but handlers are free - * to use whatever they like - the contextXpath is generated as - * an Xpath prefix for those handlers that wish to use it. - */ - public void handleNode(Node node, String contextXPath, Map handlers, - Map parameters) { - mapNodeToHandlerAndHandle(node, contextXPath, handlers, parameters); - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.java deleted file mode 100644 index 00942bd9ca..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.java +++ /dev/null @@ -1,40 +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. -*/ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.util.Map; - -import org.w3c.dom.Node; - -public interface DomNodeHandler { - - public static int ELEMENT = 1; - /** - * An interface for classes that can process DOM nodes. - * - * @param node the DOM node being consumed - * @param contextXPath the XPath to this node - * @param handlers The map from element name to node handler - * @param parameters A map of parameters - this is often used by a handler to place - * a name-value pair, the name is often an Xpath like representation of the - * location of the data in the DOM but handlers are free to use whatever - * they like - the contextXpath is generated as an Xpath prefix for those - * handlers that wish to use it. - */ - void handleNode( Node node, String contextXPath, Map handlers, Map parameters ); - -} diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.java deleted file mode 100644 index 3f9fb359f5..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.java +++ /dev/null @@ -1,214 +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. - */ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; -import java.util.Map.Entry; - -import org.apache.tuscany.sca.cpp.tools.common.Utils; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * - * - * - * - */ -public class GenericDomNodeHandler implements DomNodeHandler { - /** - * This method parses the DOM attributes into name value pairs in the - * parameter map each valued keyed by its XPath. - * - * @param node - * the DOM node being processed - * @param contextPath - * the XPath to the DOM node being processed - * @param parameters - * a scratchpad map of name value pairs - */ - public void transferAttrsToParameters(Node node, String contextPath, - Map parameters) { - - if (node == null || contextPath == null || parameters == null) - return; - - NamedNodeMap attrs = node.getAttributes(); - if (attrs != null) { - for (int i = 0; i < attrs.getLength(); i++) { - Node attr = attrs.item(i); - parameters.put(contextPath + "/" + "@" + attr.getNodeName(), - attr.getNodeValue()); - - // Report the dll name to the deployment tool if required. - if ("dll".equals(attr.getNodeName())) { - //This is a path relative to the module root. - //so we need to add it in. - File mod = (File) parameters.get("moduleOrFragmentFile"); - if (null != mod) { - String separatorForRegex = File.separator.replaceAll( - "\\\\", "\\\\\\\\"); - - String end = attr.getNodeValue().replaceAll("[/\\\\]+", - separatorForRegex); - - if (!end.startsWith(File.separator)) { - end = File.separator + end; - } - - String fullPath = mod.getParentFile().getAbsolutePath() - + end; - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, - fullPath); - } - - } - - } - } - return; - } - - /** - * This method will iterate through the DOM node's children and call the - * appropriate handler for each one. - * - * @param node - * the DOM node being processed - * @param contextPath - * the XPath to the DOM node being processed - * @param handlers - * a map of element name to handler objects - * @param parameters - * a scratchpad map of name value pairs - */ - public void handleChildElements(Node node, String contextPath, - Map handlers, Map parameters) { - - if (node == null || contextPath == null) - return; - - NodeList children = node.getChildNodes(); - if (children != null) { - for (int i = 0; i < children.getLength(); i++) { - Node child = children.item(i); - mapNodeToHandlerAndHandle(child, contextPath + "/" - + child.getNodeName(), handlers, parameters); - } - } - return; - } - - /** - * This method will resolve any registered handler for a particular DOM - * element and call the handleNode method on it. If the handlers map has a - * mapping from "entity" to an instance of EntityHandler which implements - * the DomNodeHandler interface then any node that looks like - * - * - * Will be passed to the EntityHandler to process. - * - * @param node - * the DOM node being processed - * @param contextPath - * the XPath to the DOM node being processed - * @param handlers - * a map of element name to handler objects - * @param parameters - * a scratchpad map of name value pairs - */ - public static void mapNodeToHandlerAndHandle(Node node, String contextPath, - Map handlers, Map parameters) { - if (node != null && node.getNodeType() == DomNodeHandler.ELEMENT) { - String nodeName = node.getNodeName(); - if (nodeName != null && nodeName.length() > 0) { - DomNodeHandler handler = (DomNodeHandler) handlers - .get(nodeName); - if (handler != null) { - handler.handleNode(node, contextPath, handlers, parameters); - } - } - } - } - - /** - * This method will place the attributes in this node into the parameter map - * keyed by the XPath and recursively continue processing for any - * sub-elements of the node. - * - * @param node - * The DOM node being consumed - * @param contextXPath - * The XPath to this node - * @param handlers - * The map from element name to node handler - * @param parameters - * A map of parameters - this is often used by a handler to place - * a name-value pair, the name is often an Xpath representation - * of the location of the data in the DOM but handlers are free - * to use whatever they like - the contextXpath is generated as - * an Xpath prefix for those handlers that wish to use it. - */ - public void handleNode(Node node, String contextXPath, Map handlers, - Map parameters) { - - clearParametersAtThisXPath(contextXPath, parameters); - transferAttrsToParameters(node, contextXPath, parameters); - handleChildElements(node, contextXPath, handlers, parameters); - } - - /** - * @param contextXPath - * @param parameters - */ - private void clearParametersAtThisXPath(String contextXPath, Map parameters) { - - // TODO: Slow but works, improve parameters mechanism overall - // to make this unecessary - if (contextXPath == null || parameters == null) { - return; - } - - // We want to clear both /moduleFragment and /module - // subtrees when we come across the root of either.. - if (contextXPath.equals("/moduleFragment")) { - //clear both this and "module" - contextXPath = "/module"; - } - - Set parms = parameters.entrySet(); - if (null != parms) { - Iterator iter = parms.iterator(); - Map.Entry item = null; - String thisKey; - - while (iter.hasNext()) { - item = (Entry) iter.next(); - thisKey = (String) item.getKey(); - if (thisKey.startsWith(contextXPath)) { - //System.out.println(" removing " + thisKey + " for " + - // item.getValue().toString() + " against " + contextXPath); - iter.remove(); - } - } - } - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/LittleClass.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/LittleClass.java deleted file mode 100644 index 699abf7a08..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/LittleClass.java +++ /dev/null @@ -1,27 +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. - */ -package org.apache.tuscany.sca.cpp.tools.services; - -/** - * This class is just a convenient application class that is loaded in order to - * get the application class loader. We are interested in the application class - * loader as we use its getResource method to resolve XML files independantly of - * where they are. - */ -public class LittleClass { - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.java deleted file mode 100644 index 3bd8129401..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ModuleOrFragmentFileHandler.java +++ /dev/null @@ -1,85 +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. - */ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; - -import org.apache.tuscany.sca.cpp.tools.common.FileActor; -import org.apache.tuscany.sca.cpp.tools.common.Utils; - -/** - * The purpose of this class is purely to specialise the handler map to one with - * a specific ComponentDomNodeHandler. - */ -public class ModuleOrFragmentFileHandler extends XMLFileActor { - - static { - - GenericDomNodeHandler gdnh = new GenericDomNodeHandler(); - - /* - * We use a specific Component node handler in order to be able to - * process multiple components in the same XML file - */ - ComponentDomNodeHandler componentdnh = new ComponentDomNodeHandler(); - handlers.put("component", componentdnh); - - /* - * We are interested inthe elements below but they only need standard - * processing - */ - handlers.put("module", gdnh); - handlers.put("moduleFragment", gdnh); - handlers.put("implementation.cpp", gdnh); - } - - /** - * This method is the main FileActor method - * - * @see FileActor#actOnFile(File, File, int) Here we create an initial DOM - * and kick off the processing (using the handler map that has been set - * up by the concrete subclass). - * - * @param moduleXML - * the sca.module or fragment file - * @param target - * the target directory - * @param depth - * not uesed here but in the - * @see FileActor#actOnFile(File, File, int) interface to allow for - * recursive diving into a directory structure. - */ - public void actOnFile(File moduleXML, File target, int depth) - throws Exception { - - if (null == moduleXML || null == target) { - return; - } - - parameters.put("moduleOrFragmentFile", moduleXML); - - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, moduleXML - .getAbsolutePath()); - - Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, - "Scagen processing SCA module file " - + moduleXML.getAbsolutePath()); - - super.actOnFile(moduleXML, target, depth); - - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.java deleted file mode 100644 index a490d184d1..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.java +++ /dev/null @@ -1,67 +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. - */ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.util.Map; - -import org.apache.tuscany.sca.cpp.tools.common.Options; -import org.w3c.dom.Node; - -/** - * The purpose of this class is to process a element in a - * componentType file and then trigger a call to the method in ServicesGenerator - * to process the interface header file - */ -public class ReferenceDomNodeHandler extends GenericDomNodeHandler { - - /* - * (non-Javadoc) - * - * @see org.apache.tuscany.sca.cpp.services.DomNodeHandler#handleNode(org.w3c.dom.Node, - * java.lang.String, java.util.Map, java.util.Map) - */ - public void handleNode(Node node, String contextXPath, Map handlers, - Map parameters) { - - // Pick up attrs and children - super.handleNode(node, contextXPath, handlers, parameters); - - //OK we know we are handling a reference - //now go and create the wrapper and proxy for it - createProxyForReference(parameters); - - } - - /** - * This method is really just an adapter that adapts the -dir Option to a - * value int he parameters map for "module_root" - * - * @param parameters - * the map of name-value parameters. - */ - private void createProxyForReference(Map parameters) { - try { - String mr = (String) Options.getOption("-dir"); - parameters.put("module_root", mr); - ServicesGenerator.handleInterfaceHeader(parameters, true); - - } catch (Exception e) { - e.printStackTrace(); - } - - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/Scagen.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/Scagen.java deleted file mode 100644 index a6f6f58644..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/Scagen.java +++ /dev/null @@ -1,170 +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. - */ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import org.apache.tuscany.sca.cpp.tools.common.CParsingTool; -import org.apache.tuscany.sca.cpp.tools.common.Options; -import org.apache.tuscany.sca.cpp.tools.common.Utils; - -/** - * This is the main top level class. Its purpose is to create a - * Module/FragmentFile handler visitor and pass it to a DirectoryScanner for - * processing. - */ -public class Scagen extends CParsingTool { - - public static Set MODULE_EXTENSIONS = new HashSet(Arrays - .asList(new Object[] { "module", "fragment" })); - - /** - * @throws Exception - * - */ - public Scagen(String[] args) throws Exception { - super(args); - } - - /** - * Take a directory scanning class and create a vistor that knows how to - * handle any sca.module or .fragment that the scanner comes across. - * - * @param args - * standard main args. THe values we expect in this class are - * scagen -dir input_dir -output output_dir - * - */ - public static void main(String[] args) { - boolean failed = false; - try { - Scagen env = new Scagen(args); - ModuleOrFragmentFileHandler module_handler = new ModuleOrFragmentFileHandler(); - - // Check and access the input SCA module directory - String name = (String) Options.getOption("-dir"); - if (null == name) { - Utils - .screenMessage("Please provide a SCA module directory name as a \"-dir\" option."); - env.printUsage(); - System.exit(-1); - } - File source = new File(name); - if (!source.isFile() && !source.isDirectory()) { - Utils - .screenMessage("The SCA module directory provided as the \"-dir\" option cannot be accessed,"); - Utils.screenMessage("the option given was: " + source); - env.printUsage(); - System.exit(-1); - } - - String deployDir = null; - try { - deployDir = (String) Options.getOption("-deploy"); - if (null != deployDir || Options.deploy()) { - Utils.setReportArtefacts(true); - } - } catch (Exception e) { - // let it default to null - } - - Utils.postEvent(Utils.DEPLOYMENT_INPUT_DIRECTORY, source - .getAbsolutePath()); - - // We check the -output option here as we wish to - // reuse the env.maybeCreateDirectory method - // unchanged from the original that went into axis and it will do a - // System.exit if there is no matching Option - String outputDirName = (String) Options.getOption("-output"); - if (null == outputDirName) { - Utils - .screenMessage("Please provide an output directory name for the generated files as a \"-output\" option."); - env.printUsage(); - System.exit(-1); - } - - File outputDir = new File(outputDirName); - - // Check we can create the output directory - if (outputDir == null || !outputDir.exists() && !outputDir.mkdir()) { - Utils.screenMessage("Failed to create output directory: " - + outputDirName); - env.printUsage(); - System.exit(-1); - } - - Utils.postEvent(Utils.DEPLOYMENT_OUTPUT_DIRECTORY, outputDir - .getAbsolutePath()); - - DirectoryScanner scanner = new DirectoryScanner(module_handler, - MODULE_EXTENSIONS); - scanner.walkTree(source, outputDir, 1); - - if (0 == module_handler.getFilesActedOn()) { - Utils - .screenMessage("No SCA module or fragment files were found in: " - + source); - } - - failed = module_handler.failed; - - } catch (Exception exception) { - Utils - .screenMessage("Unexpected error occurred while runnning the Scagen tool. The Java exception is below."); - exception.printStackTrace(); - failed = true; - } - - if (failed) { - Utils - .outputDebugString("Finished! (but encountered problems parsing modules)"); - System.exit(-2); - } - - Utils.outputDebugString("Finished!"); - } - - /** - * Provide a hint to the user on how to call this class - */ - protected void printUsage() { - System.out - .println("usage: Java Scagen -dir -output [-verbose] [-deploy ] [-nogenerate] [-outputCommand] [-command ]"); - System.out - .println(" -dir : the SCA module root directory"); - System.out - .println(" -output : a directory to put the generated output into"); - System.out.println(" [-verbose]: report on what scagen is doing"); - System.out - .println(" [-deploy ]: output text to help in deploying the module's artefacts"); - System.out - .println(" [-command ]: a string that is injected into the deploy text"); - System.out - .println(" [-list]: change the deploy output text to a simple list of artefacts"); - System.out - .println(" [-outputCommand]: change the deploy output text to command text format"); - System.out - .println(" output is of form \"copy_cmd file1 file1\""); - System.out - .println(" [-nogenerate]: do not generate proxies and wrappers"); - - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.java deleted file mode 100644 index 79b74c0450..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.java +++ /dev/null @@ -1,62 +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. - */ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.util.Map; - -import org.apache.tuscany.sca.cpp.tools.common.Options; -import org.w3c.dom.Node; - -public class ServiceDomNodeHandler extends GenericDomNodeHandler { - - /* - * (non-Javadoc) - * - * @see org.apache.tuscany.sca.cpp.services.DomNodeHandler#handleNode(org.w3c.dom.Node, - * java.lang.String, java.util.Map, java.util.Map) - */ - public void handleNode(Node node, String contextXPath, Map handlers, - Map parameters) { - - // Pick up attrs and the interface.cpp child elements - super.handleNode(node, contextXPath, handlers, parameters); - - //OK now go and create the wrapper and proxy for the service - createWrapperAndProxyForService(parameters); - - } - - /** - * This method will generate the wrapper and proxy C++ and header files for - * the service. - * - * @param parameters - * a map of name-value parameters - */ - private void createWrapperAndProxyForService(Map parameters) { - - try { - String mr = (String) Options.getOption("-dir"); - parameters.put("module_root", mr); - ServicesGenerator.handleInterfaceHeader(parameters, false); - - } catch (Exception e) { - e.printStackTrace(); - } - - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.java deleted file mode 100644 index 6442b76992..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.java +++ /dev/null @@ -1,802 +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. - */ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import javax.xml.transform.stream.StreamSource; - -import org.apache.tuscany.sca.cpp.tools.common.CParsingTool; -import org.apache.tuscany.sca.cpp.tools.common.Headers; -import org.apache.tuscany.sca.cpp.tools.common.Options; -import org.apache.tuscany.sca.cpp.tools.common.Parameter; -import org.apache.tuscany.sca.cpp.tools.common.Signature; -import org.apache.tuscany.sca.cpp.tools.common.Utils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Text; - -/** - * This class is the main class that handles the function that parses a C++ - * interface header file into a DOM that holds all the semantic information - * about the interface - method names, parameters and return values. It then - * uses XSLT to generate different "views" of this data plus the parameter map - * from other sources that are the C++ programs for the proxy and wrapper - * implementations and headers. - */ -public class ServicesGenerator extends CParsingTool { - - private static final String OPERATION_NAME_ATTR = "operationNameAttr"; - - private static final String HEADER_NAME_ATTR = "headerNameAttr"; - - private static final String SCA_OPERATION = "scaOperation"; - - private static final String SCA_SERVICE = "scaService"; - - private static final String SCA_OPERATION_RETURN_TYPE = "scaOperationReturnType"; - - private static final String SCA_OPERATION_PARAMETER = "scaOperationParameter"; - - private static final String SCA_OPERATION_PARAMETER_NAME_ATTR = "scaOperationParameterNameAttr"; - - private static final String SCA_OPERATION_PARAMETER_CONST_ATTR = "scaOperationParameterConstAttr"; - - private static final String SCA_INTERFACE_NAME_ATTR = "scaInterfaceNameAttr"; - - private static final String CPP_HEADER = "cppHeader"; - - private static boolean TESTING = true; - - private static TransformerFactory txmf = null; - - private static ServicesGenerator instance = null; - - public ServicesGenerator(String[] args) throws Exception { - super(args); - txmf = TransformerFactory.newInstance(); - } - - /** - * - * @param parameters - * @param forReference - * true if we are creating a proxy for a reference (rather than - * for a service) - * @throws Exception - * - * The design is - *
        - *
      • handleInterfaceHeader - *
      • createDOMofMethods - *
      • createProxyCPPFromDom(outputDir, dom); - *
      • createProxyHeaderFromDom(outputDir, dom); - *
      - * - * plus if we are not generating for a reference element - *
        - *
      • createWrapperCPPFromDom(outputDir, dom); - *
      • createWrapperHeaderFromDom(outputDir, dom); - *
          - * Each of the create.... methods calls createOutputFromDom with a different - * style sheet. - * - */ - public static void handleInterfaceHeader(Map parameters, - boolean forReference) throws Exception { - boolean failed = false; - - String type = null; - if (forReference) { - type = "reference"; - } else { - type = "service"; - } - String interfaceHeaderFilename = (String) parameters - .get("/componentType/" + type + "/interface.cpp/@header"); - - String componentTypeFileHeaderName = interfaceHeaderFilename; - - String sca_module_root = (String) Options.getOption("-dir"); - parameters.put("module_root", sca_module_root); - - if (sca_module_root != null && interfaceHeaderFilename != null - && interfaceHeaderFilename.length() > 0) { - String separator; - // Stick in a "/" (File.separator) if required. - if ((interfaceHeaderFilename.substring(0, 1).equals("/") || sca_module_root - .substring(sca_module_root.length() - 1, - sca_module_root.length()).equals("/")) - || (interfaceHeaderFilename.substring(0, 1).equals("\\") || sca_module_root - .substring(sca_module_root.length() - 1, - sca_module_root.length()).equals("\\")) - - ) { - separator = ""; - } else { - separator = File.separator; - } - interfaceHeaderFilename = sca_module_root + separator - + interfaceHeaderFilename; - } - - File outputDir = (File) parameters.get("targetDirectoryFile"); - - String[] args = new String[] { "-source", interfaceHeaderFilename, - "-target", outputDir.getPath() }; - ServicesGenerator gen = new ServicesGenerator(args); - File file; - try { - if (null == interfaceHeaderFilename) { - gen.printUsage(); - System.exit(-1); - } - - file = new File(interfaceHeaderFilename); - if (!file.isFile()) { - if (file.isDirectory()) { - Utils - .rude("This tool works at the header file level and not for directories like " - + file); - } - Utils.rude("Bad file or directory " + file); - } - File source = file; - if (!outputDir.exists() && !outputDir.mkdir()) - Utils.rude("Failed to create directory " + outputDir); - - // The class below is the one that will go through the header - // file(s) - Headers headers = new Headers(); - - if (null != interfaceHeaderFilename) { - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, file - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, - "Scagen processing C++ interface header " - + file.getAbsolutePath()); - headers.actOnFile(file, outputDir, 1); - Utils.outputDebugString("Parsing files..."); - } - - String nameOfSorR = null; - String referenceName = null; - String serviceName = null; - - if (forReference) { - - Object rn = parameters.get("/componentType/reference/@name"); - - if (rn instanceof String) { - referenceName = (String) rn; - nameOfSorR = referenceName; - } - } else { - - Object sn = parameters.get("/componentType/service/@name"); - - if (sn instanceof String) { - serviceName = (String) sn; - nameOfSorR = serviceName; - } - } - - String moduleXmlFileHeader = null; - String moduleXmlFileHeaderNoExt = null; - Object moduleh = parameters - .get("/module/component/implementation.cpp/@header"); - - if (moduleh == null) { - moduleh = parameters - .get("/moduleFragment/component/implementation.cpp/@header"); - } - - if (moduleh instanceof String) { - File f = new File((String) moduleh); - moduleXmlFileHeader = (String) moduleh; - - String fname = f.getName(); - moduleXmlFileHeaderNoExt = fname.substring(0, fname - .lastIndexOf('.')); - - } - - String implClassNameAttrFromModuleFile = (String) parameters - .get("implClass"); - - String interfaceClassNameAttrFromComponentTypeFile; - if (forReference) { - interfaceClassNameAttrFromComponentTypeFile = (String) parameters - .get("/componentType/reference/interface.cpp/@class"); - } else { - interfaceClassNameAttrFromComponentTypeFile = (String) parameters - .get("/componentType/service/interface.cpp/@class"); - } - - List methods = headers.getAllMethods(); - - // Pull out one of the methods' namespace attributes. - String intfNamespace = null; - if (methods.size() > 0) { - Signature method = (Signature) methods.get(0); - intfNamespace = method.getNamespace(); - } - - if (interfaceClassNameAttrFromComponentTypeFile != null) { - methods = filterToPublicMethodsOfGivenClass(methods, - interfaceClassNameAttrFromComponentTypeFile, true); - } else { - //We want to filter to methods of the class whose - //name matches the header file name. - // String intfClassName = (String) parameters.get("intfClass"); - // - String headerFileBase = file.getName().replaceAll( - "\\.h|\\.hpp|\\.h++", ""); - - methods = filterToPublicMethodsOfGivenClass(methods, - headerFileBase, false); - } - - Document dom = createDOMofMethods(methods, source, serviceName, - referenceName, nameOfSorR, null, - componentTypeFileHeaderName, moduleXmlFileHeader, - moduleXmlFileHeaderNoExt, intfNamespace, - interfaceClassNameAttrFromComponentTypeFile, - implClassNameAttrFromModuleFile); - - createProxyCPPFromDom(outputDir, dom); - createProxyHeaderFromDom(outputDir, dom); - - if (!forReference) { - createWrapperCPPFromDom(outputDir, dom); - createWrapperHeaderFromDom(outputDir, dom); - } - - } catch (Exception exception) { - exception.printStackTrace(); - failed = true; - } - - if (failed) { - Utils.outputDebugString("Finished! (but encountered problems)"); - System.exit(-2); - } - } - - /** - * This methods takes a list of methods and filters them to only contain the - * public methods of the given class - * - * @param methods - * a list of methods - * @param className - * we will return a list of only this classes methods from the - * methods parameter - * @param attrSpecified - * if the user does not specify one we ignore namespaces - * @return - */ - private static List filterToPublicMethodsOfGivenClass(List methods, - String className, boolean useNamespace) { - if (methods != null && className != null && className.length() > 0) { - for (Iterator iter = methods.listIterator(); iter.hasNext();) { - Signature method = (Signature) iter.next(); - String scope = method.getScope(); - String sig = method.getOriginal(); - String namespace = method.getNamespace(); - - String qualifiedClassName; - if (useNamespace && null != namespace && 0 < namespace.length()) { - qualifiedClassName = namespace + "::" - + method.getTrimClassName(); - } else { - qualifiedClassName = method.getTrimClassName(); - } - - // If we are not public or the classname does not match - // remove... - if (!qualifiedClassName.equals(className) - || -1 == scope.indexOf("public")) { - iter.remove(); - } - } - } - return methods; - } - - /** - * Use an XSLT transformation to create a Proxy "view" of the DOM - * information - * - * @param outputDir - * where to put the C++ - * @param dom - * the DOM of semantic method information - * @throws TransformerException - */ - private static void createProxyCPPFromDom(File outputDir, Document dom) - throws TransformerException { - - //Create the Filename from the Service Name in the DOM - if (dom == null) { - return; - } - - String serviceOrReferenceName = "noSorRNameDefined"; - - String implClass = "nomoduleXmlFileHeaderDefined"; - - Element topNode = dom.getDocumentElement(); - if (null != topNode) { - Attr attr = topNode.getAttributeNode("nameOfSorR"); - if (attr != null) { - serviceOrReferenceName = attr.getNodeValue(); - } - - attr = topNode.getAttributeNode("implClass"); - if (attr != null) { - implClass = attr.getNodeValue(); - } - } - - File proxyCPP = new File(outputDir, implClass + "_" - + serviceOrReferenceName + "_Proxy.cpp"); - if (null != proxyCPP) { - - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, proxyCPP - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, - "Scagen creating SCA for C++ proxy implementation " - + proxyCPP.getAbsolutePath()); - } - - createOutputFromDom(dom, proxyCPP, - "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl"); - - } - - /** - * Use an XSLT transformation to create a Wrapper "view" of the DOM - * information - * - * @param outputDir - * where to put the C++ - * @param dom - * the DOM of semantic method information - * @throws TransformerException - */ - private static void createWrapperCPPFromDom(File outputDir, Document dom) - throws TransformerException { - - //Create the Filename from the Service Name in the DOM - if (dom == null) { - return; - } - - String serviceName = "noServiceDefined"; - - String implClass = "nomoduleXmlFileHeaderDefined"; - - Element topNode = dom.getDocumentElement(); - if (null != topNode) { - Attr attr = topNode.getAttributeNode("serviceName"); - if (attr != null) { - serviceName = attr.getNodeValue(); - } - - attr = topNode.getAttributeNode("implClass"); - if (attr != null) { - implClass = attr.getNodeValue(); - } - } - - File wrapperCPP = new File(outputDir, implClass + "_" + serviceName - + "_Wrapper.cpp"); - if (null != wrapperCPP) { - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, wrapperCPP - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, - "Scagen creating SCA for C++ wrapper implementation " - + wrapperCPP.getAbsolutePath()); - } - createOutputFromDom(dom, wrapperCPP, - "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl"); - - } - - /** - * Use an XSLT transformation to create a Proxy header "view" of the DOM - * information - * - * @param outputDir - * where to put the C++ - * @param dom - * the DOM of sematic method information - * @throws TransformerException - */ - private static void createProxyHeaderFromDom(File outputDir, Document dom) - throws TransformerException { - - //Create the Filename from the Service Name in the DOM - if (dom == null) { - return; - } - - String serviceOrReferenceName = "noServiceDefined"; - String intfClass = "noInterfaceClassNameOrDefaultDefined"; - String implClass = "noImplementationClassOrDefaultDefined"; - - Element topNode = dom.getDocumentElement(); - if (null != topNode) { - Attr attr = topNode.getAttributeNode("nameOfSorR"); - if (attr != null) { - serviceOrReferenceName = attr.getNodeValue(); - } - attr = topNode.getAttributeNode("intfClass"); - if (attr != null) { - intfClass = attr.getNodeValue(); - } - attr = topNode.getAttributeNode("implClass"); - if (attr != null) { - implClass = attr.getNodeValue(); - } - } - - File proxyHeader = new File(outputDir, implClass + "_" - + serviceOrReferenceName + "_Proxy.h"); - if (null != proxyHeader) { - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, proxyHeader - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, - "Scagen creating SCA for C++ proxy header " - + proxyHeader.getAbsolutePath()); - } - - createOutputFromDom(dom, proxyHeader, - "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl"); - - } - - /** - * Use an XSLT transformation to create a Wrapper header "view" of the DOM - * information - * - * @param outputDir - * where to put the C++ - * @param dom - * the DOM of sematic method information - * @throws TransformerException - */ - private static void createWrapperHeaderFromDom(File outputDir, Document dom) - throws TransformerException { - - //Create the Filename from the Service Name in the DOM - if (dom == null) { - return; - } - - String serviceName = "noServiceDefined"; - - String implClass = "nomoduleXmlFileHeaderDefined"; - - Element topNode = dom.getDocumentElement(); - if (null != topNode) { - Attr attr = topNode.getAttributeNode("serviceName"); - if (attr != null) { - serviceName = attr.getNodeValue(); - } - - attr = topNode.getAttributeNode("implClass"); - if (attr != null) { - implClass = attr.getNodeValue(); - } - } - - File wrapperHeader = new File(outputDir, implClass + "_" + serviceName - + "_Wrapper.h"); - - if (null != wrapperHeader) { - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, wrapperHeader - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, - "Scagen creating SCA for C++ wrapper header " - + wrapperHeader.getAbsolutePath()); - } - createOutputFromDom(dom, wrapperHeader, - "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl"); - - } - - /** - * This method will return a class loader that can see the resources that - * are parts of "this" package. - */ - private static ClassLoader getALoader() { - - LittleClass lc; - try { - lc = new LittleClass(); - return lc.getClass().getClassLoader(); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - /** - * This method will generically process the DOM using a stylesheet passed - * in. - * - * @param dom - * the source of data (the model) - * @param outputFile - * where to put the result - * @param xslTransformationFileName - * the xsl file containing the "view" - * @throws TransformerException - */ - private static void createOutputFromDom(Document dom, File outputFile, - String xslTransformationFileName) throws TransformerException { - - if(Options.noGenerate()){ - return; - } - - InputStream stream = getALoader().getResourceAsStream( - xslTransformationFileName); - StreamSource ss = new StreamSource(stream); - StreamResult out = new StreamResult(outputFile); - try { - Transformer xslt = txmf.newTransformer(ss); - - // Unless a width is set, there will be only line breaks but no - // indentation. - // The IBM JDK and the Sun JDK don't agree on the property name, - // so we set them both. - // - try { - xslt.setOutputProperty( - "{http://xml.apache.org/xalan}indent-amount", "2"); - } catch (Throwable t) { - //OK to ignore this, depends on XSLT engine and one will fail - } - try { - xslt.setOutputProperty( - "{http://xml.apache.org/xslt}indent-amount", "2"); - } catch (Throwable t) { - //OK to ignore this, depends on XSLT engine and one will fail - } - - DOMSource from = new DOMSource(dom); - - xslt.transform(from, out); - - } catch (TransformerConfigurationException e) { - e.printStackTrace(); - throw (e); - } catch (TransformerException e) { - e.printStackTrace(); - throw (e); - } finally { - try { - stream.close(); - } catch (IOException e1) { - // unlikely but if - // we can't close it, we can't close it - } - } - - } - - //TODO clear up the parameter list below to make it smaller if - // possible - /** - * This method will create A DOM containing all the semantic information - * that it can extract from a C++ header file. - * - * @param methods - * a list of methods that are going into the DOM - * @param source - * the header file the methods came from - * @param serviceName - * the name of the service - * @referenceName the name of the reference - * @nameOfSorR the non null one of the two parameters above - * @headerClassName the name of the header class - * @param moduleXmlFileImplHeaderNameWithPathAndExt - * the source filename - * @param moduleXmlFileHeaderNoExtorPath - * the shortname of the source file - * @param implClass - * the implementation class - * @param intfClass - * the interface we are turning into a service - * @return - */ - private static Document createDOMofMethods(List methods, File source, - String serviceName, String referenceName, String nameOfSorR, - String headerClassName, - String componentTypeXmlFileIntfHeaderNameWithPathAndExt, - String moduleXmlFileImplHeaderNameWithPathAndExt, - String moduleXmlFileHeaderNoExtorPath, String intfNamespace, - String intfClass, String implClass) { - - if (methods == null) { - return null; - } - - // Create a DOM of the methods - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - Document document = null; - try { - DocumentBuilder builder = factory.newDocumentBuilder(); - document = builder.newDocument(); - - Element root = (Element) document.createElement(CPP_HEADER); - - root.setAttribute(HEADER_NAME_ATTR, source.getPath()); - - document.appendChild(root); - - Element intf = (Element) document.createElement(SCA_SERVICE); - root.appendChild(intf); - - // Go through all the signatures we have collected... - Signature s = null; - for (Iterator iter = methods.iterator(); iter.hasNext();) { - s = (Signature) iter.next(); - - // Each signature is an operation - Element op = document.createElement(SCA_OPERATION); - op.setAttribute(OPERATION_NAME_ATTR, s.getMethodName()); - intf.appendChild(op); - - Parameter[] parms = s.getParameters(); - if (parms != null) { - - for (int i = 0; i < parms.length; i++) { - Element parm = (Element) document - .createElement(SCA_OPERATION_PARAMETER); - String type_string = parms[i].getTypeWithoutConst() - .toString(); - - type_string = type_string.replaceAll(":: ", "::"); - - Text text = document.createTextNode(type_string); - parm.appendChild(text); - parm.setAttribute(SCA_OPERATION_PARAMETER_NAME_ATTR, - parms[i].getName()); - - if (parms[i].getTypeWithoutConst().intern() != parms[i] - .getType().intern()) { - parm.setAttribute( - SCA_OPERATION_PARAMETER_CONST_ATTR, "true"); - } - - op.appendChild(parm); - // TO DO only really stores the value - // unsafely/temporarily - // which is fine while we handle everything at the - // end of parsing the "leaf" that represents that actual - // interface/service but the below will cause the second - // service - // processed to overwite the first one in the DOM. I we - // wish - // to do some overall processing at the end we will have - // to - // use a better more XPath like key that varies by - // instance - // of the service. - intf.setAttribute(SCA_INTERFACE_NAME_ATTR, s - .getTrimClassName()); - } - } - - Element rc = document.createElement(SCA_OPERATION_RETURN_TYPE); - rc.appendChild(document.createTextNode(s.getReturnType() - .toString().replaceAll(":: ", "::"))); - op.appendChild(rc); - - root.appendChild(intf); - } - - // Set the name of the Service - // here, if we are not passed one we use - // the classname from the last header function signature... - if (serviceName == null && s != null) { - serviceName = s.getTrimClassName(); - } - - // this is used for the proxy file name but we need to - // use the reference name if this is pulled in due to it - // being a reference!!! - if (serviceName != null) - root.setAttribute("serviceName", serviceName); - if (referenceName != null) - root.setAttribute("referenceName", referenceName); - if (nameOfSorR != null) - root.setAttribute("nameOfSorR", nameOfSorR); - - if (implClass != null) { - root.setAttribute("implClass", implClass); - } else { - root.setAttribute("implClass", moduleXmlFileHeaderNoExtorPath); - } - - // default class name to the name of the header... - if (headerClassName == null && source != null) { - headerClassName = source.getName().replaceAll( - "\\.h|\\.hpp|\\.h++", ""); - } - root.setAttribute("headerClassName", headerClassName); - - if (null == intfClass) { - intfClass = headerClassName; - } - - if (null != intfNamespace) { - root.setAttribute("namespace", intfNamespace); - if (null != intfClass && !intfClass.startsWith(intfNamespace)) { - intfClass = intfNamespace + "::" + intfClass; - } - } - - root.setAttribute("intfClass", intfClass); - - if (componentTypeXmlFileIntfHeaderNameWithPathAndExt == null) { - componentTypeXmlFileIntfHeaderNameWithPathAndExt = "componentTypeHeader"; - } - root.setAttribute("componentTypeHeader", - componentTypeXmlFileIntfHeaderNameWithPathAndExt); - - if (moduleXmlFileImplHeaderNameWithPathAndExt == null) { - moduleXmlFileImplHeaderNameWithPathAndExt = "moduleXmlFileImplHeader"; - } - root.setAttribute("moduleXmlFileHeader", - moduleXmlFileImplHeaderNameWithPathAndExt); - - if (moduleXmlFileHeaderNoExtorPath == null) { - moduleXmlFileHeaderNoExtorPath = "moduleXmlFileHeaderNoExt"; - } - root.setAttribute("moduleXmlFileHeaderNoExt", - moduleXmlFileHeaderNoExtorPath); - - } catch (ParserConfigurationException pce) { - // Parser with specified options can't be built - pce.printStackTrace(); - } - - return document; - - } - -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.java b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.java deleted file mode 100644 index 047e1ab3f1..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.java +++ /dev/null @@ -1,202 +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. - */ -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMResult; -import javax.xml.transform.dom.DOMSource; - -import org.apache.tuscany.sca.cpp.tools.common.FileActor; -import org.apache.tuscany.sca.cpp.tools.common.Utils; -import org.w3c.dom.Document; -import org.xml.sax.SAXException; - -/** - * The purpose of this abstract class is to provide a home for the standard - * processing that is involved in turning a XML file into an internal DOM. - */ -public abstract class XMLFileActor implements FileActor { - - protected static Map handlers = new HashMap(); - - protected static Map parameters = new HashMap(); - - public boolean failed; - - private int filesActedOn=0; - - protected static TransformerFactory transformerFactory = TransformerFactory - .newInstance(); - - /** - * This method is the main FileActor method - * - * @see FileActor#actOnFile(File, File, int) Here we create an initial DOM - * and kick off the processing (using the handler map that has been set - * up by the concrete subclass). - * - * @param moduleXML - * the sca.module or fragment file - * @param target - * the target directory - * @param depth - * not uesed here but in the - * @see FileActor#actOnFile(File, File, int) interface to allow for - * recursive diving into a directory structure. - */ - public void actOnFile(File moduleXML, File target, int depth) - throws Exception { - - if (null == moduleXML || null == target) { - return; - } - - filesActedOn++; - - parameters.put("sourceFile", moduleXML); - parameters.put("targetFile", target); - - if (transformerFactory.getFeature(DOMSource.FEATURE) - && transformerFactory.getFeature(DOMResult.FEATURE)) { - Document dom = createDomFromXMLFile(moduleXML); - if (dom != null) { - parameters.put("targetDirectoryFile", target); - DomHandler.handleDom(dom, handlers, parameters); - } - } - } - - /** - * This method builds an in memory DOM from an XML file - * - * @param xmlSourceFile - * the XML file we are handling - * @return the resulting document - */ - protected Document createDomFromXMLFile(File xmlSourceFile) { - Document dom = null; - DocumentBuilderFactory f = DocumentBuilderFactory.newInstance(); - //We do not validate via f.setValidating(true); - f.setNamespaceAware(true); - - try { - DocumentBuilder parser = f.newDocumentBuilder(); - dom = parser.parse(xmlSourceFile); - } catch (SAXException sxe) { - String path; - try { - path = xmlSourceFile.getCanonicalPath(); - } catch (IOException e) { - path = xmlSourceFile.getPath(); - } - Utils.screenMessage("There has been a SAXException of type " - + sxe.getLocalizedMessage()); - if (null != xmlSourceFile) { - Utils.screenMessage(" when processing file " + path); - } else { - Utils.screenMessage(" as the input file is null."); - } - -// Leave for possible future debug option -// Utils.screenMessage(" The returned Java exception is below."); -// if (sxe.getException() != null) -// sxe.getException().printStackTrace(); -// else -// sxe.printStackTrace(); - } catch (ParserConfigurationException pce) { - String path; - try { - path = xmlSourceFile.getCanonicalPath(); - } catch (IOException e) { - path = xmlSourceFile.getPath(); - } - Utils - .screenMessage("There has been a ParserConfigurationException of type " - + pce.getLocalizedMessage()); - if (null != xmlSourceFile) { - Utils.screenMessage(" when processing file " + path); - } else { - Utils.screenMessage(" as the input file is null."); - } - -// Leave for possible future debug option -// Utils.screenMessage(" The returned Java exception is below."); -// pce.printStackTrace(); - - } catch (IOException ioe) { - String path; - try { - path = xmlSourceFile.getCanonicalPath(); - } catch (IOException e) { - path = xmlSourceFile.getPath(); - } - - Utils.screenMessage("Unable to open file " + path); - Utils.screenMessage(this.getContextMessage()); - - - - } - - return dom; - } - - /** - * @return an error message - usually over-ridden. - */ - private String getContextMessage() { - return "Check the file exists and can be read."; - } - - /** - * Set a parameter - * - * @param name - * @param value - */ - public void setParameter(String name, Object value) { - parameters.put(name, value); - } - - /** - * Get a parameter - * - * @param name - * @param value - * @return the value of the parameter - */ - public Object getParameter(String name, Object value) { - return parameters.get(name); - } - - - - /** - * @return Returns the filesActedOn. - */ - public int getFilesActedOn() { - return filesActedOn; - } -} \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/package.html b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/package.html deleted file mode 100644 index 316e4cd56e..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/package.html +++ /dev/null @@ -1,140 +0,0 @@ - - - -Design documentation for org\apache\tuscany\sca\cpp\tools\services - - - - -
          - -

          Overview

          - - - -

          This package contains classes that generate C++ wrappers and -proxies for C++ implementations of SCA services.

          - -

          What the package does

          - -

          The Scagen class main method will take in an input and -output directory name. The input directory is taken to be the SCA module root -directory.  The tool will generate the wrapper and proxy headers and methods -bodies in the output directory.

          - -

          These proxies and wrappers enable the SCA for C++ runtime to -act as a conduit for SCA C++ calls in a type free manner. Client code can call -the type specific functions that are in the generated proxy classes. The call -is marshalled into a generic format and a SCA for C++ runtime function with a -standard signature is invoked. The details of the call are passed as data.

          - -

          On the other end of the runtime, a generated function with a -standard signature is called, this function will inspect the data that -represents the call’s method name and call the appropriate type specific -function in the C++ implementation.

          - -

          The Input Data Used

          - -

          The input directory passed to the Scagen method is taken to -be the SCA module root directory. All the sca.module and .fragment files in -that directory are inspected to resolve all the <component/> elements -within them.

          - -

          Each <component/> element found is inspected to see if -it has a <implementation.cpp/> element within it.

          - -

          Each <implementation.cpp/> element should have a -header attribute that represents a C++ header file that contains function -prototypes for the C++ implementation of the service. An optional class -attribute can be used to select one class if more than one that is present in -the header file. The default class is the one with the same name as the header -file. The tool will verify that the implementation header contains an -appropriate class prototype.

          - - - -

          The directory that contains the implementation header should -also contain a matching .componentType file for the equivalent SCA component. So -for example, a MyServiceImpl.h file would have a corresponding MyServiceImpl.componentType -file in the same directory.

          - - - -

          Each componentType file is inspected for <service/> -and <reference/> elements. For each <service/> element that is -found that contains a <interface.cpp/> element within it,

          - -

          the header attribute of the <interface.cpp/> is taken -as the filename of the C++ interface header for the SCA service.  This C++ -header file is opened and used as a means for specifying the SCA service -resulting in an appropriate wrapper and proxy being generated for this service -interface. Both method bodies and headers are generated in the given output -directory. The processing of a <reference/> element is the same except -that only a proxy header and implementation are generated.

          - - - - - -

          Outline Design: How it Works

          - - - -

          The basic approach is to scan in the XML files by first -creating a DOM document tree of them and then recursively rifling through the DOM  -with some generic code in the XMLFileActorClass by default this processing will -build up a map which maps the XPath location of attributes to their values. -Additionally subclasses can add to a “handlers map” which maps from the name of -a particular element to an object that implements the DomNodeHandler interface. -If the XMLFileActor code comes across any element that has an equivalent handler -in the handler map the objects handleNode method will be called.

          - -

          Typically the DomNodeHandler’s handle node interface will -use XPath to pull out the parameters that it is interested in from the -parameters map that is being built up by the generic code.

          - -

          This design was chosen as the Java level specified for the -original implementation did not have direct XPath query of XML data but it was -known that this would be available in Java 1.5 onwards. The design allows the -DOM and parameters map handling to be replaced in the future with JRE 1.5 code -with less impact on the rest of the code.

          - - - -

          The processing leads to the parsing of the C++ interface -files using the org\apache\tuscany\sca\cpp\tools\common package. This results -in a Headers object

          - -

          that contains a List of Signature objects, each one -representing a function prototype found in the header.

          - - - -

          We are aiming to get all the semantic data we want to use -into a DOM document (this represents the model of our input data) and then use -XSLT to create the 4 different views of this data:

          - -

          Proxy C++ header

          - -

          Proxy C++  body

          - -

          Wrapper C++ header

          - -

          Wrapper C++ body

          - - - -

          So we prepopulate the DOM with parameter data that comes -from the XML files and then iterate through the Signatures that are returned -from the C++ header parser transferring the useful data into the DOM.

          - - - -

          We than use 4 XSLT stylesheets to generate the C++ output -files as required.

          - -
          - - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl deleted file mode 100644 index bc98f3a970..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl +++ /dev/null @@ -1,398 +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. - */ - - - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - - - - - - - - - - _ - - _Proxy - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - -* - -_Factory(ServiceWrapper* target) - { - return new (target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void - -_Destructor(void* proxy) - { - delete (*)proxy; - } -} - - -::(ServiceWrapper* targ) : target(targ) -{ -} - -::~() -{ - if (target) - delete target; -} - - - - - - - - - - - - _ - - _Proxy - -#include " - -.h" - - - - - - - - - - - _ - - _Proxy - - - - - - - -:: -( - -) -{ - - -} - - - - - - -) -{ - - -} - - - - - - - - - - - const - - - - - ) -{ - - -} - - - - , - - - - - - - - - - - - - - - -0 - - - - - - - - Operation operation(" - - ", - - ); - - - - - - - - - - target->invoke(operation); - - - - - - - - - - Operation operation(" - - ", - - ); - - - - target->invoke(operation); - - - - - - - - - - - - return; - - - - - - - return *(*)operation.getReturnValue(); - - - - return ()operation.getReturnValue(); - - - - return ret; - - - - return ret; - - - - - - - - - - - - return; - - - - - - - return *(*)operation.getReturnValue(); - - - - return ()operation.getReturnValue(); - - - - return ret; - - - - return ret; - - - - - - - - - - - - - - - - - - - - - commonj::sdo::DataObjectPtr ret = 0; - operation.setReturnValue((void*)&ret); - - - - - - ret; - - operation.setReturnValue((void*)&ret); - - - - - - - - - - - - - - - - - - - - commonj::sdo::DataObjectPtr ret = 0; - operation.setReturnValue((void*)&ret); - - - - - - ret; - - operation.setReturnValue((void*)&ret); - - - - - - - - - - - - - operation.setParameter(, (void*) -& - -); - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl deleted file mode 100644 index 3df2f83d53..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl +++ /dev/null @@ -1,215 +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. - */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #ifndef _h - - - - #define _h - - - - - - - - - - #include "" - - - - #include "tuscany/sca/core/ServiceWrapper.h" - - - - - - - - - - -class - - : public - -{ -public: - (tuscany::sca::ServiceWrapper*); - - virtual ~(); - - - -private: - tuscany::sca::ServiceWrapper* target; -}; - - - - - - - -#endif // _h - - - - - - - - - - - - - - - virtual - - -( - - - - - - - - const - - - - - - - , - - - -); - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl deleted file mode 100644 index 912df6cf03..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl +++ /dev/null @@ -1,278 +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. - */ - - - -#include "osoa/sca/sca.h" -using namespace osoa::sca; -using namespace tuscany::sca; - - - - - - - - - - - - - - - _ - - _Wrapper - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - -* - -_Factory(tuscany::sca::model::Service* target) - { - return new (target); - } -} - - -::(Service* target) : ComponentServiceWrapper(target) -{ - impl = (*)getImplementation(); -} - - -::~() -{ - releaseImplementation(); -} - -void* -::newImplementation() -{ - return new ; -} - -void -::deleteImplementation() -{ - delete impl; -} - -void ::invokeService(Operation& operation) -{ - const string& operationName = operation.getName(); - - - - - - throw ServiceRuntimeException("Invalid operation"); - -} - - - - - - _ - - _Wrapper - -#include " - -.h" - - - - - - - - - if (operationName == " - -") - { - - - - } - - - - - - - - - - - - - - - - - - return; - - - - - - - - - - - - - - - - p = *( - *)operation.getParameter(); - - - - const - p = ( - const - - )operation.getParameter(); - - - - DataObjectPtr& p = *(DataObjectPtr*)operation.getParameter(); - - - const & p = *( - const - - *)operation.getParameter(); - - - - - - - - - - - - - - - ; - - - ret = ; - - operation.setReturnValue((void*)&ret); - - - - operation.setReturnValue((void*) ); - - - *(DataObjectPtr*)operation.getReturnValue() = ; - - - *(*)operation.getReturnValue() = ; - - - - - - impl->( - - - - - - - - - -) - - - -p - - - - , - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl b/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl deleted file mode 100644 index 72dc1fc5a6..0000000000 --- a/tags/cpp-stable-20060304/sca/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl +++ /dev/null @@ -1,178 +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. - */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #ifndef _h - - - - #define _h - - - - - - - - - - #include "" - - - - #include "tuscany/sca/core/ComponentServiceWrapper.h" - - - - - - - - - - -class - - : public tuscany::sca::ComponentServiceWrapper -{ -public: - (tuscany::sca::model::Service* target); - - virtual ~(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); - -private: - - * impl; -}; - - - - - - - -#endif // _h - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/xsd/readme.txt b/tags/cpp-stable-20060304/sca/xsd/readme.txt deleted file mode 100644 index 7252f56a11..0000000000 --- a/tags/cpp-stable-20060304/sca/xsd/readme.txt +++ /dev/null @@ -1,2 +0,0 @@ -The XSDs describing the SCA model - diff --git a/tags/cpp-stable-20060304/sca/xsd/sca-binding-sca.xsd b/tags/cpp-stable-20060304/sca/xsd/sca-binding-sca.xsd deleted file mode 100644 index 293c63e83a..0000000000 --- a/tags/cpp-stable-20060304/sca/xsd/sca-binding-sca.xsd +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/xsd/sca-binding-webservice.xsd b/tags/cpp-stable-20060304/sca/xsd/sca-binding-webservice.xsd deleted file mode 100644 index 95052a52aa..0000000000 --- a/tags/cpp-stable-20060304/sca/xsd/sca-binding-webservice.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/xsd/sca-core.xsd b/tags/cpp-stable-20060304/sca/xsd/sca-core.xsd deleted file mode 100644 index 48fac92913..0000000000 --- a/tags/cpp-stable-20060304/sca/xsd/sca-core.xsd +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/xsd/sca-implementation-cpp.xsd b/tags/cpp-stable-20060304/sca/xsd/sca-implementation-cpp.xsd deleted file mode 100644 index 970549176f..0000000000 --- a/tags/cpp-stable-20060304/sca/xsd/sca-implementation-cpp.xsd +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/xsd/sca-implementation-java.xsd b/tags/cpp-stable-20060304/sca/xsd/sca-implementation-java.xsd deleted file mode 100644 index 7745b4ffb7..0000000000 --- a/tags/cpp-stable-20060304/sca/xsd/sca-implementation-java.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/xsd/sca-interface-cpp.xsd b/tags/cpp-stable-20060304/sca/xsd/sca-interface-cpp.xsd deleted file mode 100644 index dd286afef6..0000000000 --- a/tags/cpp-stable-20060304/sca/xsd/sca-interface-cpp.xsd +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/xsd/sca-interface-java.xsd b/tags/cpp-stable-20060304/sca/xsd/sca-interface-java.xsd deleted file mode 100644 index a1955a2795..0000000000 --- a/tags/cpp-stable-20060304/sca/xsd/sca-interface-java.xsd +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/xsd/sca-interface-wsdl.xsd b/tags/cpp-stable-20060304/sca/xsd/sca-interface-wsdl.xsd deleted file mode 100644 index e857a77d84..0000000000 --- a/tags/cpp-stable-20060304/sca/xsd/sca-interface-wsdl.xsd +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sca/xsd/sca.xsd b/tags/cpp-stable-20060304/sca/xsd/sca.xsd deleted file mode 100644 index 619c38aaac..0000000000 --- a/tags/cpp-stable-20060304/sca/xsd/sca.xsd +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sca/xsd/tuscany.xsd b/tags/cpp-stable-20060304/sca/xsd/tuscany.xsd deleted file mode 100644 index 335db42475..0000000000 --- a/tags/cpp-stable-20060304/sca/xsd/tuscany.xsd +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/AUTHORS b/tags/cpp-stable-20060304/sdo/AUTHORS deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tags/cpp-stable-20060304/sdo/COPYING b/tags/cpp-stable-20060304/sdo/COPYING deleted file mode 100755 index 6b0b1270ff..0000000000 --- a/tags/cpp-stable-20060304/sdo/COPYING +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. - diff --git a/tags/cpp-stable-20060304/sdo/ChangeLog b/tags/cpp-stable-20060304/sdo/ChangeLog deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tags/cpp-stable-20060304/sdo/Committers Guide.txt b/tags/cpp-stable-20060304/sdo/Committers Guide.txt deleted file mode 100644 index 5f82e39c14..0000000000 --- a/tags/cpp-stable-20060304/sdo/Committers Guide.txt +++ /dev/null @@ -1,69 +0,0 @@ -Tuscany SDO Committers Guide -============================ - -All classes should be in the commonj/sdo namespace. - -The Tuscany SDO codebase consists of a number of abstract classes representing the SDO API. These -are accompanied by a set of classes whose names end in Impl, which are the implementations of the -API. For example the DataObject API is represented by the DataObject class, and implemented by -the DataObjectImpl class. - -When pointers to classes are handed out by the library, they are really pointing at instances of -the Impl class, but the application must not make that assumption. - -DataObjects and DataFactories inherit from a base class which maintains a reference count on -itself (RefCountingObject). The pointers handed out are really classes holding a pointer to -the object, such that they can contribute to the reference count when copied. These RefCountingPointers -must not be deleted, they dispose of the underlying object when the reference count drops to -zero. - -There is trace commented out of RefCountingObject, which can count and report the references. It is -particularly useful to check that all instances are cleared at the end of a program run. - -The API for metadata consists of the DataFactory, Property and Type classes. All Properties and Types -handed out to the client are const, so setting up the modifying the types is done using APIS of the -data factory. - -The process of creating types is usually done by loading them from XSD, but can also be performed -by using the data factory. Properties and Types may both be defined, but the data factory 'locks' -itself as soon as the first DataObject is created. It does this because at that point it needs to -resolve the type hierarchy, and perform validation. For consistency a Type may not be modified once -an instance has been created. - -A data object contains properties, which are of a particular Type, however the API allows access to -all properties using any of the methods. getString() may be called on a Boolean property etc. The -conversion is attempted by the Type class, and either throws an exception or passes back a converted -value according to the tables in the specification. - -The get/set APIs of DataObject are supplied by a set of macros in DataObjectImpl.cpp. These are -duplicated for string and non-string, and also make it hard to debug effectively. They will be -removed and replaced by methods in the future. For now, the easiest way to debug them is to be -aware that each eventually calls the private no-params method, so for example all the getString(...) -methods eventually call getString(). - -The internal string handling is partially working with the SDOXMLString class, and partially still uses -allocated char* buffers, these will be replaced by SDOXMLStrings in the future. - -The parsers for XML are absed on the SAX2Parser class, but the bulk of the processing is done by the -startElementNS and similar methods in the SDOSchemaSAX2parser and SDOSAX2Parser classes. These are called -back by the libxml2 library, and build a picture of the information which it then decoded by the XSDhelper -or XMLHelper class into metadata or data. - -There are easy targets for improvements of performance, particularly in DataObject and parsing of XSD -input, here is a list of a few that I can think of: - -DataObject frequently maps from Property to index, and this could be re-organized to avoid most of these. - -The allocation of space for property values could in most cases be dropped - its usually s fixed size -element. - -The use of DataObject as a means of storing lists of primitives is not optimal, and should be replaced. - -The ChangeSummary class holds the previous value of any property when it is changed. At present, for many- -valued properties, it holds the entire list as it was before an addition. This could just keep a record of -the changes, and only save the old list when serializing. - -Parsing the XSD loops though types checking that all substitutes are covered, it would be good to -replace this. - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/INSTALL b/tags/cpp-stable-20060304/sdo/INSTALL deleted file mode 100644 index 8e2d591c43..0000000000 --- a/tags/cpp-stable-20060304/sdo/INSTALL +++ /dev/null @@ -1,17 +0,0 @@ -Building Tuscany SDO on Linux. -============================== - -1. Extract the source to a folder. -2. You need to set the following two environment variables to point to libxml2. - LIBXML2_INCLUDE - LIBXML2_LIB -If you are using the default installation of libxml2, usually those are -LIBXML2_LIB=/usr/lib -LIBXML2_INCLUDE=/usr/include/libxml2 - -3. Build the source - ./build.sh - -4. Run the test - cd to runtime/core/test - ./tuscany_sdo_test \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/LICENSE b/tags/cpp-stable-20060304/sdo/LICENSE deleted file mode 100755 index 6b0b1270ff..0000000000 --- a/tags/cpp-stable-20060304/sdo/LICENSE +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. - diff --git a/tags/cpp-stable-20060304/sdo/Makefile.am b/tags/cpp-stable-20060304/sdo/Makefile.am deleted file mode 100644 index 66f0a318e8..0000000000 --- a/tags/cpp-stable-20060304/sdo/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = runtime diff --git a/tags/cpp-stable-20060304/sdo/NEWS b/tags/cpp-stable-20060304/sdo/NEWS deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tags/cpp-stable-20060304/sdo/README b/tags/cpp-stable-20060304/sdo/README deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tags/cpp-stable-20060304/sdo/autogen.sh b/tags/cpp-stable-20060304/sdo/autogen.sh deleted file mode 100755 index d40a2eb9d4..0000000000 --- a/tags/cpp-stable-20060304/sdo/autogen.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -for i in libtoolize aclocal autoconf autoheader -do - echo -n "Running $i..." - $i || exit 1 - echo 'done.' -done - -echo -n 'Running automake...' -automake --add-missing -echo 'done.' -exit 0 - diff --git a/tags/cpp-stable-20060304/sdo/build.sh b/tags/cpp-stable-20060304/sdo/build.sh deleted file mode 100755 index d1d0978d57..0000000000 --- a/tags/cpp-stable-20060304/sdo/build.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -# 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. - - -if [ x$LIBXML2_INCLUDE = x ]; then -echo "LIBXML2_INCLUDE not set" -exit; -fi -if [ x$LIBXML2_LIB = x ]; then -echo "LIBXML2_LIB not set" -exit; -fi - -./autogen.sh -TUSCANY_SDOCPP_HOME=`pwd` -./configure --prefix=${TUSCANY_SDOCPP_HOME} -make -make install diff --git a/tags/cpp-stable-20060304/sdo/configure.ac b/tags/cpp-stable-20060304/sdo/configure.ac deleted file mode 100644 index 97db5fcb7a..0000000000 --- a/tags/cpp-stable-20060304/sdo/configure.ac +++ /dev/null @@ -1,42 +0,0 @@ -dnl run autogen.sh to generate the configure script. - -AC_PREREQ(2.59) -AC_INIT(tuscany_sdo, 1.0.0) -AC_CANONICAL_SYSTEM -AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) - -# Checks for programs. -AC_PROG_CXX -AC_PROG_CC -AC_PROG_CPP -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PROG_MAKE_SET -AC_PROG_LIBTOOL - -# Checks for libraries. - -# Checks for header files. -AC_HEADER_STDC -AC_CHECK_HEADERS([inttypes.h stdlib.h string.h sys/time.h wchar.h]) - -# Checks for typedefs, structures, and compiler characteristics. -AC_HEADER_STDBOOL -AC_C_CONST -AC_STRUCT_TM - -# Checks for library functions. -AC_FUNC_ERROR_AT_LINE -AC_FUNC_VPRINTF -AC_CHECK_FUNCS([strchr strrchr]) - -AC_CONFIG_FILES([Makefile - runtime/Makefile - runtime/core/Makefile - runtime/core/src/Makefile - runtime/core/src/commonj/Makefile - runtime/core/src/commonj/sdo/Makefile - runtime/core/test/Makefile]) -AC_OUTPUT - diff --git a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/build_instructions.txt b/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/build_instructions.txt deleted file mode 100644 index 8db8e67e97..0000000000 --- a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/build_instructions.txt +++ /dev/null @@ -1,29 +0,0 @@ -Tuscany SDO Build Instructions -=============================== - -The project is dependent on libxml -(available here: http://www.zlatkovic.com/libxml.en.html) - -The versions required are these: - Hydra.sdo.build\libxml2-2.6.19.win32 - Hydra.sdo.build\iconv-1.9.1.win32 - Hydra.sdo.build\zlib-1.2.2.win32 - -By default, the projects are set up to look for these in a directory -called tuscany\cpp\sdo\dependencies, but you can put them anywhere you -like if you alter the project settings for extra includes and link input. -You would also have to alter the final copy which copies the dlls out to bin. -or the projects need to be altered to look whereever you put these files.. - -Open the build workspace tuscany\cpp\sdo\runtime\projects\tuscany_sdo\tuscany_sdo.dsw - -Build->Set Active Configuration->sdo_runtime - Win32 Release - -Build->Rebuild All - -The output of the build will be in runtime\core\Release. - -The executable ,required headers and lib are copied to tuscany\cpp\sdo\bin, include and lib. - - - diff --git a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.dsp b/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.dsp deleted file mode 100644 index 29a67438bd..0000000000 --- a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.dsp +++ /dev/null @@ -1,718 +0,0 @@ -# Microsoft Developer Studio Project File - Name="sdo_runtime" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=sdo_runtime - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "sdo_runtime.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "sdo_runtime.mak" CFG="sdo_runtime - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "sdo_runtime - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "sdo_runtime - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "sdo_runtime - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\runtime\core\Release" -# PROP Intermediate_Dir "..\..\..\runtime\core\Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_RUNTIME_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\runtime\core\src" /I "..\..\..\dependencies\libxml2-2.6.19.win32\include" /I "..\..\..\dependencies\iconv-1.9.1.win32\include" /I "..\..\..\depdendencies\zlib-1.2.2.win32\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_EXPORTS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libxml2.lib /nologo /dll /machine:I386 /libpath:"..\..\..\dependencies\libxml2-2.6.19.win32\lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Desc=copyout -PostBuild_Cmds=copy ..\..\..\runtime\core\Release\tuscany_sdo.dll ..\..\..\bin copy ..\..\..\runtime\core\Release\tuscany_sdo.lib ..\..\..\lib copy ..\..\..\runtime\core\src\commonj\sdo\Property.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\CopyHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataFactory.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataGraph.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObject.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\export.h ..\..\..\include\commonj\sdo copy\ - ..\..\..\runtime\core\src\commonj\sdo\HelperProvider.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Logger.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Logging.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\LogWriter.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\PropertyList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDOCheck.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDODate.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntime.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDOUtils.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Sequence.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Setting.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SettingList.h ..\..\..\include\commonj\sdo copy\ - ..\..\..\runtime\core\src\commonj\sdo\Type.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\TypeList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XMLDocument.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XMLHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XSDHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDO.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DASValue.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XpathHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\TypeImpl.h ..\..\..\include\commonj\sdo copy ..\..\..\dependencies\libxml2-2.6.19.win32\bin\libxml2.dll ..\..\..\bin copy ..\..\..\dependencies\iconv-1.9.1.win32\bin\iconv.dll ..\..\..\bin copy ..\..\..\dependencies\zlib-1.2.2.win32\bin\zlib1.dll ..\..\..\bin -# End Special Build Tool - -!ELSEIF "$(CFG)" == "sdo_runtime - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\runtime\core\Debug" -# PROP Intermediate_Dir "..\..\..\runtime\core\Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_RUNTIME_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\runtime\core\src" /I "..\..\..\dependencies\libxml2-2.6.19.win32\include" /I "..\..\..\dependencies\iconv-1.9.1.win32\include" /I "..\..\..\dependencies\zlib-1.2.2.win32\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_EXPORTS" /YX /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libxml2.lib /nologo /dll /debug /machine:I386 /out:"..\..\..\runtime\core\Debug\tuscany_sdo.dll" /pdbtype:sept /libpath:"..\..\..\dependencies\libxml2-2.6.19.win32\lib" -# SUBTRACT LINK32 /pdb:none -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Desc=copyout -PostBuild_Cmds=copy ..\..\..\runtime\core\Debug\tuscany_sdo.dll ..\..\..\bin copy ..\..\..\runtime\core\Debug\tuscany_sdo.lib ..\..\..\lib copy ..\..\..\runtime\core\src\commonj\sdo\Property.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\CopyHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataFactory.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataGraph.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObject.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\export.h ..\..\..\include\commonj\sdo copy\ - ..\..\..\runtime\core\src\commonj\sdo\HelperProvider.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Logger.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Logging.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\LogWriter.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\PropertyList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDOCheck.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDODate.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntime.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDOUtils.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Sequence.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\Setting.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SettingList.h ..\..\..\include\commonj\sdo copy\ - ..\..\..\runtime\core\src\commonj\sdo\Type.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\TypeList.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XMLDocument.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XMLHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XSDHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\SDO.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\DASValue.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\XpathHelper.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\src\commonj\sdo\TypeImpl.h ..\..\..\include\commonj\sdo copy ..\..\..\runtime\core\Debug\tuscany_sdo.pdb ..\..\..\bin copy ..\..\..\dependencies\libxml2-2.6.19.win32\bin\libxml2.dll ..\..\..\bin copy ..\..\..\dependencies\iconv-1.9.1.win32\bin\iconv.dll ..\..\..\bin copy ..\..\..\dependencies\zlib-1.2.2.win32\bin\zlib1.dll ..\..\..\bin -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "sdo_runtime - Win32 Release" -# Name "sdo_runtime - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectListImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummaryBuilder.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummaryImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\CopyHelper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASProperty.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASType.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASValue.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASValues.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataFactory.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataFactoryImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataGraph.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataGraphImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectList.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectListImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\HelperProvider.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\Logger.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\LogWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\ParserErrorSetter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\Property.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyDefinition.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyList.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertySetting.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Attribute.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Attributes.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Namespaces.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Parser.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SchemaInfo.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SdoCheck.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDODate.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SdoRuntime.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOSAX2Parser.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOSchemaSAX2Parser.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOUtils.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLBufferWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLFileWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLStreamWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLString.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDBufferWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDFileWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDStreamWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDWriter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\Sequence.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SequenceImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\Setting.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SettingList.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\Type.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeDefinition.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeDefinitions.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeList.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLDocument.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLDocumentImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLHelper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLHelperImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLQName.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XpathHelper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDHelper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDHelperImpl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDPropertyInfo.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDTypeInfo.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectList.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectListImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummaryBuilder.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\ChangeSummaryImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\CopyHelper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASProperty.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASType.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASValue.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DASValues.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataFactory.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataFactoryImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataGraph.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataGraphImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectList.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DataObjectListImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\disable_warn.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\export.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\HelperProvider.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\Logger.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\Logging.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\LogWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\ParserErrorSetter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\Property.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyDefinition.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertyList.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\PropertySetting.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Attribute.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Attributes.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Namespaces.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SAX2Parser.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SchemaInfo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDO.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SdoCheck.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDODate.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SdoRuntime.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOSAX2Parser.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOSchemaSAX2Parser.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOSPI.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOUtils.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLBufferWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLFileWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLStreamWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLString.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXMLWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDBufferWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDFileWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDStreamWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SDOXSDWriter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\Sequence.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SequenceImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\Setting.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\SettingList.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\Type.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeDefinition.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeDefinitions.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\TypeList.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLDocument.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLDocumentImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLHelper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLHelperImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XMLQName.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XpathHelper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDHelper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDHelperImpl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDPropertyInfo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\src\commonj\sdo\XSDTypeInfo.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# Begin Source File - -SOURCE="..\..\..\Committers Guide.txt" -# End Source File -# Begin Source File - -SOURCE=..\..\..\readme.txt -# End Source File -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.plg b/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.plg deleted file mode 100644 index 18c112328f..0000000000 --- a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/sdo_runtime.plg +++ /dev/null @@ -1,333 +0,0 @@ - - -
          -

          Build Log

          -

          ---------------------Configuration: sdo_runtime - Win32 Debug-------------------- -

          -

          Command Lines

          -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1838.tmp" with contents -[ -/nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\runtime\core\src" /I "..\..\..\dependencies\libxml2-2.6.19.win32\include" /I "..\..\..\dependencies\iconv-1.9.1.win32\include" /I "..\..\..\dependencies\zlib-1.2.2.win32\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_EXPORTS" /Fp"..\..\..\runtime\core\Debug/sdo_runtime.pch" /YX /Fo"..\..\..\runtime\core\Debug/" /Fd"..\..\..\runtime\core\Debug/" /FD /GZ /c -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangedDataObjectListImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangeSummary.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangeSummaryBuilder.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangeSummaryImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\CopyHelper.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DASProperty.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DASType.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DASValue.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DASValues.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataFactory.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataFactoryImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataGraph.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataGraphImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObject.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectInstance.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectList.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectListImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DefaultLogWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\EqualityHelper.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\HelperProvider.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\Logger.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\LogWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ParserErrorSetter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\Property.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertyDefinition.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertyImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertyList.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertySetting.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\RefCountingObject.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\RefCountingPointer.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Attribute.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Attributes.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Namespaces.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Parser.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SchemaInfo.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SdoCheck.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDODate.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SdoRuntime.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDORuntimeException.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOSAX2Parser.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOSchemaSAX2Parser.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOUtils.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLBufferWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLFileWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLStreamWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLString.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDBufferWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDFileWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDStreamWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\Sequence.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SequenceImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\Setting.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SettingList.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\Type.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeDefinition.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeDefinitions.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeList.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLDocument.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLDocumentImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLHelper.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLHelperImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLQName.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XpathHelper.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDHelper.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDHelperImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDPropertyInfo.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDTypeInfo.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1838.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1839.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libxml2.lib /nologo /dll /incremental:yes /pdb:"..\..\..\runtime\core\Debug/tuscany_sdo.pdb" /debug /machine:I386 /out:"..\..\..\runtime\core\Debug\tuscany_sdo.dll" /implib:"..\..\..\runtime\core\Debug/tuscany_sdo.lib" /pdbtype:sept /libpath:"..\..\..\dependencies\libxml2-2.6.19.win32\lib" -\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangedDataObjectListImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummary.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummaryBuilder.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummaryImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\CopyHelper.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASProperty.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASType.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASValue.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASValues.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataFactory.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataFactoryImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataGraph.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataGraphImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObject.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectInstance.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectList.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectListImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DefaultLogWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\EqualityHelper.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\HelperProvider.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\Logger.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\LogWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\ParserErrorSetter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\Property.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyDefinition.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyList.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertySetting.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\RefCountingObject.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\RefCountingPointer.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Attribute.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Attributes.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Namespaces.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Parser.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SchemaInfo.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SdoCheck.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDODate.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SdoRuntime.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDORuntimeException.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOSAX2Parser.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOSchemaSAX2Parser.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOUtils.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLBufferWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLFileWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLStreamWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLString.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDBufferWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDFileWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDStreamWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\Sequence.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SequenceImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\Setting.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SettingList.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\Type.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeDefinition.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeDefinitions.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeList.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLDocument.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLDocumentImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLHelper.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLHelperImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLQName.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XpathHelper.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDHelper.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDHelperImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDPropertyInfo.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDTypeInfo.obj -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1839.tmp" -

          Output Window

          -Compiling... -ChangedDataObjectListImpl.cpp -ChangeSummary.cpp -ChangeSummaryBuilder.cpp -ChangeSummaryImpl.cpp -CopyHelper.cpp -DASProperty.cpp -DASType.cpp -DASValue.cpp -DASValues.cpp -DataFactory.cpp -DataFactoryImpl.cpp -DataGraph.cpp -DataGraphImpl.cpp -DataObject.cpp -DataObjectImpl.cpp -DataObjectInstance.cpp -DataObjectList.cpp -DataObjectListImpl.cpp -DefaultLogWriter.cpp -EqualityHelper.cpp -HelperProvider.cpp -Logger.cpp -LogWriter.cpp -ParserErrorSetter.cpp -Property.cpp -PropertyDefinition.cpp -PropertyImpl.cpp -PropertyList.cpp -PropertySetting.cpp -RefCountingObject.cpp -RefCountingPointer.cpp -SAX2Attribute.cpp -SAX2Attributes.cpp -SAX2Namespaces.cpp -SAX2Parser.cpp -SchemaInfo.cpp -SdoCheck.cpp -SDODate.cpp -SdoRuntime.cpp -SDORuntimeException.cpp -SDOSAX2Parser.cpp -SDOSchemaSAX2Parser.cpp -SDOUtils.cpp -SDOXMLBufferWriter.cpp -SDOXMLFileWriter.cpp -SDOXMLStreamWriter.cpp -SDOXMLString.cpp -SDOXMLWriter.cpp -SDOXSDBufferWriter.cpp -SDOXSDFileWriter.cpp -SDOXSDStreamWriter.cpp -SDOXSDWriter.cpp -Sequence.cpp -SequenceImpl.cpp -Setting.cpp -SettingList.cpp -Type.cpp -TypeDefinition.cpp -TypeDefinitions.cpp -TypeImpl.cpp -TypeList.cpp -XMLDocument.cpp -XMLDocumentImpl.cpp -XMLHelper.cpp -XMLHelperImpl.cpp -XMLQName.cpp -XpathHelper.cpp -XSDHelper.cpp -XSDHelperImpl.cpp -XSDPropertyInfo.cpp -XSDTypeInfo.cpp -Linking... - Creating library ..\..\..\runtime\core\Debug/tuscany_sdo.lib and object ..\..\..\runtime\core\Debug/tuscany_sdo.exp -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP183D.bat" with contents -[ -@echo off -copy ..\..\..\runtime\core\Debug\tuscany_sdo.dll ..\..\..\bin -copy ..\..\..\runtime\core\Debug\tuscany_sdo.lib ..\..\..\lib -copy ..\..\..\runtime\core\src\commonj\sdo\Property.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectList.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\CopyHelper.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DataFactory.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DataGraph.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DataObject.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectList.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\export.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\HelperProvider.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\Logger.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\Logging.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\LogWriter.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\PropertyList.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDOCheck.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDODate.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntime.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDOUtils.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\Sequence.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\Setting.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SettingList.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\Type.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\TypeList.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\XMLDocument.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\XMLHelper.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\XSDHelper.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDO.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DASValue.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\XpathHelper.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\TypeImpl.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\Debug\tuscany_sdo.pdb ..\..\..\bin -copy ..\..\..\dependencies\libxml2-2.6.19.win32\bin\libxml2.dll ..\..\..\bin -copy ..\..\..\dependencies\iconv-1.9.1.win32\bin\iconv.dll ..\..\..\bin -copy ..\..\..\dependencies\zlib-1.2.2.win32\bin\zlib1.dll ..\..\..\bin -] -Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP183D.bat" -copyout - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - - - -

          Results

          -tuscany_sdo.dll - 0 error(s), 0 warning(s) -
          - - diff --git a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/tuscany_sdo.ilk b/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/tuscany_sdo.ilk deleted file mode 100644 index f4fc233e2b..0000000000 Binary files a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_runtime/tuscany_sdo.ilk and /dev/null differ diff --git a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.dsp b/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.dsp deleted file mode 100644 index 390590bccd..0000000000 --- a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.dsp +++ /dev/null @@ -1,129 +0,0 @@ -# Microsoft Developer Studio Project File - Name="sdo_samples" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=sdo_samples - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "sdo_samples.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "sdo_samples.mak" CFG="sdo_samples - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "sdo_samples - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "sdo_samples - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "sdo_samples - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "sdo_samples - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\runtime\core\samples\Debug" -# PROP Intermediate_Dir "..\..\..\runtime\core\samples\Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\runtime\core\samples\Debug/samples.exe" /pdbtype:sept /libpath:"..\..\..\lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy ..\..\..\runtime\core\samples\*.xsd ..\..\..\runtime\core\samples\Debug copy ..\..\..\runtime\core\samples\*.xml ..\..\..\runtime\core\samples\Debug copy ..\..\..\runtime\core\samples\*.wsdl ..\..\..\runtime\core\samples\Debug copy ..\..\..\bin\*.dll ..\..\..\runtime\core\samples\Debug copy ..\..\..\bin\*.pdb ..\..\..\runtime\core\samples\Debug -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "sdo_samples - Win32 Release" -# Name "sdo_samples - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\runtime\core\samples\ChangeSummarySave.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\samples\ObjectCreation.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\samples\Query.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\samples\samples.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\samples\Substitutes.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\samples\XSDLoading.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\runtime\core\samples\samples.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.plg b/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.plg deleted file mode 100644 index c9e937ffcf..0000000000 --- a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_samples/sdo_samples.plg +++ /dev/null @@ -1,64 +0,0 @@ - - -
          -

          Build Log

          -

          ---------------------Configuration: sdo_samples - Win32 Debug-------------------- -

          -

          Command Lines

          -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A50.tmp" with contents -[ -/nologo /MLd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"..\..\..\runtime\core\samples\Debug/sdo_samples.pch" /YX /Fo"..\..\..\runtime\core\samples\Debug/" /Fd"..\..\..\runtime\core\samples\Debug/" /FD /GZ /c -"C:\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Query.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A50.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A51.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib /nologo /subsystem:console /incremental:yes /pdb:"..\..\..\runtime\core\samples\Debug/samples.pdb" /debug /machine:I386 /out:"..\..\..\runtime\core\samples\Debug/samples.exe" /pdbtype:sept /libpath:"..\..\..\lib" -\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\ChangeSummarySave.obj -\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\ObjectCreation.obj -\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\samples.obj -\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\Substitutes.obj -\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\XSDLoading.obj -\tuscany_build\final\tuscany\cpp\sdo\runtime\core\samples\Debug\Query.obj -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A51.tmp" -

          Output Window

          -Compiling... -Query.cpp -Linking... -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A52.bat" with contents -[ -@echo off -copy ..\..\..\runtime\core\samples\*.xsd ..\..\..\runtime\core\samples\Debug -copy ..\..\..\runtime\core\samples\*.xml ..\..\..\runtime\core\samples\Debug -copy ..\..\..\runtime\core\samples\*.wsdl ..\..\..\runtime\core\samples\Debug -copy ..\..\..\bin\*.dll ..\..\..\runtime\core\samples\Debug -copy ..\..\..\bin\*.pdb ..\..\..\runtime\core\samples\Debug -] -Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1A52.bat" - -..\..\..\runtime\core\samples\ChangeSummarySave.xsd -..\..\..\runtime\core\samples\companysubs.xsd -..\..\..\runtime\core\samples\XSDLoading.xsd - 3 file(s) copied. -..\..\..\runtime\core\samples\XSDLoading.xml - 1 file(s) copied. -..\..\..\runtime\core\samples\*.wsdl -The system cannot find the file specified. - 0 file(s) copied. -..\..\..\bin\iconv.dll -..\..\..\bin\libxml2.dll -..\..\..\bin\tuscany_sdo.dll -..\..\..\bin\zlib1.dll - 4 file(s) copied. -..\..\..\bin\tuscany_sdo.pdb - 1 file(s) copied. - - - -

          Results

          -samples.exe - 0 error(s), 0 warning(s) -
          - - diff --git a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.dsp b/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.dsp deleted file mode 100644 index a214471157..0000000000 --- a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.dsp +++ /dev/null @@ -1,117 +0,0 @@ -# Microsoft Developer Studio Project File - Name="sdo_test" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=sdo_test - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "sdo_test.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "sdo_test.mak" CFG="sdo_test - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "sdo_test - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "sdo_test - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "sdo_test - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "sdo_test - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\runtime\core\test\Debug" -# PROP Intermediate_Dir "..\..\..\runtime\core\test\Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /Zm200 /c -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy ..\..\..\runtime\core\test\*.xsd ..\..\..\runtime\core\test\Debug copy ..\..\..\runtime\core\test\*.xml ..\..\..\runtime\core\test\Debug copy ..\..\..\bin\*.dll ..\..\..\runtime\core\test\Debug copy ..\..\..\bin\*.pdb ..\..\..\runtime\core\test\Debug copy ..\..\..\runtime\core\test\*.wsdl ..\..\..\runtime\core\test\Debug -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "sdo_test - Win32 Release" -# Name "sdo_test - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\sdotest.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\sdotest2.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\runtime\core\test\sdotest.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# Begin Source File - -SOURCE=..\build_instructions.txt -# End Source File -# End Target -# End Project diff --git a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.plg b/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.plg deleted file mode 100644 index dbf7aec9cb..0000000000 --- a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/sdo_test/sdo_test.plg +++ /dev/null @@ -1,366 +0,0 @@ - - -
          -

          Build Log

          -

          ---------------------Configuration: sdo_runtime - Win32 Debug-------------------- -

          -

          Command Lines

          -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2E.tmp" with contents -[ -/nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\runtime\core\src" /I "..\..\..\dependencies\libxml2-2.6.19.win32\include" /I "..\..\..\dependencies\iconv-1.9.1.win32\include" /I "..\..\..\dependencies\zlib-1.2.2.win32\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SDO_EXPORTS" /Fp"..\..\..\runtime\core\Debug/sdo_runtime.pch" /YX /Fo"..\..\..\runtime\core\Debug/" /Fd"..\..\..\runtime\core\Debug/" /FD /GZ /c -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangedDataObjectListImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangeSummaryBuilder.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\ChangeSummaryImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\CopyHelper.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataFactory.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataFactoryImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataGraphImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\DataObjectListImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\HelperProvider.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertyDefinition.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertyImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\PropertySetting.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Attribute.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Attributes.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Namespaces.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SAX2Parser.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SchemaInfo.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOSAX2Parser.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOSchemaSAX2Parser.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLBufferWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLFileWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLStreamWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLString.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXMLWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDBufferWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDFileWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDStreamWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SDOXSDWriter.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\SequenceImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeDefinition.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\TypeDefinitions.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLDocumentImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLHelperImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XMLQName.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDHelperImpl.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDPropertyInfo.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\src\commonj\sdo\XSDTypeInfo.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2E.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2F.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libxml2.lib /nologo /dll /incremental:yes /pdb:"..\..\..\runtime\core\Debug/tuscany_sdo.pdb" /debug /machine:I386 /out:"..\..\..\runtime\core\Debug\tuscany_sdo.dll" /implib:"..\..\..\runtime\core\Debug/tuscany_sdo.lib" /pdbtype:sept /libpath:"..\..\..\dependencies\libxml2-2.6.19.win32\lib" -\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangedDataObjectListImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummary.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummaryBuilder.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\ChangeSummaryImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\CopyHelper.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASProperty.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASType.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASValue.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DASValues.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataFactory.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataFactoryImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataGraph.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataGraphImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObject.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectInstance.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectList.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DataObjectListImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\DefaultLogWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\EqualityHelper.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\HelperProvider.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\Logger.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\LogWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\ParserErrorSetter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\Property.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyDefinition.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertyList.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\PropertySetting.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\RefCountingObject.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\RefCountingPointer.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Attribute.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Attributes.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Namespaces.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SAX2Parser.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SchemaInfo.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SdoCheck.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDODate.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SdoRuntime.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDORuntimeException.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOSAX2Parser.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOSchemaSAX2Parser.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOUtils.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLBufferWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLFileWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLStreamWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLString.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXMLWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDBufferWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDFileWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDStreamWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SDOXSDWriter.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\Sequence.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SequenceImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\Setting.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\SettingList.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\Type.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeDefinition.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeDefinitions.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\TypeList.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLDocument.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLDocumentImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLHelper.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLHelperImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XMLQName.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XpathHelper.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDHelper.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDHelperImpl.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDPropertyInfo.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\XSDTypeInfo.obj -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2F.tmp" -

          Output Window

          -Compiling... -ChangedDataObjectListImpl.cpp -ChangeSummaryBuilder.cpp -ChangeSummaryImpl.cpp -CopyHelper.cpp -DataFactory.cpp -DataFactoryImpl.cpp -DataGraphImpl.cpp -DataObjectImpl.cpp -DataObjectListImpl.cpp -HelperProvider.cpp -PropertyDefinition.cpp -PropertyImpl.cpp -PropertySetting.cpp -SAX2Attribute.cpp -SAX2Attributes.cpp -SAX2Namespaces.cpp -SAX2Parser.cpp -SchemaInfo.cpp -SDOSAX2Parser.cpp -SDOSchemaSAX2Parser.cpp -SDOXMLBufferWriter.cpp -SDOXMLFileWriter.cpp -SDOXMLStreamWriter.cpp -SDOXMLString.cpp -SDOXMLWriter.cpp -SDOXSDBufferWriter.cpp -SDOXSDFileWriter.cpp -SDOXSDStreamWriter.cpp -SDOXSDWriter.cpp -SequenceImpl.cpp -TypeDefinition.cpp -TypeDefinitions.cpp -XMLDocumentImpl.cpp -XMLHelperImpl.cpp -XMLQName.cpp -XSDHelperImpl.cpp -XSDPropertyInfo.cpp -XSDTypeInfo.cpp -Linking... - Creating library ..\..\..\runtime\core\Debug/tuscany_sdo.lib and object ..\..\..\runtime\core\Debug/tuscany_sdo.exp -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP33.bat" with contents -[ -@echo off -copy ..\..\..\runtime\core\Debug\tuscany_sdo.dll ..\..\..\bin -copy ..\..\..\runtime\core\Debug\tuscany_sdo.lib ..\..\..\lib -copy ..\..\..\runtime\core\src\commonj\sdo\Property.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\ChangedDataObjectList.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\ChangeSummary.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\CopyHelper.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DataFactory.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DataGraph.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DataObject.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectInstance.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DataObjectList.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DefaultLogWriter.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\EqualityHelper.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\export.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\HelperProvider.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\Logger.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\Logging.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\LogWriter.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\PropertyList.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingPointer.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDOCheck.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDODate.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntime.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDORuntimeException.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDOUtils.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\Sequence.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\Setting.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SettingList.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\Type.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\TypeList.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\XMLDocument.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\XMLHelper.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\XSDHelper.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\SDO.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\RefCountingObject.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\DASValue.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\XpathHelper.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\src\commonj\sdo\TypeImpl.h ..\..\..\include\commonj\sdo -copy ..\..\..\runtime\core\Debug\tuscany_sdo.pdb ..\..\..\bin -copy ..\..\..\dependencies\libxml2-2.6.19.win32\bin\libxml2.dll ..\..\..\bin -copy ..\..\..\dependencies\iconv-1.9.1.win32\bin\iconv.dll ..\..\..\bin -copy ..\..\..\dependencies\zlib-1.2.2.win32\bin\zlib1.dll ..\..\..\bin -] -Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP33.bat" -copyout - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. - 1 file(s) copied. -

          ---------------------Configuration: sdo_test - Win32 Debug-------------------- -

          -

          Command Lines

          -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP34.tmp" with contents -[ -/nologo /MLd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"..\..\..\runtime\core\test\Debug/sdo_test.pch" /YX /Fo"..\..\..\runtime\core\test\Debug/" /Fd"..\..\..\runtime\core\test\Debug/" /FD /GZ /Zm200 /c -"C:\incubator\tuscany\cpp\sdo\runtime\core\test\sdotest.cpp" -"C:\incubator\tuscany\cpp\sdo\runtime\core\test\sdotest2.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP34.tmp" -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP35.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tuscany_sdo.lib /nologo /subsystem:console /incremental:yes /pdb:"..\..\..\runtime\core\test\Debug/sdo_test.pdb" /debug /machine:I386 /out:"..\..\..\runtime\core\test\Debug/sdo_test.exe" /pdbtype:sept /libpath:"..\..\..\lib" -\incubator\tuscany\cpp\sdo\runtime\core\test\Debug\sdotest.obj -\incubator\tuscany\cpp\sdo\runtime\core\test\Debug\sdotest2.obj -\incubator\tuscany\cpp\sdo\runtime\core\Debug\tuscany_sdo.lib -] -Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP35.tmp" -

          Output Window

          -Compiling... -sdotest.cpp -sdotest2.cpp -Linking... -Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP37.bat" with contents -[ -@echo off -copy ..\..\..\runtime\core\test\*.xsd ..\..\..\runtime\core\test\Debug -copy ..\..\..\runtime\core\test\*.xml ..\..\..\runtime\core\test\Debug -copy ..\..\..\bin\*.dll ..\..\..\runtime\core\test\Debug -copy ..\..\..\bin\*.pdb ..\..\..\runtime\core\test\Debug -copy ..\..\..\runtime\core\test\*.wsdl ..\..\..\runtime\core\test\Debug -] -Creating command line "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP37.bat" - -..\..\..\runtime\core\test\47293Catalog.xsd -..\..\..\runtime\core\test\47293Customer.xsd -..\..\..\runtime\core\test\47293Order.xsd -..\..\..\runtime\core\test\axis.xsd -..\..\..\runtime\core\test\b46617b.xsd -..\..\..\runtime\core\test\b46693.xsd -..\..\..\runtime\core\test\Catalog.xsd -..\..\..\runtime\core\test\company.xsd -..\..\..\runtime\core\test\companyabs.xsd -..\..\..\runtime\core\test\companyref.xsd -..\..\..\runtime\core\test\companysubs.xsd -..\..\..\runtime\core\test\company_with_nillable_SN.xsd -..\..\..\runtime\core\test\Customer.xsd -..\..\..\runtime\core\test\doctest.xsd -..\..\..\runtime\core\test\error1.xsd -..\..\..\runtime\core\test\g3.xsd -..\..\..\runtime\core\test\graham1.xsd -..\..\..\runtime\core\test\graham2.xsd -..\..\..\runtime\core\test\graham3.xsd -..\..\..\runtime\core\test\include.xsd -..\..\..\runtime\core\test\include1.xsd -..\..\..\runtime\core\test\include2.xsd -..\..\..\runtime\core\test\includeother3.xsd -..\..\..\runtime\core\test\many.xsd -..\..\..\runtime\core\test\my-core.xsd -..\..\..\runtime\core\test\my-implementation-local-java.xsd -..\..\..\runtime\core\test\my.xsd -..\..\..\runtime\core\test\openloadNS.xsd -..\..\..\runtime\core\test\openloadNS2.xsd -..\..\..\runtime\core\test\Order.xsd -..\..\..\runtime\core\test\sca-binding-sca.xsd -..\..\..\runtime\core\test\sca-binding-webservice.xsd -..\..\..\runtime\core\test\sca-binding-ws.xsd -..\..\..\runtime\core\test\sca-core.xsd -..\..\..\runtime\core\test\sca-implementation-dll.xsd -..\..\..\runtime\core\test\sca-implementation-java.xsd -..\..\..\runtime\core\test\sca-implementation-local-java.xsd -..\..\..\runtime\core\test\sca-interface-cpp.xsd -..\..\..\runtime\core\test\sca-interface-java.xsd -..\..\..\runtime\core\test\sca-interface-wsdl.xsd -..\..\..\runtime\core\test\sca-property-java.xsd -..\..\..\runtime\core\test\sca-property-xsd.xsd -..\..\..\runtime\core\test\sca.xsd - 43 file(s) copied. -..\..\..\runtime\core\test\47293Catalog.xml -..\..\..\runtime\core\test\b46617b.xml -..\..\..\runtime\core\test\company_with_nillable_SN.xml -..\..\..\runtime\core\test\doctest.xml -..\..\..\runtime\core\test\error1.xml -..\..\..\runtime\core\test\many.xml -..\..\..\runtime\core\test\openloadNS.xml -..\..\..\runtime\core\test\openloadNS2.xml -..\..\..\runtime\core\test\partial.xml -..\..\..\runtime\core\test\testopen3.xml - 10 file(s) copied. -..\..\..\bin\iconv.dll -..\..\..\bin\libxml2.dll -..\..\..\bin\tuscany_sdo.dll -..\..\..\bin\zlib1.dll - 4 file(s) copied. -..\..\..\bin\tuscany_sdo.pdb - 1 file(s) copied. -..\..\..\runtime\core\test\StockQuoteService.wsdl - 1 file(s) copied. - - - -

          Results

          -sdo_test.exe - 0 error(s), 0 warning(s) -
          - - diff --git a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.dsw b/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.dsw deleted file mode 100644 index 67b17a2514..0000000000 --- a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.dsw +++ /dev/null @@ -1,56 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "sdo_runtime"=.\sdo_runtime\sdo_runtime.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "sdo_samples"=.\sdo_samples\sdo_samples.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "sdo_test"=.\sdo_test\sdo_test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name sdo_runtime - End Project Dependency -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.ncb b/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.ncb deleted file mode 100644 index 25e0ffd8e8..0000000000 Binary files a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.ncb and /dev/null differ diff --git a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.opt b/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.opt deleted file mode 100644 index 7e3dff73a8..0000000000 Binary files a/tags/cpp-stable-20060304/sdo/projects/tuscany_sdo/tuscany_sdo.opt and /dev/null differ diff --git a/tags/cpp-stable-20060304/sdo/readme.txt b/tags/cpp-stable-20060304/sdo/readme.txt deleted file mode 100644 index dc1b841a6a..0000000000 --- a/tags/cpp-stable-20060304/sdo/readme.txt +++ /dev/null @@ -1,72 +0,0 @@ -Tuscany SDO for C++ -=================== - - -Tuscany SDO is an implmentation of the Service Data Objects 2.0 specification for C++ developers. - -The implmentation adheres closely to the specifcation, but there are a number of features which -did not make it into this release. These are documented below. - - -Generic get/set -=============== - -The C++ implementation defines a set of access methods directly appropriate to each Type. For example -getString(), setString(), getBoolean(), setBoolean(). There is no generic get() method as there is no -common base object to return - unlike the java implementation which can return an Object. - -Typesafe interface -================== - -There is no code generation in this version, so there is no interface such that a property called -"Name" can be accessed via object->getName(). The name must be accessed via object->getString("Name"); - -Change Summary Serialization. -============================= - -Change summaries contain creations, deletions and modifications to data graphs. The specification -indicates that these will be serialized to XML such that creations and deletions will become attributes -of the change summary element, whilst changes become elements within the change summary element. -This implementation saves all creations, deletions and changes as elements within the chang summary -element. - -Change Summary Undo -=================== - -The undo method of a change summary is not implemented. - -Read-Only -========= - -Read-only data elements are not supported by this implementation. Properties may be set read-only, but -the property may still be modified without an error. - -Opposites -========= - -Opposites are not supported by this implementation. - -Date and Time -============= -Date support is limited to using a time_t. There are no calendar or duration style objects, and no -helpers for conversions. - - -BigDecimal and BigInteger -========================= - -The equivalent of the java BigDecimal and BigInteger objects are not implmented. - -NLS support -=========== - -Data objects may contain multi-byte data in the form of an SDO string, but locale information is not -stored with the data. - -The creation API only allows properties and types to have ascii names (taking a char* as the name). - -Inheritance -=========== - -Type inheritance is single only. - diff --git a/tags/cpp-stable-20060304/sdo/runtime/Makefile.am b/tags/cpp-stable-20060304/sdo/runtime/Makefile.am deleted file mode 100644 index 527708855b..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = core diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/Makefile.am b/tags/cpp-stable-20060304/sdo/runtime/core/Makefile.am deleted file mode 100644 index b4b5bc3097..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = src test diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.cpp deleted file mode 100644 index b041b99d52..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.cpp +++ /dev/null @@ -1,185 +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 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; -} diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.xsd deleted file mode 100644 index 8c5ea4a7c1..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/samples/ChangeSummarySave.xsd +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/samples/ObjectCreation.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/samples/ObjectCreation.cpp deleted file mode 100644 index ab5dd74921..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/samples/ObjectCreation.cpp +++ /dev/null @@ -1,249 +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 ObjectCreation::sample() -{ - - - cout << " ********** Sample ObjectCreation **********" << endl; - - try { - - - /** - * Get a data factory. With it we can either create metadata - * or load it from an XSD. - */ - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - /** - * Add some Types to the data factory.. - * The booleans at on addType are: - * "isSequenced", "isOpen" "isAbstract" and "isDataType" - */ - - mdg->addType("myspace","Company"); - - mdg->addType("myspace","Department"); - - /** - * Manager is going to be a sequenced type... - */ - - mdg->addType("myspace","Manager", true, false); - - mdg->addType("myspace","Employee"); - - - /** - * We will make employee and manager sub-types of 'person' - */ - - mdg->addType("myspace","Person", true, false); - - - /** - * having all the types defined, we can now define the tree - * by giving properties to the types. - */ - - /** - * We could use the API passing in name and URI for each - * Type , or get the Types back and use them directly. - * Here we get back the types to use... - */ - - const Type& tc = mdg->getType("myspace","Company"); - const Type& ts = mdg->getType("commonj.sdo","String"); - const Type& ti = mdg->getType("commonj.sdo","Integer"); - const Type& tm = mdg->getType("myspace","Manager"); - const Type& td = mdg->getType("myspace","Department"); - const Type& te = mdg->getType("myspace","Employee"); - const Type& tp = mdg->getType("myspace","Person"); - - - /** - * Example 1 - add a property of type String to type company - */ - - mdg->addPropertyToType(tc,"name",ts); - - /** - * Example 2 - add using the name of the company instead of the - * type... - */ - - mdg->addPropertyToType("myspace","Company","address",ts); - - /** - * Example 3 - add a many valued property - */ - - mdg->addPropertyToType(tc,"departments", "myspace","Department", - true); - - - /** - * Example 4 - add a reference property - */ - - mdg->addPropertyToType(tc,"employee of the month", "myspace", - "Employee",false, false, false); - - - /** - * Add other department properties... - */ - - mdg->addPropertyToType(td,"name", ts); - mdg->addPropertyToType(td,"id", ti); - mdg->addPropertyToType(td,"manager", tm); - mdg->addPropertyToType(td,"employees",te,true,false,true); - - /** - * Add a name to the person - */ - - mdg->addPropertyToType(tp,"name", ts); - - - - /** - * Make employees and mamagers both substypes of person - */ - - mdg->setBaseType(te,tp); - mdg->setBaseType(tm,tp); - - /** - * And give them different properties of their own. - */ - - mdg->addPropertyToType(tm,"officeid", ts); - mdg->addPropertyToType(te,"cubelocation", ts); - - - - /** - * The data structure looks like this: - - * Company - * ----name (String) - * ----address *String) - * ----departments (Department, many valued) - * ----employee of the month ( Employee - reference) - - * Person - * ----name (String) - - * Employee - * ----name (String - inherited from Person) - * ----cubelocation (String) - - * Manager - * ----name (String - inherited from Person) - * ----officeid (String) - - * Department - * ----name (String) - * ----id (Integer) - * ---- manager (Manager) - * ---- employees (Employee - many valued) - - - /** - * create an object of type Company using the DataFactory - */ - - DataObjectPtr dor = mdg->create((Type&)tc); - - /** - * Set the company name to Acme - */ - - dor->setCString("name","Acme"); - - /** - * Set up the two departments - using the - * DataObject createDataObject API - */ - - DataObjectPtr dep1 = dor->createDataObject("departments"); - dep1->setCString("name","Development"); - dep1->setInteger("id",100); - - DataObjectPtr man1 = dep1->createDataObject("manager"); - man1->setCString("name","Herve Jones"); - - DataObjectPtr dep2= dor->createDataObject("departments"); - dep2->setCString("name","Marketing"); - dep2->setInteger("id",200); - - DataObjectPtr man2 = dep2->createDataObject("manager"); - man1->setCString("name","August Phan"); - - /** - * Give the departments some employees - */ - - DataObjectPtr emp1 = dep1->createDataObject("employees"); - emp1->setCString("name","Fred Appleby"); - emp1->setCString("cubelocation","100-A"); - - DataObjectPtr emp2 = dep1->createDataObject("employees"); - emp2->setCString("name","Jane Bloggs"); - emp2->setCString("cubelocation","100-B"); - - DataObjectPtr emp3 = dep2->createDataObject("employees"); - emp3->setCString("name","Robin Corbet"); - emp3->setCString("cubelocation","200-A"); - - DataObjectPtr emp4 = dep2->createDataObject("employees"); - emp4->setCString("name","Martha Denby"); - emp4->setCString("cubelocation","200-B"); - - cout << "Company Name:" << dor->getCString("name") << endl; - - DataObjectList& depts = dor->getList("departments"); - for (int i=0;igetCString("name") << endl; - - DataObjectList& emps = depts[i]->getList("employees"); - - for (int j=0;jgetCString("name") << endl; - } - } - } - catch (SDORuntimeException e) - { - cout << "Exception in ObjectCreation" <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." <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; -} diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/samples/Substitutes.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/samples/Substitutes.cpp deleted file mode 100644 index abf30ff2ca..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/samples/Substitutes.cpp +++ /dev/null @@ -1,118 +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 Substitutes::sample() -{ - cout << " ********** Substitutes sample *************" << endl; - try - { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("companysubs.xsd"); - - /** - * The companysubs xsd defines some types including a - * type which allows substitutions. The PublicationType is - * the base of BookType and MagazineType, and the substitutions - * are enabled so that properties can be either. - */ - - const Type& tstring = mdg->getType("commonj.sdo","String"); - const Type& tcomp = mdg->getType("companyNS","CompanyType"); - const Type& book = mdg->getType("companyNS","BookType"); - const Type& mag = mdg->getType("companyNS","MagazineType"); - const Type& pub = mdg->getType("companyNS","PublicationType"); - - - /** - * Create some data to work with - */ - - DataObjectPtr comp = mdg->create((Type&)tcomp); - comp->setCString("name","Puflet Publishing"); - - - DataObjectPtr book1 = mdg->create(book); - book1->setCString("author","Mr P B Writer"); - - /** - * book has a title property because it inherits from Publication - */ - book1->setCString("title","Nowhere Man"); - - - DataObjectPtr mag1 = mdg->create(mag); - - /** - * Magazine has an eidtor, and a title inherited from publication - */ - - mag1->setCString("editor","Mr B Picky"); - // inherited from publication - mag1->setCString("title","Bionicle Weekly"); - - - DataObjectPtr pub1 = mdg->create(pub); - pub1->setCString("title","Noddy In Toyland"); - - - /** - * The property "Publication" is defined as substitutable, so - * any of the book, magazine or publication should be - * acceptable values. When the type is queried, the type - * returned should correspond to the current type of the - * property... - */ - - comp->setDataObject("Publication",pub1); - const Type& tpub1 = comp->getDataObject("Publication")->getType(); - cout << "Publication is now of type " << tpub1.getName() << endl; - - comp->setDataObject("Publication",book1); - const Type& tpub2 = comp->getDataObject("Publication")->getType(); - cout << "Publication now is of type " << tpub2.getName() << endl; - - comp->setDataObject("Publication",mag1); - const Type& tpub3 = comp->getDataObject("Publication")->getType(); - cout << "Publication now is of type " << tpub3.getName() << endl; - - /** - * As the substitutes have names, they act as a sort of - * alias, so we can address Publication as Book or Magazine too - */ - - comp->setDataObject("Book",book1); - const Type& tpub4 = comp->getDataObject("Book")->getType(); - cout << "Book is of type " << tpub4.getName() << endl; - - comp->setDataObject("Magazine",mag1); - const Type& tpub5 = comp->getDataObject("Magazine")->getType(); - cout << "Magazine is of type " << tpub5.getName() << endl; - - } - catch (SDORuntimeException e) - { - cout << "Exception in Substitutes"<< endl; - cout<< e; - } - cout << " ********** Sample ends ********************" << endl; -} diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.cpp deleted file mode 100644 index d1b413d2b6..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.cpp +++ /dev/null @@ -1,108 +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 XSDLoading::sample() -{ - int i,j; - - cout << " ********** XSDLoading Sample **************" << endl; - try - { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - /** - * Get an XSD helper to load XSD information into the - * data factory - */ - - XSDHelperPtr myXSDHelper = HelperProvider::getXSDHelper(mdg); - myXSDHelper->defineFile("XSDLoading.xsd"); - - /** - * Check if there were any errors. The parse may still - * succeed, but errors indicate some elements were not - * understood - */ - - if ((i = myXSDHelper->getErrorCount()) > 0) - { - cout << "XSD Loading reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - - /** - * Use the same data factory to load XML corresponding to - * data objects adhering to the previously loaded schema - */ - - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("XSDLoading.xml", "companyNS"); - - /** - * Check if there were any errors. The parse may still - * succeed, but errors indicate some elements did not match - * the schema, or were malformed. - * - */ - - if ((i = myXMLHelper->getErrorCount()) > 0) - { - cout << "XML Loading reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - - DataObjectPtr newdob = myXMLDocument->getRootDataObject(); - - cout << "Company Name:" << newdob->getCString("name") << endl; - - DataObjectList& depts = newdob->getList("departments"); - for (int i=0;igetCString("name") << endl; - - DataObjectList& emps = depts[i]->getList("employees"); - - for (int j=0;jgetCString("name") << endl; - } - } - - } - catch (SDORuntimeException e) - { - cout << "Exception in XSD Loading test" << endl; - cout << e; - } - cout << " ********** Sample ends ********************" << endl; -} diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xml b/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xml deleted file mode 100644 index cc6e93e4bb..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - -Jane Doe - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xsd deleted file mode 100644 index 3738da590f..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/samples/XSDLoading.xsd +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/samples/companysubs.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/samples/companysubs.xsd deleted file mode 100644 index 2ffb626e90..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/samples/companysubs.xsd +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.cpp deleted file mode 100644 index 1841d4f845..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.cpp +++ /dev/null @@ -1,34 +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" - -/** - * C main to run the sample - */ - -int main (int argc, char** argv) -{ - ObjectCreation::sample(); - XSDLoading::sample(); - ChangeSummarySave::sample(); - Substitutes::sample(); - Query::sample(); - return 0; -} diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.h b/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.h deleted file mode 100644 index c22e2cd1b4..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/samples/samples.h +++ /dev/null @@ -1,50 +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 "commonj/sdo/SDO.h" - - -using namespace commonj::sdo; - - - -class ObjectCreation { - public: - static void sample(); -}; - -class XSDLoading { - public: - static void sample(); -}; - -class ChangeSummarySave { - public: - static void sample(); -}; - -class Substitutes { - public: - static void sample(); -}; - -class Query { - public: - static void sample(); -}; \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtbuild b/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtbuild deleted file mode 100644 index 7c9117ffae..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtbuild +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtproject b/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtproject deleted file mode 100644 index 48a12e6664..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/.cdtproject +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/.project b/tags/cpp-stable-20060304/sdo/runtime/core/src/.project deleted file mode 100644 index a24e25672e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/.project +++ /dev/null @@ -1,19 +0,0 @@ - - - tuscany_sdo - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.ccnature - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tags/cpp-stable-20060304/sdo/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs deleted file mode 100644 index 37a23c6dd7..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Wed Feb 15 15:54:27 GMT 2006 -eclipse.preferences.version=1 -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.debug.804736841=\n\n\n\n\n -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.so.release.1588435275=\n\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.debug.804736841=\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.so.release.1588435275=\n\n\n\n -environment/project=\n\n -environment/project/cdt.managedbuild.config.gnu.so.debug.804736841=\n\n\n\n -environment/project/cdt.managedbuild.config.gnu.so.release.1588435275=\n\n\n\n diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/Makefile.am b/tags/cpp-stable-20060304/sdo/runtime/core/src/Makefile.am deleted file mode 100644 index 4b2ab22e87..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/Makefile.am +++ /dev/null @@ -1,81 +0,0 @@ -SUBDIRS = commonj - -nobase_include_HEADERS = \ -commonj/sdo/ChangedDataObjectList.h \ -commonj/sdo/ChangedDataObjectListImpl.h \ -commonj/sdo/ChangeSummaryBuilder.h \ -commonj/sdo/ChangeSummary.h \ -commonj/sdo/ChangeSummaryImpl.h \ -commonj/sdo/CopyHelper.h \ -commonj/sdo/DASProperty.h \ -commonj/sdo/DASType.h \ -commonj/sdo/DASValue.h \ -commonj/sdo/DASValues.h \ -commonj/sdo/DataFactory.h \ -commonj/sdo/DataFactoryImpl.h \ -commonj/sdo/DataGraph.h \ -commonj/sdo/DataGraphImpl.h \ -commonj/sdo/DataObject.h \ -commonj/sdo/DataObjectImpl.h \ -commonj/sdo/DataObjectInstance.h \ -commonj/sdo/DataObjectList.h \ -commonj/sdo/DataObjectListImpl.h \ -commonj/sdo/DefaultLogWriter.h \ -commonj/sdo/disable_warn.h \ -commonj/sdo/EqualityHelper.h \ -commonj/sdo/export.h \ -commonj/sdo/HelperProvider.h \ -commonj/sdo/Logger.h \ -commonj/sdo/Logging.h \ -commonj/sdo/LogWriter.h \ -commonj/sdo/ParserErrorSetter.h \ -commonj/sdo/PropertyDefinition.h \ -commonj/sdo/Property.h \ -commonj/sdo/PropertyImpl.h \ -commonj/sdo/PropertyList.h \ -commonj/sdo/PropertySetting.h \ -commonj/sdo/RefCountingObject.h \ -commonj/sdo/RefCountingPointer.h \ -commonj/sdo/SAX2Attribute.h \ -commonj/sdo/SAX2Attributes.h \ -commonj/sdo/SAX2Namespaces.h \ -commonj/sdo/SAX2Parser.h \ -commonj/sdo/SchemaInfo.h \ -commonj/sdo/SdoCheck.h \ -commonj/sdo/SDODate.h \ -commonj/sdo/SDO.h \ -commonj/sdo/SDORuntimeException.h \ -commonj/sdo/SdoRuntime.h \ -commonj/sdo/SDOSAX2Parser.h \ -commonj/sdo/SDOSchemaSAX2Parser.h \ -commonj/sdo/SDOSPI.h \ -commonj/sdo/SDOUtils.h \ -commonj/sdo/SDOXMLBufferWriter.h \ -commonj/sdo/SDOXMLFileWriter.h \ -commonj/sdo/SDOXMLStreamWriter.h \ -commonj/sdo/SDOXMLString.h \ -commonj/sdo/SDOXMLWriter.h \ -commonj/sdo/SDOXSDBufferWriter.h \ -commonj/sdo/SDOXSDFileWriter.h \ -commonj/sdo/SDOXSDStreamWriter.h \ -commonj/sdo/SDOXSDWriter.h \ -commonj/sdo/Sequence.h \ -commonj/sdo/SequenceImpl.h \ -commonj/sdo/Setting.h \ -commonj/sdo/SettingList.h \ -commonj/sdo/TypeDefinition.h \ -commonj/sdo/TypeDefinitions.h \ -commonj/sdo/Type.h \ -commonj/sdo/TypeImpl.h \ -commonj/sdo/TypeList.h \ -commonj/sdo/XMLDocument.h \ -commonj/sdo/XMLDocumentImpl.h \ -commonj/sdo/XMLHelper.h \ -commonj/sdo/XMLHelperImpl.h \ -commonj/sdo/XMLQName.h \ -commonj/sdo/XpathHelper.h \ -commonj/sdo/XSDHelper.h \ -commonj/sdo/XSDHelperImpl.h \ -commonj/sdo/XSDPropertyInfo.h \ -commonj/sdo/XSDTypeInfo.h - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/Makefile.am b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/Makefile.am deleted file mode 100644 index 82055487b0..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = sdo diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.cpp deleted file mode 100644 index 42e45603ce..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.cpp +++ /dev/null @@ -1,28 +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 "commonj/sdo/Logger.h" - -#include "commonj/sdo/ChangeSummary.h" -namespace commonj{ -namespace sdo{ - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.h deleted file mode 100644 index 16c0ac64c8..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummary.h +++ /dev/null @@ -1,208 +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 $ */ - -#ifndef _CHANGESUMMARY_H_ -#define _CHANGESUMMARY_H_ -#include "commonj/sdo/export.h" - - -#include "commonj/sdo/SettingList.h" -#include "commonj/sdo/ChangedDataObjectList.h" - - -using namespace std; -namespace commonj{ -namespace sdo { - - /** - * - * A change summary is used to record changes to the objects in a data graph. - * This allows applications to efficiently and incrementally update - * back-end storage when required. - */ - - class ChangeSummary - { - public: - - /** getChangedDataObjects() returns a list of changed objects. - * - * The new and modified objects in the list are references to objects that - * are associated with this change summary. - * The deleted objects in the list are references to copies of the objects - * as they appeared at the time that event logging was enabled; - * if the deleted objects have references to other objects, - * the references will also refer to copies of the target objects. - * Return a list of changed data objects. - */ - - virtual SDO_API ChangedDataObjectList& getChangedDataObjects() = 0; - - - /** getOldValues returns a list of old values as settings. - * - * Returns a list of Settings - * that represent the property values of the given dataObject - * at the point when logging began. - * In the case of a deleted object, - * the list will include Settings for all the properties. - * An old value Setting indicates the value at the - * point logging begins. A setting is only produced for - * modified objects if either the old value differs from the current value or - * if the isSet differs from the current value. - * No Settings are produced for created objects. - * Param dataObject the object in question. - * Return a list of settings. - */ - - virtual SDO_API SettingList& getOldValues(DataObjectPtr dataObject) = 0; - - /** getOldXpath returns the old path before the setting. - * - * Returns a path where the object was located before the setting took place. - */ - - - virtual SDO_API const char* getOldXpath(RefCountingPointer dol) = 0; - - /** beginLogging() sets the change summary in logging mode. - * - * The change summary is initially inactive. Setting it to logging mode - * starts the process of recording all the settings made. - */ - - virtual SDO_API void beginLogging() = 0; - - /** endLogging() stops logging. - * - * This method stops logging, but does not clear out the change summary. - * The changes are valid until the summary is next set to logging, at which time - * all old settings are lost. - */ - - virtual SDO_API void endLogging() = 0; - - - - /** isLogging() returns true if logging is enabled. - * - * Indicates whether change logging is on (true) or off (false). - */ - - virtual SDO_API bool isLogging() = 0; - - - - /** isCreated() returns true if the object was created during logging. - * - * Returns whether or not the specified data object was created while logging. - * Any object that was added to the data graph - * but was not in the data graph when logging began, - * will be considered created. - * Param dataObject the data object in question. - * Return true if the specified data object was created. - */ - - virtual SDO_API bool isCreated(DataObjectPtr dataObject) = 0; - - /** isDeleted() - true if the object was deleted during logging. - * - * Returns whether or not the specified data object was deleted while logging. - * Any object that is not contained by the data graph will be considered - * deleted. - * Param dataObject the data object in question. - * Return true if the specified data object was deleted. - */ - - virtual SDO_API bool isDeleted(DataObjectPtr dataObject) = 0; - - - /** isModified() - true if the object was changed during logging. - * - * Returns whether or not the specified data object was updated while logging. - * An object that was contained in the data graph when logging began, - * and remains in the graph when logging ends will be considered for changes. - * An object considered modified must have at least one old value Setting. - * Param dataObject the data object in question. - * Return true if the specified data object was modified. - */ - - virtual SDO_API bool isModified(DataObjectPtr dataObject) = 0; - - /** getOldValue() gets the setting showing the old value. - * - * Returns a setting for the specified property - * representing the property value of the given dataObject - * at the point when logging began. - * Returns null if the property has not changed and - * has not been deleted. - * Param dataObject the object in question. - * Param property the property of the object. - * Return the Setting for the specified property. - */ - - virtual SDO_API const Setting& getOldValue(DataObjectPtr dataObject, const Property& property) = 0; - - /** getOldContainer() gets the container before the setting. - * - * Returns the value of the container data object - * at the point when logging began. - * Param dataObject the object in question. - * Return the old container data object. - */ - - virtual SDO_API DataObjectPtr getOldContainer(DataObjectPtr dataObject) = 0; - - /** getOldContainmentProperty() - gives the property before setting. - * - * Returns the value of the containment property data object property - * at the point when logging began. - * Param dataObject the object in question. - * Return the old containment property. - */ - - virtual SDO_API const Property& getOldContainmentProperty(DataObjectPtr dataObject) = 0; - - /** undoChanges() - Not Implemented. - * - * NOT IMPLEMENTED - * - * Undoes all changes in the log to restore the tree of - * DataObjects to its original state when logging began. - * isLogging() is unchanged. The log is cleared. - */ - - virtual SDO_API void undoChanges() = 0; - - /** getOldSequence() - Not Implemented. - * - * NOT IMPLEMENTED - * - * This method gives back the sequence of a data object as it - * appeared when logging was switched on. The data object may be - * a deleted data object or a changed data object. If the - * data object was not sequenced, this returns null. - */ - - virtual SDO_API SequencePtr getOldSequence(DataObjectPtr dataObject) = 0; - -}; -}; -}; -#endif //_CHANGESUMMARY_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.cpp deleted file mode 100644 index 46146d0045..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.cpp +++ /dev/null @@ -1,1144 +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 "commonj/sdo/ChangeSummaryBuilder.h" - -#include "commonj/sdo/SDORuntimeException.h" -#include "commonj/sdo/ChangeSummary.h" -#include "commonj/sdo/XSDPropertyInfo.h" -#include "commonj/sdo/XMLQName.h" -#include "commonj/sdo/DASProperty.h" -#include "commonj/sdo/Logging.h" - -namespace commonj -{ - namespace sdo - { - -// ======================================================================== -// Constructor/Destructor -// ======================================================================== - - ChangeSummaryBuilder::ChangeSummaryBuilder( - DataFactoryPtr df, - DataObjectPtr& rootDO) - - : dataFactory(df), - rootDataObject(rootDO) - - - { - LOGINFO(INFO,"CSBuilder constructor"); - currentState = baseState; - } - - ChangeSummaryBuilder::~ChangeSummaryBuilder() - { - LOGINFO(INFO,"CSBuilder destructor"); - } - - -// ======================================================================== -// Deletion handling -// ======================================================================== - - void ChangeSummaryBuilder::populateDeletion(ChangeSummaryImpl* csi,DataObjectPtr dob, - int currentIndex) - { - LOGENTRY(INFO,"CSBuilder populateDeletion"); - try { - - std::list::iterator attributesiter; - std::list::iterator elementsiter; - - for (attributesiter= deletions[currentIndex].attributes.begin(); - attributesiter!= deletions[currentIndex].attributes.end(); - ++attributesiter) - { - - LOGINFO_1(INFO,"CSBuilder Populate deletion attribute:%s", - (const char*)((*attributesiter).name)); - - dob->setCString((const char*)((*attributesiter).name), - (const char*)((*attributesiter).value)); - } - for (elementsiter= deletions[currentIndex].elements.begin(); - elementsiter!= deletions[currentIndex].elements.end(); - ++elementsiter) - { - - LOGINFO_1(INFO,"CSBuilder:Populate deletion element:%s", - (const char*)((*elementsiter).name)); - - SDOXMLString value = (*elementsiter).value; - SDOXMLString prop = (*elementsiter).name; - - if ((*elementsiter).isDeletion) - { - for (int i = 0; i < deletions.size(); i++) - { - if (value.equals (deletions[i].reference)) - { - if (deletions[i].dob == 0) - { - handleDeletion(csi,i,dob,(*elementsiter).value, - (*elementsiter).name); - } - // dob may have been set by the line above. - if (deletions[i].dob != 0) - { - DataObjectList& dli = dob->getList(prop); - dli.insert(0,deletions[i].dob); - } - break; - } - } - } - else - { - DataObjectList& dli = dob->getList(prop); - dli.append((const char*)value); - } - } - } - catch (SDORuntimeException e) - { - LOGSDOEXCEPTION(ERROR,"Error populating a deletion record",e); - } - LOGEXIT(INFO,"CSBuilder populateDeletion"); - return; - } - - -// ======================================================================== -// Deletion handling -// ======================================================================== - - void ChangeSummaryBuilder::handleDeletion( - ChangeSummaryImpl* csi, - int currentIndex, - DataObjectPtr cont, - SDOXMLString path, - SDOXMLString prop) - { - LOGENTRY(INFO,"CSBuilder handleDeletion(2)"); - - if (deletions[currentIndex].completedprocessing) - { - LOGEXIT(INFO,"CSBuilder handleDeletion(2) - Exit1"); - return; - } - - const Property& p = cont->getProperty(prop); - DataObjectPtr dob = dataFactory->create( - p.getType()); - populateDeletion(csi,dob,currentIndex); - deletions[currentIndex].dob = dob; - deletions[currentIndex].completedprocessing=true; - csi->appendToDeletions(p,dob,cont,path); - - LOGEXIT(INFO,"CSBuilder handleDeletion(2) - Exit2"); - - return; - } - -// ======================================================================== -// Deletion handling -// ======================================================================== - - void ChangeSummaryBuilder::handleDeletion( - ChangeSummaryImpl* csi, - int currentIndex, - SDOXMLString path) - { - - // find the original container - and see if it - // still exists. - // supposing the container doesnt exist, we need - // to process the deletion of that one first, or - // locate it in the already deleted elements. - - LOGENTRY(INFO,"CSBuilder:handleDeletion"); - - if (deletions[currentIndex].completedprocessing) - { - LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit1"); - return; - } - - int index = path.lastIndexOf('/'); - if (index < 0) - { - LOGERROR(WARNING,"CSBuilder logs deletion of the root object - not possible"); - LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit2"); - return; - } - - SDOXMLString prop = - path.substring(index+1); - SDOXMLString contpath = - path.substring(0,index); - - index = prop.lastIndexOf('.'); - if (index >= 0) prop = prop.substring(0,index); - - index = prop.lastIndexOf('['); - if (index >= 0) prop = prop.substring(0,index); - - DataObjectPtr cont; - - if (contpath.isNull()) - { - cont = rootDataObject; - - LOGINFO_1(INFO,"Handling deletion from root of %s",(const char*)prop); - } - else - { - try { - cont = rootDataObject->getDataObject(contpath); - LOGINFO_2(INFO,"Handling deletion from %s of %s", - (const char*)contpath,(const char*)prop); - } - catch (SDORuntimeException e) - { - cont = 0; - LOGINFO(INFO,"Container was a deleted object"); - } - } - - if (cont != 0) - { - handleDeletion(csi,currentIndex,cont,path,prop); - LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit3"); - return; - } - else - { - // this data object was also deleted - cont = csi->matchDeletedObject(contpath); - if (cont != 0) - { - // we found a previously deleted object for - // the container. - handleDeletion(csi,currentIndex,cont,path,prop); - LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit4"); - return; - } - - } - - // it could be a deletion which has not been processed yet - for (int i = 0; i < deletions.size(); i++) - { - if (contpath.equals (deletions[i].reference)) - { - // matching deletion found - if (i == currentIndex) - { - LOGERROR(WARNING,"Loop detected in handling deletes"); - LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit5"); - return; - } - // Handle the deletion first - handleDeletion(csi,i,contpath); - LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit6"); - return; - } - } - LOGERROR(WARNING,"Failed to find a matching delete "); - LOGEXIT(INFO,"CSBuilder:handleDeletion - Exit7"); - return; - } - -// ======================================================================== -// Deletion handling -// ======================================================================== - - SDOXMLString ChangeSummaryBuilder::shiftedIndex(int index) - { - int pos = createDeletes[index].value.lastIndexOf('.'); - if (pos < 0) return createDeletes[index].value; - - int val = atoi((const char*)(createDeletes[index]. - value.substring(pos+1))); - - char buf[10]; - - sprintf(buf, ".%d", val + createDeletes[index].indexshift); - - return createDeletes[index].value.substring(0,pos) + buf; - } - -// ======================================================================== -// Deletion handling -// ======================================================================== - - void ChangeSummaryBuilder::shiftIndices(int index, int delta) - { - int pos = createDeletes[index].value.lastIndexOf('.'); - if (pos < 0) return; - - SDOXMLString refstring = createDeletes[index].value.substring(0,pos); - pos = atoi((const char*)(createDeletes[index].value.substring(pos+1))); - - for (int k=index+1;k= pos) - { - createDeletes[k].indexshift += delta; - } - } - } - -// ======================================================================== -// Rebuilding of a change summary from the lists -// ======================================================================== - - void ChangeSummaryBuilder::buildChangeSummary( - DataObjectPtr changeSummaryDO) - { - LOGENTRY(INFO,"CSBuilder:buildChangeSummary"); - - int i; - - try { - if (changeSummaryDO == 0) - { - // there is no summary data object to rebuild - LOGEXIT(INFO,"CSBuilder:buildChangeSummary Exit1"); - return; - } - ChangeSummary* cs = changeSummaryDO->getChangeSummary(); - if (cs == 0) - { - // there is no change summary - this shouldnt happen - LOGEXIT(INFO,"CSBuilder:buildChangeSummary Exit2"); - return; - } - - ChangeSummaryImpl* csi = (ChangeSummaryImpl*)cs; - - // add the creations and deletions in order - - for (i = 0; i < createDeletes.size(); i++) - { - - LOGINFO_1(INFO,"CSBuilder:create/delete:%s", - (const char*)(createDeletes[i].value)); - - SDOXMLString thispath; - - if (createDeletes[i].indexshift != 0) - { - thispath = shiftedIndex(i); - } - else - { - thispath = createDeletes[i].value; - } - - if (!createDeletes[i].type.equals("delete")) - { - DataObjectPtr dob; - if (thispath.isNull()) - { - dob = rootDataObject; - } - else - { - dob = rootDataObject->getDataObject(thispath); - } - if (dob != 0) { - - LOGINFO(INFO,"CSBuilder:add create to change summary"); - - csi->appendToCreations(dob->getContainmentProperty(), - dob, dob->getContainer()); - shiftIndices(i,-1); - } - else - { - LOGERROR_1(WARNING,"Failed to find object at %s", - (const char*)createDeletes[i].value); - } - } - else - { - // its a deletion - match it. - for (int j = 0; j < deletions.size(); j++) - { - if (deletions[j].completedprocessing)continue; - - if (thispath.equals (deletions[j].reference)) - { - // matching deletion found - LOGINFO_1(INFO,"CSBuilder:matched delete:%s", - (const char*)deletions[j].reference); - - handleDeletion(csi, j,createDeletes[i].value); - // update the path on any higher items in the current - // many-valued property. - shiftIndices(i,1); - - break; - } - } - } - } - - // add the changes - - std::list::iterator a; - std::list::iterator e; - - for (i = 0; i< changes.size(); i++) - { - DataObjectPtr dob; - if (changes[i].reference.isNull()) - { - dob = rootDataObject; - } - else - { - dob = rootDataObject->getDataObject(changes[i].reference); - } - if (dob != 0) - { - LOGINFO_1(INFO,"Located a change at %s", - (const char*)changes[i].reference); - - // Need to get the changelogitem, and append settings to - // it.Append attributes - - for (a=changes[i].attributes.begin(); - a != changes[i].attributes.end();++a) - { - const Property& p = dob->getProperty((const char*)((*a).name)); - if (p.getType().isDataType()) - { - csi->appendToChanges( - p,dob,(*a).value,0); - } - else - { - for (int j = 0; j < deletions.size(); j++) - { - if ((*a).value.equals (deletions[j].reference)) - { - csi->appendToChanges( - p,dob,deletions[j].dob,0); - break; - } - } - } - } - for (e=changes[i].elements.begin(); - e != changes[i].elements.end();++e) - { - const Property& p = dob->getProperty - ((const char*)((*e).name)); - if ((*e).isDeletion) - { - - LOGINFO_1(INFO,"CSBuilder Change was a deletion of:%s", - (const char*)((*e).path)); - - for (int j = 0; j < deletions.size(); j++) - { - if ((*e).path.equals (deletions[j].reference)) - { - // matching deletion found - if (deletions[j].dob != 0) - { - csi->appendToChanges( - p,dob,deletions[j].dob,(*e).index); - } - break; - } - } - } - else if ((*e).isReference) - { - LOGINFO_2(INFO,"CSBuilder:Change was a reference from:%s to %s" , - (const char*)((*e).path), - (const char*)((*e).value)); - - DataObjectPtr pdob = rootDataObject->getDataObject((*e).value); - if (pdob != 0) - { - csi->appendToChanges(p,dob,pdob,(*e).index); - } - } - else - { - LOGINFO_1(INFO,"CSBuilder:Change was a many valued item:%s" , - (const char*)((*e).name)); - - csi->appendToChanges(p,dob,(*e).value,(*e).index); - } - - } - } - else - { - LOGERROR_1(WARNING,"CSBuilder:Failed to find object at %s", - (const char*)(changes[i].reference)); - } - } - } - catch (SDORuntimeException e) - { - LOGSDOEXCEPTION(ERROR,"CSBuilder:Error rebuilding change summary",e); - } - LOGEXIT(INFO,"CSBuilder:buildChangeSummary Exit3"); - } - -// ======================================================================== -// Parsing code -// ======================================================================== - - void ChangeSummaryBuilder::processStart( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - char cbuf[32]; - int i; - - LOGENTRY(INFO,"CSBuilder:processStart"); - - if (currentState == baseState) - { - if (localname.equalsIgnoreCase("create") || - localname.equalsIgnoreCase("delete")) - { - currentState = dealingWithCreateDelete; - // will be expecting a chars message to give the - // contents - - createDeletes.insert( - createDeletes.end(),createDelete(localname)); - - LOGINFO_1(INFO,"CSBuilder: Processing a %s",(const char*)localname); - LOGEXIT(INFO,"CSBuilder:processStart Exit1"); - return; - } - else - { - // we are starting a new change record here - currentState = dealingWithChange; - - // we expect the entry to have an sdo:ref, and possibly - // some attributes for the changed single-values - SDOXMLString ref = attributes.getValue("ref"); - - if (ref.isNull()) - { - LOGERROR(INFO,"CSBuilder:Problem with change reference"); - ref = SDOXMLString("Unknown"); - } - - currentChange = change(localname, ref); - - LOGINFO_2(INFO,"CSBuilder: Processing a change:%s:%s", - (const char*)localname, - (const char*)ref); - - currentLocation.clear(); - - if (ref.equals("#/")) - { - ref = SDOXMLString("#"); - } - - currentLocation.push_back(ref); - - // clear out the change state - if there was any. - - changeIndex = 0; - previousChange = SDOXMLString(""); - - // now insert any remaining attributes of this change - - for (i=0; i < attributes.size(); i++) - { - // push all the attributes into the change record. - SDOXMLString name = attributes[i].getName(); - if (!name.equalsIgnoreCase("ref")) - { - SDOXMLString value = attributes[i].getValue(); - currentChange.addAttribute( - changeAttribute(name,value)); - } - } - } - LOGEXIT(INFO,"CSBuilder:processStart Exit2"); - return; - } - - // We are not in the base state - we could be in a change or a deletion - // We are now dropping into an element, which could be either a many-valued - // primitive type, or a placeholder in list of deletions, or a deletion - // record. - - if (currentState == dealingWithChange) - { - - if (!previousChange.equals(localname)) - { - changeIndex = 0; - previousChange = localname; - } - else - { - changeIndex++; - } - - - sprintf(cbuf,"%d",changeIndex); - currentLocation.push_back(localname + "." + cbuf); - - // build the current location... - SDOXMLString curr_loc = ""; - - if (currentLocation.size() > 0) - { - for (int pi = 0; pi < currentLocation.size()-1; pi++) - { - curr_loc = curr_loc + currentLocation[pi]; - curr_loc = curr_loc + "/"; - } - curr_loc = curr_loc + currentLocation[currentLocation.size()-1]; - } - - LOGINFO_1(INFO,"CSBuilder: Dropping into an element of a change:%s", - (const char*)localname); - LOGINFO_1(INFO,"CSBuilder:currentLocation:%s", - (const char*)curr_loc); - - // First case - its a placeholder for an element in a list - // all we have to do is keep track of the list index. - - if (attributes.size() == 1) - { - SDOXMLString name = attributes[0].getName(); - if (name.equalsIgnoreCase("ref")) - { - currentState = dealingWithChangeElement; - currentChange.addElement( - changeElement(localname, curr_loc, - attributes[0].getValue(), true, false)); - - LOGEXIT(INFO,"CSBuilder:processStart Exit3"); - return; - } - } - - if (attributes.size() == 0) - { - // It could be a many-valued primitive, or - // a deletion with no attributes - // can we match the current path to a known deletion? - - bool isDelete = false; - - for (int i = 0; i < createDeletes.size(); i++) - { - if (createDeletes[i].type.equals("delete")) - { - if (curr_loc.equals(createDeletes[i].value)) - { - LOGINFO(INFO,"CSBuilder: An existing delete was found"); - - isDelete = true; - break; // out of the for loop - } - } - } - if (!isDelete) - { - LOGINFO(INFO,"CSBuilder: Change with no atts and not deletion- an element"); - - // and will get picked up by the 'characters' method. - currentState = dealingWithChangeElement; - currentLocalName = SDOXMLString(localname); - - LOGEXIT(INFO,"CSBuilder:processStart Exit4"); - return; - } - } - - currentChange.addElement(changeElement(localname, curr_loc, false, true)); - currentDeletion = deletion(localname, curr_loc); - - LOGINFO_2(INFO,"CSBuilder: Found a deletion:%s:%s", - (const char*)localname, - (const char*)curr_loc); - - - // clear out the change state - if there was any. - deletionLevel = 0; - deletionIndex = 0; - previousDeletion = SDOXMLString(""); - - currentState = dealingWithDeletion; - - // Now add the attributes if there are any. - - for (int i=0; i < attributes.size(); i++) - { - // push all the attributes into the deletion record. - SDOXMLString name = attributes[i].getName(); - if (!name.equalsIgnoreCase("ref")) - { - SDOXMLString value = attributes[i].getValue(); - currentDeletion.addAttribute( - deletionAttribute(name,value)); - } - } - - LOGEXIT(INFO,"CSBuilder:processStart Exit5"); - return; - } - if (currentState == dealingWithDeletion) - { - // we are already in a deletion, and entering an element - if (!previousDeletion.equals(localname)) - { - deletionIndex = 0; - previousDeletion = localname; - } - else - { - deletionIndex++; - } - - sprintf(cbuf,"%d",deletionIndex); - currentLocation.push_back(localname + "." + cbuf); - - // First case - its a placeholder for an element in a list - // all we have to do is keep track of the list index. - - if (attributes.size() == 1) - { - SDOXMLString name = attributes[0].getName(); - if (name.equalsIgnoreCase("ref")) - { - LOGINFO(INFO,"CSBuilder: The element is a reference to an existing entry in a list"); - - currentState = dealingWithDeletionElement; - - LOGEXIT(INFO,"CSBuilder:processStart Exit6"); - return; - } - } - - SDOXMLString curr_loc = ""; - if (currentLocation.size() > 0) - { - for (int pi = 0; pi < currentLocation.size()-1; pi++) - { - curr_loc = curr_loc + currentLocation[pi]; - curr_loc = curr_loc + "/"; - } - curr_loc = curr_loc + currentLocation[currentLocation.size()-1]; - } - - if (attributes.size() == 0) - { - // It could be a many-valued primitive, or - // a deletion with no attributes - // can we match the current path to a known deletion? - bool isDelete = false; - - for (int i = 0; i < createDeletes.size(); i++) - { - if (createDeletes[i].type.equals("delete")) - { - if (curr_loc.equals(createDeletes[i].value)) - { - LOGINFO(INFO,"CSBuilder: An existing delete was found - its a delete"); - - isDelete = true; - break; // out of the for loop - } - } - } - if (!isDelete) - { - LOGINFO(INFO,"CSBuilder: Found a change with no atts, and no deletion matches - its an element"); - - // and will get picked up by the 'characters' method. - currentState = dealingWithDeletionElement; - - LOGEXIT(INFO,"CSBuilder:processStart Exit7"); - return; - } - } - - - // We are starting a new deletion record - - LOGINFO_2(INFO,"CSBuilder: Found a deletion within a deletion:%s:%s", - (const char*)localname, (const char*)curr_loc); - - deletionList.push_back(deletionListElement(currentDeletion,deletionIndex, - previousDeletion)); - - currentDeletion = deletion(localname, curr_loc); - - // we are in a nested delete - so record the level such that we can pop state - // from the deletionList on coming back out of this. - - deletionLevel++; - //deletionIndex = 0; - previousDeletion = SDOXMLString(""); - - currentState = dealingWithDeletion; - - // Now add the attributes if there are any. - - for (int i=0; i < attributes.size(); i++) - { - // push all the attributes into the deletion record. - SDOXMLString name = attributes[i].getName(); - if (!name.equalsIgnoreCase("ref")) - { - SDOXMLString value = attributes[i].getValue(); - currentDeletion.addAttribute( - deletionAttribute(name,value)); - } - } - - LOGEXIT(INFO,"CSBuilder:processStart Exit8"); - return; - - } - } - -// ======================================================================== -// Parser ends an element -// ======================================================================== - - void ChangeSummaryBuilder::processEnd( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI) - { - - LOGENTRY(INFO,"CSBuilder:processEnd"); - - if (currentState == dealingWithCreateDelete) - { - // its already been completed by the characters message - currentState = baseState; - LOGEXIT(INFO,"CSBuilder:processEnd Exit1"); - return; - } - else if (currentState == dealingWithChangeElement) - { - // its already been completed by the characters message - currentState = dealingWithChange; - currentLocation.pop_back(); - LOGEXIT(INFO,"CSBuilder:processEnd Exit2"); - return; - } - else if (currentState == dealingWithDeletionElement) - { - // its already been completed by the characters message - currentState = dealingWithDeletion; - currentLocation.pop_back(); - LOGEXIT(INFO,"CSBuilder:processEnd Exit3"); - return; - } - else if (currentState == dealingWithChange) - { - // we should have finished, there are no nested changes - currentState = baseState; - changes.insert(changes.end(),currentChange); - currentLocation.clear(); - LOGEXIT(INFO,"CSBuilder:processEnd Exit4"); - return; - } - else if (currentState == dealingWithDeletion) - { - currentLocation.pop_back(); - deletions.insert(deletions.end(),currentDeletion); - if (deletionLevel > 0) - { - deletionLevel--; - if (deletionList.size() > 0) - { - int index = deletionIndex; - SDOXMLString path = currentDeletion.reference; - SDOXMLString name = currentDeletion.name; - - deletionListElement dl = deletionList[deletionList.size()-1]; - currentDeletion = dl.del; - deletionIndex = dl.index; - previousDeletion = dl.previous; - deletionList.pop_back(); - // and insert the inside deletion in the outside one. - currentDeletion.insertElement(deletionElement( - name, path,index)); - } - - LOGEXIT(INFO,"CSBuilder:processEnd Exit5"); - return; - } - else - { - currentState = dealingWithChange; - - LOGEXIT(INFO,"CSBuilder:processEnd Exit6"); - return; - } - } - } - -// ======================================================================== -// Parse characters -// ======================================================================== - - - void ChangeSummaryBuilder::processChars( - const SDOXMLString& chars) - { - LOGENTRY(INFO,"CSBuilder:processChars"); - - if (currentState == dealingWithCreateDelete) - { - // this is text within a create/delete indicating the - // value of the item deleted/created. - if (createDeletes.size() > 0) - { - createDeletes[createDeletes.size()-1].value = chars; - LOGINFO_1(INFO,"CSBuilder:characters create/delete:%s", - (const char*)chars); - } - LOGEXIT(INFO,"CSBuilder:processChars Exit1"); - return; - } - else if (currentState == dealingWithChangeElement) - { - changeElement ce = changeElement(currentLocalName, previousChange, false, false); - ce.value = chars; - ce.index = changeIndex; - currentChange.addElement(ce); - - LOGINFO_1(INFO,"CSBuilder: Characters in a change element:%s", - (const char *)chars); - - LOGEXIT(INFO,"CSBuilder:processChars Exit2"); - return; - } - else if (currentState == dealingWithDeletionElement) - { - deletionElement ce = deletionElement(previousDeletion); - ce.value = chars; - ce.index = deletionIndex; - currentDeletion.addElement(ce); - - LOGINFO_1(INFO,"CSBuilder: Characters in a deletion element:%s", - (const char *)chars); - - LOGEXIT(INFO,"CSBuilder:processChars Exit3"); - return; - } - - LOGINFO_1(INFO,"CSBuilder: Characters in nothing!!:%s", - (const char *)chars); - LOGEXIT(INFO,"CSBuilder:processChars Exit4"); - } - - -// ======================================================================== -// Classes holding temporary parsed information -// ======================================================================== - - - ///////////////////////////////////////////////// - // An element in the list of creates/deletes - ///////////////////////////////////////////////// - - createDelete::createDelete() - { - } - - createDelete::createDelete(SDOXMLString intype) : - type(intype) - { - indexshift = 0; - } - - createDelete::~createDelete() - { - } - - ///////////////////////////////////////////////// - // An element in the list of changes - ///////////////////////////////////////////////// - - changeAttribute::changeAttribute() - { - } - - changeAttribute::changeAttribute(SDOXMLString inname, - SDOXMLString invalue): name(inname), value(invalue) - { - } - - changeAttribute::~changeAttribute() - { - } - - changeElement::changeElement() - { - } - - changeElement::changeElement(SDOXMLString inname, - SDOXMLString inpath, bool isRef, bool isDel) - : name(inname) , path(inpath) - { - isReference=isRef; - isDeletion= isDel; - } - - changeElement::changeElement(SDOXMLString inname, - SDOXMLString inpath, - SDOXMLString invalue, bool isRef, bool isDel) - : name(inname), value(invalue), path(inpath) - { - isReference=isRef; - isDeletion= isDel; - } - - changeElement::~changeElement() - { - } - - change::change() - { - } - - change::change(SDOXMLString inname, SDOXMLString ref): - name(inname), reference(ref) - { - } - - void change::addAttribute(changeAttribute ca) - { - attributes.insert(attributes.end(),ca); - } - - void change::addElement(changeElement ce) - { - elements.insert(elements.end(),ce); - } - - ///////////////////////////////////////////////// - // An element in the list of deletions - ///////////////////////////////////////////////// - - deletionAttribute::deletionAttribute() - { - } - - deletionAttribute::deletionAttribute(SDOXMLString inname, - SDOXMLString invalue): name(inname), value(invalue) - { - } - - deletionAttribute::~deletionAttribute() - { - } - - deletionElement::deletionElement() - { - } - - deletionElement::deletionElement(SDOXMLString inname) - : name(inname) - { - isDeletion = false; - } - - deletionElement::deletionElement(SDOXMLString inname, - SDOXMLString inpath, int inindex) - : name(inname), value(inpath), index(inindex) - { - isDeletion = true; - } - - deletionElement::~deletionElement() - { - } - - deletion::deletion() - { - } - - deletion::deletion(SDOXMLString inname, SDOXMLString ref): - name(inname), reference(ref) - { - completedprocessing=false; - } - - void deletion::addAttribute(deletionAttribute ca) - { - attributes.insert(attributes.end(),ca); - } - - void deletion::addElement(deletionElement ce) - { - elements.insert(elements.end(),ce); - } - - void deletion::insertElement(deletionElement ce) - { - elements.insert(elements.begin(),ce); - } - - deletionListElement::deletionListElement() - { - } - - deletionListElement::deletionListElement( - deletion in_del, - int in_index, - SDOXMLString in_prev): - del(in_del), index(in_index), previous(in_prev) - { - } - - } // End - namespace sdo -} // End - namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.h deleted file mode 100644 index 903ef0f427..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryBuilder.h +++ /dev/null @@ -1,300 +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 $ */ - -#ifndef _CHANGESUMMARYBUILDER_H_ -#define _CHANGESUMMARYBUILDER_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SAX2Parser.h" -#include "commonj/sdo/DataFactory.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/SAX2Namespaces.h" -#include "commonj/sdo/PropertySetting.h" -#include "commonj/sdo/ChangeSummaryImpl.h" - - -#include - -namespace commonj -{ - namespace sdo - { - -/** - * createDelete is a class holding a creation or deletion in - * a change summary builder. - * When rebuilding a change summary from the serialized version - * creates and deletes are stored in these until they can be - * converted into a change summary. - */ - - - class createDelete - { - public: - createDelete(); - createDelete(SDOXMLString intype); - virtual ~createDelete(); - SDOXMLString type; - SDOXMLString value; - int indexshift; - }; - -/** - * changeAttribute is a class holding a changed attribute in a - * change summary builder. - * When rebuilding a change summary from the serialized version - * changes are stored in these until they can be - * converted into a change summary. - */ - - class changeAttribute - { - public: - changeAttribute(); - changeAttribute(SDOXMLString inname, - SDOXMLString invalue); - virtual ~changeAttribute(); - SDOXMLString name; - SDOXMLString value; - }; - -/** - * changeElement is a class holding a changed element in a change summary builder. - * When rebuilding a change summary from the serialized version - * changes are stored in these until they can be - * converted into a change summary. - */ - class changeElement - { - public: - changeElement(); - changeElement(SDOXMLString inname, - SDOXMLString inpath, bool isRef, bool isDel); - changeElement(SDOXMLString inname, - SDOXMLString inpath, - SDOXMLString invalue, bool isRef, bool isDel); - virtual ~changeElement(); - SDOXMLString name; - SDOXMLString value; - SDOXMLString path; - bool isReference; - bool isDeletion; - int index; - }; - -/** - * change is a class holding a change in a change summary builder. - * When rebuilding a change summary from the serialized version - * changes are stored in these until they can be - * converted into a change summary. - * Changes consist of changeAttributes and changeElements - */ - - - class change - { - public: - change(); - change(SDOXMLString inname, SDOXMLString ref); - void addAttribute(changeAttribute ca); - void addElement(changeElement ce); - std::list attributes; - std::list elements; - SDOXMLString name; - SDOXMLString reference; - }; - -/** - * deletionAttribute is a class holding a deletion attribute in a change summary builder. - * When rebuilding a change summary from the serialized version - * deletions are stored in these until they can be - * converted into a change summary. - * Changes consist of deletionAttributes and deletionElements - */ - class deletionAttribute - { - public: - deletionAttribute(); - deletionAttribute(SDOXMLString inname, - SDOXMLString invalue); - virtual ~deletionAttribute(); - SDOXMLString name; - SDOXMLString value; - }; - -/** - * deletionElement is a class holding a deletion element in a change summary builder. - * When rebuilding a change summary from the serialized version - * deletions are stored in these until they can be - * converted into a change summary. - * Changes consist of deletionAttributes and deletionElements - */ - class deletionElement - { - public: - deletionElement(); - deletionElement(SDOXMLString inname); - deletionElement(SDOXMLString inname, - SDOXMLString inpath, int inindex); - virtual ~deletionElement(); - SDOXMLString name; - SDOXMLString value; - bool isDeletion; - int index; - }; - - -/** - * deletions is a class holding a deletion in a change summary builder. - * When rebuilding a change summary from the serialized version - * deletions are stored in these until they can be - * converted into a change summary. - * Changes consist of deletionAttributes and deletionElements - */ - - class deletion - { - public: - deletion(); - deletion(SDOXMLString inname, SDOXMLString ref); - void addAttribute(deletionAttribute ca); - void addElement(deletionElement ce); - void insertElement(deletionElement ce); - SDOXMLString name; - SDOXMLString reference; - DataObjectPtr dob; /* the recreated one*/ - std::list attributes; - std::list elements; - bool completedprocessing; - }; - - /** deletionListElement is an item in a list of deletions in a change summary builder. - * - * All the deletions are stored whilst rebuilding a change - * summary, then applied. These list elements hold them. - */ - - class deletionListElement - { - public: - deletionListElement(); - deletionListElement(deletion in_del, int in_index, SDOXMLString in_prev); - SDOXMLString previous; - deletion del; - int index; - }; - -/** - * The ChangeSummaryBuilder recreates a change summary from the - * XML representations of the changes, creations and deletions. - * It does this by populating a list of changes as though they had - * been applied to the current data graph. - */ - - class ChangeSummaryBuilder - { - - - public: - - enum CsState - { - baseState, - dealingWithCreateDelete, - dealingWithChange, - dealingWithChangeElement, - dealingWithDeletion, - dealingWithDeletionElement - }; - - - ChangeSummaryBuilder( - DataFactoryPtr df, - DataObjectPtr& rootDO); - - virtual ~ChangeSummaryBuilder(); - - - virtual void processStart( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void processChars( - const SDOXMLString& chars); - - virtual void processEnd( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI); - - virtual void buildChangeSummary( - DataObjectPtr changeSummaryDO); - - virtual void populateDeletion(ChangeSummaryImpl* csi, DataObjectPtr dob, - int index); - - virtual void handleDeletion( - ChangeSummaryImpl* csi, - int currentIndex, - DataObjectPtr cont, - SDOXMLString path, - SDOXMLString prop); - - virtual void handleDeletion(ChangeSummaryImpl* csi, - int index, - SDOXMLString path); - - void shiftIndices(int index, int delta); - - SDOXMLString shiftedIndex(int index); - - - private: - DataFactoryPtr dataFactory; - DataObjectPtr& rootDataObject; - - CsState currentState; - - std::vector deletionList; - std::vector currentLocation; - std::vector createDeletes; - - std::vector changes; - change currentChange; - SDOXMLString previousChange; - SDOXMLString currentLocalName; - int changeIndex; - - std::vector deletions; - deletion currentDeletion; - SDOXMLString previousDeletion; - int deletionIndex; - int deletionLevel; - - - }; - } // End - namespace sdo -} // End - namespace commonj - -#endif //_CHANGESUMMARYBUILDER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.cpp deleted file mode 100644 index 1b2023a746..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.cpp +++ /dev/null @@ -1,1587 +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: 2006/02/17 16:01:05 $ */ - -#include "commonj/sdo/ChangeSummaryImpl.h" - -#include "commonj/sdo/DataObjectImpl.h" - -#include "commonj/sdo/Property.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/TypeList.h" -#include "commonj/sdo/Sequence.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/DataObjectList.h" -#include "commonj/sdo/SDORuntimeException.h" -#include "commonj/sdo/Logging.h" - - -namespace commonj{ -namespace sdo{ - - - // Initializes an empty change summary, so we know one is required - ChangeSummaryImpl::ChangeSummaryImpl() - { - logging = false; - } - - ChangeSummaryImpl::~ChangeSummaryImpl() - { - //Force logging off or bad things will happen! - logging = false; - - /** - * These remove the logitems, so cause the - * refcounts of the data objects to drop, and - * delete the settings lists. - */ - deletedMap.clear(); - createdMap.clear(); - changedMap.clear(); - changedDataObjects.clear(); - } - - SequencePtr ChangeSummaryImpl::getOldSequence(DataObjectPtr dob) - { - DELETELOG_MAP::iterator deleteLogIter; - - DataObject* ob = dob; - deleteLogIter = deletedMap.find((DataObjectImpl*)ob); - - if (deleteLogIter != deletedMap.end()) - { - return (deleteLogIter->second).getSequence(); - } - - CHANGELOG_MAP::iterator changeLogIter; - - changeLogIter = changedMap.find((DataObjectImpl*)ob); - - if (changeLogIter != changedMap.end()) - { - return (changeLogIter->second).getSequence(); - } - return NULL; - - } - - void ChangeSummaryImpl::removeFromChanges(DataObjectImpl* ob) - { - int i = changedDataObjects.size(); - - /** - * this is used to remove only the most recent change. - * A deletion has occurred, and there was a creation, so - * we remove the creation. There cannot be a change after the - * creation, so the last entry in changes is the creation. - * there could be a previous deletion of the same object, so - * we should not clear the whole list. - */ - while (i > 0) - { - i--; - - - if (changedDataObjects.get(i) == ob) - { - changedDataObjects.remove(i); - return; - } - } - } - - DataObjectPtr ChangeSummaryImpl::matchDeletedObject(SDOXMLString path) - { - DELETELOG_MAP::iterator deleteLogIter; - - for (deleteLogIter = deletedMap.begin(); - deleteLogIter != deletedMap.end(); ++deleteLogIter) - { - if ( - path.equals( - SDOXMLString((deleteLogIter->second).getOldXpath()) - ) - ) - { - return deleteLogIter->first; - } - } - return DataObjectPtr(0); - } - - - - void ChangeSummaryImpl::logDeletion(DataObjectImpl* ob, - DataObjectImpl* container, const Property& prop, - const char* oldpath, bool loggingChildren) - { - LOGINFO_1(INFO,"ChangeSummary:LogDelete:%s", - ob->getType().getName()); - - /** - * The object is about to be deleted, so we need - * all its property Settings recorded in the list - * of changed data objects. We also need to know - * its old container, container property, and - * value. - */ - - // find any properties which are data objects, log their - // deletion first. - - int i; - - // Trace for change summaries - - LOGINFO_2(INFO,"ChangeSummary logs a deletion of property %s type %s", - prop.getName(), prop.getType().getName()); - - - CREATELOG_MAP::iterator createLogIter; - CHANGELOG_MAP::iterator changeLogIter; - - createLogIter = createdMap.find(ob); - if (createLogIter != createdMap.end()) - { - // would need to remove it from the created list. - LOGINFO(INFO,"ChangeSummary: The deletion was already created - just removing it"); - - removeFromChanges(ob); - createdMap.erase(ob); - // find the container in the change map. - - changeLogIter = changedMap.find(container); - if (changeLogIter != changedMap.end()) - { - // would hope there was an entry - int index; - if (prop.isMany()) - { - DataObjectList& dl = container->getList(prop); - for (index=0;indexsecond).getSettings(); - - for (int j=0 ; j < slist.size();j++) - { - if (!strcmp(slist.get(j)->getProperty().getName(), - prop.getName()) - - - && slist.get(j)->getIndex() == - index) - { - // these are settings of the same prop/index, we - // need to remove this entry - slist.remove(j); - // and if this was the only change, then we - // need to remoe the container from the changes - if (slist.size() == 0) - { - changedMap.erase(container); - removeFromChanges(container); - } - break; // must not continue - size is now wrong - } - } - } - return; - } - - DELETELOG_MAP::iterator deleteLogIter; - - deleteLogIter = deletedMap.find(ob); - - if (deleteLogIter != deletedMap.end()) - { - LOGINFO(INFO,"ChangeSummary - delete an already deleted object"); - return; - } - - PropertyList pl = ob->getInstanceProperties(); - DataObject* dob; - - if (loggingChildren) - { - for (i=0; i < pl.size(); i++) - { - if (pl[i].getType().isDataObjectType()) - { - if (pl[i].isMany()) { - DataObjectList& dl = ob->getList(pl[i]); - for (int j = dl.size() - 1; j>=0; j--) - { - dob = dl[j]; - if (dob)logDeletion((DataObjectImpl*)dob,ob,pl[i], - dob->objectToXPath(), true); - } - } - else { - dob = ob->getDataObject(pl[i]); - if (dob)logDeletion((DataObjectImpl*)(dob),ob,pl[i], - dob->objectToXPath(), true); - } - } - } - } - - - // build a Setting list for the set properties - - deletedMap.insert(make_pair(ob,deleteLogItem( - (DataObject*)ob, prop,ob->getSequence(), - oldpath, - container))); - deleteLogIter = deletedMap.find(ob); - SettingList& sl = (deleteLogIter->second).getSettings(); - - void* value; - unsigned int len; - - for (i=0; i < pl.size(); i++) - { - //if (!pl[i].getType().isDataType()) continue; - - if (!ob->isSet(pl[i])) - { - sl.append(new Setting(false,false, 0,0,pl[i],0)); - continue; - } - if (pl[i].isMany()) - { - - DataObjectList& dol = ob->getList(pl[i]); - for (int j=dol.size()-1;j >= 0; j--) - { - // needs to be the data object in cases where... - if (pl[i].getType().isDataType()) { - setPropValue(&value,&len,ob,pl[j]); - sl.append(new Setting(true,false,value,len,pl[i],j)); - } - else { - value = (void*)dol[j]; - sl.append(new Setting(true,false,value,0,pl[i],j)); - } - } - } - else - { - setPropValue(&value,&len,ob,pl[i]); - sl.append(new Setting(true,ob->isNull(pl[i]),value,len,pl[i],0)); - } - - } - - - changeLogIter = changedMap.find(ob); - if (changeLogIter != changedMap.end()) - { - // we have already changed this object, so we need the old values - // from the change, and to remove the changed map entry - LOGINFO(INFO,"ChangeSummary found a deleted item in then changes"); - - (deleteLogIter->second).setSequence((changeLogIter->second).getSequence()); - - SettingList& slist = (changeLogIter->second).getSettings(); - - for (int j=0 ; j < slist.size();j++) - { - for (int i=0;igetProperty().getName(), - sl.get(i)->getProperty().getName()) - - - && slist.get(j)->getIndex() == - sl.get(i)->getIndex()) - { - // these are settings of the same prop/index, we - // need the old value to get transferred. - sl.remove(i); - sl.insert(i,new Setting(*(slist.get(j)))); - - } - } - } - LOGINFO(INFO, "ChangeSummary: Erasing from changes"); - changedMap.erase(ob); - } - // We append deleted objects to the changed list - this list gives - // those data objects which have been affected - we then look at their - // current and old property values to find out whether they have been - // deleted or created. - else - { - changedDataObjects.append(ob, ChangedDataObjectList::Delete); - } - - LOGINFO(INFO,"ChangeSummary: Deletion being added to the list"); - - return; - } - - void ChangeSummaryImpl::logCreation(DataObjectImpl* ob, - DataObjectImpl* container, const Property& prop) - { - - LOGINFO_1(INFO,"ChangeSummary:LogCreate of type:%s",ob->getType().getName()); - - // These we just need to record the fact that they - // are present. We dont have an original value to - // store. - // log a change to the container of this object - // - - DELETELOG_MAP::iterator deleteLogIter; - - deleteLogIter = deletedMap.find(ob); - if (deleteLogIter != deletedMap.end()) - { - // can happen - a delete is really a removal from the tree. - // Adding back an object which you held a pointer to is just - // a re-creation. - LOGINFO(INFO,"ChangeSummary: Adding in a pre-deleted object"); - } - - // we should check if this object has sub-objects, they will - // need to be created too - - PropertyList pl = ob->getInstanceProperties(); - for (int p=0;pisSet(thisprop)) - { - DataObject* dp; - - if (thisprop.isMany()) - { - DataObjectList& dol = ob->getList(thisprop); - for (int ds = 0; ds < dol.size(); ds++) - { - dp = dol[ds]; - if (!dp) continue; - logCreation((DataObjectImpl*)dp,ob,thisprop); - } - } - else - { - dp = ob->getDataObject(thisprop); - if (dp) - { - logCreation((DataObjectImpl*)dp,ob,thisprop); - } - } - } - } - } - - CREATELOG_MAP::iterator createLogIter; - - createLogIter = createdMap.find(ob); - if (createLogIter != createdMap.end()) - { - // this could be a reference - we dont add it twice. - LOGINFO(INFO,"ChangeSummary: No need to log creation twice"); - return; - } - - // We append created objects to the changed list - this list gives - // those data objects which have been affected - we then look at their - // current and old property values to find out whether they have been - // deleted or created. - changedDataObjects.append(ob, ChangedDataObjectList::Create); - - createdMap.insert(make_pair(ob,createLogItem(ob->getType(),prop,container))); - return; - } - - - void ChangeSummaryImpl::setPropValue(void** value, unsigned int* len, DataObjectImpl* ob, const Property& prop) - { - - switch (prop.getTypeEnum()) - { - case Type::BooleanType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = 0; - } - else - { - *(long*)*value = (long)ob->getBoolean(prop); - } - break; - case Type::ByteType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = 0; - } - else - { - *(long*)*value = (long)ob->getByte(prop); - } - break; - case Type::CharacterType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = 0; - } - else - { - *(long*)*value = (long)ob->getCharacter(prop); - } - break; - case Type::IntegerType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = 0; - } - else - { - *(long*)*value = (long)ob->getInteger(prop); - } - break; - case Type::ShortType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = 0; - } - else - { - *(long*)*value = (long)ob->getShort(prop); - } - break; - case Type::DoubleType: - *value = new long double; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long double*)value = (long double)0; - } - else - { - *(long double*)*value = (long double)ob->getDouble(prop); - } - break; - case Type::FloatType: - *value = new float; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(float*)value = (float)0; - } - else - { - *(float*)*value = (float)ob->getFloat(prop); - } - break; - case Type::LongType: - *value = new int64_t; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(int64_t*)value = (int64_t)0; - } - else - { - *(int64_t*)*value = (int64_t)ob->getLong(prop); - } - break; - case Type::DateType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = (long)0; - } - else - { - *(long*)*value = (long)(ob->getDate(prop).getTime()); - } - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::StringType: - case Type::UriType: - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *value = 0; - *len = 0; - } - else - { - unsigned int siz = ob->getLength(prop); - if (siz > 0) { - *value = new wchar_t[siz]; - *len = ob->getString(prop,(wchar_t*)*value, siz); - } - else { - *value = 0; - *len = 0; - } - } - break; - case Type::BytesType: - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *value = 0; - *len = 0; - } - else - { - unsigned int siz = ob->getLength(prop); - if (siz > 0) { - *value = new char[siz]; - *len = ob->getBytes(prop,(char*)*value, siz); - } - else { - *value = 0; - *len = 0; - } - } - break; - case Type::OtherTypes: - case Type::DataObjectType: - case Type::ChangeSummaryType: - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *value = 0; - } - else - { - *value = (void*)ob->getDataObject(prop); - } - break; - default: - SDO_THROW_EXCEPTION("(ChangeSummary)setPropValue" , - SDOUnsupportedOperationException, "Type is not recognised and cannot be saved"); - break; - } - } - - void ChangeSummaryImpl::setManyPropValue(void** value, unsigned int *len, DataObjectImpl* ob, - DataObjectImpl* listob, const Property& prop) - { - - switch (prop.getTypeEnum()) - { - case Type::BooleanType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = (long)0; - } - else - { - *(long*)*value = (long)listob->getBoolean(); - } - break; - case Type::ByteType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = (long)0; - } - else - { - *(long*)*value = (long)listob->getByte(); - } - break; - case Type::CharacterType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = (long)0; - } - else - { - *(long*)*value = (long)listob->getCharacter(); - } - break; - case Type::IntegerType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = (long)0; - } - else - { - *(long*)*value = (long)listob->getInteger(); - } - break; - case Type::ShortType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = (long)0; - } - else - { - *(long*)*value = (long)listob->getShort(); - } - break; - case Type::DoubleType: - *value = new long double; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long double*)value = (long double)0; - } - else - { - *(long double*)*value = (long double)listob->getDouble(); - } - break; - case Type::FloatType: - *value = new float; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(float*)value = (float)0; - } - else - { - *(float*)*value = (float)listob->getFloat(); - } - break; - case Type::LongType: - *value = new int64_t; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(int64_t*)value = (int64_t)0; - } - else - { - *(int64_t*)*value = (int64_t)listob->getLong(); - } - break; - case Type::DateType: - *value = new long; - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *(long*)value = (long)0; - } - else - { - *(long*)*value = (long)(listob->getDate().getTime()); - } - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::StringType: - case Type::UriType: - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *value = 0; - *len = 0; - } - else - { - unsigned int siz = listob->getLength(prop); - if (siz > 0) - { - *value = new wchar_t[siz]; - *len = listob->getString((wchar_t*)*value, siz); - } - } - break; - case Type::BytesType: - if (!ob->isSet(prop) && !prop.isDefaulted()) - { - *value = 0; - *len = 0; - } - else - { - unsigned int siz = listob->getLength(prop); - if (siz > 0) - { - *value = new char[siz]; - *len = listob->getBytes((char*)*value, siz); - } - } - break; - - case Type::OtherTypes: - case Type::DataObjectType: - case Type::ChangeSummaryType: - SDO_THROW_EXCEPTION("(ChangeSummary)setManyPropValue" , - SDOUnsupportedOperationException, "A many prop data object value is being set"); - //*value = (void*)ob; - break; - default: - SDO_THROW_EXCEPTION("(ChangeSummary)setManyPropValue" , - SDOUnsupportedOperationException, "Type is not recognised and cannot be saved"); - break; - } - } - - void ChangeSummaryImpl::logChange(DataObjectImpl* ob, - const Property& prop) - { - // need to record the old value, unless the object - // is in the created list, in which case we store - // nothing. - - LOGINFO_1(INFO,"ChangeSummary:LogChange %s",prop.getName()); - - CREATELOG_MAP::iterator createLogIter; - - unsigned int len; - - createLogIter = createdMap.find(ob); - if (createLogIter != createdMap.end()) - { - LOGINFO(INFO,"ChangeSummary: no need to log change"); - return; - } - - DELETELOG_MAP::iterator deleteLogIter; - - deleteLogIter = deletedMap.find(ob); - if (deleteLogIter != deletedMap.end()) - { - LOGINFO(INFO,"ChangeSummary: no need to log change - already deleted"); - return; - } - - CHANGELOG_MAP::iterator changeLogIter; - - changeLogIter = changedMap.find(ob); - if (changeLogIter == changedMap.end()) - { - LOGINFO(INFO,"ChangeSummary: A change to an object which was not previously changed"); - changedMap.insert(make_pair(ob, changeLogItem(ob->getType(),prop, - ob->getSequence(), ob))); - changedDataObjects.append(ob, ChangedDataObjectList::Change); - } - else - { - LOGINFO(INFO,"ChangeSummary: A change to an object which has already been changed"); - } - - changeLogIter = changedMap.find(ob); - if (changeLogIter == changedMap.end()) - { - LOGINFO(INFO,"ChangeSummary: Problem - no changes to append to"); - return; - } - - SettingList& slist = (changeLogIter->second).getSettings(); - - void* value; - - for (int i=0;igetProperty().getName(),prop.getName())) - { - LOGINFO(INFO,"ChangeSummary: Change of a property which was already changed - ignore"); - return; - } - } - - // need to check if the property has already been set, - // There could be many Settings if the item was a list, - // but we dont care here about that. - - if (!ob->isSet(prop)) - { - slist.append(new Setting(false,false,0,0,prop,0)); - return; - } - - if (prop.isMany()) - { - // We are appending, not modifying - // we need to store the list as it was. - - LOGINFO(INFO,"ChangeSummary: logging a change to a many valued property"); - - DataObjectList& dol = ob->getList(prop); - if (dol.size() == 0) - { - slist.append(new Setting(false,false,0,0,prop,0)); - return; - } - for (int i=0;i< dol.size(); i++) - { - DataObject* dob = dol[i]; - if (prop.getType().isDataType()) { - setManyPropValue(&value, &len, (DataObjectImpl*)ob, - (DataObjectImpl*)dob, prop); - slist.append(new Setting(true,false,value,len,prop,i)); - } - else{ - value = (void*)dob; - slist.append(new Setting(true,false,value,0,prop,i)); - } - } - } - else - { - setPropValue(&value,&len,ob,prop); - slist.append(new Setting(true,ob->isNull(prop),value,len,prop,0)); - } - - return; - } - - - - void ChangeSummaryImpl::undoChanges() - { - // TODO - /* Plan for undoChanges: - - There are three lists of information. - The created list is a list of data objects which were created during logging. - These data objects will have current state, and will represent the value of a - property of their containing object. As they had no state before they were - created, the undoChanges needs to unSet the property values for these first. - - The deleted list contains a list of objects which were deleted. The objects - themselves are not valid, but can be used to obtain a list of settings - representing the values of the properties at the time the object was - deleted. Here are recursive create is needed to re-create an object - similar to the deleted one, and set its properties using the settings. - The deleted object may well contain other deleted objects as its - property values, so these too will have entries in the deleted list, and - need to be found and re-created. - - The changed list holds a list of settings for properties of data objects - which have been changed. These objects may also be in the deleted list, so# - may not be valid. They will not be in the created list. First check that - the object is not in the deleted list. If it is, then the changes need to - be applied to the data object which we created when undoing the deleted list, - otherwise we just apply the change to a data object which exists. - */ - - /* what about items in many-valued properties? I guess we need to check and - search the values returned for the list to find the object to delete*/ - LOGINFO(INFO,"ChangeSummary UndoChanges not implemented"); - return; - } - - - void ChangeSummaryImpl::beginLogging() - { - - // Clear down the lists and their contents, if there was already - // some activity. - - if (logging) endLogging(); - changedMap.clear(); - deletedMap.clear(); - createdMap.clear(); - changedDataObjects.clear(); - - LOGINFO(INFO,"ChangeSummary: logging switched on"); - - logging = true; - return; - } - - void ChangeSummaryImpl::endLogging() - { - logging = false; - - LOGINFO(INFO,"ChangeSummary: logging switched off"); - - return; - } - - bool ChangeSummaryImpl::isLogging() - { - return logging; - } - -/////////////////////////////////////////////////////////////////////////////////////// - void ChangeSummaryImpl::debugPrint(){} -// { -// ChangedDataObjectList& dol = getChangedDataObjects(); -// -// CREATELOG_MAP::iterator createLogIter; -// DELETELOG_MAP::iterator deleteLogIter; -// CHANGELOG_MAP::iterator changeLogIter; -// -// for (int i=0;igetLongValue(); -// break; -// case Type::DateType: -// cout << "Date:" << sl[j].getDateValue().getTime(); -// break; -// case Type::BigDecimalType: -// case Type::BigIntegerType: -// case Type::StringType: -// case Type::UriType: -// { -// unsigned int len = sl[j].getLength(); -// if (len > 0) { -// wchar_t* buf = new wchar_t[len]; -// len = sl[j].getStringValue(buf,len); -// cout <<"String type" ; -// for (int i=0;i 0) { -// char* buf = new char[len]; -// len = sl[j].getBytesValue(buf,len); -// cout <<"Bytes type" ; -// for (int i=0;isecond).getSettings()); - } - changeLogIter = changedMap.find((DataObjectImpl*)dob); - if (changeLogIter != changedMap.end()){ - return ((changeLogIter->second).getSettings()); - } - SDO_THROW_EXCEPTION("(ChangeSummary(getOldValues" , - SDOIndexOutOfRangeException, "Data object is not in the change summary"); - } - - - - const char* ChangeSummaryImpl::getOldXpath(RefCountingPointer dol) - { - DELETELOG_MAP::iterator deleteLogIter; - DataObject* dob = dol; - deleteLogIter = deletedMap.find((DataObjectImpl*)dob); - if (deleteLogIter != deletedMap.end()){ - return ((deleteLogIter->second).getOldXpath()); - } - return 0; - } - - - const Setting& ChangeSummaryImpl::getOldValue(DataObjectPtr dol, const Property& property) - { - DELETELOG_MAP::iterator deleteLogIter; - CHANGELOG_MAP::iterator changeLogIter; - DataObject* dob = dol; - - deleteLogIter = deletedMap.find((DataObjectImpl*)dob); - if (deleteLogIter != deletedMap.end()) - { - SettingList& sl = (deleteLogIter->second).getSettings(); - for (int i=0;i < sl.size(); i++) - { - if (!strcmp(property.getName(), - sl.get(i)->getProperty().getName())) - return (*sl.get(i)); - } - } - - changeLogIter = changedMap.find((DataObjectImpl*)dob); - if (changeLogIter != changedMap.end()) - { - SettingList& sl = (changeLogIter->second).getSettings(); - for (int i=0;i < sl.size(); i++) - { - if (!strcmp(property.getName(), - sl.get(i)->getProperty().getName())) - return (*sl.get(i)); - } - } - - SDO_THROW_EXCEPTION("(ChangeSummary(getOldValue)" , - SDOIndexOutOfRangeException, "Data object is not in the change summary"); - } - - DataObjectPtr ChangeSummaryImpl::getOldContainer(DataObjectPtr dol) - { - CHANGELOG_MAP::iterator changeLogIter; - DataObject* dob = dol; - changeLogIter = changedMap.find((DataObjectImpl*)dob); - - if (changeLogIter != changedMap.end()) - { - return (changeLogIter->second).getOldContainer(); - } - return 0; - } - - const Property& ChangeSummaryImpl::getOldContainmentProperty(DataObjectPtr dol) - { - CHANGELOG_MAP::iterator changeLogIter; - DataObject* dob = dol; - changeLogIter = changedMap.find((DataObjectImpl*)dob); - - if (changeLogIter == changedMap.end()) - { - SDO_THROW_EXCEPTION("(ChangeSummary(getOldContainmentProperty)" , - SDOIndexOutOfRangeException, "Data object is not in the change summary"); - } - return (changeLogIter->second).getOldContainmentProperty(); - } - - - // - // Creations and deletions can be just logged in the normal - // way. Changes have to be handled specially, because we - // need the old value, but the data object now contains the - // current value. - // - - void ChangeSummaryImpl::appendToCreations(const Property& p, - DataObjectPtr dob, DataObjectPtr cont) - { - LOGINFO(INFO,"ChangeSummary: Appending to creations list"); - DataObject* pdob = (DataObject*)dob; - DataObject* pcont = (DataObject*)cont; - logCreation((DataObjectImpl*)pdob,(DataObjectImpl*)pcont,p); - return; - } - - - void ChangeSummaryImpl::appendToDeletions(const Property& p, - DataObjectPtr dob, DataObjectPtr cont, const char* oldpath ) - { - DELETELOG_MAP::iterator deleteLogIter; - - LOGINFO_1(INFO,"ChangeSummary:Appending to deletions list %s",oldpath); - - DataObject* pdob = (DataObject*)dob; - DataObject* pcont = (DataObject*)cont; - logDeletion((DataObjectImpl*)pdob,(DataObjectImpl*)pcont,p, - oldpath, false); - return; - } - - - unsigned int ChangeSummaryImpl::stringConvert(char** value, const char* c, const Property& p) - { - // code duplicated from typeimpl - switch (p.getTypeEnum()) - { - case Type::BooleanType: - *value = new char[sizeof(long)]; - if ((c == 0) || strcmp(c,"true")) - { - *(long*)*value = 0; - } - else - { - *(long*)*value = 1; - } - return sizeof(long); - - case Type::ByteType: - case Type::CharacterType: - case Type::IntegerType: - case Type::ShortType: - *value = new char[sizeof(long)]; - *(long*)*value = atoi(c); - return sizeof(long); - - case Type::DoubleType: - *value = new char[sizeof(long double)]; - // TODO - atof not suitable here - *(long double*)*value = (long double)atof(c); - return sizeof(long double); - - case Type::FloatType: - *value = new char[sizeof(float)]; - *(float*)*value = (float)atof(c); - return sizeof(float); - - case Type::LongType: - *value = new char[sizeof(int64_t)]; -#if defined(WIN32) || defined (_WINDOWS) - *(int64_t*)*value = (int64_t)_atoi64(c); -#else - *(int64_t*)*value = (int64_t)strtoll(c, NULL, 0); -#endif - return sizeof(int64_t); - - case Type::DateType: - *value = new char[sizeof(time_t)]; - *(time_t*)*value = (time_t)atoi(c); - return sizeof(time_t); - - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::StringType: - case Type::UriType: - { - char* vw = new char[(strlen(c)+1)*sizeof(wchar_t)]; - wchar_t* pvw = (wchar_t*)vw; - for (int i=0;i< strlen(c);i++) - { - pvw[i] = (wchar_t)c[i]; - } - pvw[strlen(c)] = 0; - *value = vw; - return strlen(c); - } - break; - case Type::BytesType: - { - char* vc = new char[strlen(c)+1]; - for (int i=0;i< strlen(c);i++) - { - vc[i] = (char)c[i]; - } - vc[strlen(c)] = 0; - *value = vc; - return strlen(c); - } - break; - - case Type::OtherTypes: - case Type::DataObjectType: - case Type::ChangeSummaryType: - default: - { - string msg("Cannot set CString on object of type:"); - msg += p.getType().getName(); - SDO_THROW_EXCEPTION("setString" , - SDOInvalidConversionException, msg.c_str()); - break; - } - } - return 0; - } - - void ChangeSummaryImpl::appendToChanges(const Property& p, - DataObjectPtr dob , SDOXMLString value, int index) - { - CHANGELOG_MAP::iterator changeLogIter; - - LOGINFO(INFO,"ChangeSummary Appending to changes list"); - - DataObject* pdob = (DataObject*)dob; - - - changeLogIter = changedMap.find((DataObjectImpl*)pdob); - if (changeLogIter == changedMap.end()) - { - - LOGINFO(INFO,"ChangeSummary: A change to an object which was not previously changed"); - - changedMap.insert(make_pair((DataObjectImpl*)pdob, - changeLogItem(dob->getType(),p, - dob->getSequence(), (DataObjectImpl*)pdob))); - changedDataObjects.append((DataObjectImpl*)pdob, - ChangedDataObjectList::Change); - } - - changeLogIter = changedMap.find((DataObjectImpl*)pdob); - if (changeLogIter == changedMap.end()) - { - - LOGINFO(INFO,"ChangeSummary: no changes to append to"); - - return; - } - - SettingList& slist = (changeLogIter->second).getSettings(); - - // simply need to insert a setting - no requirement to validate - // against existing settings - - char* datavalue = 0; - - unsigned int len = stringConvert(&datavalue, (const char*)value , p); - - slist.append(new Setting(true,false,datavalue,len,p,index)); - - // The datavalue will be freed by the deletion of the setting later - } - - - void ChangeSummaryImpl::appendToChanges(const Property& p, - DataObjectPtr dob , DataObjectPtr indob, int index) - { - CHANGELOG_MAP::iterator changeLogIter; - - LOGINFO(INFO,"ChangeSummary Appending to changes list (2)"); - - DataObject* pdob = (DataObject*)dob; - - changeLogIter = changedMap.find((DataObjectImpl*)pdob); - if (changeLogIter == changedMap.end()) - { - LOGINFO(INFO,"ChangeSummary: A change to an object which was not previously changed"); - - changedMap.insert(make_pair((DataObjectImpl*)pdob, - changeLogItem(dob->getType(),p, - dob->getSequence(), (DataObjectImpl*)pdob))); - changedDataObjects.append((DataObjectImpl*)pdob, - ChangedDataObjectList::Change); - } - - changeLogIter = changedMap.find((DataObjectImpl*)pdob); - if (changeLogIter == changedMap.end()) - { - LOGINFO(INFO,"ChangeSummary: Problem - no changes to append to"); - - return; - } - - SettingList& slist = (changeLogIter->second).getSettings(); - - // simply need to insert a setting - no requirement to validate - // against existing settings - - - slist.append(new Setting(true,false,(void*)indob,0,p,index)); - - } - - - - - ///////////////////////////////////////////////////////////// - // log items are for all lists, but contain different things - // depending on whether they are deletions, additions... - ///////////////////////////////////////////////////////////// - - createLogItem::createLogItem(const Type& tp, const Property& prop, - DataObjectImpl* cont) : - theOldContainmentProperty(prop), theOldContainer(cont), - theType(tp) - { - } - - DataObjectImpl* createLogItem::getOldContainer() - { - return theOldContainer; - } - - const Type& createLogItem::getOldType() - { - return theType; - } - - const Property& createLogItem::getOldContainmentProperty() - { - return theOldContainmentProperty; - } - - - - changeLogItem::changeLogItem(const Type& tp, - const Property& prop, - SequencePtr seq, - DataObjectImpl* cont) : - theOldContainmentProperty(prop), theOldContainer(cont), - theType(tp) - { - if (seq) - { - theSequence = new SequenceImpl((SequenceImpl*)seq); - } - else - { - theSequence = 0; - } - } - - changeLogItem::changeLogItem(const changeLogItem& cin) : - theOldContainmentProperty(cin.theOldContainmentProperty), - theType(cin.theType) - { - if (cin.theSequence) theSequence = new SequenceImpl((SequenceImpl*)cin.theSequence); - else theSequence = 0; - theOldContainer = cin.theOldContainer; - theSettings = cin.theSettings; - - } - - changeLogItem::~changeLogItem() - { - if (theSequence) delete theSequence; - } - - DataObjectImpl* changeLogItem::getOldContainer() - { - return theOldContainer; - } - - const Type& changeLogItem::getOldType() - { - return theType; - } - - const Property& changeLogItem::getOldContainmentProperty() - { - return theOldContainmentProperty; - } - - SettingList& changeLogItem::getSettings() - { - return theSettings; - } - - SequencePtr changeLogItem::getSequence() - { - return theSequence; - } - - - deleteLogItem::deleteLogItem(DataObject* dob, - const Property& prop, SequencePtr seq , - const char* oldpath, DataObjectImpl* cont - ) : - theOldContainmentProperty(prop), theOldContainer(cont), - theActualObject(dob), - theType(dob->getType()) - { - if (seq) - { - theSequence = new SequenceImpl((SequenceImpl*)seq); - } - else - { - theSequence = 0; - } - if (oldpath !=0 && strlen(oldpath) != 0) - { - theOldXpath = new char[strlen(oldpath)+1]; - strcpy(theOldXpath,oldpath); - } - else - { - theOldXpath = 0; - } - } - - const char* deleteLogItem::getOldXpath() - { - return theOldXpath; - } - - DataObjectImpl* deleteLogItem::getOldContainer() - { - return theOldContainer; - } - - deleteLogItem::deleteLogItem(const deleteLogItem& cin): - theOldContainmentProperty(cin.theOldContainmentProperty), - theType(cin.theType), theActualObject(cin.theActualObject) - { - if (cin.theSequence) theSequence = new SequenceImpl((SequenceImpl*)cin.theSequence); - else theSequence = 0; - theOldContainer = cin.theOldContainer; - theSettings = cin.theSettings; - if (cin.theOldXpath != 0) - { - theOldXpath = new char[strlen(cin.theOldXpath) + 1]; - strcpy(theOldXpath, cin.theOldXpath); - } - else - { - theOldXpath = 0; - } - } - - deleteLogItem::~deleteLogItem() - { - theActualObject = 0; - if (theSequence) delete theSequence; - if (theOldXpath != 0) - { - delete theOldXpath; - } - } - - const Type& deleteLogItem::getOldType() - { - return theType; - } - - const Property& deleteLogItem::getOldContainmentProperty() - { - return theOldContainmentProperty; - } - - SettingList& deleteLogItem::getSettings() - { - return theSettings; - } - - SequencePtr deleteLogItem::getSequence() - { - return theSequence; - } - - void deleteLogItem::setSequence(SequencePtr s) - { - if (theSequence) delete theSequence; - if (s) { - theSequence = new SequenceImpl((SequenceImpl*)s); - } - else { - theSequence = 0; - } - return; - } - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h deleted file mode 100644 index ad63a65cc1..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangeSummaryImpl.h +++ /dev/null @@ -1,404 +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 $ */ - -#ifndef _CHANGESUMMARYIMPL_H_ -#define _CHANGESUMMARYIMPL_H_ - -#include "commonj/sdo/disable_warn.h" - - -#include "commonj/sdo/ChangedDataObjectListImpl.h" -#include "commonj/sdo/SettingList.h" -#include "commonj/sdo/ChangeSummary.h" -#include "commonj/sdo/RefCountingPointer.h" -#include "commonj/sdo/SDOXMLString.h" - -#include - -using namespace std; -namespace commonj{ -namespace sdo { - - - /** - * ChangeLogItem is a part of a change summary. - * The change summary consisists of change items, - * deletion items and creation items. They are held in three - * lists as they have slightly different contents. - * The change log items hold old values for all the changes to - * properties of the data object concerned. - */ - - class changeLogItem { - - public: - - changeLogItem(const Type& tp, const Property& prop,SequencePtr seq, - DataObjectImpl* cont = 0 ); - changeLogItem(const changeLogItem& cin); - ~changeLogItem(); - DataObjectImpl* getOldContainer(); - const Property& getOldContainmentProperty(); - const Type& getOldType(); - SettingList& getSettings(); - SequencePtr getSequence(); - - private: - - const Property& theOldContainmentProperty; - DataObjectImpl* theOldContainer; - const Type& theType; - SettingList theSettings; - SequencePtr theSequence; - }; - - /** - * CreateLogItem is a part of a change summary. - * The change summary consisists of change items, - * deletion items and creation items. They are held in three - * lists as they have slightly different contents. - * The create log items hold the data object itself, - * and details of its container. - */ - - - class createLogItem { - - public: - - createLogItem(const Type& tp, const Property& prop, DataObjectImpl* cont = 0); - - - DataObjectImpl* getOldContainer(); - const Property& getOldContainmentProperty(); - const Type& getOldType(); - - private: - - const Property& theOldContainmentProperty; - DataObjectImpl* theOldContainer; - const Type& theType; - }; - - /** - * DeleteLogItem is a part of a change summary. - * The change summary consisists of change items, - * deletion items and creation items. They are held in three - * lists as they have slightly different contents. - * The delete log items hold the old data object , and - * details of the properties as they were before deletion - */ - - class deleteLogItem { - - public: - - - deleteLogItem(DataObject* dob, const Property& prop, - SequencePtr seq,const char *oldpath, - DataObjectImpl* cont = 0); - - - deleteLogItem(const deleteLogItem& cin); - ~deleteLogItem(); - DataObjectImpl* getOldContainer(); - const Property& getOldContainmentProperty(); - const Type& getOldType(); - const char* getOldXpath(); - SettingList& getSettings(); - SequencePtr getSequence(); - void setSequence(SequencePtr s); - - private: - - const Property& theOldContainmentProperty; - DataObjectImpl* theOldContainer; - - /** theActualObject - * A counting pointer to the object is held, such that the - * object is not freed, even if deleted. This rcp will not - * be used to refer to the object, but makes sure that the - * object does not reuse a memory address of a previously - * deleted object until the change summary is destroyed. - */ - - RefCountingPointer theActualObject; - const Type& theType; - SettingList theSettings; - SequencePtr theSequence; - char * theOldXpath; - }; - - - /** ChangeSummaryImpl implements the abstract class ChangeSummary. - * The change summary consisists of change items, - * deletion items and creation items. They are held in three - * lists as they have slightly different contents. - */ - - class ChangeSummaryImpl : public ChangeSummary - { - public: - ChangeSummaryImpl(); - - virtual ~ChangeSummaryImpl(); - - /** - * The new and modified objects in the list are references to objects that - * are associated with this change summary. - * The deleted objects in the list are references to copies of the objects - * as they appeared at the time that event logging was enabled; - * if the deleted objects have references to other objects, - * the references will also refer to copies of the target objects. - * Return a list of changed data objects. - */ - - virtual ChangedDataObjectList& getChangedDataObjects(); - - - /** getOldSettings returns a list of settings. - * Returns a list of Settings - * that represent the property values of the given dataObject - * at the point when logging began. - * In the case of a deleted object, - * the list will include Settings for all the properties. - * An old value Setting indicates the value at the - * point logging begins. A setting is only produced for - * modified objects if either the old value differs from the current value or - * if the isSet differs from the current value. - * No Settings are produced for created objects. - * Param dataObject the object in question. - * Return a list of settings. - */ - virtual SettingList& getOldValues(DataObjectPtr dataObject); - - /** getOldXpath returns the old path before the setting. - * - * Returns a path where the object was located before the setting took place. - */ - virtual const char* getOldXpath(RefCountingPointer dol); - - - /** beginLogging() sets the change summary in logging mode. - * - * The change summary is initially inactive. Setting it to logging mode - * starts the process of recording all the settings made. - */ - - virtual void beginLogging(); - - /** endLogging() stops logging. - * - * This method stops logging, but does not clear out the change summary. - * The changes are valid until the summary is next set to logging, at which time - * all old settings are lost. - */ - virtual void endLogging(); - - - - /** isLogging() returns true if logging is enabled. - * - * Indicates whether change logging is on (true) or off (false). - */ - - virtual bool isLogging(); - - - - /** isCreated() returns true if the object was created during logging. - * - * Returns whether or not the specified data object was created while logging. - * Any object that was added to the data graph - * but was not in the data graph when logging began, - * will be considered created. - * Param dataObject the data object in question. - * Return true if the specified data object was created. - */ - virtual bool isCreated(DataObjectPtr dataObject); - - /** isDeleted() - true if the object was deleted during logging. - * - * Returns whether or not the specified data object was deleted while logging. - * Any object that is not contained by the data graph will be considered - * deleted. - * Param dataObject the data object in question. - * Return true if the specified data object was deleted. - */ - virtual bool isDeleted(DataObjectPtr dataObject); - - - /** isModified() - true if the object was changed during logging. - * - * Returns whether or not the specified data object was updated while logging. - * An object that was contained in the data graph when logging began, - * and remains in the graph when logging ends will be considered for changes. - * An object considered modified must have at least one old value Setting. - * Param dataObject the data object in question. - * Return true if the specified data object was modified. - */ - virtual bool isModified(DataObjectPtr dataObject); - - /** getOldValue() gets the setting showing the old value. - * - * Returns a setting for the specified property - * representing the property value of the given dataObject - * at the point when logging began. - * Returns null if the property has not changed and - * has not been deleted. - * Param dataObject the object in question. - * Param property the property of the object. - * Return the Setting for the specified property. - */ - - virtual const Setting& getOldValue(DataObjectPtr dataObject, const Property& property); - - /** getOldContainer() gets the container before the setting. - * - * Returns the value of the container data object - * at the point when logging began. - * Param dataObject the object in question. - * Return the old container data object. - */ - virtual DataObjectPtr getOldContainer(DataObjectPtr dataObject); - - /** getOldContainmentProperty() - gives the property before setting. - * - * Returns the value of the containment property data object property - * at the point when logging began. - * Param dataObject the object in question. - * Return the old containment property. - */ - virtual const Property& getOldContainmentProperty(DataObjectPtr dataObject); - - /** undoChanges() - Not Implemented. - * - * NOT IMPLEMENTED - * - * Undoes all changes in the log to restore the tree of - * DataObjects to its original state when logging began. - * isLogging() is unchanged. The log is cleared. - */ - virtual void undoChanges(); - - /** getOldSequence() - Not Implemented. - * - * NOT IMPLEMENTED - * - * This method gives back the sequence of a data object as it - * appeared when logging was switched on. The data object may be - * a deleted data object or a changed data object. If the - * data object was not sequenced, this returns null. - */ - - virtual SDO_API SequencePtr getOldSequence(DataObjectPtr dataObject); - - bool isInCreatedMap(DataObjectImpl* ob); - - void logDeletion(DataObjectImpl* ob, - DataObjectImpl* cont, const Property& prop, - const char* oldpath, - bool loggingChildren = true - ); - - void logCreation(DataObjectImpl* ob, - DataObjectImpl* cont, const Property& prop - ); - - void logChange(DataObjectImpl* ob, const Property& prop - ); - - - SDO_API void debugPrint(); - - void removeFromChanges(DataObjectImpl* ob); - - - /** - * appendToCreations is used by deserialization - * This method helps to rebuild a change summary by populating the - * lists without the changes actually being logged. - */ - - void appendToCreations(const Property& p, - DataObjectPtr dob, - DataObjectPtr cont); - - - /** - * appendToDeletions is used by deserialization - * This method helps to rebuild a change summary by populating the - * lists without the changes actually being logged. - */ - void appendToDeletions(const Property& p, - DataObjectPtr dob, - DataObjectPtr cont, - const char* oldpath); - - - unsigned int stringConvert( - char** value, - const char* c, - const Property& p); - - /** - * appendToChangesis used by deserialization - * This method helps to rebuild a change summary by populating the - * lists without the changes actually being logged. - */ - - void appendToChanges(const Property& p, - DataObjectPtr dob, - SDOXMLString value, - int index); - - void appendToChanges(const Property& p, - DataObjectPtr dob, - DataObjectPtr pdob, - int index); - - DataObjectPtr matchDeletedObject(SDOXMLString path); - - - private: - - - void setPropValue(void** value, unsigned int *len, DataObjectImpl* ob, const Property& prop); - void setManyPropValue(void** value, unsigned int *len, DataObjectImpl* ob, - DataObjectImpl* listob, const Property& prop); - bool logging; - - typedef std::map CREATELOG_MAP; - typedef std::map DELETELOG_MAP; - typedef std::map CHANGELOG_MAP; - - CHANGELOG_MAP changedMap; - CREATELOG_MAP createdMap; - DELETELOG_MAP deletedMap; - - ChangedDataObjectListImpl changedDataObjects; - - - - - -}; -}; -}; -#endif //_CHANGESUMMARYIMPL_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectList.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectList.h deleted file mode 100644 index e28973041f..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectList.h +++ /dev/null @@ -1,91 +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 $ */ - -#ifndef _CHANGEDDATAOBJECTLIST_H_ -#define _CHANGEDDATAOBJECTLIST_H_ - - -#include "commonj/sdo/RefCountingPointer.h" - -#include - -/** - * namespace commonj is the root namespace for SDO - */ - -namespace commonj{ - -/** - * sdo is the namespace holding the SDO core - */ - -namespace sdo{ - -class DataObject; - -/** - * - * A list for holding a record of changes which have happened - * during logging in a change summary. - */ - -class ChangedDataObjectList -{ - -public: - -/** \enum ChangeType - * - * An enum for create, change or delete types in a change record - */ - enum ChangeType - { - Undefined, - Create, - Change, - Delete - }; - -/** [] is the index operator. - * - * Gets the nth element of a list - */ - virtual SDO_API DataObjectPtr operator[] (int pos) = 0; - virtual SDO_API const DataObjectPtr operator[] (int pos) const = 0; - -/** size() returns the number of list elements. - * - * Returns the number of list elements - */ - - virtual SDO_API int size () const = 0; - -/** getType() returns the type of a list element. - * - * The type of change is one of the enum ChangeType, being a - * creation, a deletion or an update. - */ - - virtual SDO_API ChangeType getType(unsigned int index) = 0; - -}; -}; -}; -#endif - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.cpp deleted file mode 100644 index c1f4e7ccc1..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.cpp +++ /dev/null @@ -1,248 +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 "commonj/sdo/ChangedDataObjectListImpl.h" - - -#include -#include "commonj/sdo/Property.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/Logger.h" -#include "commonj/sdo/SDORuntimeException.h" -#include "commonj/sdo/DataObjectImpl.h" - - -namespace commonj{ -namespace sdo { - - /** CDOListElement - * - * constructor - */ - - CDOListElement::CDOListElement() - { - theObject = 0; - theType = ChangedDataObjectList::Undefined; - } - - /** CDOListElement - * - * constructor from a data object and a change - */ - - CDOListElement::CDOListElement(DataObject* in, ChangedDataObjectList::ChangeType type) - { - theObject = in; - theType = type; - } - - /** ~CDOListElement() - * - * destructor - */ - - CDOListElement::~CDOListElement() - { - } - - /** getObject() - * - * return the changed data object - */ - - DataObject* CDOListElement::getObject() const - { - return theObject; - } - - /** - * - * return the type of change getType() - */ - - ChangedDataObjectList::ChangeType CDOListElement::getType() const - { - return theType; - } - - /** ChangedDataObjectListImpl - * - * constructor - */ - - ChangedDataObjectListImpl::ChangedDataObjectListImpl(CHANGEDDATAOBJECT_VECTOR p) : plist (p) - { - } - - /** ChangedDataObjectListImpl - * - * copy constructor - */ - - ChangedDataObjectListImpl::ChangedDataObjectListImpl(const ChangedDataObjectListImpl &pin) - { - plist = std::vector< CDOListElement >(pin.getVec()); - } - - /** ChangedDataObjectListImpl - * - * default constructor - */ - - ChangedDataObjectListImpl::ChangedDataObjectListImpl() - { - } - - - /** ~ChangedDataObjectListImpl - * - * destructor - */ - - ChangedDataObjectListImpl::~ChangedDataObjectListImpl() - { - } - - /** [] index operator - * - * - */ - - RefCountingPointer ChangedDataObjectListImpl::operator[] (int pos) - { - validateIndex(pos); - return plist[pos].getObject(); - } - - /** [] index operator - * - * - */ - - const RefCountingPointer ChangedDataObjectListImpl::operator[] (int pos) const - { - validateIndex(pos); - return plist[pos].getObject(); - } - - /** get() gets an element at the index. - * - */ - - DataObject* ChangedDataObjectListImpl::get(unsigned int pos) - { - validateIndex(pos); - return plist[pos].getObject(); - } - - /** size() returns the length of the list. - * - * - */ - - int ChangedDataObjectListImpl::size () const - { - return plist.size(); - } - - /** getVec() - * gets the vector which actually stores the data objects. - */ - - CHANGEDDATAOBJECT_VECTOR ChangedDataObjectListImpl::getVec() const - { - return plist; - } - - /** getType() - * returns the type of the change. - */ - - ChangedDataObjectList::ChangeType ChangedDataObjectListImpl::getType(unsigned int pos) - { - validateIndex(pos); - return plist[pos].getType(); - } - - - /** insert() - * inserts an element into the list. - */ - - void ChangedDataObjectListImpl::insert (unsigned int index, - DataObject *d, ChangedDataObjectList::ChangeType type) - { - plist.insert(plist.begin()+index, CDOListElement((DataObject*)d,type)); - } - - /** append() - * appends to the end of the list. - */ - - void ChangedDataObjectListImpl::append (DataObject *d, ChangedDataObjectList::ChangeType type) - { - plist.insert(plist.end(),CDOListElement((DataObject*)d, type)); - } - - /** clear() - * empties the list. - */ - - void ChangedDataObjectListImpl::clear () - { - plist.clear(); - } - - - /** remove() - * removes an item from the list. - */ - - void ChangedDataObjectListImpl::remove(unsigned int index) - { - validateIndex(index); - plist.erase(plist.begin() +index); - return ; - } - - /** validateIndex() - * checks that the index is in range. - */ - - void ChangedDataObjectListImpl::validateIndex(int index) const - { - if ((index < 0) || (index >= size())) - { - string msg("Invalid index : "); - msg += index; - SDO_THROW_EXCEPTION("(ChangeSummary)validateIndex", SDOIndexOutOfRangeException, - msg.c_str()); - - } - - } - - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.h deleted file mode 100644 index 9587a8402d..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ChangedDataObjectListImpl.h +++ /dev/null @@ -1,97 +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 $ */ - -#ifndef _ChangedDataObjectListImplIMPL_H_ -#define _ChangedDataObjectListImplIMPL_H_ - -#include "commonj/sdo/disable_warn.h" - - -#include - -#include "commonj/sdo/ChangedDataObjectList.h" -namespace commonj{ -namespace sdo{ - -class DataObjectImpl; -class DataObject; - -/** - * CDOListElement is an element of the changed data object list - * in a change summary,it may be a delete, addition or change. - */ - -class CDOListElement -{ -public: - CDOListElement (); - CDOListElement (DataObject* in, ChangedDataObjectList::ChangeType type); - virtual ~CDOListElement(); - virtual ChangedDataObjectList::ChangeType getType() const; - virtual DataObject* getObject() const; -private: - DataObject* theObject; - ChangedDataObjectList::ChangeType theType; -}; - -typedef std::vector< CDOListElement > CHANGEDDATAOBJECT_VECTOR; - - -/** - * ChangedDataObjectListImpl implements ChangedDataObjectList, part of a - * change summary. - * This is the list of objects which have been altered during - * logging of a change summary. - */ - -class ChangedDataObjectListImpl : public ChangedDataObjectList -{ - -public: - ChangedDataObjectListImpl(CHANGEDDATAOBJECT_VECTOR p); - ChangedDataObjectListImpl(const ChangedDataObjectListImpl &pin); - ChangedDataObjectListImpl(); - - virtual ~ChangedDataObjectListImpl(); - virtual DataObjectPtr operator[] (int pos); - virtual const DataObjectPtr operator[] (int pos) const; - virtual DataObject* get(unsigned int pos); - virtual ChangedDataObjectList::ChangeType getType(unsigned int pos); - - - virtual int size () const; - - virtual void insert (unsigned int index, DataObject *d, ChangedDataObjectList::ChangeType type); - - virtual void append (DataObject* d, ChangedDataObjectList::ChangeType type); - - virtual void clear(); - - virtual void remove (unsigned int index); - - -private: - CHANGEDDATAOBJECT_VECTOR plist; - CHANGEDDATAOBJECT_VECTOR getVec() const; - - void validateIndex(int index) const; -}; -}; -}; -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.cpp deleted file mode 100644 index 19d2913fcc..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.cpp +++ /dev/null @@ -1,258 +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 "commonj/sdo/Property.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/TypeList.h" -#include "commonj/sdo/Sequence.h" -#include "commonj/sdo/RefCountingPointer.h" -#include "commonj/sdo/DataObjectImpl.h" - - -#include "commonj/sdo/CopyHelper.h" - -namespace commonj{ -namespace sdo{ - - /** CopyHelper provides static copying helper functions. - * - * CopyHelper provides shallow and deep copy of data objects. - * copyShallow() copies the DataType members of the data object. - * copy() copies all the members and recurses downwards though - * the data graph - */ - - void CopyHelper::transferitem(DataObjectPtr to, DataObjectPtr from, const Property& p) - { - switch (p.getTypeEnum()) - { - case Type::BooleanType: - to->setBoolean( p, from->getBoolean(p)); - break; - case Type::ByteType: - to->setByte( p, from->getByte(p)); - break; - case Type::CharacterType: - to->setCharacter( p, from->getCharacter(p)); - break; - case Type::IntegerType: - to->setInteger( p, from->getInteger(p)); - break; - case Type::ShortType: - to->setShort( p,from->getShort(p)); - break; - case Type::DoubleType: - to->setDouble( p, from->getDouble(p)); - break; - case Type::FloatType: - to->setFloat( p, from->getFloat(p)); - break; - case Type::LongType: - to->setLong( p, from->getLong(p)); - break; - case Type::DateType: - to->setDate( p, from->getDate(p)); - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::UriType: - case Type::StringType: - { - unsigned int siz = from->getLength(p); - if (siz > 0) - { - wchar_t * buf = new wchar_t[siz]; - from->getString(p,buf, siz); - to->setString(p, buf, siz); - delete buf; - } - } - break; - case Type::BytesType: - { - unsigned int siz = from->getLength(p); - if (siz > 0) - { - char * buf = new char[siz]; - from->getBytes(p,buf, siz); - to->setBytes(p, buf, siz); - delete buf; - } - } - break; - default: - break; - } // switch - } - - void CopyHelper::transferlist(DataObjectList& to, DataObjectList& from, Type::Types t) - { - for (int i=0;i< from.size(); i++) - { - switch (t) - { - case Type::BooleanType: - to.append(from.getBoolean(i)); - break; - case Type::ByteType: - to.append(from.getByte(i)); - break; - case Type::CharacterType: - to.append(from.getCharacter(i)); - break; - case Type::IntegerType: - to.append(from.getInteger(i)); - break; - case Type::ShortType: - to.append(from.getShort(i)); - break; - case Type::DoubleType: - to.append(from.getDouble(i)); - break; - case Type::FloatType: - to.append(from.getFloat(i)); - break; - case Type::LongType: - to.append(from.getLong(i)); - break; - case Type::DateType: - to.append(from.getDate(i)); - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::UriType: - case Type::StringType: - { - unsigned int siz = from.getLength(i); - if (siz > 0) - { - wchar_t * buf = new wchar_t[siz]; - from.getString(i,buf,siz); - to.append(buf,siz); - delete buf; - } - } - break; - - case Type::BytesType: - { - unsigned int siz = from.getLength(i); - if (siz > 0) - { - char * buf = new char[siz]; - from.getBytes(i,buf,siz); - to.append(buf,siz); - delete buf; - } - } - break; - - default: - break; - } // case - } // for - } // method - - /** CopyHelper provides static copying helper functions. - * - * copyShallow() copies the DataType members of the data object. - * copy() copies all the members and recurses downwards though - * the data graph - */ - DataObjectPtr CopyHelper::copyShallow(DataObjectPtr dataObject) - { - return internalCopy(dataObject, false); - - } - - /** CopyHelper provides static copying helper functions. - * - * copyShallow() copies the DataType members of the data object. - * copy() copies all the members and recurses downwards though - * the data graph - */ - DataObjectPtr CopyHelper::copy(DataObjectPtr dataObject) - { - return internalCopy(dataObject, true); - } - - DataObjectPtr CopyHelper::internalCopy(DataObjectPtr dataObject, - bool fullCopy) - { - - DataObject* theob = dataObject; - DataFactoryPtr fac = ((DataObjectImpl*)theob)->getDataFactory(); - if (!fac) return 0; - - const Type& t = dataObject->getType(); - DataObjectPtr newob = fac->create(t); - if (!newob) return 0; - - PropertyList pl = dataObject->getInstanceProperties(); - for (int i=0;i < pl.size(); i++) - { - if (dataObject->isSet(pl[i])) - { - // data objects are only copied in the deep copy case - if (pl[i].getType().isDataObjectType()) - { - if (!fullCopy) - { - continue; - } - else - { - if (pl[i].isMany()) - { - DataObjectList& dolold = dataObject->getList(pl[i]); - DataObjectList& dolnew = newob->getList(pl[i]); - for (int i=0;i< dolold.size(); i++) - { - dolnew.append(internalCopy(dolold[i],true)); - } - } - else - { - DataObjectPtr dob = dataObject->getDataObject(pl[i]); - newob->setDataObject(pl[i],internalCopy(dob,true)); - } - } - } - else - { - if (pl[i].isMany()) - { - DataObjectList& dolold = dataObject->getList(pl[i]); - DataObjectList& dolnew = newob->getList(pl[i]); - transferlist(dolnew,dolold, pl[i].getTypeEnum()); - } - else - { - transferitem(newob,dataObject, pl[i]); - } - } // else - } - } - return newob; - } - - -} -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.h deleted file mode 100644 index 954333a15b..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/CopyHelper.h +++ /dev/null @@ -1,69 +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 $ */ - -#ifndef _COPYHELPER_H_ -#define _COPYHELPER_H_ - - -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/RefCountingPointer.h" - -namespace commonj{ -namespace sdo{ - - /** CopyHelper provides static copying helper functions. - * - * CopyHelper provides shallow and deep copy of data objects. - * copyShallow() copies the DataType members of the data object. - * copy() copies all the members and recurses downwards though - * the data graph - */ - -class CopyHelper -{ - public: - - /** CopyHelper provides static copying helper functions. - * - * CopyHelper provides shallow and deep copy of data objects. - * copyShallow() copies the DataType members of the data object. - * copy() copies all the members and recurses downwards though - * the data graph - */ - static SDO_API DataObjectPtr copyShallow(DataObjectPtr dataObject); - - /** CopyHelper provides static copying helper functions. - * - * CopyHelper provides shallow and deep copy of data objects. - * copyShallow() copies the DataType members of the data object. - * copy() copies all the members and recurses downwards though - * the data graph - */ - static SDO_API DataObjectPtr copy(DataObjectPtr dataObject); - - private: - static void transferlist(DataObjectList& to, DataObjectList& from, Type::Types t); - static void transferitem(DataObjectPtr to, DataObjectPtr from, const Property& p); - static DataObjectPtr internalCopy(DataObjectPtr dataObject, bool fullCopy); - -}; -}; -}; - -#endif //_COPYHELPER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.cpp deleted file mode 100644 index ed4dc5f8ba..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.cpp +++ /dev/null @@ -1,32 +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 "commonj/sdo/DASProperty.h" - - -namespace commonj{ -namespace sdo{ - - - DASProperty::~DASProperty() - { - } -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.h deleted file mode 100644 index 9cff3a7967..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASProperty.h +++ /dev/null @@ -1,46 +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 $ */ - -#ifndef _DASPROPERTY_H_ -#define _DASPROPERTY_H_ -#include "commonj/sdo/Property.h" -#include "commonj/sdo/DASValues.h" - -#include "commonj/sdo/disable_warn.h" - -namespace commonj{ -namespace sdo{ - -/** - * DASProperty is a class to provide data access services - * with a more flexible Property - */ - - class DASProperty : public Property, public DASValues -{ - public: - - virtual ~DASProperty(); - - - -}; -}; -}; -#endif //_DMSDATAOBJECT_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.cpp deleted file mode 100644 index d249f1a2f0..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.cpp +++ /dev/null @@ -1,32 +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 "commonj/sdo/DASType.h" - - -namespace commonj{ -namespace sdo{ - - - DASType::~DASType() - { - } -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.h deleted file mode 100644 index 75c55d0bf7..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASType.h +++ /dev/null @@ -1,53 +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 $ */ - -#ifndef _DASTYPE_H_ -#define _DASTYPE_H_ - -#include "commonj/sdo/disable_warn.h" - - -#include "commonj/sdo/Type.h" -#include "commonj/sdo/DASValues.h" -namespace commonj{ -namespace sdo{ - -/** - * DASType is a class to provide data access services - * with a more flexible Type - */ - -class DASType : public Type, public DASValues -{ - public: - - virtual ~DASType(); - - - - virtual void setOpen(bool set) = 0; - virtual void setSequenced( bool set) = 0; - virtual void setBaseType( const Type* type) = 0; - - - -}; -}; -}; -#endif //_DASDATAOBJECT_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.cpp deleted file mode 100644 index 66f493b84e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.cpp +++ /dev/null @@ -1,52 +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 "commonj/sdo/DASValue.h" - - -namespace commonj -{ - namespace sdo - { - - DASValue::DASValue() - { - } - - DASValue::DASValue(const char* val) - : value(val) - { - } - - DASValue::~DASValue() - { - - } - - const char* DASValue::getValue() const - { - return value.c_str(); - } - - - } -} -// end - namespace sdo - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.h deleted file mode 100644 index f15a24aae4..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValue.h +++ /dev/null @@ -1,52 +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 $ */ - -#ifndef _SDO_DASValue_H_ -#define _SDO_DASValue_H_ - - -#include "commonj/sdo/export.h" -#include "string" - - -namespace commonj -{ - namespace sdo - { - -/** - * DASValue is a class to hold information required by data - * access services but not required by the data factory. - */ - class DASValue - { - public: - SDO_API DASValue(); - SDO_API DASValue(const char* value); - SDO_API virtual ~DASValue(); - SDO_API const char* getValue() const; - - private: - std::string value; - - }; - - } -} -#endif //_SDO_DASValue_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.cpp deleted file mode 100644 index aac9702cfd..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.cpp +++ /dev/null @@ -1,68 +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 "commonj/sdo/DASValues.h" - -using namespace std; -namespace commonj -{ - namespace sdo - { - -/** - * DASValues is a class to hold list of information required by data - * access services but not required by the data factory. - */ - - DASValues::~DASValues() - { - DASValue_MAP::iterator propertyIter; - for (propertyIter = properties.begin() ; propertyIter != properties.end() ; ++propertyIter) - { - delete propertyIter->second; - } - } - - void DASValues::setDASValue(const char* name, DASValue* property) - { - DASValue* prop = getDASValue(name); - if (prop != 0 && prop != property) - { - delete prop; - } - properties[name] = property; - } - - DASValue* DASValues::getDASValue(const char* name) - { - DASValue_MAP::iterator propertyIter; - propertyIter = properties.find(name); - if(propertyIter != properties.end()) - { - return propertyIter->second; - } - return NULL; - - } - - } -} -// end - namespace sdo - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.h deleted file mode 100644 index 6c5ba835c3..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DASValues.h +++ /dev/null @@ -1,57 +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 $ */ - -#ifndef _SDO_DASValues_H_ -#define _SDO_DASValues_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/export.h" -#include "commonj/sdo/DASValue.h" -#include "map" -#include "string" - - - -namespace commonj -{ - namespace sdo - { - -/** - * DASValues is a class to hold list of information required by data - * access services but not required by the data factory. - */ - - class DASValues - { - public: - SDO_API virtual ~DASValues(); - SDO_API virtual void setDASValue(const char* name, DASValue* value); - SDO_API virtual DASValue* getDASValue(const char* name); - private: - - typedef std::map DASValue_MAP; - DASValue_MAP properties; - - }; - - } -} -#endif //_SDO_DASValues_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.cpp deleted file mode 100644 index 026ed5c871..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.cpp +++ /dev/null @@ -1,52 +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 "commonj/sdo/DataFactory.h" -#include "commonj/sdo/DataFactoryImpl.h" - -namespace commonj{ -namespace sdo{ - -/** - * DataFactory holds metadata and creates DataObjects. - * - * The DataFactory holds properties and types loaded from XSD, or - * created using the DataFactory API. - */ - - DataFactory::~DataFactory() - { - } - - RefCountingPointer DataFactory::getDataFactory() - { - DataFactory* dob = (DataFactory*)(new DataFactoryImpl()); - return RefCountingPointer (dob); - } - - RefCountingPointer DataFactory::clone() - { - const DataFactoryImpl* df = (const DataFactoryImpl*)this; - DataFactory* dob = (DataFactory*)(new DataFactoryImpl(*df)); - return RefCountingPointer (dob); - } - -}; -}; diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.h deleted file mode 100644 index 63a36ce8e4..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactory.h +++ /dev/null @@ -1,501 +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 $ */ - -#ifndef _DATAFACTORY_H_ -#define _DATAFACTORY_H_ - -#include "commonj/sdo/export.h" - -#include "commonj/sdo/TypeList.h" - -#include "commonj/sdo/RefCountingObject.h" -#include "commonj/sdo/RefCountingPointer.h" -#include "commonj/sdo/SDODate.h" -#include "commonj/sdo/DASValue.h" - - -namespace commonj{ -namespace sdo{ - -class DataObject; -class Type; - -/** - * DataFactory holds metadata and creates DataObjects. - * - * The DataFactory holds properties and types loaded from XSD, or - * created using the DataFactory API. - */ - -class DataFactory : public RefCountingObject -{ - public: - - - /** - * getDataFactory is static and gets a data factory - * - * Static method to get a new data factory, with a set of base Types defined. - * With the data factory returned, either load Type definitions - * from XSD, or use the DataFactory APIs to define the types. - */ - - static SDO_API DataFactoryPtr getDataFactory(); - - virtual SDO_API ~DataFactory(); - - - /** - * DataFactory::clone copies a data factory - * - * Copy the data factory, and return a new data factory which - * has the same properties and types, but is still able to have - * new types added to it. - */ - - SDO_API virtual DataFactoryPtr clone(); - - /** - * DataFactory::create creates a data object. - * - * Create a data object based on the type specified as a parameter - * Once a data object has been created by this factory, the metadata - * (types and properties) may no longer be altered. - */ - - SDO_API virtual DataObjectPtr create(const char* uri, const char* typeName) = 0; - - SDO_API virtual DataObjectPtr create(const Type& type) = 0; - - /** - * DataFactory::getType gets a type back from the factory. - * - * Get a type as specified in the data factory. Useful for creating - * data objects or querying properties. - */ - - virtual const Type& getType(const char* uri, const char* inTypeName) const = 0; - - - /** - * DataFactory::getTypes gets a list of types back from the factory. - * - * Get all the types available within this data factory. Useful for - * validating whether a data object is of the correct type to be - * usable. - */ - - virtual TypeList getTypes() const = 0; - - /** - * DataFactory::addType adds a type definition. - * - * Add a type defintion to the factory. (Properties may be added later). - * The type is defined by its uri and name. - * -# The type may be sequenced - and therefore work with a sequence API. - * -# The type may be open, indicating that it may have extra properties - * added at runtime. - * -# The type may be abstract, so the data factory will not permit creation - * of instances. - * -# The type may be a data type, indicating that is will not have properties. - * The Type may inherit from another type, but that is specified later with a - * call to setBaseType(). - */ - - - virtual SDO_API void addType(const char* uri, const char* inTypeName, - bool isSequenced = false, - bool isOpen = false, - bool isAbstract = false, - bool isDataType = false) = 0; - - - /** - * DataFactory::setBaseType allows inheritance - * - * The type specified second in the parameters becomes the basetype - * of the first parameter. - * The second type will have all the properties of its baser type, followed - * by any additional properties of its own. The property indices of the properties - * of the subclass will begin at one more than the total number of - * properties of the supertype - * This relationship is fixed when the first data object of any type is - * created by the factory. Up to that point the base type may be changed. - * - */ - - virtual SDO_API void setBaseType( - const Type& type, - const Type& base) = 0; - - virtual SDO_API void setBaseType( - const char* typeuri, - const char* typenam, - const char* baseuri, - const char* basename) = 0; - - /** - * DataFactory::setAlias sets an alternative name - * - * A Type may be known to the data factory by several different names. - * This method adds a new name for an existing property. - * - */ - - virtual SDO_API void setAlias(const char* typeuri, - const char* typenam, - const char* alias) = 0; - - /** - * DataFactory::addPropertyToType adds properties - * - * The various addPropertyToType methods add a property to an - * existing type in the factory, specifying the name of the new property, - * and the type of the new property - which must also be an existing type - * in this factory. - * -# The new property may be many-valued - so it will be a list of values. - * -# The property may be read-only , and may not be altered by user code - - * However the value may be changed by data access service code. - * -# The property may be containment. - * The type of a property may be DataType, or DataObjectType (see Types). - * If the property is a DataType, then the actual value of the property is held - * within the data object containing the property. - * If the property is a DataObjectType, it may be containment, or reference. - * Containment indicates that the value of the property is contained in the - * data object, whilst reference indicates that the property is only a pointer to - * a value somewhere else in the data graph. - * - */ - - - virtual SDO_API void addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool isMany , - bool isReadOnly , - bool isContainment ) = 0; - - virtual SDO_API void addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const Type& propType, - bool isMany , - bool isReadOnly , - bool isContainment ) = 0; - - virtual SDO_API void addPropertyToType(const Type& type, - const char* propname, - const Type& propType, - bool isMany , - bool isReadOnly , - bool isContainment ) = 0; - - virtual SDO_API void addPropertyToType(const Type& type, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool isMany , - bool isReadOnly , - bool isContainment ) = 0; - - - virtual SDO_API void addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool isMany = false) =0; - - virtual SDO_API void addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const Type& propType, - bool isMany = false) =0; - - virtual SDO_API void addPropertyToType(const Type& type, - const char* propname, - const Type& propType, - bool isMany = false) =0; - - virtual SDO_API void addPropertyToType(const Type& type, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool isMany = false) =0; - - /** - * DataFactory::setOpposite sets an opposite name - * - * NOT IMPLEMENTED. - * - */ - - virtual SDO_API void setOpposite( - const Type& type, - const char* propName, - const Type& oppositetype, - const char* oppositePropName) = 0; - - - /** - * DataFactory::setAlias sets a property alias name - * - * A property, like a type, may be known to the factory by several - * names. - */ - - virtual SDO_API void setAlias(const char* typeuri, - const char* typname, - const char* propname, - const char* alias) = 0; - - /** - * DataFactory::setPropertySubstitute sets a substitute for a property - * - * A property is of a specified type. However this method specifies another type - * which will be accepted by the data factory at runtime as a substitute for this - * property, and will be inserted into the parent data object as though it was - * a value for this property. The substitute name is then used for this property - * as a sort of alias. - * names. - */ - - virtual SDO_API void setPropertySubstitute( - const char* uri, - const char* inTypeName, - const char* propname, - const char* subname, - const char* subTypeUri, - const char* subTypeName) = 0; - - - virtual SDO_API void setPropertySubstitute( - const Type& containertype, - const char* propname, - const char* subname, - const Type& subtype) = 0; - - - /** - * DataFactory::setDefault sets a default value for a property - * - * When querying the value of a property of a data object, that property - * may be set - indicating that a value has been assigned, or unset - indicating that - * no value has yet been assigned. - * If there is no value assigned, then a default value may be returned for that - * property. - * This method allows the data factory to define that default value. - * There is no default value for a DataObjectType. There are overloads for - * each of the primitive DataTypes. - */ - - virtual SDO_API void setDefault( - const Type& t, - const char* propname, - bool b ) = 0; - - virtual SDO_API void setDefault( - const Type& t, - const char* propname , - char c) = 0; - - virtual SDO_API void setDefault( - const Type& t, - const char* propname , - wchar_t c) = 0; - - virtual SDO_API void setDefault( - const Type& t, - const char* propname , - char* c) = 0; - - virtual SDO_API void setDefault( - const Type& t, - const char* propname , - short s) = 0; - - virtual SDO_API void setDefault( - const Type& t, - const char* propname , - long l) = 0; - - virtual SDO_API void setDefault( - const Type& t, - const char* propname , - int64_t i) = 0; - - virtual SDO_API void setDefault( - const Type& t, - const char* propname , - float f) = 0; - - virtual SDO_API void setDefault( - const Type& t, - const char* propname , - long double d) = 0; - - virtual SDO_API void setDefault( - const Type& t, - const char* propname , - const wchar_t* c, - unsigned int len) = 0; - - virtual SDO_API void setDefault( - const Type& t, - const char* propname , - const char* c, - unsigned int len) = 0; - - - virtual SDO_API void setDefault( - const Type& t, - const char* propname , - const SDODate dat) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname, - bool b ) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - char c) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - wchar_t c) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - char* c) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - short s) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - long l) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - int64_t i) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - float f) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - long double d) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - const wchar_t* c, - unsigned int len) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - const char* c, - unsigned int len) = 0; - - virtual SDO_API void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - const SDODate dat) = 0; - - - /** - * DAS values are used by a DAS implementation - */ - - virtual SDO_API void setDASValue( - const Type& type, - const char* name, - DASValue* value) = 0; - - virtual SDO_API void setDASValue( - const char* typeuri, - const char* typenam, - const char* name, - DASValue* value) = 0; - - virtual SDO_API DASValue* getDASValue( - const Type& type, - const char* name) const = 0; - - virtual SDO_API DASValue* getDASValue( - const char* typeuri, - const char* typenam, - const char* name) const = 0; - - virtual SDO_API void setDASValue( - const Type& type, - const char* propertyName, - const char* name, - DASValue* value) = 0; - - virtual SDO_API void setDASValue( - const char* typeuri, - const char* typenam, - const char* propertyName, - const char* name, - DASValue* value) = 0; - - virtual SDO_API DASValue* getDASValue( - const Type& type, - const char* propertyName, - const char* name) const = 0; - - virtual SDO_API DASValue* getDASValue( - const char* typeuri, - const char* typenam, - const char* propertyName, - const char* name) const = 0; - - virtual void resolve() = 0; - - }; -}; -}; -#endif //_DATAFACTORY_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.cpp deleted file mode 100644 index ac5d4f642f..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.cpp +++ /dev/null @@ -1,1237 +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: 2006/02/08 14:43:56 $ */ - -////////////////////////////////////////////////////////////////////// -// DataFactoryImpl.cpp: implementation of the DataFactory class. -// -////////////////////////////////////////////////////////////////////// -#include "commonj/sdo/SDORuntimeException.h" - -#include "commonj/sdo/DataFactoryImpl.h" -#include "commonj/sdo/DataObjectImpl.h" - -#include "commonj/sdo/Logger.h" - - -#include "commonj/sdo/PropertyList.h" - -#include -#include - - -using namespace std; -using namespace commonj::sdo; - -namespace commonj{ -namespace sdo { - -// =================================================================== -// Constructor -// =================================================================== -DataFactoryImpl::DataFactoryImpl() -{ - - /* add the primitives to every mdg - */ - - isResolved = false; - addType(Type::SDOTypeNamespaceURI,"BigDecimal"); - addType(Type::SDOTypeNamespaceURI,"BigInteger"); - addType(Type::SDOTypeNamespaceURI,"Boolean"); - - addType(Type::SDOTypeNamespaceURI,"Byte"); - addType(Type::SDOTypeNamespaceURI,"Bytes"); - addType(Type::SDOTypeNamespaceURI,"Character"); - - addType(Type::SDOTypeNamespaceURI,"String"); - addType(Type::SDOTypeNamespaceURI,"DataObject"); - addType(Type::SDOTypeNamespaceURI,"Date"); - addType(Type::SDOTypeNamespaceURI,"Double"); - addType(Type::SDOTypeNamespaceURI,"Float"); - addType(Type::SDOTypeNamespaceURI,"Integer"); - addType(Type::SDOTypeNamespaceURI,"Long"); - addType(Type::SDOTypeNamespaceURI,"Short"); - addType(Type::SDOTypeNamespaceURI,"URI"); - - // abstract - addType(Type::SDOTypeNamespaceURI,"ChangeSummary"); - - rootElementName = 0; - - -} - -// =================================================================== -// Destructor -// =================================================================== -DataFactoryImpl::~DataFactoryImpl() -{ - - TYPES_MAP::iterator typeIter; - for (typeIter = types.begin() ; typeIter != types.end() ; ++typeIter) - { - if (strncmp((typeIter->first).c_str(),"ALIAS::", 7)) - { - delete typeIter->second; - } - } - if (rootElementName != 0) - { - delete rootElementName; - rootElementName = 0; - } - -} - -// =================================================================== -// get the root element name -// =================================================================== -const char* DataFactoryImpl::getRootElementName() const -{ - return (const char*)rootElementName; -} - -// =================================================================== -// set the root element name -// =================================================================== -void DataFactoryImpl::setRootElementName(const char* ren) -{ - if (rootElementName != 0) - { - delete rootElementName; - rootElementName = 0; - } - if (ren != 0 && (strlen(ren) != 0)) - { - rootElementName = new char[strlen(ren) +1]; - strcpy(rootElementName, ren); - } -} - -// =================================================================== -// copy constructor -// =================================================================== -DataFactoryImpl::DataFactoryImpl(const DataFactoryImpl& inmdg) -{ - isResolved = false; - rootElementName = 0; - setRootElementName(inmdg.getRootElementName()); - copyTypes(inmdg); -} - -// =================================================================== -// Assignment operator -// =================================================================== -DataFactoryImpl& DataFactoryImpl::operator=(const DataFactoryImpl& inmdg) -{ - if (this != &inmdg) - { - rootElementName = 0; - copyTypes(inmdg); - setRootElementName(inmdg.getRootElementName()); - } - return *this; -} - -// =================================================================== -// copy Types to this DataFactory -// =================================================================== -void DataFactoryImpl::copyTypes(const DataFactoryImpl& inmdg) -{ - - if (isResolved) - { - SDO_THROW_EXCEPTION("copyTypes", - SDOUnsupportedOperationException, "Copying Type after data graph completed"); - } - - TYPES_MAP::const_iterator typeIter; - TYPES_MAP::iterator typeIter2; - char* fullTypeName; - - for (typeIter = inmdg.types.begin() ; typeIter != inmdg.types.end() ; ++typeIter) - { - // add this type to this metadata - addType((typeIter->second)->getURI(), (typeIter->second)->getName()); - - // re-find the type we just added. - fullTypeName = getFullTypeName( - (typeIter->second)->getURI(), - (typeIter->second)->getName()); - typeIter2 = types.find(fullTypeName); - if (fullTypeName)delete fullTypeName; - - // copy the aliases , if there are any. - - if ((typeIter->second)->getAliasCount() > 0) - { - for (int j=0;j<(typeIter->second)->getAliasCount();j++) - { - (typeIter2->second)->setAlias( - (typeIter->second)->getAlias()); - } - } - - - // Now add all the properties - PropertyList props = typeIter->second->getProperties(); - for (int i=0; i < props.size(); i++) - { - // Ensure the properties type is added - const Type& propType = props[i].getType(); - addType(propType.getURI(), propType.getName()); - - // Now add the property - addPropertyToType((typeIter->second)->getURI(), - (typeIter->second)->getName(), - props[i].getName(), - propType.getURI(), - propType.getName(), - props[i].isMany(), - props[i].isReadOnly(), - props[i].isContainment()); - - // copy the aliases if there are any. - if (props[i].getAliasCount() > 0) - { - - PropertyImpl* p = (typeIter2->second)-> - getPropertyImpl(props[i].getName()); - if (p != 0) - { - for (int j=0;jgetAliasCount();j++) - { - p->setAlias(props[i].getAlias(j)); - } - } - - } - - } // end - iterate over Properties - } // end - iterate over Types -} - -// =================================================================== -// addType - adds a new Type if it does not already exist -// =================================================================== -void DataFactoryImpl::addType(const char* uri, const char* inTypeName, - bool isSeq, - bool isOp, - bool isAbs, - bool isData) -{ - if (isResolved) - { - SDO_THROW_EXCEPTION("DataFactory::addType", - SDOUnsupportedOperationException, "Adding Type after data graph completed"); - } - - if (inTypeName == 0 || strlen(inTypeName) == 0) - { - SDO_THROW_EXCEPTION("DataFactory::addType", - SDOIllegalArgumentException, " Type has empty name"); - } - - - if (findType(uri, inTypeName) == 0) - { - char* fullTypeName = getFullTypeName(uri, inTypeName); - types[fullTypeName] = new TypeImpl(uri, inTypeName, isSeq, isOp, isAbs, isData); - if (fullTypeName)delete fullTypeName; - - } -} - -// =================================================================== -// Check whether a change summary would clash. -// =================================================================== - -bool DataFactoryImpl::recursiveCheck(TypeImpl* cs, TypeImpl* t) -{ - if (cs->isDataType()) return false; - - if (! strcmp(cs->getName(), t->getName()) && - ! strcmp(cs->getURI() , t->getURI()) ) - { - return true; - } - - PropertyList pl = cs->getProperties(); - - for (int i=0 ; i < pl.size() ; i++ ) - { - if (recursiveCheck((TypeImpl*)&(pl[i].getType()), t)) return true; - } - return false; -} - -// =================================================================== -// Check whether a change summary would clash. -// =================================================================== -bool DataFactoryImpl::checkForValidChangeSummary(TypeImpl* t) -{ - // None of the containing types can have a cs already. - // None of the properties of this type can hold a type - // which has a change summary. - if (isResolved) - { - SDO_THROW_EXCEPTION("DataFactory::addChangeSummary", - SDOUnsupportedOperationException, "Adding Change Summary after data graph completed"); - } - - if (cstypes.size() > 0) { - for (int i = 0 ;i < cstypes.size(); i++) - { - if (recursiveCheck(cstypes[i], t)) - { - return false; - - } - } - } - cstypes.push_back(t); - return true; -} - -// =================================================================== -// addPropertyToType - adds a Property to an existing Type -// =================================================================== -void DataFactoryImpl::addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool many) -{ - char* fullPropTypeName = getFullTypeName(propTypeUri, propTypeName); - TYPES_MAP::iterator typeIter; - typeIter = types.find(fullPropTypeName); - if (fullPropTypeName)delete fullPropTypeName; - if (typeIter != types.end()) - { - addPropertyToType(uri,inTypeName, - propname, - propTypeUri, - propTypeName, - many, - false, - !(typeIter->second)->isDataType()); - } -} - -void DataFactoryImpl::addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool many, - bool rdonly, - bool cont) -{ - if (isResolved) - { - SDO_THROW_EXCEPTION("DataFactory::addPropertyToType", - SDOUnsupportedOperationException, "Adding Properties after data graph completed"); - } - - TYPES_MAP::iterator typeIter, typeIter2; - - char* fullTypeName = getFullTypeName(uri, inTypeName); - typeIter = types.find(fullTypeName); - if (fullTypeName)delete fullTypeName; - - if(typeIter == types.end()) - { - string msg("Type not found: "); - if (uri != 0)msg += uri; - msg += " "; - if (inTypeName != 0)msg += inTypeName; - SDO_THROW_EXCEPTION("addPropertyToType", - SDOTypeNotFoundException, msg.c_str()); - - } - - if ((typeIter->second)->isDataType()) - { - string msg("Cannot add a properties to data types: "); - msg += (typeIter->second)->getName(); - SDO_THROW_EXCEPTION("addPropertyToType", - SDOIllegalArgumentException, msg.c_str()); - } - - fullTypeName = getFullTypeName(propTypeUri, propTypeName); - typeIter2 = types.find(fullTypeName); - if (fullTypeName)delete fullTypeName; - - if (typeIter2 == types.end()) - { - string msg("Type not found: "); - if (propTypeUri != 0)msg += propTypeUri; - msg += " "; - if (propTypeName != 0)msg += propTypeName; - SDO_THROW_EXCEPTION("addPropertyToType", - SDOTypeNotFoundException, msg.c_str()); - } - - // Check if its a ChangeSummary - if (propTypeUri != 0 && !strcmp(propTypeUri,Type::SDOTypeNamespaceURI) && - !strcmp(propTypeName,"ChangeSummary") ) - { - if (checkForValidChangeSummary(typeIter->second)) - { - // The change summary is allowable if we got to here - force the right params. - // we will not use this property - its just for compatibility. - // we have to use getChangeSummary to get the change summary, - // and isChangeSummaryType to see if this is a type which may have - // a change summary. - (typeIter->second)->addChangeSummary(); - // dont even show the property - its not needed - //((typeIter->second)->addProperty(propname, *(typeIter2->second),false,true, false)); - - } - return; - } - - - if ((typeIter->second)->isDataType()) - { - string msg("Cannot add property to a data type : "); - msg += (typeIter->second)->getName(); - SDO_THROW_EXCEPTION("addPropertyToType", - SDOIllegalArgumentException, msg.c_str()); - // cannot add a property to a primitive - } - - // @PGR@ containment should be ignored for DataType -/* if ((typeIter2->second)->isDataType() && cont == true) - { - string msg("Data types may not be containment : "); - msg += (typeIter2->second)->getName(); - SDO_THROW_EXCEPTION("addPropertyToType", - SDOIllegalArgumentException, msg.c_str()); - // cannot try to make a property containment on a data type - } -*/ - ((typeIter->second)->addProperty(propname, *(typeIter2->second),many,rdonly, cont)); - return; -} - -// =================================================================== -// addPropertyToType - adds a Property to an existing Type -// =================================================================== - -void DataFactoryImpl::addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const Type& tprop, - bool many) -{ - addPropertyToType(uri, - inTypeName, - propname, - tprop, - many, - false, - !tprop.isDataType()); -} - - -void DataFactoryImpl::addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const Type& tprop, - bool many, - bool rdonly, - bool cont) -{ - addPropertyToType(uri, - inTypeName, - propname, - tprop.getURI(), - tprop.getName(), - many, - rdonly, cont); -} - -// =================================================================== -// addPropertyToType - adds a Property to an existing Type -// =================================================================== -void DataFactoryImpl::addPropertyToType(const Type& cont, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool many) -{ - addPropertyToType(cont.getURI(), - cont.getName(), - propname, - propTypeUri, - propTypeName, - many); -} - -void DataFactoryImpl::addPropertyToType(const Type& cont, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool many, - bool rdonly, - bool contain) -{ - addPropertyToType(cont.getURI(), - cont.getName(), - propname, - propTypeUri, - propTypeName, - many, - rdonly, - contain); -} - -// =================================================================== -// addPropertyToType - adds a Property to an existing Type -// =================================================================== -void DataFactoryImpl::addPropertyToType(const Type& tp, - const char* propname, - const Type& tprop, - bool many) -{ - addPropertyToType(tp.getURI(), - tp.getName(), - propname, - tprop.getURI(), - tprop.getName(), - many); -} - -void DataFactoryImpl::addPropertyToType(const Type& tp, - const char* propname, - const Type& tprop, - bool many, - bool rdonly, - bool cont) -{ - addPropertyToType(tp.getURI(), - tp.getName(), - propname, - tprop.getURI(), - tprop.getName(), - many, - rdonly, - cont); -} - -// =================================================================== -// getFullTypeName - return the name used as a key in the types map -// =================================================================== -char* DataFactoryImpl::getFullTypeName(const char* uri, const char* inTypeName) const -{ - char* c; - if (uri != 0 && inTypeName != 0) - { - c = new char[strlen(uri) + strlen(inTypeName) + 2]; - sprintf(c,"%s#%s",uri,inTypeName); - return c; - } - if (uri != 0) - { - c = new char[strlen(uri) + 2]; - sprintf(c,"%s#",uri); - return c; - } - c = new char[strlen(inTypeName) + 2]; - sprintf(c,"#%s",inTypeName); - return c; -} - -// =================================================================== -// getFullTypeName - return the name used as a key in the types map -// =================================================================== -char* DataFactoryImpl::getAliasTypeName(const char* uri, const char* inTypeName) const -{ - char* c; - if (uri != 0 && inTypeName != 0) - { - c = new char[strlen(uri) + strlen(inTypeName) + 9]; - sprintf(c,"ALIAS::%s#%s",uri,inTypeName); - return c; - } - if (uri != 0) - { - c = new char[strlen(uri) + 9]; - sprintf(c,"ALIAS::%s#",uri); - return c; - } - c = new char[strlen(inTypeName) + 9]; - sprintf(c,"ALIAS::#%s",inTypeName); - return c; -} - -// =================================================================== -// getType - return a pointer to the required Type -// =================================================================== -const Type& DataFactoryImpl::getType(const char* uri, const char* inTypeName) const -{ - - const Type* type = findType(uri, inTypeName); - - if (type == 0) - { - string msg("Type not found :"); - if (uri != 0) msg += uri; - msg += " "; - if (inTypeName != 0) msg += inTypeName; - SDO_THROW_EXCEPTION("getType" , - SDOTypeNotFoundException, msg.c_str()); - } - - return *type; -} - -// =================================================================== -// setBaseType - sets the type from which this type inherits properties -// =================================================================== - -void DataFactoryImpl::setBaseType( const Type& type, - const Type& base) -{ - setBaseType(type.getURI(),type.getName(),base.getURI(), base.getName()); -} - -// =================================================================== -// setBaseType - sets the type from which this type inherits properties -// =================================================================== - -void DataFactoryImpl::setBaseType( const char* typeuri, - const char* typenam, - const char* baseuri, - const char* basename) -{ - const TypeImpl* base = findTypeImpl(baseuri, basename); - if (base == 0) - { - string msg("Type not found :"); - if (baseuri != 0) msg += baseuri; - msg += " "; - if (basename != 0) msg += basename; - SDO_THROW_EXCEPTION("setBaseType" , - SDOTypeNotFoundException, msg.c_str()); - } - - TYPES_MAP::const_iterator typeIter; - - char* fullTypeName = getFullTypeName(typeuri, typenam); - typeIter = types.find(fullTypeName); - if (fullTypeName)delete fullTypeName; - - if(typeIter == types.end()) - { - string msg("Type not found :"); - if (typeuri != 0) msg += typeuri; - msg += " "; - if (typenam != 0) msg += typenam; - SDO_THROW_EXCEPTION("setBaseType" , - SDOTypeNotFoundException, msg.c_str()); - } - - (typeIter->second)->setBaseType(base); -} - - -// =================================================================== -// setPropertySubstitute - additional type for a property -// =================================================================== - - void DataFactoryImpl::setPropertySubstitute( - const char* uri, - const char* inTypeName, - const char* propname, - const char* subname, - const char* subTypeUri, - const char* subTypeName) - { - const TypeImpl* cont = findTypeImpl(uri, inTypeName); - if (cont == 0) - { - string msg("Type not found :"); - if (uri != 0) msg += uri; - msg += " "; - if (inTypeName != 0) msg += inTypeName; - SDO_THROW_EXCEPTION("setPropertySubstitute" , - SDOTypeNotFoundException, msg.c_str()); - } - PropertyImpl* pi = cont->getPropertyImpl(propname); - const Type& tsub = getType(subTypeUri, - subTypeName); - if (pi != 0)pi->setSubstitution(this,subname,tsub); - } - - - - void DataFactoryImpl::setPropertySubstitute( - const Type& containertype, - const char* propname, - const char* subname, - const Type& subtype) - { - setPropertySubstitute( - containertype.getURI(), - containertype.getName(), - propname,subname, - subtype.getURI(),subtype.getName()); - } - -// =================================================================== -// setDefault - sets the default value for a property of a type -// =================================================================== - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname, bool b ) - { - setDefault(t.getURI(), t.getName(), propname, b); - } - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname , char c) - - { - setDefault(t.getURI(), t.getName(), propname, c); - } - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname , wchar_t c) - { - setDefault(t.getURI(), t.getName(), propname, c); - } - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname , char* c) - { - setDefault(t.getURI(), t.getName(), propname, c); - } - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname , short s) - { - setDefault(t.getURI(), t.getName(), propname, s); - } - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname , long l) - { - setDefault(t.getURI(), t.getName(), propname, l); - } - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname , int64_t i) - { - setDefault(t.getURI(), t.getName(), propname, i); - } - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname , float f) - { - setDefault(t.getURI(), t.getName(), propname, f); - } - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname , long double d) - { - setDefault(t.getURI(), t.getName(), propname, d); - } - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname , const SDODate d) - { - setDefault(t.getURI(), t.getName(), propname, d); - } - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname , const wchar_t* c, unsigned int len) - { - setDefault(t.getURI(), t.getName(), propname, c, len); - } - - void DataFactoryImpl::setDefault( - const Type& t, const char* propname , const char* c, unsigned int len) - { - setDefault(t.getURI(), t.getName(), propname, c, len); - } - - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname, bool b ) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(b); - } - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname , char c) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(c); - } - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname , wchar_t c) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(c); - } - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname , char* c) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(c); - } - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname , short s) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(s); - } - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname , long l) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(l); - } - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname , int64_t i) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(i); - } - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname , float f) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(f); - } - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname , long double d) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(d); - } - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname , const SDODate d) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(d); - } - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname , const wchar_t* c, unsigned int len) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(c,len); - } - - void DataFactoryImpl::setDefault( - const char* typuri, const char* typnam, - const char* propname , const char* c, unsigned int len) - { - const TypeImpl* ti = findTypeImpl(typuri,typnam); - PropertyImpl* pi = ti->getPropertyImpl(propname); - if (pi != 0)pi->setDefault(c,len); - } - - void DataFactoryImpl::setOpposite( - const Type& typ, - const char* propnam, - const Type& opptyp, - const char* opppropnam) - { - SDO_THROW_EXCEPTION("setOpposite" , - SDOUnsupportedOperationException, " Not implemented"); - } - -// =================================================================== -// getTypeImpl - return a pointer to the required TypeImpl -// =================================================================== -const TypeImpl& DataFactoryImpl::getTypeImpl(const char* uri, const char* inTypeName) const -{ - const TypeImpl* type = findTypeImpl(uri, inTypeName); - - if (type == 0) - { - string msg("Type not found :"); - if (uri != 0)msg += uri; - msg += " "; - if (inTypeName != 0)msg += inTypeName; - SDO_THROW_EXCEPTION("getTypeImpl" , - SDOTypeNotFoundException, msg.c_str()); - } - - return *type; -} - -// =================================================================== -// findType -// =================================================================== - -const Type* DataFactoryImpl::findType(const char* uri, const char* inTypeName) const -{ - return (Type*)findTypeImpl(uri,inTypeName); -} - -// =================================================================== -// findTypeImpl -// =================================================================== - -const TypeImpl* DataFactoryImpl::findTypeImpl(const char* uri, const char* inTypeName) const -{ - char* fullTypeName = getFullTypeName(uri, inTypeName); - TYPES_MAP::const_iterator typeIter; - typeIter = types.find(fullTypeName); - if (fullTypeName)delete fullTypeName; - if(typeIter != types.end()) - { - return typeIter->second; - } - else - { - // try alias names - fullTypeName = getAliasTypeName(uri, inTypeName); - typeIter = types.find(fullTypeName); - if (fullTypeName)delete fullTypeName; - if(typeIter != types.end()) - { - return typeIter->second; - } - } - return 0; -} - -// =================================================================== -// setAlias - sets a new alias for this type -// =================================================================== - -void DataFactoryImpl::setAlias(const char* typeuri, - const char* typenam, - const char* alias) -{ - - char* fullTypeName = getFullTypeName(typeuri, typenam); - TYPES_MAP::iterator typeIter; - typeIter = types.find(fullTypeName); - if (fullTypeName)delete fullTypeName; - if(typeIter != types.end()) - { - (typeIter->second)->setAlias(alias); - fullTypeName = getAliasTypeName(typeuri, alias); - types[fullTypeName] = typeIter->second; - } - -} - -// =================================================================== -// setAlias - sets a new alias for this type -// =================================================================== - -void DataFactoryImpl::setAlias(const char* typeuri, - const char* typenam, - const char* propname, - const char* alias) -{ - const TypeImpl& t = getTypeImpl(typeuri, typenam); - PropertyImpl* p = t.getPropertyImpl(propname); - if (p != 0)p->setAlias(alias); - -} - -// =================================================================== -// getTypes - gets the full list of types for this factory -// =================================================================== - -TypeList DataFactoryImpl::getTypes() const -{ - TYPES_MAP::const_iterator typeIter; - - - std::vector typeVector; - - for (typeIter = types.begin() ; typeIter != types.end(); - ++typeIter) { - if (strncmp((typeIter->first).c_str(),"ALIAS::", 7)) { - typeVector.insert(typeVector.end(),typeIter->second); - } - } - - - return typeVector; -} - - -// =================================================================== -// resolve - resolves the type and includes all the properties from -// the supertype. After this has been called, no further changes -// to the type hierarchy are allowed. -// =================================================================== - -void DataFactoryImpl::resolve() -{ - if (isResolved) return; - - TYPES_MAP::iterator typeIter; - for (typeIter = types.begin() ; typeIter != types.end(); - ++typeIter) - { - (typeIter->second)->initCompoundProperties(); - (typeIter->second)->validateChangeSummary(); - } - - isResolved = true; -} - -// =================================================================== -// create - creates a data object from the types available. -// This first resolves the type hierarchy, and thus no further changes -// to the type hierarchy are allowed. -// =================================================================== - - -RefCountingPointer DataFactoryImpl::create(const char* uri, const char* typeName) -{ - - if (!isResolved) - { - // Allow creation of types and properties before resolve. - if (uri != 0 && !strcmp(uri,Type::SDOTypeNamespaceURI)) { - if (!strcmp(typeName,"Type") || !strcmp(typeName,"Property")) - { - DataObject* dob = (DataObject*)(new DataObjectImpl(this, getTypeImpl(uri, typeName))); - return dob; - } - } - resolve(); - } - - const TypeImpl* ti = findTypeImpl(uri,typeName); - if (ti == 0) - { - string msg("Instantiation of unknown type :"); - if (uri != 0) msg += uri; - msg += " "; - if (typeName != 0)msg += typeName; - SDO_THROW_EXCEPTION("create" , - SDOTypeNotFoundException, msg.c_str()); - } - - if (ti->isAbstractType()) - { - string msg("Instantiation of abstract type :"); - if (uri != 0)msg += uri; - msg += " "; - if (typeName != 0)msg += typeName; - SDO_THROW_EXCEPTION("create" , - SDOUnsupportedOperationException, msg.c_str()); - } - - DataObject* dob = (DataObject*)(new DataObjectImpl(this, getTypeImpl(uri, typeName))); - return dob; -} - -// =================================================================== -// The openProperties map is a list of the curently present open -// properties as used by this factory. It will cause the -// open properties to be written out as attributes and elements -// of the root data object when a graph is serialized. -// =================================================================== - const propertyMap& DataFactoryImpl::getOpenProperties() - { - return openProperties; - } - - void DataFactoryImpl::addOpenProperty(const PropertyImpl& prop) - { - propertyMap::iterator i; - while ((i = openProperties.find(prop.getName())) != - openProperties.end()) - { - openProperties.erase(i); - } - openProperties.insert(make_pair(prop.getName(),prop)); - } - - void DataFactoryImpl::removeOpenProperty(const char* name) - { - propertyMap::iterator i = - openProperties.find(name); - if (i != openProperties.end()) - { - openProperties.erase(i); - } - } - - -// =================================================================== -// create - creates a data object from the types available. -// This first resolves the type hierarchy, and thus no further changes -// to the type hierarchy are allowed. -// =================================================================== - -RefCountingPointer DataFactoryImpl::create(const Type& type) -{ - return create( type.getURI(), type.getName()); -} - - -// =================================================================== -// setDASValue - Set a value on a Type -// =================================================================== -void DataFactoryImpl::setDASValue(const Type& type, - const char* name, - DASValue* value) -{ - setDASValue(type.getURI(), type.getName(), name, value); -} - - -void DataFactoryImpl::setDASValue(const char* typeuri, - const char* typenam, - const char* name, - DASValue* value) -{ - TypeImpl* type = (TypeImpl*)findTypeImpl(typeuri, typenam); - if (type != NULL) - { - type->setDASValue(name, value); - } -} - -// =================================================================== -// getDASValue - retrieve a value from a Type -// =================================================================== - -DASValue* DataFactoryImpl::getDASValue(const Type& type, - const char* name) const -{ - return getDASValue(type.getURI(), type.getName(), name); -} - -DASValue* DataFactoryImpl::getDASValue(const char* typeuri, - const char* typenam, - const char* name) const -{ - TypeImpl* type = (TypeImpl*)findTypeImpl(typeuri, typenam); - if (type != NULL) - { - return type->getDASValue(name); - } - - return NULL; -} - -// =================================================================== -// setDASValue - Set a value on a Property -// =================================================================== -void DataFactoryImpl::setDASValue( - const Type& type, - const char* propertyName, - const char* name, - DASValue* value) -{ - setDASValue(type.getURI(), type.getName(), propertyName, name, value); -} - - -void DataFactoryImpl::setDASValue( - const char* typeuri, - const char* typenam, - const char* propertyName, - const char* name, - DASValue* value) -{ - const TypeImpl* type = findTypeImpl(typeuri, typenam); - if (type != NULL) - { - PropertyImpl* prop = type->getPropertyImplPure(propertyName); - if (prop != 0)prop->setDASValue(name, value); - } -} - -// =================================================================== -// getDASValue - retrieve a value from a Property -// =================================================================== -DASValue* DataFactoryImpl::getDASValue( - const Type& type, - const char* propertyName, - const char* name) const -{ - return getDASValue(type.getURI(), type.getName(), propertyName, name); -} - -DASValue* DataFactoryImpl::getDASValue( - const char* typeuri, - const char* typenam, - const char* propertyName, - const char* name) const -{ - const TypeImpl* type = findTypeImpl(typeuri, typenam); - if (type != NULL) - { - try - { - PropertyImpl* prop = type->getPropertyImpl(propertyName); - if (prop != 0)return prop->getDASValue(name); - } - catch (const SDOPropertyNotFoundException&) - { - // Ignore - return null - } - } - - return NULL; -} - - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.h deleted file mode 100644 index 7f17d4952b..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataFactoryImpl.h +++ /dev/null @@ -1,388 +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 $ */ - -#ifndef _DataFactoryIMPL_H_ -#define _DataFactoryIMPL_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/DataFactory.h" -#include "commonj/sdo/TypeImpl.h" -#include "commonj/sdo/RefCountingPointer.h" -#include "commonj/sdo/PropertyImpl.h" -#include "commonj/sdo/SDOXMLString.h" - - -#include -using namespace std; - - -namespace commonj{ -namespace sdo{ - -typedef map propertyMap; - -/** - * DataFactoryImpl implements the abstract class DataFactory. - * DataFactoryImpl holds metadata and creates DataObjects. - * - * The DataFactory holds properties and types loaded from XSD, or - * created using the DataFactory API. - */ -class DataFactoryImpl : public DataFactory -{ -public: - DataFactoryImpl(); - virtual ~DataFactoryImpl(); - - DataFactoryImpl(const DataFactoryImpl& inmdg); - DataFactoryImpl& operator=(const DataFactoryImpl& inmdg); - - virtual void addType(const char* uri, const char* inTypeName, - bool isSeqenced = false, - bool isOpen = false, - bool isAbstract = false, - bool isDataType = false); - - - virtual void addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool isMany = false); - - - virtual void addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const Type& propType, - bool isMany = false); - - virtual void addPropertyToType(const Type& type, - const char* propname, - const Type& propType, - bool isMany = false); - - virtual void addPropertyToType(const Type& type, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool isMany = false); - - virtual void addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool isMany , - bool isReadOnly, - bool isContainment); - - virtual void addPropertyToType(const char* uri, - const char* inTypeName, - const char* propname, - const Type& propType, - bool isMany, - bool isReadOnly, - bool isContainment); - - virtual void addPropertyToType(const Type& type, - const char* propname, - const Type& propType, - bool isMany, - bool isReadOnly, - bool isContainment); - - virtual void addPropertyToType(const Type& type, - const char* propname, - const char* propTypeUri, - const char* propTypeName, - bool isMany, - bool isReadOnly, - bool isContainment); - - - virtual void setBaseType( const Type& type, - const Type& base); - - virtual void setBaseType( const char* typeuri, - const char* typenam, - const char* baseuri, - const char* basename); - - virtual const Type& getType(const char* uri, const char* inTypeName) const; - - virtual TypeList getTypes() const; - - virtual DataObjectPtr create(const char* uri, const char* typeName) ; - - virtual DataObjectPtr create(const Type& type) ; - - virtual void setAlias(const char* typeuri, - const char* typenam, - const char* alias) ; - - virtual void setAlias(const char* typeuri, - const char* typname, - const char* propname, - const char* alias) ; - - virtual void setOpposite (const Type& type, - const char* propname, - const Type& opptype, - const char* opppropname) ; - - - virtual void setPropertySubstitute( - const char* uri, - const char* inTypeName, - const char* propname, - const char* subname, - const char* subTypeUri, - const char* subTypeName); - - - virtual void setPropertySubstitute( - const Type& containertype, - const char* propname, - const char* subname, - const Type& subtype); - - //////////////////////////////////////////////////////// - virtual void setDefault( - const Type& t, - const char* propname, - bool b ) ; - - virtual void setDefault( - const Type& t, - const char* propname , - char c) ; - - virtual void setDefault( - const Type& t, - const char* propname , - wchar_t c) ; - - virtual void setDefault( - const Type& t, - const char* propname , - char* c) ; - - virtual void setDefault( - const Type& t, - const char* propname , - short s) ; - - virtual void setDefault( - const Type& t, - const char* propname , - long l) ; - - virtual void setDefault( - const Type& t, - const char* propname , - int64_t i) ; - - virtual void setDefault( - const Type& t, - const char* propname , - float f) ; - - virtual void setDefault( - const Type& t, - const char* propname , - long double d) ; - - virtual void setDefault( - const Type& t, - const char* propname , - const SDODate d) ; - - virtual void setDefault( - const Type& t, - const char* propname , - const wchar_t* c, - unsigned int len) ; - - virtual void setDefault( - const Type& t, - const char* propname , - const char* c, - unsigned int len) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname, - bool b ) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - char c) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - wchar_t c) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - char* c) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - short s) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - long l) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - int64_t i) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - float f) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - long double d) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - const SDODate d) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - const wchar_t* c, - unsigned int len) ; - - virtual void setDefault( - const char* typuri, - const char* typnam, - const char* propname , - const char* c, - unsigned int len) ; - - virtual void setDASValue( - const Type& type, - const char* name, - DASValue* value); - - virtual void setDASValue( - const char* typeuri, - const char* typenam, - const char* name, - DASValue* value); - - virtual DASValue* getDASValue( - const Type& type, - const char* name) const; - - virtual DASValue* getDASValue( - const char* typeuri, - const char* typenam, - const char* name) const; - - virtual void setDASValue( - const Type& type, - const char* propertyName, - const char* name, - DASValue* value); - - virtual void setDASValue( - const char* typeuri, - const char* typenam, - const char* propertyName, - const char* name, - DASValue* value); - - virtual DASValue* getDASValue( - const Type& type, - const char* propertyName, - const char* name) const; - - virtual DASValue* getDASValue( - const char* typeuri, - const char* typenam, - const char* propertyName, - const char* name) const; - - virtual void resolve(); - - const Type* findType (const char* uri, const char* inTypeName) const; - const TypeImpl* findTypeImpl (const char* uri, const char* inTypeName) const; - - void addOpenProperty(const PropertyImpl& prop); - void removeOpenProperty(const char* name); - const propertyMap& getOpenProperties(); - virtual const TypeImpl& getTypeImpl(const char* uri, const char* inTypeName) const; - virtual const char* getRootElementName() const; - virtual void setRootElementName(const char* ren); - - -private: - typedef map TYPES_MAP; - TYPES_MAP types; - - char * rootElementName; - - propertyMap openProperties; - - // Need to validate and 'lock' the data model for base types to - // work properly. - - bool isResolved; - - bool recursiveCheck(TypeImpl* cs, TypeImpl* t); - bool checkForValidChangeSummary(TypeImpl* t); - - typedef vector TYPES_VECTOR; - TYPES_VECTOR cstypes; - - char* getFullTypeName(const char* uri, const char* inTypeName) const; - char* getAliasTypeName(const char* uri, const char* inTypeName) const; - - void copyTypes(const DataFactoryImpl& inmdg); -}; -}; -}; -#endif // _DataFactoryIMPL_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.cpp deleted file mode 100644 index a367853f06..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.cpp +++ /dev/null @@ -1,33 +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 "commonj/sdo/disable_warn.h" -#include "commonj/sdo/DataGraph.h" -#include "commonj/sdo/SDORuntimeException.h" - -namespace commonj{ - namespace sdo { - - DataGraph::~DataGraph() - { - } - - - }; -}; diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.h deleted file mode 100644 index 715223992a..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraph.h +++ /dev/null @@ -1,99 +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 $ */ - -#ifndef _DATAGRAPH_H_ -#define _DATAGRAPH_H_ - -#include "commonj/sdo/RefCountingObject.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/export.h" -#include "commonj/sdo/DataObject.h" - - -namespace commonj{ -namespace sdo{ - -/** - * DataGraph holds a whole graph of data objects, starting from - * a single root. This class is not currently used in the C++ - * implementation, but will be required by DAS implementations. - */ - -class DataGraph : public RefCountingObject -{ - public: - virtual ~DataGraph(); - - /** - * - * Gets the root data object of this graph. - */ - - - virtual SDO_API DataObjectPtr getRootObject() = 0; - - /** - * - * gets the name of the element from which the root - * object was loaded (The XML definition). - */ - virtual SDO_API const char* getRootElementName() = 0; - - /** - * Sets the Root data object. - * - */ - virtual SDO_API void setRootObject(DataObjectPtr dob) = 0; - - /** - * Creates a root data object - used by DAS implementations. - * - */ - - virtual SDO_API DataObjectPtr createRootObject(const char* uri, - const char* name) = 0; - - /** - * Creates a root data object - used by DAS implementations. - * - */ - - virtual SDO_API DataObjectPtr createRootObject(const Type& t) = 0; - - /** - * Gets the change summary if there is one. - * - */ - - virtual SDO_API ChangeSummaryPtr getChangeSummary() = 0; - - /** - * Gets a type from the data factory. - * - */ - - virtual SDO_API const Type& getType(const char* uri, - const char* name) = 0; - - -}; -}; -}; - -#endif //_DATAGRAPH_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.cpp deleted file mode 100644 index 636dbed25f..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.cpp +++ /dev/null @@ -1,117 +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 "commonj/sdo/DataGraphImpl.h" -#include "commonj/sdo/DataObjectImpl.h" -#include "commonj/sdo/SDORuntimeException.h" - - - -namespace commonj{ - namespace sdo { - -/** - * DataGraphImpl implements DataGraph. - * DataGraph holds a whole graph of data objects, starting from - * a single root. This class is not currently used in the C++ - * implementation, but will be required by DAS implementations. - */ - DataGraphImpl::~DataGraphImpl() - { - } - - DataGraphImpl::DataGraphImpl(DataFactoryPtr fac) - { - factory = fac; - root = 0; - } - - - DataObjectPtr DataGraphImpl::getRootObject() - { - return root; - } - - const char* DataGraphImpl::getRootElementName() - { - if (root == 0) return 0; - return root->getInstanceProperties()[0].getName(); - } - - void DataGraphImpl::setRootObject(DataObjectPtr dob) - { - if (root != 0) - { - SDO_THROW_EXCEPTION("setRootObject",SDOUnsupportedOperationException, - "Root data object already exists"); - } - root = dob; - } - - - DataObjectPtr DataGraphImpl::createRootObject(const char* uri, - const char* name) - { - if (root != 0) - { - SDO_THROW_EXCEPTION("createRootObject",SDOUnsupportedOperationException, - "Root data object already exists"); - } - root = factory->create(uri,name); - if (root->getInstanceProperties()[0].getType().isDataType()) - { - SDO_THROW_EXCEPTION("createRootObject",SDOUnsupportedOperationException, - "Root data object cannot have a datatype property at element 0"); - } - return root; - } - - - DataObjectPtr DataGraphImpl::createRootObject(const Type& t) - { - if (root != 0) - { - SDO_THROW_EXCEPTION("createRootObject",SDOUnsupportedOperationException, - "Root data object already exists"); - } - root = factory->create(t); - if (root->getInstanceProperties()[0].getType().isDataType()) - { - SDO_THROW_EXCEPTION("createRootObject",SDOUnsupportedOperationException, - "Root data object cannot have a datatype property at element 0"); - } - return root; - } - - - ChangeSummaryPtr DataGraphImpl::getChangeSummary() - { - if (!root) return 0; - return root->getChangeSummary(); - } - - - const Type& DataGraphImpl::getType(const char* uri, - const char* name) - { - return factory->getType(uri,name); - } - - }; -}; diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.h deleted file mode 100644 index 15cc994171..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataGraphImpl.h +++ /dev/null @@ -1,106 +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 $ */ - -#ifndef _DATAGRAPHIMPL_H_ -#define _DATAGRAPHIMPL_H_ -#include "commonj/sdo/export.h" -#include "commonj/sdo/DataGraph.h" -#include "commonj/sdo/disable_warn.h" - - -namespace commonj{ -namespace sdo{ - -/** - * DataGraphImpl implements the abstract class DataGraph. - * DataGraph holds a whole graph of data objects, starting from - * a single root. This class is not currently used in the C++ - * implementation, but will be required by DAS implementations. - */ - -class DataGraphImpl : public DataGraph -{ - public: - virtual ~DataGraphImpl(); - - SDO_API DataGraphImpl(DataFactoryPtr fac); - - /** - * Sets the root data object. - * - */ - - virtual SDO_API void setRootObject(DataObjectPtr dob); - - /** - * Gets the root data object. - * - */ - - virtual DataObjectPtr getRootObject(); - - /** - * Gets the name of the root data element (from the XML - * description). - * - */ - - virtual const char* getRootElementName(); - - /** - * Creates the root data object - for use by DAS implementations - * - */ - - virtual DataObjectPtr createRootObject(const char* uri, - const char* name); - - /** - * Creates the root data object - for use by DAS implementations - * - */ - - - virtual DataObjectPtr createRootObject(const Type& t); - - /** - * - * Gets the change summary if there is one. - */ - - virtual ChangeSummaryPtr getChangeSummary(); - - /** - * - * Gets a type from the data factory. - */ - - virtual const Type& getType(const char* uri, - const char* name); - - private: - - DataFactoryPtr factory; - DataObjectPtr root; - -}; -}; -}; - -#endif //_DATAGRAPHIMPL_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.cpp deleted file mode 100644 index 190da0649e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.cpp +++ /dev/null @@ -1,31 +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 "commonj/sdo/DataObject.h" - -namespace commonj{ -namespace sdo{ - - - DataObject::~DataObject() - { - } -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.h deleted file mode 100644 index 39465c8c4c..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObject.h +++ /dev/null @@ -1,540 +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: 2006/02/02 16:41:30 $ */ - -#ifndef _DATAOBJECT_H_ -#define _DATAOBJECT_H_ -#include "commonj/sdo/export.h" - - -#include "commonj/sdo/Property.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/DataFactory.h" -#include "commonj/sdo/Sequence.h" -#include "commonj/sdo/DataObjectList.h" -#include "commonj/sdo/PropertyList.h" - - -namespace commonj{ -namespace sdo{ - -class DataGraph; -class DataObjectList; -class DataFactory; -class ChangeSummary; - - - /** - * DataObjects are the non-primitive members of a Data graph. - *

          - * A data object is a representation of some structured data. - * it is the fundamental component in the SDO (Service Data Objects) package. - * Data objects support reflection, path-based accesss, convenience creation - * and deletion methods,and the ability to be part of a data graph. - * Each data object holds its data as a series of properties. - * Properties can be accessed by name, property index, or using the property - * meta object itself. - *

          - * A data object can also contain references to other data objects, through - * reference-type properties. - *

          - * A data object has a series of convenience accessors for its properties. - * These methods either use a path (String), a property index, - * or the property's meta object itself, to identify the property. - * Some examples of the path-based accessors are as follows: - *

          - * DataObjectPtr company = ...;
          - * company->getString("name");
          - * company->setString("name", "acme");
          - * company->getString("department.0/name")
          - * company->getString("department[1]/name")
          - * (Note .n indexes from 0, whilst [] indexes from 1.
          - * company->getDataObject("department[number=123]") returns the department where number=123
          - * company->getDataObject("..") returns the containing data object
          - * company->getDataObject("/") returns the root containing data object
          - * There are specific accessors for the primitive types and commonly used - * data types like String. - */ - -class DataObject : public RefCountingObject -{ - public: - virtual ~DataObject(); - - /** - * - * Introspection - properties and types - */ - - /** getPropertyIndex gets the unique index of a property - * - * A property of a data object has a unique index associated with it. - * This method gets a property index for this object from the property, - * or throw SDOPropertyNotFoundException if the property is not part - * of this data object. - */ - - virtual unsigned int SDO_API getPropertyIndex(const Property& p) = 0; - - - /** getInstanceProperties gets the props of the current object. - * - * Returns a read-only List of the Properties currently used in this DataObject. - * This list will contain all of the properties in getType().getProperties() - * and any properties where isSet(property) is true. - * For example, properties resulting from the use of - * open or mixed XML content are present if allowed by the Type. - * The list does not contain duplicates. - * The order of the properties in the list begins with getType().getProperties() - * and the order of the remaining properties is determined by the implementation. - * The same list will be returned unless the DataObject is updated so that - * the contents of the list change - * Returns the list of Properties currently used in this DataObject. - */ - - virtual SDO_API PropertyList getInstanceProperties() = 0; - - /** - * See if the property currently exists - */ - - virtual SDO_API bool hasProperty(const char* name) = 0; - /** - * These are just like getType().getProperty(), but may return - * values other than the property list for open types. - */ - - virtual const Property& getProperty(unsigned int index) = 0; - - virtual const Property& getProperty(const char* prop) = 0; - - - - /** getContainer get the containing object - * - * Returns the containing data object - * or 0 if there is no container. - */ - - virtual SDO_API DataObjectPtr getContainer() = 0; - - /** getContainmentProperty returns the property containing this object - * - * Return the Property of the data object containing this data object - * or throw an SDOPropertyNotFoundException if there is no container. - */ - - virtual SDO_API const Property& getContainmentProperty() = 0; - - /** getType returns the data object's type. - * - * getType returns the data object's type. - * The type defines the properties available for reflective access. - */ - - virtual SDO_API const Type& getType() = 0; - - /* getTypeEnum returns an enumerator for the type - * - * Returns an enumerator for the type for easy switching on basic types. - * The enumerator is part of the Type class - */ - - virtual SDO_API const Type::Types getTypeEnum() = 0; - - - - - - /** getDataObject returns a data object by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual SDO_API DataObjectPtr getDataObject(const char* path) = 0; - virtual SDO_API DataObjectPtr getDataObject(unsigned int propertyIndex) = 0; - virtual SDO_API DataObjectPtr getDataObject(const Property& property) = 0; - - /** setDataObject sets a value by path, index or property - * - * Sets a property of either this object or an object reachable from it, - * as identified by the specified path, - * to the specified value. - */ - - - virtual SDO_API void setDataObject(const char* path, DataObjectPtr value) = 0; - virtual SDO_API void setDataObject(unsigned int propertyIndex, DataObjectPtr value) = 0; - virtual SDO_API void setDataObject(const Property& property, DataObjectPtr value) = 0; - - /** getBoolean returns a boolean by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual SDO_API bool getBoolean(const char* path) = 0; - virtual SDO_API bool getBoolean(unsigned int propindex) = 0; - virtual SDO_API bool getBoolean(const Property& p) = 0; - - virtual SDO_API void setBoolean(const char* path, bool b) = 0; - virtual SDO_API void setBoolean(unsigned int propindex, bool b) = 0; - virtual SDO_API void setBoolean(const Property& p, bool b) = 0; - - /** getByte returns a char by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual SDO_API char getByte(const char* path) = 0; - virtual SDO_API char getByte(unsigned int propindex) = 0; - virtual SDO_API char getByte(const Property& p) = 0; - - virtual SDO_API void setByte(const char* path, char c) = 0; - virtual SDO_API void setByte(unsigned int propindex, char c) = 0; - virtual SDO_API void setByte(const Property& p, char c) = 0; - - /** getCharacter returns a wchar_t by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual SDO_API wchar_t getCharacter(const char* path) = 0; - virtual SDO_API wchar_t getCharacter(unsigned int propindex) = 0; - virtual SDO_API wchar_t getCharacter(const Property& p) = 0; - - virtual SDO_API void setCharacter(const char* path, wchar_t c) = 0; - virtual SDO_API void setCharacter(unsigned int propindex, wchar_t c) = 0; - virtual SDO_API void setCharacter(const Property& p, wchar_t c) = 0; - - - /** getlength returns the length of a string - * - * Specific to Bytes and Characters data objects. This returns the - * length of the buffer required to hold the contents of the object. - * len = do->getLength("name"); - * buf = new char[len]; - * reallen = do->getBytes("name",buf,len); - */ - virtual SDO_API unsigned int getLength(const char* path) = 0; - virtual SDO_API unsigned int getLength(unsigned int propindex) = 0; - virtual SDO_API unsigned int getLength(const Property& p) = 0; - virtual SDO_API unsigned int getLength() = 0; - - - /** getBytes returns a byte buffer - * - * A DataObject of type Bytes holds an array of bytes as its value. These - * methods transfer the contents of that buffer into an array of chars allocated - * by the users program. The return value is the number of bytes actually - * copied. - * The byte array is not necessarily null terminated. If a null terminated - * C style string is required, then getCString is an alternative. - * The third paarameter is the length of the allocated buffer, which may be more - * than the length of the byte array. If the length specified is less than the - * length of the byte array, then only a portion of the - * byte array is returned. - */ - - - virtual SDO_API unsigned int getBytes(const char* path, char* buf, unsigned int max) = 0; - virtual SDO_API unsigned int getBytes(unsigned int propindex, char* buf, unsigned int max) = 0; - virtual SDO_API unsigned int getBytes(const Property& p, char* buf, unsigned int max) = 0; - - virtual SDO_API void setBytes(const char* path, const char* c, unsigned int length) = 0; - virtual SDO_API void setBytes(unsigned int propindex, const char* c, unsigned int length) = 0; - virtual SDO_API void setBytes(const Property& p, const char* c, unsigned int length) = 0; - - /** getString returns a wide char buffer - * - * A DataObject of type String holds an array of wide characters as its value. These - * methods transfer the contents of that buffer into an array of wchar_t allocated - * by the users program. The return value is the number of wchar_t actually - * copied. - * The array is not necessarily null terminated. - * The third paarameter is the length of the allocated buffer, which may be more - * than the length of the array. If the length specified is less than the - * length of the array, then only a portion of the array is returned. - */ - - virtual SDO_API unsigned int getString(const char* path , wchar_t* c, unsigned int max) = 0; - virtual SDO_API unsigned int getString(unsigned int propindex, wchar_t* c, unsigned int max) = 0; - virtual SDO_API unsigned int getString(const Property& p, wchar_t* c, unsigned int max) = 0; - - virtual SDO_API void setString(const char* path, const wchar_t* c, unsigned int length) = 0; - virtual SDO_API void setString(unsigned int propindex, const wchar_t* c, unsigned int length) = 0; - virtual SDO_API void setString(const Property& p, const wchar_t* c, unsigned int length) = 0; - - /** getDate returns an SDODate by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - virtual SDO_API const SDODate getDate(const char* path) = 0; - virtual SDO_API const SDODate getDate(unsigned int propindex) = 0; - virtual SDO_API const SDODate getDate(const Property& p) = 0; - - virtual SDO_API void setDate(const char* path, const SDODate d) = 0; - virtual SDO_API void setDate(unsigned int propindex, const SDODate d) = 0; - virtual SDO_API void setDate(const Property& p, const SDODate d) = 0; - - /** getDouble returns a long double by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual SDO_API long double getDouble(const char* path) = 0; - virtual SDO_API long double getDouble(unsigned int propindex) = 0; - virtual SDO_API long double getDouble(const Property& p) = 0; - - virtual SDO_API void setDouble(const char* path, long double d) = 0; - virtual SDO_API void setDouble(unsigned int propindex, long double d) = 0; - virtual SDO_API void setDouble(const Property& p, long double d) = 0; - - /** getFloat returns a float by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual SDO_API float getFloat(const char* path) = 0; - virtual SDO_API float getFloat(unsigned int propindex) = 0; - virtual SDO_API float getFloat(const Property& p) = 0; - - virtual SDO_API void setFloat(const char* path, float f) = 0; - virtual SDO_API void setFloat(unsigned int propindex, float f) = 0; - virtual SDO_API void setFloat(const Property& p, float f) = 0; - - /** getInteger returns a long by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual SDO_API long getInteger(const char* path) = 0; - virtual SDO_API long getInteger(unsigned int propindex) = 0; - virtual SDO_API long getInteger(const Property& p) = 0; - - virtual SDO_API void setInteger(const char* path, long i) = 0; - virtual SDO_API void setInteger(unsigned int propindex, long i) = 0; - virtual SDO_API void setInteger(const Property& p, long i) = 0; - - /** getLong returns a int64_t by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual SDO_API int64_t getLong(const char* path) = 0; - virtual SDO_API int64_t getLong(unsigned int propindex) = 0; - virtual SDO_API int64_t getLong(const Property& p) = 0; - - virtual SDO_API void setLong(const char* path, int64_t l) = 0; - virtual SDO_API void setLong(unsigned int propindex, int64_t l) = 0; - virtual SDO_API void setLong(const Property& p, int64_t l) = 0; - - /** getShort returns a short by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual SDO_API short getShort(const char* path) = 0; - virtual SDO_API short getShort(unsigned int propindex) = 0; - virtual SDO_API short getShort(const Property& p) = 0; - - virtual SDO_API void setShort(const char* path, short s) = 0; - virtual SDO_API void setShort(unsigned int propindex, short s) = 0; - virtual SDO_API void setShort(const Property& p, short s) = 0; - - - /** getCString returns a null terminated string by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual SDO_API const char* getCString(const char* path) = 0; - virtual SDO_API const char* getCString(unsigned int propertyIndex) = 0; - virtual SDO_API const char* getCString(const Property& prop) = 0; - - virtual SDO_API void setCString(const char* path, const char* value) = 0; - virtual SDO_API void setCString(unsigned int propertyIndex, const char* value) = 0; - virtual SDO_API void setCString (const Property& prop, const char* value) = 0; - - - /** setNull sets a data object value to null. - * - * A DataObjectType or DataType value may be set or unset. If it is set, then - * it may have a value, or it may be set to null. A distinction is drawn between - * being unset, having the default value, being set and being null. - * When the value of an integer (for example) is returned as zero, it could have - * been set to zero, or it could be null. Use isNull() to verify. - */ - - virtual SDO_API void setNull(const char* path) = 0; - virtual SDO_API void setNull(unsigned int propertyIndex) = 0; - virtual SDO_API void setNull(const Property& prop) = 0; - - virtual SDO_API bool isNull(const char* path) = 0; - virtual SDO_API bool isNull(unsigned int propertyIndex) = 0; - virtual SDO_API bool isNull(const Property& prop) = 0; - - /** isSet test whether the value has been set - * - * Returns whether a property of either this object or an object reachable - * from it, as identified by the specified path, - * is considered to be set. - */ - - virtual SDO_API bool isSet(const char* path) = 0; - virtual SDO_API bool isSet(unsigned int propertyIndex) = 0; - virtual SDO_API bool isSet(const Property& property) = 0; - - - /** isValid shows true if the value is set or defaulted. - * - * A property can be set, null, or have a default value - all - * of these are valid. It can also be unset, and have no default - * in which case this returns false. - */ - - virtual SDO_API bool isValid(const char* path) = 0; - virtual SDO_API bool isValid(unsigned int propertyIndex) = 0; - virtual SDO_API bool isValid(const Property& property ) =0; - - /** unset unsets a value previously set. - * - * unsets a property of either this object or an object reachable - * from it, as identified by the specified path. - */ - - virtual SDO_API void unset(const char* path) = 0; - virtual SDO_API void unset(unsigned int propertyIndex) = 0; - virtual SDO_API void unset(const Property& property) = 0; - - /** setUserData sets a reserved field in the data object. - * - * Each data object has precisely one 32 bit slot available to - * be used by applications. This is not part of the data, its - * just a place to store anything for later retrieval. - */ - - virtual SDO_API void setUserData(const char* path,void* value) = 0; - virtual SDO_API void setUserData(unsigned int propertyIndex, void* value) = 0; - virtual SDO_API void setUserData(const Property& property, void* value) = 0; - virtual SDO_API void setUserData(void* value) = 0; - virtual SDO_API void* getUserData(const char* path) = 0; - virtual SDO_API void* getUserData(unsigned int propertyIndex) = 0; - virtual SDO_API void* getUserData(const Property& property) = 0; - virtual SDO_API void* getUserData() = 0; - - - /** getSequence returns the sequence for a data object - * - * Returns the value of a Sequence property identified by - * the specified path. See Sequence. - */ - - virtual SDO_API SequencePtr getSequence() = 0; - virtual SDO_API SequencePtr getSequence(const char* path) = 0; - virtual SDO_API SequencePtr getSequence(unsigned int propertyIndex) = 0; - virtual SDO_API SequencePtr getSequence(const Property& property) = 0; - - - - /** createDataObject creates a data object value - * - * Returns a new data object contained by this object using the - * specified property,which must be a containment property. - * The type of the created object is the declared type - * of the specified property. - * If the property is many valued, this method adds an element to the - * list, otherwise it sets the value, removing any old value. - */ - - virtual SDO_API DataObjectPtr createDataObject(const char* propertyName) = 0; - virtual SDO_API DataObjectPtr createDataObject(unsigned int propertyIndex) = 0; - virtual SDO_API DataObjectPtr createDataObject(const Property& property) = 0; - - - - /** detach detaches an object from the graph - * - * This method removes the current data object from the graph, but does - * not destroy it. The DataObject can be re-attached to the graph later. - */ - - virtual SDO_API void detach() = 0; - - /** clear unsets all the properties - * - * This method unsets all the properties, and deletes all the data object - * propertiy values from this data object. - */ - - virtual SDO_API void clear() = 0; - - - /** getList gets the value of a many-valued property - * - * Many valued properties are returned as lists of DataObjects. - * These lists may contain primitives or data objects, but they behave - * like data objects. - * Getting a many valued integer consists of getting the list, then - * using the DataObjectList API to getInteger() for each list element. - */ - - virtual SDO_API DataObjectList& getList(const char* path) = 0; - virtual SDO_API DataObjectList& getList(unsigned int propIndex) = 0; - virtual SDO_API DataObjectList& getList(const Property& p) = 0; - virtual DataObjectList& getList() = 0; - - - /** getChangeSummary get the applicable change summary - * - * This method gets the applicable change summary for a data object. - * The summary is not necessarily attached to the data object, it may be - * the summary for a parent data object. No object with a summary attached - * may be a child of another object with a summary attached. - * See the ChangeSummary API for details of using the change sumamry. - */ - - virtual SDO_SPI ChangeSummaryPtr getChangeSummary() = 0; - virtual SDO_SPI ChangeSummaryPtr getChangeSummary(const char* path) = 0; - virtual SDO_SPI ChangeSummaryPtr getChangeSummary(unsigned int propIndex) = 0; - virtual SDO_SPI ChangeSummaryPtr getChangeSummary(const Property& prop) = 0; - - /** objectToXPath - utility to find the xpath from the root. - * - * objectToXPath returns a string which could be used to locate this data - * object from the root data object of the graph. - */ - - virtual SDO_SPI const char* objectToXPath() = 0; - - -}; -}; -}; - -#endif //_DATAOBJECT_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.cpp deleted file mode 100644 index 93758cf7ea..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.cpp +++ /dev/null @@ -1,3633 +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: 2006/02/02 16:41:30 $ */ - -#include "commonj/sdo/disable_warn.h" -#include "commonj/sdo/DataObjectImpl.h" - - - -#include "commonj/sdo/SDORuntimeException.h" - -#include "commonj/sdo/Property.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/TypeList.h" -#include "commonj/sdo/Sequence.h" -#include "commonj/sdo/SequenceImpl.h" - -#include "commonj/sdo/PropertyList.h" - -#include "commonj/sdo/Logging.h" - -#include "commonj/sdo/TypeImpl.h" - -#include "commonj/sdo/ChangeSummaryImpl.h" -#include "commonj/sdo/DataFactoryImpl.h" - -#include -#include -using std::string; - - - - -namespace commonj{ -namespace sdo { - - /** - * RDO is an internal class holding a property value - */ - - rdo::rdo(unsigned int infirst, DataObjectImpl* insecond) - : first(infirst), second(insecond) - { - } - - rdo::rdo() - { - first = 0; - second = 0; - } - - rdo::rdo (const rdo& inrdo) - { - first = inrdo.first; - second = inrdo.second; - } - - rdo::~rdo() - { - } - - -/** @def getPrimitive - * - * A macro for the getting of primitive values from a data object - */ - -#define getPrimitive(primval,retval,defval)\ - retval DataObjectImpl::get ##primval (unsigned int propertyIndex)\ - {\ - validateIndex(propertyIndex);\ - PropertyImpl* p = getPropertyImpl(propertyIndex);\ - if (p != 0 ) \ - {\ - if (p->isMany())\ - {\ - string msg("Get value not available on many valued property:");\ - msg += p->getName();\ - SDO_THROW_EXCEPTION("get value", SDOUnsupportedOperationException,\ - msg.c_str());\ - }\ - DataObjectImpl* d = getDataObjectImpl(propertyIndex);\ - if (d != 0) \ - {\ - if (d->isNull())return (retval)0;\ - return d->get ##primval ();\ - }\ - if (isSet(propertyIndex)) return (retval)0;\ - return p->get ##primval ##Default();\ - }\ - return (retval)0;\ - } - -/** @def getCharsBasic - * - * A macro for the getting of primitive characters from a data object - */ - -#define getCharsBasic(primval,retval,defval)\ - unsigned int DataObjectImpl::get ##primval (unsigned int propertyIndex, retval valptr , unsigned int max)\ - {\ - validateIndex(propertyIndex);\ - PropertyImpl* p = getPropertyImpl(propertyIndex);\ - if (p != 0) \ - {\ - if (p->isMany())\ - {\ - string msg("Get value not available on many valued property:");\ - msg += p->getName();\ - SDO_THROW_EXCEPTION("character getter", SDOUnsupportedOperationException,\ - msg.c_str());\ - }\ - DataObjectImpl* d = getDataObjectImpl(propertyIndex);\ - if (d != 0) \ - { \ - if (d->isNull()) return 0;\ - return d->get ##primval ( valptr , max);\ - }\ - if (isSet(propertyIndex))return 0;\ - return p->get ##primval ##Default( valptr , max);\ - }\ - return 0;\ - } - - -/** @def setPrimitive - * - * A macro for the setting of primitive values in a data object - */ - -#define setPrimitive(primval,primtype,primnam)\ - void DataObjectImpl::set ##primval (unsigned int propertyIndex, primtype value)\ - {\ - validateIndex(propertyIndex);\ - PropertyImpl* pl = getPropertyImpl(propertyIndex);\ - if (pl != 0) \ - {\ - if (pl->isMany())\ - {\ - string msg("Set value not available on many valued property:");\ - msg += pl->getName();\ - SDO_THROW_EXCEPTION("set value",SDOUnsupportedOperationException,\ - msg.c_str());\ - }\ - PropertyValueMap::iterator i;\ - for (i = PropertyValues.begin(); i != PropertyValues.end();++i)\ - {\ - if ((*i).first == propertyIndex)\ - {\ - logChange(propertyIndex);\ - (*i).second->unsetNull();\ - (*i).second->set ##primval (value);\ - return;\ - }\ - }\ - DataFactory* df = getDataFactory();\ - DataObjectImpl* b = new DataObjectImpl(df, df->getType(Type::SDOTypeNamespaceURI, primnam));\ - b->setContainer(this);\ - b->setApplicableChangeSummary();\ - logChange(propertyIndex);\ - PropertyValues.insert(PropertyValues.end(), rdo(propertyIndex,b));\ - b->set ##primval (value);\ - }\ - return;\ - } - - -/** @def setCharsBasic - * - * A macro for the setting of primitive characters in a data object - */ - -#define setCharsBasic(primval,primtype,primnam)\ - void DataObjectImpl::set ##primval (unsigned int propertyIndex, primtype value, unsigned int len)\ - {\ - validateIndex(propertyIndex);\ - PropertyImpl* pl = getPropertyImpl(propertyIndex);\ - if (pl != 0) \ - {\ - if (pl->isMany())\ - {\ - string msg("Set value not available on many valued property:");\ - msg += pl->getName();\ - SDO_THROW_EXCEPTION("setter",SDOUnsupportedOperationException,\ - msg.c_str());\ - }\ - PropertyValueMap::iterator i;\ - for (i = PropertyValues.begin(); i != PropertyValues.end();++i)\ - {\ - if ((*i).first == propertyIndex)\ - {\ - logChange(propertyIndex);\ - (*i).second->unsetNull();\ - (*i).second->set ##primval (value, len);\ - return;\ - }\ - }\ - DataFactory* df = getDataFactory();\ - DataObjectImpl* b = new DataObjectImpl(df, df->getType(Type::SDOTypeNamespaceURI, primnam));\ - b->setContainer(this);\ - b->setApplicableChangeSummary();\ - logChange(propertyIndex);\ - PropertyValues.insert(PropertyValues.end(),rdo(propertyIndex,b));\ - b->set ##primval (value, len);\ - }\ - return;\ - } - - -/** @def getPrimitiveFromPath - * - * A macro for the getting of primitive values from a data object by path - */ - -#define getPrimitiveFromPath(primval, retval, defval)\ - retval DataObjectImpl::get ##primval (const char* path)\ - {\ - DataObjectImpl* d;\ - char *spath = 0;\ - char* prop = 0;\ - try {\ - spath = DataObjectImpl::stripPath(path);\ - prop = findPropertyContainer(spath,&d);\ - if (spath){\ - delete spath;\ - spath = 0;\ - }\ - if (d != 0) {\ - if (prop == 0 || (strlen(prop) == 0)) {\ - return d->get ##primval ();\ - }\ - else {\ - PropertyImpl* p = d->getPropertyImpl(prop);\ - if (p != 0) \ - {\ - if (p->isMany())\ - {\ - long l;\ - DataObjectImpl* doi = d->findDataObject(prop,&l);\ - delete prop;\ - prop = 0;\ - if (doi != 0) {\ - return doi->get ## primval();\ - }\ - string msg("Get value - index out of range:");\ - msg += path;\ - SDO_THROW_EXCEPTION("getter", SDOIndexOutOfRangeException,\ - msg.c_str());\ - }\ - else\ - {\ - delete prop;\ - prop = 0;\ - if (!isSet(*p)) {\ - return p->get ##primval ##Default();\ - }\ - return d->get ##primval (*p);\ - }\ - }\ - }\ - if (prop) {\ - delete prop;\ - prop = 0;\ - }\ - }\ - string msg("Get value - path not found");\ - SDO_THROW_EXCEPTION("getter", SDOPathNotFoundException,\ - msg.c_str());\ - }\ - catch (SDORuntimeException e) {\ - if (spath)delete spath;\ - if (prop) delete prop;\ - SDO_RETHROW_EXCEPTION("getter", e);\ - }\ - } - - -/** @def getCharsFromPath - * - * A macro for the getting of primitive characters from a data object by path - */ - -#define getCharsFromPath(primval, retval, defval)\ - unsigned int DataObjectImpl::get ##primval (const char* path, retval valptr , unsigned int max)\ - {\ - DataObjectImpl* d;\ - char *spath = 0;\ - char* prop = 0;\ - try {\ - spath = DataObjectImpl::stripPath(path);\ - prop = findPropertyContainer(spath,&d);\ - if (spath){\ - delete spath;\ - spath = 0;\ - }\ - if (d != 0) {\ - if (prop == 0 || (strlen(prop) == 0)) {\ - return d->get ##primval ( valptr , max);\ - }\ - else {\ - PropertyImpl* p = d->getPropertyImpl(prop);\ - if (p != 0)\ - {\ - if (p->isMany())\ - {\ - long l;\ - DataObjectImpl* doi = d->findDataObject(prop,&l);\ - delete prop;\ - prop = 0;\ - if (doi != 0) {\ - return doi->get ## primval (valptr, max);\ - }\ - string msg("Get value - index out of range");\ - msg += path;\ - SDO_THROW_EXCEPTION("getChars", SDOIndexOutOfRangeException,\ - msg.c_str());\ - }\ - else { \ - delete prop;\ - prop = 0;\ - if (!isSet(*p)) {\ - return p->get ##primval ##Default( valptr , max );\ - }\ - return d->get ##primval (*p, valptr , max);\ - }\ - }\ - }\ - if (prop) {\ - delete prop;\ - prop = 0;\ - }\ - }\ - string msg("Get value - path not found");\ - SDO_THROW_EXCEPTION("getCString", SDOPathNotFoundException,\ - msg.c_str());\ - }\ - catch (SDORuntimeException e) {\ - if (spath)delete spath;\ - if (prop) delete prop;\ - SDO_RETHROW_EXCEPTION("character getter", e);\ - }\ - } - - - -/** @def setPrimitiveFromPath - * - * A macro for the setting of primitive values in a data object by path - */ - -#define setPrimitiveFromPath(primval,setval)\ - void DataObjectImpl::set ##primval (const char* path, setval value)\ - {\ - DataObjectImpl *d;\ - char* spath = 0;\ - char* prop = 0;\ - try {\ - spath = DataObjectImpl::stripPath(path);\ - prop = findPropertyContainer(spath,&d);\ - if (spath) {\ - delete spath;\ - spath = 0;\ - }\ - if (d != 0)\ - {\ - if (prop == 0 || (strlen(prop) == 0)) {\ - d->set ##primval (value);\ - }\ - else {\ - const PropertyImpl* p = d->getPropertyImpl(prop);\ - if (p == 0 && d->getType().isOpenType()) \ - {\ - p = d->define ##primval (prop);\ - }\ - if (p->isMany())\ - {\ - long l;\ - DataObjectList& dol = d->getList((Property&)*p);\ - DataObjectImpl* doi = d->findDataObject(prop,&l);\ - delete prop;\ - prop = 0;\ - if (doi != 0) {\ - doi->set ## primval (value);\ - }\ - else {\ - dol.append(value);\ - }\ - }\ - else {\ - delete prop;\ - prop = 0;\ - d->set ##primval ((Property&)*p,value);\ - }\ - }\ - }\ - if (prop){\ - delete prop;\ - prop = 0;\ - }\ - }\ - catch (SDORuntimeException e) {\ - if (spath) delete spath;\ - if (prop) delete prop;\ - SDO_RETHROW_EXCEPTION("setter",e);\ - }\ - } - -/** @def setCharsFromPath - * - * A macro for the setting of primitive characters in a data object by path - */ - -#define setCharsFromPath(primval,setval)\ - void DataObjectImpl::set ##primval (const char* path, setval value, unsigned int len)\ - {\ - DataObjectImpl *d;\ - char* spath = 0;\ - char* prop = 0;\ - try {\ - spath = DataObjectImpl::stripPath(path);\ - prop = findPropertyContainer(spath,&d);\ - if (spath) {\ - delete spath;\ - spath = 0;\ - }\ - if (d != 0)\ - {\ - if (prop == 0 || (strlen(prop) == 0)) {\ - d->set ##primval (value, len);\ - }\ - else {\ - const PropertyImpl* p = d->getPropertyImpl(prop);\ - if (p == 0 && d->getType().isOpenType())\ - {\ - p = d->define ##primval (prop);\ - }\ - if (p->isMany())\ - {\ - long l;\ - DataObjectList& dol = d->getList((Property&)*p);\ - DataObjectImpl* doi = d->findDataObject(prop,&l);\ - delete prop;\ - prop = 0;\ - if (doi != 0) {\ - doi->set ## primval (value, len);\ - }\ - else {\ - dol.append(value,len);\ - }\ - }\ - else { \ - delete prop;\ - prop = 0;\ - d->set ##primval ((Property&)*p,value, len);\ - }\ - }\ - }\ - if (prop){\ - delete prop;\ - prop = 0;\ - }\ - }\ - catch (SDORuntimeException e) {\ - if (spath) delete spath;\ - if (prop) delete prop;\ - SDO_RETHROW_EXCEPTION("setter",e);\ - }\ - } - - - - -/** @def getPrimitiveFromProperty - * - * A macro for the getting of primitive values in a data object by property - */ - -#define getPrimitiveFromProperty(primval,retval)\ - retval DataObjectImpl::get ##primval (const Property& property)\ - {\ - return get ##primval (getPropertyIndex(property));\ - } - - -/** @def getCharsFromProperty - * - * A macro for the getting of primitive characters in a data object by property - */ - -#define getCharsFromProperty(primval,retval)\ - unsigned int DataObjectImpl::get ##primval (const Property& property, retval val, unsigned int max)\ - {\ - return get ##primval (getPropertyIndex(property), val, max);\ - } - - -/** @def setPrimitiveFromProperty - * - * A macro for the setting of primitive values in a data object by property - */ - -#define setPrimitiveFromProperty(primval,primtype)\ - void DataObjectImpl::set ##primval (const Property& property, primtype value)\ - {\ - set ##primval (getPropertyIndex(property),value);\ - } - -/** @def setCharsFromProperty - * - * A macro for the setting of primitive characters in a data object by property - */ - -#define setCharsFromProperty(primval,primtype)\ - void DataObjectImpl::set ##primval (const Property& property, primtype value, unsigned int len)\ - {\ - set ##primval (getPropertyIndex(property),value, len);\ - } - - - - /** DataObject - * DataObjects are the non-primitive members of a Data graph. - * - * A data object is a representation of some structured data. - * it is the fundamental component in the SDO (Service Data Objects) package. - * Data objects support reflection, path-based accesss, convenience creation - * and deletion methods,and the ability to be part of a data graph. - * Each data object holds its data as a series of properties. - * Properties can be accessed by name, property index, or using the property - * meta object itself. - * A data object can also contain references to other data objects, through - * reference-type properties. - * A data object has a series of convenience accessors for its properties. - * These methods either use a path (String), a property index, - * or the property's meta object itself, to identify the property. - * Some examples of the path-based accessors are as follows: - * DataObjectPtr company = ...; - * company->getString("name"); - * company->setString("name", "acme"); - * company->getString("department.0/name") - * .n indexes from 0. - * company->getString("department[1]/name") [] indexes from 1. - * company->getDataObject("department[number=123]") returns the department where number=123 - * company->getDataObject("..") returns the containing data object - * company->getDataObject("/") returns the root containing data object - * There are specific accessors for the primitive types and commonly used - * data types like String. - */ - - -void DataObjectImpl::handlePropertyNotSet(const char* name) -{ - // change of behaviour - no longer throw for this. - -// string msg("Get value on unset and undefaulted property:"); -// msg += name; -// SDO_THROW_EXCEPTION("get value", SDOPropertyNotSetException, -// msg.c_str()); -} - - - - // setters and getters from a path specification - - getCharsFromPath(String, wchar_t* , 0); - getCharsFromPath(Bytes, char* , 0); - setCharsFromPath(String, const wchar_t*); - setCharsFromPath(Bytes, const char*); - getCharsFromProperty(String,wchar_t*); - getCharsFromProperty(Bytes,char*); - setCharsFromProperty(String,const wchar_t*); - setCharsFromProperty(Bytes,const char*); - getCharsBasic(String,wchar_t*,0); - getCharsBasic(Bytes,char*,0); - setCharsBasic(String,const wchar_t*,"String"); - setCharsBasic(Bytes,const char*,"Bytes"); - - - // Convenience methods for string/bytes length - - unsigned int DataObjectImpl::getLength(const Property& p) - { - switch (p.getType().getTypeEnum()) { - case Type::BooleanType: - return BOOL_SIZE; - case Type::CharacterType: - case Type::ByteType: - return BYTE_SIZE; - case Type::ShortType: - case Type::IntegerType: - case Type::LongType: - return MAX_LONG_SIZE; - case Type::FloatType: - return MAX_FLOAT_SIZE; - case Type::DoubleType: - return MAX_DOUBLE_SIZE; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::UriType: - case Type::StringType: - return getString(p,0,0); - case Type::BytesType: - return getBytes(p,0,0); - default: - return 0; - } - } - - unsigned int DataObjectImpl::getLength() - { - switch (getType().getTypeEnum()) { - case Type::BooleanType: - return BOOL_SIZE; - case Type::CharacterType: - case Type::ByteType: - return BYTE_SIZE; - case Type::ShortType: - case Type::IntegerType: - case Type::LongType: - return MAX_LONG_SIZE; - case Type::FloatType: - return MAX_FLOAT_SIZE; - case Type::DoubleType: - return MAX_DOUBLE_SIZE; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::UriType: - case Type::StringType: - return getString(0,0); - case Type::BytesType: - return getBytes(0,0); - default: - return 0; - } - } - - unsigned int DataObjectImpl::getLength(const char* path) - { - DataObjectImpl* d; - char * spath = DataObjectImpl::stripPath(path); - char * prop = findPropertyContainer(spath,&d); - if (spath) delete spath; - if (d != 0) { - if (prop == 0 || (strlen(prop) == 0)) { - return 0; - } - else - { - const Property& p = d->getProperty(prop); - delete prop; - return getLength(p); - } - } - else - { - if (prop) - { - const Property& p = getProperty(prop); - delete prop; - - return getLength(p); - } - else - { - return 0; - } - } - } - - unsigned int DataObjectImpl::getLength(unsigned int index) - { - return getLength(getProperty(index)); - } - - getPrimitiveFromPath(Boolean,bool,false); - getPrimitiveFromPath(Byte,char,0); - getPrimitiveFromPath(Character,wchar_t,0); - getPrimitiveFromPath(Short,short,0); - getPrimitiveFromPath(Integer,long,0); - getPrimitiveFromPath(Long,int64_t,0L); - getPrimitiveFromPath(Double,long double,0.0); - getPrimitiveFromPath(Float,float,0.0); - getPrimitiveFromPath(Date,const SDODate,0); - - - setPrimitiveFromPath(Boolean,bool); - setPrimitiveFromPath(Byte,char); - setPrimitiveFromPath(Character,wchar_t); - setPrimitiveFromPath(Short,short); - setPrimitiveFromPath(Integer,long); - setPrimitiveFromPath(Long,int64_t); - setPrimitiveFromPath(Float,float); - setPrimitiveFromPath(Double,long double); - setPrimitiveFromPath(Date,const SDODate); - - - getPrimitiveFromProperty(Boolean,bool); - getPrimitiveFromProperty(Byte,char); - getPrimitiveFromProperty(Character,wchar_t); - getPrimitiveFromProperty(Short,short); - getPrimitiveFromProperty(Integer,long); - getPrimitiveFromProperty(Long,int64_t); - getPrimitiveFromProperty(Double,long double); - getPrimitiveFromProperty(Float,float); - getPrimitiveFromProperty(Date,const SDODate); - - setPrimitiveFromProperty(Boolean,bool); - setPrimitiveFromProperty(Byte,char); - setPrimitiveFromProperty(Character,wchar_t); - setPrimitiveFromProperty(Short,short); - setPrimitiveFromProperty(Integer,long); - setPrimitiveFromProperty(Long,int64_t); - setPrimitiveFromProperty(Float,float); - setPrimitiveFromProperty(Double,long double); - setPrimitiveFromProperty(Date,const SDODate); - - getPrimitive(Boolean,bool,false); - getPrimitive(Byte,char,0); - getPrimitive(Character,wchar_t,0); - getPrimitive(Short,short,0); - getPrimitive(Integer,long,0); - getPrimitive(Long,int64_t,0L); - getPrimitive(Double,long double,0.0); - getPrimitive(Float,float,0.0); - getPrimitive(Date,const SDODate,0); - - setPrimitive(Boolean,bool,"Boolean"); - setPrimitive(Byte,char, "Byte"); - setPrimitive(Character,wchar_t,"Character"); - setPrimitive(Short,short,"Short"); - setPrimitive(Integer,long,"Integer"); - setPrimitive(Long,int64_t,"Long"); - setPrimitive(Float,float,"Float"); - setPrimitive(Double,long double,"Double"); - setPrimitive(Date,const SDODate,"Date"); - - - - // open type support - - const PropertyImpl* DataObjectImpl::defineProperty(const char* propname, - const Type& t) - { - openProperties.insert( - openProperties.end(), PropertyImpl(getType(),propname, - (TypeImpl&)t, false, false, true)); - DataFactory* df = factory; - ((DataFactoryImpl*)df)->addOpenProperty( - PropertyImpl(getType(),propname, - (TypeImpl&)t, false, false, true)); - - return getPropertyImpl(propname); - } - - void DataObjectImpl::undefineProperty(unsigned int index) - { - int point = index - openBase; - if (point < 0 || point >= openProperties.size()) return; - - // downgrade all the property settings above this one - - PropertyValueMap::iterator pit; - for (pit = PropertyValues.begin(); pit != PropertyValues.end();++pit) - { - if ((*pit).first > index) - { - if (getPropertyImpl((*pit).first)->isMany()) - { - DataObjectListImpl* dl = (*pit).second->getListImpl(); - if (dl != 0) dl->decrementPindex(); - } - (*pit).first-=1; - } - } - - // then remove this property from the list - - std::list::iterator it = - openProperties.begin(); - for (int i=0;iremoveOpenProperty((*it).getName()); - - openProperties.erase(it); - - return; - } - - const PropertyImpl* DataObjectImpl::defineList(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "DataObject"); - openProperties.insert( - openProperties.end(), PropertyImpl(getType(),propname, - (TypeImpl&)t, true, false, true)); - - DataFactory* df = factory; - ((DataFactoryImpl*)df)->addOpenProperty(PropertyImpl(getType(),propname, - (TypeImpl&)t, true, false, true)); - - return getPropertyImpl(propname); - } - - const PropertyImpl* DataObjectImpl::defineBoolean(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Boolean"); - return defineProperty(propname,t); - } - - const PropertyImpl* DataObjectImpl::defineByte(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Byte"); - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineCharacter(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Character"); - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineString(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "String"); - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineBytes(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Bytes"); - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineShort(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Short"); - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineInteger(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Integer"); - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineLong(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Long"); - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineFloat(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Float"); - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineDouble(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Double"); - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineDate(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Date"); - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineCString(const char* propname) - { - const Type& t = factory->getType(Type::SDOTypeNamespaceURI, "Bytes"); - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineDataObject(const char* propname, - const Type& t) - { - return defineProperty(propname,t); - } - const PropertyImpl* DataObjectImpl::defineDataObject(const char* propname, - const char* typeURI, const char* typeName) - { - const Type& t = factory->getType(typeURI, typeName); - return defineProperty(propname,t); - } - - // Used to return empty values - remove when defaults are there. - const char* DataObjectImpl::emptyString = ""; - - // Useful for debug, so not included in the macros above - but - // could be. - // getters and setters for strings - - const char* DataObjectImpl::getCString(unsigned int propertyIndex) - { - validateIndex(propertyIndex); - if ((getProperty(propertyIndex).isMany())) - { - string msg("Get value not available on many valued property:"); - msg += getProperty(propertyIndex).getName(); - SDO_THROW_EXCEPTION("getCString", SDOUnsupportedOperationException, - msg.c_str()); - } - DataObjectImpl* d = getDataObjectImpl(propertyIndex); - if (d != 0) { - if (!d->isNull()) return d->getCString (); - return 0; - } - PropertyImpl* p = (PropertyImpl*)getPropertyImpl(propertyIndex); - if (p != 0) - { - if (isSet(propertyIndex)) return 0; - //if (p->isDefaulted()) - //{ - return p->getCStringDefault(); - //} - //else - //{ - // handlePropertyNotSet(p->getName()); - //} - } - return 0; - } - - - void DataObjectImpl::setCString (unsigned int propertyIndex, const char* value) - { - validateIndex(propertyIndex); - PropertyValueMap::iterator i; - if ((getProperty(propertyIndex).isMany())) - { - string msg("Set value not available on many valued property:"); - msg += getProperty(propertyIndex).getName(); - SDO_THROW_EXCEPTION("setString", SDOUnsupportedOperationException, - msg.c_str()); - } - for (i = PropertyValues.begin(); i != PropertyValues.end();++i) - { - if ((*i).first == propertyIndex) - { - logChange(propertyIndex); - (*i).second->unsetNull(); - (*i).second->setCString(value); - return; - } - } - DataFactory* df = getDataFactory(); - DataObjectImpl* b = new DataObjectImpl(df, df->getType(Type::SDOTypeNamespaceURI,"String")); - b->setContainer(this); - b->setApplicableChangeSummary(); - logChange(propertyIndex); - PropertyValues.insert(PropertyValues.end(),rdo(propertyIndex,b)); - b->setCString(value); - return; - } - - - const char* DataObjectImpl::getCString (const char* path) - { - DataObjectImpl* d = 0; - char* spath = 0; - char *prop = 0; - try { - spath = DataObjectImpl::stripPath(path); - prop = findPropertyContainer(spath,&d); - if (spath) { - delete spath; - spath = 0; - } - if (d != 0) { - if (prop == 0 || (strlen(prop) == 0)) { - return d->getCString(); - } - else { - PropertyImpl* p = d->getPropertyImpl(prop); - if (p != 0) - { - if (p->isMany()) - { - long l; - DataObjectImpl* doi = d->findDataObject(prop,&l); - delete prop; - prop = 0; - if (doi != 0) { - return doi->getCString(); - } - string msg("Get CString - index out of range"); - msg += path; - SDO_THROW_EXCEPTION("getter", SDOIndexOutOfRangeException, - msg.c_str()); - } - else { - delete prop; - prop = 0; - if (!d->isSet(*p)) { - //if (p->isDefaulted()) - //{ - return p->getCStringDefault(); - //} - //else - //{ - // handlePropertyNotSet(p->getName()); - //} - } - return d->getCString(*p); - } - } - } - } - if (prop){ - delete prop; - prop = 0; - } - string msg("Get CString - object not found"); - SDO_THROW_EXCEPTION("getCString", SDOPathNotFoundException, - msg.c_str()); - } - catch (SDORuntimeException e) { - if (spath) delete spath; - if (prop) delete prop; - SDO_RETHROW_EXCEPTION("getCString",e); - } - } - - - - void DataObjectImpl::setCString(const char* path, const char* value) - { - DataObjectImpl *d = 0; - char* spath = 0; - char* prop = 0; - try { - spath = DataObjectImpl::stripPath(path); - prop = findPropertyContainer(spath,&d); - if (spath) { - delete spath; - spath = 0; - } - if (d != 0) { - if (prop == 0 || (strlen(prop) == 0)) { - d->setCString(value); - } - else { - const PropertyImpl* p = d->getPropertyImpl(prop); - if (p == 0 && d->getType().isOpenType()) - { - p = d->defineBytes(prop); - } - if (p != 0) - { - if (p->isMany()) { - long l; - DataObjectList& dol = d->getList((Property&)*p); - DataObjectImpl* doi = d->findDataObject(prop,&l); - if (doi != 0) - { - doi->setCString(value); - } - else - { - dol.append(value); - } - } - else { - d->setCString((Property&)*p,value); - } - } - delete prop; - prop = 0; - } - } - if (prop) { - delete prop; - prop = 0; - } - } - catch (SDORuntimeException e) { - if (spath) delete spath; - if (prop) delete prop; - SDO_RETHROW_EXCEPTION("setCString",e); - } - } - - - - const char* DataObjectImpl::getCString (const Property& property) - { - return getCString(getPropertyIndex(property)); - } - - - void DataObjectImpl::setCString(const Property& property, const char* value) - { - setCString(getPropertyIndex(property),value); - } - - // null support - - bool DataObjectImpl::isNull(const unsigned int propertyIndex) - { - validateIndex(propertyIndex); - if ((getProperty(propertyIndex).isMany())) - { - return false; - } - - PropertyValueMap::iterator i; - for (i = PropertyValues.begin(); i != PropertyValues.end();++i) - { - if ((*i).first == propertyIndex) - { - return (*i).second->isNull(); - } - } - return false; - } - - bool DataObjectImpl::isNull(const Property& property) - { - return isNull(getPropertyIndex(property)); - } - - bool DataObjectImpl::isNull(const char* path) - { - DataObjectImpl *d = 0; - char* spath = 0; - char* prop = 0; - try { - spath = DataObjectImpl::stripPath(path); - prop = findPropertyContainer(spath,&d); - if (spath) { - delete spath; - spath = 0; - } - if (d != 0) { - if (prop == 0 || (strlen(prop) == 0)) { - return d->isNull(); - } - else { - const Property& p = d->getProperty(prop); - delete prop; - return d->isNull(p); - } - } - if (prop) { - delete prop; - prop = 0; - } - return false; - } - catch (SDORuntimeException e) { - if (spath) delete spath; - if (prop) delete prop; - SDO_RETHROW_EXCEPTION("isNull",e); - } - - } - void DataObjectImpl::setNull(const unsigned int propertyIndex) - { - validateIndex(propertyIndex); - if ((getProperty(propertyIndex).isMany())) - { - string msg("Setting a list to null is not supported:"); - msg += getProperty(propertyIndex).getName(); - SDO_THROW_EXCEPTION("setNull", SDOUnsupportedOperationException, - msg.c_str()); - } - - PropertyValueMap::iterator i; - for (i = PropertyValues.begin(); i != PropertyValues.end();++i) - { - if ((*i).first == propertyIndex) - { - logChange(propertyIndex); - (*i).second->setNull(); - return; - } - } - // The property was not set yet... - logChange(propertyIndex); - DataFactory* df = getDataFactory(); - DataObjectImpl* b = new DataObjectImpl(df, - getProperty(propertyIndex).getType()); - b->setContainer(this); - b->setApplicableChangeSummary(); - PropertyValues.insert(PropertyValues.end(),rdo(propertyIndex,b)); - b->setNull(); - - - } - void DataObjectImpl::setNull(const Property& property) - { - setNull(getPropertyIndex(property)); - } - - void DataObjectImpl::setNull(const char* path) - { - DataObjectImpl *d = 0; - char* spath = 0; - char* prop = 0, *pc = 0; - try { - spath = DataObjectImpl::stripPath(path); - prop = findPropertyContainer(spath,&d); - if (spath) { - delete spath; - spath = 0; - } - if (d != 0) { - if (prop == 0 || (strlen(prop) == 0)) { - try { - DataObjectImpl* cont = d->getContainerImpl(); - if (cont != 0) - { - pc = strrchr(path,'/'); - if (pc != 0)pc++; - } - const Property& pcont = cont->getProperty(pc); - cont->logChange(pcont); - } - catch (SDORuntimeException&) - { - } - d->setNull(); - } - else { - const PropertyImpl* p = d->getPropertyImpl(prop); - if (p == 0) - { - if(d->getType().isOpenType()) - { - string msg("Cannot set unassigned open property to null:"); - msg += prop; - SDO_THROW_EXCEPTION("setNull", SDOUnsupportedOperationException, - msg.c_str()); - } - else - { - string msg("Property Not Found:"); - msg += prop; - SDO_THROW_EXCEPTION("setNull", SDOPropertyNotFoundException, - msg.c_str()); - } - } - delete prop; - d->setNull((Property&)*p); - return; - } - } - if (prop) { - delete prop; - prop = 0; - } - return; - } - catch (SDORuntimeException e) { - if (spath) delete spath; - if (prop) delete prop; - SDO_RETHROW_EXCEPTION("setNull",e); - } - - } - - - - // getters and setters for a List data object - - DataObjectList& DataObjectImpl::getList(const char* path) - { - DataObjectImpl *d; - char* spath = DataObjectImpl::stripPath(path); - char* prop = findPropertyContainer(spath,&d); - if (spath) delete spath; - if (d != 0) { - if (prop == 0 || (strlen(prop) == 0)) { - return d->getList(); - } - else { - const PropertyImpl* p = d->getPropertyImpl(prop); - if (p == 0 && d->getType().isOpenType()) - { - p = d->defineList(prop); - } - if (p != 0) - { - delete prop; - return d->getList((Property&)*p); - } - } - } - if (prop) delete prop; - - string msg("Invalid path:"); - msg += path; - SDO_THROW_EXCEPTION("getList",SDOPathNotFoundException, msg.c_str()); - - } - - - - DataObjectList& DataObjectImpl::getList(unsigned int propIndex) - { - if (!(getProperty(propIndex).isMany())) - { - string msg("Get list not available on single valued property:"); - msg += getProperty(propIndex).getName(); - SDO_THROW_EXCEPTION("getList", SDOUnsupportedOperationException, - msg.c_str()); - } - DataObjectImpl* d = getDataObjectImpl(propIndex); - if (d == 0) - { - string msg("Property Not Found:"); - msg += getType().getProperty(propIndex).getName(); - SDO_THROW_EXCEPTION("getList", SDOPropertyNotFoundException, - msg.c_str()); - } - return d->getList(); - } - - DataObjectList& DataObjectImpl::getList(const Property& p) - { - if (!p.isMany()) - { - string msg("Get list not available on single valued property:"); - msg += p.getName(); - SDO_THROW_EXCEPTION("getList", SDOUnsupportedOperationException, - msg.c_str()); - } - - int propIndex = getPropertyIndex(p); - DataObjectImpl* d = getDataObjectImpl(propIndex); - if (d == 0) { - // There is no list yet, so we need to create an - // empty data object to hold the list - DataFactory* df = getDataFactory(); - d = new DataObjectImpl(df, df->getType(Type::SDOTypeNamespaceURI,"DataObject")); - PropertyValues.insert(PropertyValues.end(),rdo(propIndex,d)); - d->setContainer(this); - d->setApplicableChangeSummary(); - - DataObjectListImpl* list = new DataObjectListImpl(df,this, - propIndex,p.getType().getURI(),p.getType().getName()); - d->setList(list); - - } - return d->getList(); - } - - - - DataObjectList& DataObjectImpl::getList() - { - return *listValue; - } - - DataObjectListImpl* DataObjectImpl::getListImpl() - { - return listValue; - } - - - - ///////////////////////////////////////////////////////////////////////////// - // Utilities - ///////////////////////////////////////////////////////////////////////////// - - - // get an index, or throw if the prop is not part of this DO - - unsigned int DataObjectImpl::getPropertyIndex(const Property& p) - { - PropertyList props = getType().getProperties(); - - for (int i = 0; i < props.size() ; ++i) - { - if (!strcmp(props[i].getName(),p.getName()) ) - { - return i; - } - } - if (getType().isOpenType()) - { - std::list::iterator j; - int count = 0; - for (j = openProperties.begin() ; - j != openProperties.end() ; ++j) - { - if (!strcmp((*j).getName(),p.getName())) - { - return count+openBase; - } - count++; - } - } - string msg("Cannot find property:"); - msg += p.getName(); - SDO_THROW_EXCEPTION("getPropertyIndex", SDOPropertyNotFoundException, - msg.c_str()); - } - - const Property& DataObjectImpl::getProperty(unsigned int index) - { - PropertyImpl* pi = getPropertyImpl(index); - if (pi == 0) - { - string msg("Index out of range"); - SDO_THROW_EXCEPTION("getProperty", SDOIndexOutOfRangeException, - msg.c_str()); - } - return (Property&)*pi; - } - - /** - * See if the property currently exists - */ - - bool DataObjectImpl::hasProperty(const char* name) - { - PropertyImpl* pi = getPropertyImpl(name); - if (pi == 0) return false; - return true; - } - - - PropertyImpl* DataObjectImpl::getPropertyImpl(unsigned int index) - { - PropertyList props = getType().getProperties(); - if (index < props.size()) - { - return (PropertyImpl*)&props[index]; - } - - if (getType().isOpenType()) - { - if (index >= openBase && index - openBase < openProperties.size()) - { - std::list::iterator j; - int val = 0; - j = openProperties.begin(); - while (val < index-openBase && j != openProperties.end()) - { - val++; - j++; - } - if (j != openProperties.end()) return &(*j); - } - } - return 0; - } - - - ////////////////////////////////////////////////////////////////////// - // TODO - this is rubbish, but gets us by until XPATH is done - // trip the path down to characters which I am going to - // recognise later (a-z, A-Z _ [ ] .) - ////////////////////////////////////////////////////////////////////// - - const char* DataObjectImpl::templateString = - " /abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890=[]._#"; - - char* DataObjectImpl::stripPath(const char* path) - { - int pos = 0; - char* s = 0; - if (path == 0) return s; - - s = new char[strlen(path)+1]; - - for (int i=0;i < strlen(path); i++) - { - if (strchr(templateString,path[i]) != 0) { - s[pos++] = path[i]; - } - } - s[pos++] = 0; - return s; - } - - - ////////////////////////////////////////////////////////////////////// - // Find a data object or return 0 if not found - ////////////////////////////////////////////////////////////////////// - - DataObjectImpl* DataObjectImpl::findDataObject(char* token, long* index) - { - // name , name[int], name[x=y] name.int - char c = 0; - char* beginbrace = strchr(token,'['); - char* endbrace = strchr(token,']'); - char* dot = strchr(token,'.'); - char* breaker = 0; - - - if (dot != 0) - { - if (beginbrace != 0) - { - breaker = (beginbrace < dot)? beginbrace:dot; - } - else - { - breaker = dot; - } - } - else - { - breaker = beginbrace; - } - - if (breaker == 0){ - // its this object, and a property thereof - *index = -1; - const Property& p = getProperty(token); - return getDataObjectImpl(p); - - } - - c = *breaker; - *breaker = 0; - const Property& p = getProperty(token); - *breaker = c; - - - breaker++; - - if (endbrace != 0) - { - *endbrace = 0; - } - - char* eq = strchr(breaker,'='); - - if (eq == 0) - { - int val = atoi(breaker); - DataObjectList& list = getList(p); - - // The spec says that depts[1] is the first element, - // as is depts.0 - - if (beginbrace != 0)val--; - - if (endbrace != 0)*endbrace = ']'; - - if (val >=0 && val < list.size()) - { - DataObject* dob = list[val]; - *index = val; - return (DataObjectImpl*)dob; - } - *index = -1; - return 0; - } - *eq = 0; - // breaker is now propname - eq++; - // eq is now propval - - DataObjectList& list = getList(p); - for (int li = 0 ; li < list.size() ; ++li) - { - // TODO comparison for double not ok - - const Type & t = list[li]->getType(); - const Property& p = list[li]->getProperty(breaker); - int ok = 0; - - switch (p.getTypeEnum()) - { - case Type::BooleanType: - { - // getCString will return "true" or "false" - if (!strcmp(eq,list[li]->getCString(p))) ok = 1; - } - break; - - case Type::ByteType: - { - char cc = (char)eq[0]; - // getByte return a char - if (cc == list[li]->getByte(p)) ok = 1; - } - break; - - case Type::CharacterType: - { - wchar_t wc = (wchar_t)((wchar_t*)eq)[0]; - // TODO - this is not a very accesible way of storing a wchar - if (wc == list[li]->getCharacter(p)) ok = 1; - } - break; - - case Type::IntegerType: - { - long ic = atol(eq); - if (ic == list[li]->getInteger(p)) ok = 1; - } - break; - - case Type::DateType: - { - long dc = atol(eq); - if (dc == (long)(list[li]->getDate(p).getTime())) ok = 1; - } - break; - - case Type::DoubleType: - { - // TODO - double needs a bigger size than float - long double ldc = (long double)atof(eq); - if (ldc == list[li]->getDouble(p)) ok = 1; - } - break; - - case Type::FloatType: - { - float fc = atof(eq); - if (fc == list[li]->getFloat(p)) ok = 1; - } - break; - - case Type::LongType: - { -#if defined(WIN32) || defined (_WINDOWS) - int64_t lic = (int64_t)_atoi64(eq); -#else - int64_t lic = (int64_t)strtoll(eq, NULL, 0); -#endif - - if (lic == list[li]->getLong(p)) ok = 1; - } - break; - - case Type::ShortType: - { - short sic = atoi(eq); - if (sic == list[li]->getShort(p)) ok = 1; - } - break; - - - case Type::BytesType: - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::StringType: - case Type::UriType: - { - - if (!strcmp(eq, list[li]->getCString(p))) ok = 1; - // try with quotes too - char *firstquote = strchr(eq,'"'); - char *firstsingle = strchr(eq,'\''); - char searchchar = 0; - - if (firstsingle == 0) - { - if (firstquote != 0) - { - searchchar = '"'; - } - } - else - { - if (firstquote != 0 && firstquote < firstsingle) - { - searchchar = '"'; - } - else - { - searchchar = '\''; - firstquote = firstsingle; - } - } - - if (searchchar != 0) - { - char* ender = strchr(firstquote+1,searchchar); - if (ender != 0) - { - *ender = 0; - if (!strcmp(firstquote+1, list[li]->getCString(p))) ok = 1; - *ender = searchchar; - } - } - } - break; - - case Type::DataObjectType: - break; - - default: - break; - } - - if (ok == 1) - { - *--eq='='; - if (endbrace != 0)*endbrace = ']'; - DataObject* dob = list[li]; - *index = li; - return (DataObjectImpl*)dob; - } - } - if (endbrace != 0)*endbrace = ']'; - *--eq='='; - return 0; - } - - - ////////////////////////////////////////////////////////////////////// - // Find a data object and a property name within it. - ////////////////////////////////////////////////////////////////////// - - char* DataObjectImpl::findPropertyContainer(const char* path, DataObjectImpl** din) - { - - // initially check for "#/" which indicates that we need to find the root - // object first - if (path == 0) return 0; - - if (strlen(path) <= 2) - { - if (path[0] == '#') - { - DataObjectImpl* root = this; - while (root->getContainerImpl() != 0) - { - root = root->getContainerImpl(); - } - *din = root; - return 0; - } - } - - if (path[0] == '#' && path[1] == '/') - { - DataObjectImpl* root = this; - while (root->getContainerImpl() != 0) - { - root = root->getContainerImpl(); - } - return root->findPropertyContainer(&path[2],din); - } - - DataObjectImpl* d; - char* i = strchr(path,'/'); - char* remaining = 0; - char* token = 0; - - if (i != 0) - { - int j = strlen(path) - strlen(i); - if (j > 0) - { - token = new char[j + 1]; - strncpy(token,path, j); - token[j] = 0; - } - if (strlen(i) > 1) - { - remaining = new char[strlen(i)]; - strcpy(remaining, i+1); - } - } - else - { - remaining = new char[strlen(path) + 1]; - strcpy(remaining,path); - } - - if (token == 0) - { - if (remaining != 0 && !strcmp(remaining,"..")) - { - /* Its the container itself */ - *din = getContainerImpl(); - delete remaining; - return 0; - } - - /* Its this data object - property could be empty or - valid or invalid - user must check */ - *din = this; - return remaining; - } - - if (!strcmp(token,"..")) { - /* Its derived from the container */ - d = getContainerImpl(); - /* carry on trying to find a property */ - if (d != 0) { - char* ret = d->findPropertyContainer(remaining, din); - delete token; - if (remaining) delete remaining; - return ret; - } - /* Give up - no container */ - delete token; - if (remaining) delete remaining; - *din = 0; - return 0; - } - - - /* Try to find a property ....*/ - long l; - d = findDataObject(token,&l); - if (d != 0) { - char* ret = d->findPropertyContainer(remaining,din); - delete token; - if (remaining) delete remaining; - return ret; - } - - /* Give up its not in the tree */ - - delete token; - if (remaining) delete remaining; - *din = 0; - return 0; - } - - - - - // Returns a read-only List of the Properties currently used in thIs DataObject. - // ThIs list will contain all of the properties in getType().getProperties() - // and any properties where isSet(property) is true. - // For example, properties resulting from the use of - // open or mixed XML content are present if allowed by the Type. - // The list does not contain duplicates. - // The order of the properties in the list begins with getType().getProperties() - // and the order of the remaining properties is determined by the implementation. - // The same list will be returned unless the DataObject is updated so that - // the contents of the list change - // @return the list of Properties currently used in thIs DataObject. - - PropertyList /* Property */ DataObjectImpl::getInstanceProperties() - { - std::vector theVec; - PropertyList propList = getType().getProperties(); - for (int i = 0 ; i < propList.size() ; ++i) - { - Property& p = propList[i]; - theVec.insert(theVec.end(),(PropertyImpl*)&p); - } - std::list::iterator j; - for (j = openProperties.begin() ; - j != openProperties.end() ; ++j) - { - theVec.insert(theVec.end(),&(*j)); - } - return PropertyList(theVec); - } - - void DataObjectImpl::setInstancePropertyType(unsigned int index, - const Type* t) - { - if (index >= openBase && index - openBase < openProperties.size()) - { - std::list::iterator j; - unsigned int count = openBase; - for (j = openProperties.begin() ; - j != openProperties.end() ; ++j) - { - if (count == index) - { - openProperties.insert(j, - PropertyImpl(getType(), - (*j).getName(), - (TypeImpl&)*t, - (*j).isMany(), - (*j).isReadOnly(), - (*j).isContainment())); - - DataFactory* df = factory; - ((DataFactoryImpl*)df)->addOpenProperty( - PropertyImpl(getType(), - (*j).getName(), - (TypeImpl&)*t, - (*j).isMany(), - (*j).isReadOnly(), - (*j).isContainment())); - - openProperties.erase(j); - - return; - } - count++; - } - } - return; - } - - // Returns the Sequence for thIs DataObject. - // When Type.isSequencedType() == true, - // the Sequence of a DataObject corresponds to the - // XML elements representing the values of its properties. - // Updates through DataObject and the Lists or Sequences returned - // from DataObject operate on the same data. - // When Type.isSequencedType() == false, null is returned. - // @return the Sequence or null. - - SequenceImpl* DataObjectImpl::getSequenceImpl() - { - - return sequence; - } - - SequencePtr DataObjectImpl::getSequence() - { - return (SequencePtr)sequence; - } - - SequencePtr DataObjectImpl::getSequence(const char* path) - { - DataObject* d = (DataObject*)getDataObject(path); - if (d) return d->getSequence(); - return 0; - } - - SequencePtr DataObjectImpl::getSequence(unsigned int propertyIndex) - { - DataObject* d = (DataObject*)getDataObject(propertyIndex); - if (d) return d->getSequence(); - return 0; - } - - SequencePtr DataObjectImpl::getSequence(const Property& property) - { - DataObject* d = (DataObject*)getDataObject(property); - if (d) return d->getSequence(); - return 0; - } - - - - ChangeSummaryPtr DataObjectImpl::getChangeSummary(const char* path) - { - DataObjectImpl* d = getDataObjectImpl(path); - return d->getChangeSummary(); - } - - ChangeSummaryPtr DataObjectImpl::getChangeSummary(unsigned int propIndex) - { - DataObjectImpl* d = getDataObjectImpl(propIndex); - return d->getChangeSummary(); - } - - ChangeSummaryPtr DataObjectImpl::getChangeSummary(const Property& prop) - { - DataObjectImpl* d = getDataObjectImpl(prop); - return d->getChangeSummary(); - - } - - ChangeSummaryPtr DataObjectImpl::getChangeSummary() - { - if (getType().isChangeSummaryType()) - { - return (ChangeSummaryPtr)localCS; - } - // The changesummaryobject MUST be a change summary type - // but as an additional check against looping, I will use - // a redundent getSummary() method. - // TODO - remove this. - if (changesummaryobject != 0) return - (ChangeSummaryPtr)(changesummaryobject->getSummary()); - return 0; - } - - - ChangeSummaryImpl* DataObjectImpl::getChangeSummaryImpl() - { - if (getType().isChangeSummaryType()) - { - return localCS; - } - // The changesummaryobject MUST be a change summary type - // but as an additional check against looping, I will use - // a redundent getSummary() method. - // TODO - remove this. - if (changesummaryobject != 0) return changesummaryobject->getSummary(); - return 0; - } - - ChangeSummaryImpl* DataObjectImpl::getSummary() - { - return localCS; - } - - // sets a property of either this object or an object reachable from it, - // as identified by the specified path, - // to the specified value. - // @param path the path to a valid object and property. - // @param value the new value for the property. - - void DataObjectImpl::setDataObject(const char* path, DataObjectPtr value) - { - DataObjectImpl* d; - char* prop = findPropertyContainer(path, &d); - if (d != 0) - { - if (prop != 0) { - const PropertyImpl* p = d->getPropertyImpl(prop); - if (p == 0 && d->getType().isOpenType()) - { - if (value != 0) - { - p = d->defineDataObject(prop, value->getType()); - } - } - if (p != 0) - { - if (p->isMany()) - { - DataObjectList& dol = d->getList((Property&)*p); - long index; - DataObjectImpl* dx = d->findDataObject(prop,&index); - if (index >= 0) - { - if(index < dol.size()) - { - dol.setDataObject((unsigned int)index,value); - } - else - { - dol.append(value); - } - delete prop; - return; - } - string msg("Set of data object on many valued item"); - msg += path; - SDO_THROW_EXCEPTION("setDataObject", SDOUnsupportedOperationException, - msg.c_str()); - } - else - { - d->setDataObject((Property&)*p,value); - delete(prop); - return; - } - } - } - } - if (prop != 0)delete prop; - - string msg("Path not valid:"); - msg += path; - SDO_THROW_EXCEPTION("setDataObject", SDOPathNotFoundException, - msg.c_str()); - } - - void DataObjectImpl::validateIndex(unsigned int index) - { - PropertyList pl = getType().getProperties(); - - if (index >= pl.size()) { - - // open type support - if (getType().isOpenType()) - { - if (index < openBase + openProperties.size()) - { - return; - } - } - string msg("Index of property out of range:"); - msg += index; - SDO_THROW_EXCEPTION("Index Validation", SDOIndexOutOfRangeException, - msg.c_str()); - } - } - - void DataObjectImpl::checkFactory(DataObjectPtr dob) - { - - DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dob; - - if (d->getDataFactory() == getDataFactory()) return; - - string msg("Insertion from incompatible factory "); - const Type& t = d->getType(); - msg += t.getURI(); - msg += "#"; - msg += t.getName(); - msg += " into data object "; - msg += getType().getURI(); - msg += "#"; - msg += getType().getName(); - SDO_THROW_EXCEPTION("checkFactory", SDOInvalidConversionException, - msg.c_str()); - } - - - void DataObjectImpl::checkType( const Property& prop, - const Type& objectType) - { - const Type& propType = prop.getType(); - if (propType.equals(objectType)) return; - - DataFactory* df = (DataFactory*)factory; - - const TypeImpl* ti = ((DataFactoryImpl*)df)->findTypeImpl - (objectType.getURI(),objectType.getName()); - if (ti != 0) - { - do - { - ti = (const TypeImpl*)ti->getBaseType(); - if (ti == 0) break; - if (propType.equals(*ti)) return; - } while (ti != 0); - - // allow types of any substitutes - const PropertyImpl* pi = - getPropertyImpl(getPropertyIndex(prop)); - if (pi != 0) - { - unsigned int subcount = pi->getSubstitutionCount(); - for (int i=0;igetSubstitutionType(i); - if (tsub != 0 && tsub->equals(objectType)) return; - } - } - } - - // no match.. - string msg("Insertion of object of incompatible type "); - msg += objectType.getURI(); - msg += "#"; - msg += objectType.getName(); - msg += " into property of type "; - msg += propType.getURI(); - msg += "#"; - msg += propType.getName(); - SDO_THROW_EXCEPTION("TypeCheck", SDOInvalidConversionException, - msg.c_str()); - } - - void DataObjectImpl::setDataObject(unsigned int propertyIndex, DataObjectPtr value) - { - setDataObject(getProperty(propertyIndex), value); - } - - void DataObjectImpl::setDataObject(const Property& prop, DataObjectPtr value) - { - unsigned int propertyIndex = getPropertyIndex(prop); - - - if (value != 0) - { - checkFactory(value); - checkType(prop,value->getType()); - } - - validateIndex(propertyIndex); - - if (prop.isReference() && value != 0) - { - // just need to make sure that the object is already part of our - // tree. - DataObjectImpl* r1 = this; - while (r1->getContainerImpl() != 0) - { - r1 = r1->getContainerImpl(); - } - DataObjectImpl* r2 = (DataObjectImpl*)(DataObject*)value; - while (r2->getContainerImpl() != 0) - { - r2 = r2->getContainerImpl(); - } - if (r1 != r2) - { - string msg("Set of a reference to an object outside the graph"); - SDO_THROW_EXCEPTION("setDataObject", SDOUnsupportedOperationException, - msg.c_str()); - } - } - - if ((prop.isMany())) - { - string msg("Set operation on a many valued property:"); - msg += prop.getName(); - SDO_THROW_EXCEPTION("setDataObject", SDOUnsupportedOperationException, - msg.c_str()); - } - - - if (value == 0) - { - PropertyValueMap::iterator j; - for (j = PropertyValues.begin(); j != PropertyValues.end(); ++j) - { - if ((*j).first == propertyIndex) { - if (prop.isReference()) - { - ((*j).second)->unsetReference(this, prop); - } - else - { - // log both deletion and change - change is not - // automatically recorded by deletion. - ((*j).second)->logDeletion(); - } - logChange(prop); - (*j).second = RefCountingPointer(0); - - return; - } - } - logChange(prop); - PropertyValues.insert(PropertyValues.end(),rdo(propertyIndex,(DataObjectImpl*)0)); - return; - } - - DataObject* dob = value; - PropertyValueMap::iterator i; - for (i = PropertyValues.begin(); i != PropertyValues.end(); ++i) - { - if ((*i).first == propertyIndex) { - - if (prop.isReference()) - { - ((*i).second)->unsetReference(this, prop); - } - else - { - // log both deletion and change - change is not - // automatically recorded by deletion. - ((*i).second)->logDeletion(); - } - logChange(prop); - - (*i).second = RefCountingPointer((DataObjectImpl*)dob); - - - if (prop.isReference()) - { - ((DataObjectImpl*)dob)->setReference(this, prop); - } - else - { - logCreation((*i).second, this, prop); - } - return; - } - } - if (prop.isReference()) - { - ((DataObjectImpl*)dob)->setReference(this, prop); - } - else - { - ((DataObjectImpl*)dob)->setContainer(this); - ((DataObjectImpl*)dob)->setApplicableChangeSummary(); - // log creation before putting into property values. - // also log change - not done by logCreation - logCreation((DataObjectImpl*)dob, this, prop); - } - - logChange(prop); - - PropertyValues.insert(PropertyValues.end(),rdo(propertyIndex,(DataObjectImpl*)dob)); - return; - } - - - bool DataObjectImpl::isValid(const char* path) - { - DataObjectImpl* d; - char* prop = findPropertyContainer(path,&d); - if (d != 0) { - if (prop != 0) { - const Property& p = d->getProperty(prop); - delete prop; - return d->isValid(p); - } - } - if (prop != 0)delete prop; - string msg("Invalid path:"); - msg += path; - SDO_THROW_EXCEPTION("isSet" ,SDOPathNotFoundException, - msg.c_str()); - } - - - // Returns whether a property of either this object or an object reachable - // from it, as identified by the specified path, - // is considered to be set. - // @param path the path to a valid Object* and property. - - bool DataObjectImpl::isSet(const char* path) - { - DataObjectImpl* d; - char* prop = findPropertyContainer(path,&d); - if (d != 0) { - if (prop != 0) { - const Property& p = d->getProperty(prop); - delete prop; - return d->isSet(p); - } - } - if (prop != 0)delete prop; - string msg("Invalid path:"); - msg += path; - SDO_THROW_EXCEPTION("isSet" ,SDOPathNotFoundException, - msg.c_str()); - } - - bool DataObjectImpl::isValid(unsigned int propertyIndex) - { - return isValid(getProperty(propertyIndex)); - } - - bool DataObjectImpl::isValid(const Property& p) - { - if (p.isDefaulted()) return true; - if (isSet(p))return true; - return false; - } - - bool DataObjectImpl::isSet(unsigned int propertyIndex) - { - return isSet(getProperty(propertyIndex), propertyIndex); - } - - bool DataObjectImpl::isSet(const Property& property) - { - return isSet(property, getPropertyIndex(property)); - } - - bool DataObjectImpl::isSet(const Property& prop, unsigned int propertyIndex) - { - PropertyValueMap::iterator i; - for (i = PropertyValues.begin(); i != PropertyValues.end(); ++i) - { - if ((*i).first == propertyIndex) { - if (prop.isMany()) - { - DataObjectImpl* dol = (*i).second; - if (dol != 0 && dol->getList().size() == 0) - { - return false; - } - } - return true; - } - } - return false; - } - - - // unSets a property of either this Object or an Object reachable from it, - // as identified by the specified path. - // @param path the path to a valid Object and property. - // @see #unSet(Property) - - void DataObjectImpl::unset(const char* path) - { - - DataObjectImpl* d; - char* prop = findPropertyContainer(path,&d); - if (d != 0) - { - if (prop != 0){ - const Property& p = d->getProperty(prop); - if (p.isMany()) - { - char *c; - if ((c = strchr(prop,'[')) != 0) - { - char *c1 = strchr(c,']'); - if (c1 != 0)*c1 = 0; - unsigned int i = atoi(++c); - if (i > 0){ - i--; - DataObjectList& li = d->getList(p); - li.remove(i); - } - delete prop; - return; - } - if ((c = strchr(prop,'.')) != 0) - { - unsigned int i = atoi(++c); - DataObjectList& li = d->getList(p); - li.remove(i); - delete prop; - return; - } - } - delete prop; - d->unset(p); - return; - } - } - if (prop != 0) delete prop; - - string msg("Invalid path:"); - msg += path; - SDO_THROW_EXCEPTION("unset", SDOPathNotFoundException, - msg.c_str()); - } - - void DataObjectImpl::unset(unsigned int propertyIndex) - { - unset(getProperty(propertyIndex)); - } - - void DataObjectImpl::unset(const Property& p) - { - PropertyValueMap::iterator i; - unsigned int index = getPropertyIndex(p); - - if (getType().isSequencedType()) - { - Sequence* sq = getSequence(); - sq->removeAll(p); - } - - for (i = PropertyValues.begin(); i != PropertyValues.end(); ++i) - { - if ((*i).first == index) { - DataObjectImplPtr dol = (*i).second; - if (p.getType().isDataType()) - { - dol->clearReferences(); - logChange(index); - if (p.isMany()) { - DataObjectList& dl = dol->getList(); - while (dl.size() > 0) - { - RefCountingPointer dli = dl.remove(0); - } - } - else - { - PropertyValues.erase(i); - } - } - else { - // if its a reference, we dont want to delete anything - if (!p.isReference()) - { - if (dol) { - dol->clearReferences(); - if (p.isMany()) { - DataObjectList& dl = dol->getList(); - while (dl.size() > 0) - { - if (p.getType().isDataObjectType()) - { - DataObject* dob = dl[0]; - ((DataObjectImpl*)dob)->logDeletion(); - } - // the remove will record a change - // remove will also clear the container. - RefCountingPointer dli = dl.remove(0); - } - } - else - { - PropertyValues.erase(i); - dol->logDeletion(); - logChange(index); - } - } - else - { - logChange(index); - PropertyValues.erase(i); - } - } - else { - logChange(index); - PropertyValues.erase(i); - } - } - if (getType().isOpenType() && index >= openBase) - { - if (p.isMany()) - { - PropertyValues.erase(i); - } - undefineProperty(index); - } - return; - } - } - return; - } - - - - // Returns the value of a DataObject property identified by - // the specified path. - // @param path the path to a valid object and property. - // @return the DataObject value of the specified property. - - RefCountingPointer DataObjectImpl::getDataObject(const char* path) - { - DataObjectImpl* ptr = getDataObjectImpl(path);; - return RefCountingPointer ((DataObject*)ptr); - } - - DataObjectImpl* DataObjectImpl::getDataObjectImpl(const char* path) - { - - DataObjectImpl* d = 0; - char* prop = findPropertyContainer(path,&d); - if (d != 0) { - if (prop != 0) { - if (strchr(prop,'[') || strchr(prop,'.')) { - /* Its a multlvalued property */ - long l; - DataObjectImpl* theob = d->findDataObject(prop,&l); - delete prop; - if (theob == 0) { - string msg("Get DataObject - index out of range:"); - msg += path; - SDO_THROW_EXCEPTION("getDataObject" ,SDOIndexOutOfRangeException, - msg.c_str()); - } - return theob; - } - else - { - if (strlen(prop) == 0) - { - delete prop; - prop = 0; - return d; - } - const Property& p = d->getProperty(prop); - delete prop; - prop = 0; - return d->getDataObjectImpl(p); - } - } - else { - return d; - } - } - if (prop != 0)delete prop; - - string msg("Invalid path:"); - msg += path; - SDO_THROW_EXCEPTION("getDataObject" ,SDOPathNotFoundException, - msg.c_str()); - } - - RefCountingPointer DataObjectImpl::getDataObject(unsigned int propertyIndex) - { - if ((getProperty(propertyIndex).isMany())) - { - string msg("get operation on a many valued property:"); - msg += getProperty(propertyIndex).getName(); - SDO_THROW_EXCEPTION("getDataObject", SDOUnsupportedOperationException, - msg.c_str()); - } - DataObjectImpl* ptr = getDataObjectImpl(propertyIndex);; - return RefCountingPointer((DataObject*)ptr); - } - - DataObjectImpl* DataObjectImpl::getDataObjectImpl(unsigned int propertyIndex) - { - PropertyValueMap::iterator i; - for (i = PropertyValues.begin(); i != PropertyValues.end(); ++i) - { - if ((*i).first == propertyIndex) - { - DataObject* dob = (*i).second; - if (dob == 0 || ((DataObjectImpl*)dob)->isNull())return 0; - return (DataObjectImpl*)dob; - } - } - return 0; - } - - - RefCountingPointer DataObjectImpl::getDataObject(const Property& property) - { - DataObjectImpl* ptr = getDataObjectImpl(property); - return RefCountingPointer((DataObject*)ptr); - } - - DataObjectImpl* DataObjectImpl::getDataObjectImpl(const Property& property) - { - return getDataObjectImpl(getPropertyIndex(property)); - } - - - - - - // Returns a new DataObject contained by this Object using the specified property, - // which must be a containment property. - // The type of the created Object is the declared type of the specified property. - - RefCountingPointer DataObjectImpl::createDataObject(const char* propertyName) - { - // Throws runtime exception for type or property not found - - const Property& p = getProperty(propertyName); - return createDataObject(p); - } - - // Returns a new DataObject contained by this Object using the specified property, - // which must be a containment property. - // The type of the created Object is the declared type of the specified property. - - RefCountingPointer DataObjectImpl::createDataObject(unsigned int propertyIndex) - { - const Property& p = getProperty(propertyIndex); - return createDataObject(p); - } - - // Returns a new DataObject contained by this Object using the specified property, - // which must be a containment property. - // The type of the created Object is the declared type of the specified property. - - RefCountingPointer DataObjectImpl::createDataObject(const Property& property) - { - const Type& tp = property.getType(); - return createDataObject(property,tp.getURI(), tp.getName()); - } - - - // Returns a new DataObject contained by this Object using the specified property, - // which must be a containment property. - // The type of the created Object is the declared type of the specified property. - - RefCountingPointer DataObjectImpl::createDataObject(const Property& property, const char* namespaceURI, - const char* typeName) - { - if (!property.isContainment()) - { - string msg("Create data object on non-containment property:"); - msg += property.getName(); - SDO_THROW_EXCEPTION("createDataObject", SDOUnsupportedOperationException, - msg.c_str()); - } - - DataFactory* df = getDataFactory(); - if (property.isMany()) { - /* add to the list */ - RefCountingPointer ptr = df->create(namespaceURI, typeName); - DataObject* dob = ptr; - ((DataObjectImpl*)dob)->setContainer(this); - ((DataObjectImpl*)dob)->setApplicableChangeSummary(); - - // log creation before adding to list - the change must record the old state - // of the list - logCreation(((DataObjectImpl*)dob), this, property); - //logChange(property); - - DataObjectImpl* theDO = getDataObjectImpl(property); - if ( theDO == 0) { /* No value set yet */ - unsigned int ind = getPropertyIndex(property); - RefCountingPointer listptr = - df->create(Type::SDOTypeNamespaceURI,"DataObject"); - - DataObject* doptr = listptr; - PropertyValues.insert(PropertyValues.end(),rdo(ind,(DataObjectImpl*)doptr)); - ((DataObjectImpl*)doptr)->setContainer(this); - ((DataObjectImpl*)doptr)->setApplicableChangeSummary(); - - DataObjectListImpl* list = new DataObjectListImpl(df, - this, ind, namespaceURI,typeName); - - ((DataObjectImpl*)doptr)->setList(list); - // the append will log a change to the property. - list->append(ptr); - - // now done by list append - //if (getType().isSequencedType()) - //{ - // SequenceImpl* sq = getSequenceImpl(); - // sq->push(property,0); - //} - } - else - { - DataObjectList& list = theDO->getList(); - // the append will log a change to the property, and update the - // sequence - list.append(ptr); - //if (getType().isSequencedType()) - //{ - // SequenceImpl* sq = getSequenceImpl(); - // sq->push(property,list.size()-1); - //} - - } - return ptr; - - } - else { - unset(property); - DataObjectImpl* ditem = - new DataObjectImpl(df, df->getType(namespaceURI, typeName)); - ditem->setContainer(this); - ditem->setApplicableChangeSummary(); - - // log both creation and change - creations no longer log - // changes automatically. - - logCreation(ditem, this, property); - logChange(property); - - PropertyValues.insert(PropertyValues.end(), - rdo(getPropertyIndex(property),ditem)); - if (getType().isSequencedType()) - { - SequenceImpl* sq = getSequenceImpl(); - sq->push(property,0); - } - return RefCountingPointer((DataObject*)ditem); - } - return 0; - } - - void DataObjectImpl::setList( DataObjectList* theList) - { - listValue = (DataObjectListImpl*)theList; - } - - - bool DataObjectImpl::remove(DataObjectImpl* indol) - { - PropertyValueMap::iterator i; - for (i = PropertyValues.begin(); i != PropertyValues.end(); ++i) - { - const Property& prop = getProperty((*i).first); - if (prop.isMany()) - { - DataObjectList& dol = ((*i).second)->getList(); - for (int j=0;j< dol.size(); j++) - { - if (dol[j] == indol) - { - indol->logDeletion(); - logChange(prop); - indol->setContainer(0); - dol.remove(j); - return true; - } - } - } - DataObjectImpl* tmp = (*i).second; - if (tmp == indol) { - indol->logDeletion(); - logChange(prop); - indol->setContainer(0); - PropertyValues.erase(i); - return true; - } - } - return false; - } - - // remove this Object from its container and dont unSet all its properties. - - void DataObjectImpl::detach() - { - // remove this data object from its tree - clearReferences(); - if (container == 0) return; - container->remove(this); - return ; - } - - void DataObjectImpl::clear() - { - // clear this objects state - PropertyValueMap::iterator i = PropertyValues.begin(); - - while (i != PropertyValues.end()) - { - unset((*i).first); - i = PropertyValues.begin(); - } - return ; - } - - // Returns the containing Object - // of 0 if there is no container. - - RefCountingPointer DataObjectImpl::getContainer() - { - DataObject* dob = (DataObject*)container; - return RefCountingPointer (dob); - } - - DataObjectImpl* DataObjectImpl::getContainerImpl() - { - return container; - } - - void DataObjectImpl::setContainer(DataObjectImpl* d) - { - container = d; - } - - const Property* DataObjectImpl::findInProperties(DataObject* ob) - { - PropertyValueMap::iterator i; - for (i = PropertyValues.begin() ;i != PropertyValues.end() ; ++i) - { - if (getProperty((*i).first).isReference()) continue; - if (getProperty((*i).first).isMany()) - { - DataObjectList& dl = ((*i).second)->getList(); - for (int j = 0 ; j < dl.size(); j++) - { - if (dl[j] == ob) - { - return &(getProperty((*i).first)); - } - } - } - else - { - if ((*i).second == ob) - { - return &(getProperty((*i).first)); - } - } - } - return 0; // this can happen if the object has been detached - - //string msg("Object cannot find its containing property"); - //SDO_THROW_EXCEPTION("FindInProperties" ,SDOPropertyNotFoundException, - // msg.c_str()); - } - - // Return the Property of the data Object containing this data Object - // or 0 if there is no container. - - const Property& DataObjectImpl::getContainmentProperty() - { - if (container != 0) { - const Property* p = container->findInProperties(this); - if (p != 0)return *p; - } - SDO_THROW_EXCEPTION("getContainmentProperty" ,SDOPropertyNotFoundException, - "Object cannot find its containment property"); - } - - - // Returns the data Object's type. - // The type defines the properties available for reflective access. - - const Type& DataObjectImpl::getType() - { - return ObjectType; - } - - const Type::Types DataObjectImpl::getTypeEnum() - { - return ObjectType.getTypeEnum(); - } - - const TypeImpl& DataObjectImpl::getTypeImpl() - { - return ObjectType; - } - - - // open type support - - const Property& DataObjectImpl::getProperty(const char* prop) - { - PropertyImpl* pi = getPropertyImpl(prop); - if (pi == 0) - { - string msg("Cannot find property:"); - msg += prop; - SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException, - msg.c_str()); - - } - return (Property&)*pi; - } - - PropertyImpl* DataObjectImpl::getPropertyImpl(const char* prop) - { - PropertyImpl* pi = getTypeImpl().getPropertyImpl(prop); - if (pi != 0) return pi; - - if (getType().isOpenType()) - { - std::list::iterator j; - for (j=openProperties.begin(); - j != openProperties.end(); ++j) - { - if (!strcmp((*j).getName(), prop)) - { - return (PropertyImpl*)&(*j); - } - } - } - return 0; - } - - DataFactory* DataObjectImpl::getDataFactory() - { - return factory; - } - - void DataObjectImpl::setDataFactory(DataFactory* df) - { - factory = df; - } - - /////////////////////////////////////////////////////////////////////////// - // These finally are the setters/getters for primitives given - // that the data object is a primitive type. - /////////////////////////////////////////////////////////////////////////// - - - bool DataObjectImpl::getBoolean() - { - return getTypeImpl().convertToBoolean(value, valuelength); - } - - - char DataObjectImpl::getByte() - { - return getTypeImpl().convertToByte(value,valuelength); - - } - - - wchar_t DataObjectImpl::getCharacter() - { - return getTypeImpl().convertToCharacter(value,valuelength); - - } - - long DataObjectImpl::getInteger() - { - return getTypeImpl().convertToInteger(value,valuelength); - - } - - - long double DataObjectImpl::getDouble() - { - return getTypeImpl().convertToDouble(value,valuelength); - } - - - float DataObjectImpl::getFloat() - { - return getTypeImpl().convertToFloat(value,valuelength); - - } - - - - int64_t DataObjectImpl::getLong() - { - return getTypeImpl().convertToLong(value,valuelength); - - } - - - short DataObjectImpl::getShort() - { - return getTypeImpl().convertToShort(value,valuelength); - - } - - unsigned int DataObjectImpl::getString( wchar_t* outptr, unsigned int max) - { - if (outptr == 0 || max == 0) return valuelength; - return getTypeImpl().convertToString(value, outptr, valuelength, max); - - } - unsigned int DataObjectImpl::getBytes( char* outptr, unsigned int max) - { - if (outptr == 0 || max == 0) return valuelength; - return getTypeImpl().convertToBytes(value, outptr, valuelength, max); - - } - - const char* DataObjectImpl::getCString() - { - return getTypeImpl().convertToCString(value, &asStringBuffer, valuelength); - - } - - const SDODate DataObjectImpl::getDate() - { - return getTypeImpl().convertToDate(value, valuelength); /* time_t == long*/ - - } - - DataObjectImpl* DataObjectImpl::getDataObject() - { - return (DataObjectImpl*)getTypeImpl().convertToDataObject(value, valuelength); - - } - - - void DataObjectImpl::setBoolean(bool invalue) - { - valuelength = getTypeImpl().convert(&value,invalue); - return; - } - - - void DataObjectImpl::setByte(char invalue) - { - valuelength = getTypeImpl().convert(&value,invalue); - return; - - } - - - void DataObjectImpl::setCharacter(wchar_t invalue) - { - valuelength = getTypeImpl().convert(&value,invalue); - return; - } - - void DataObjectImpl::setString(const wchar_t* invalue, unsigned int len) - { - valuelength = getTypeImpl().convert(&value,invalue, len); - return; - } - - void DataObjectImpl::setBytes(const char* invalue, unsigned int len) - { - valuelength = getTypeImpl().convert(&value,invalue, len); - return; - } - - void DataObjectImpl::setInteger(long invalue) - { - valuelength = getTypeImpl().convert(&value,invalue); - return; - } - - void DataObjectImpl::setDouble(long double invalue) - { - valuelength = getTypeImpl().convert(&value,invalue); - return; - } - - void DataObjectImpl::setFloat(float invalue) - { - valuelength = getTypeImpl().convert(&value,invalue); - return; - - } - - - void DataObjectImpl::setLong(int64_t invalue) - { - valuelength = getTypeImpl().convert(&value,invalue); - return; - } - - - void DataObjectImpl::setShort(short invalue) - { - valuelength = getTypeImpl().convert(&value,invalue); - return; - - } - - void DataObjectImpl::setCString(const char* invalue) - { - valuelength = getTypeImpl().convert(&value,invalue); - return; - } - - void DataObjectImpl::setDate(const SDODate invalue) - { - valuelength = getTypeImpl().convertDate(&value,invalue); /* time_t == long*/ - return; - } - - void DataObjectImpl::setDataObject(DataObject* invalue) - { - valuelength = getTypeImpl().convert(&value,invalue); - return; - } - - void DataObjectImpl::setNull() - { - isnull = true; - } - - bool DataObjectImpl::isNull() - { - return isnull; - } - - void DataObjectImpl::unsetNull() - { - isnull = false; - } - - - DataObjectImpl::DataObjectImpl(const TypeImpl& t) : ObjectType(t) - { - container = 0; - value = 0; /* Will be initialized when used */ - valuelength = 0; - asStringBuffer = 0; -// asXPathBuffer = 0; - isnull = false; - - // open type support - openBase = t.getPropertiesSize() ; - - userdata = (void*)0xFFFFFFFF; - - if (t.isChangeSummaryType()) - { - changesummaryobject = 0; - localCS = new ChangeSummaryImpl(); - } - else - { - changesummaryobject = 0; - localCS = 0; - } - - if (getType().isSequencedType()) sequence = new SequenceImpl(this); - else sequence = 0; - } - - - - DataObjectImpl::DataObjectImpl(DataFactory* df, const Type& t) : ObjectType((TypeImpl&)t), - factory(df) - { - container = 0; - value = 0; - valuelength = 0; - asStringBuffer = 0; -// asXPathBuffer = 0; - isnull = false; - - // open type support - openBase = ObjectType.getPropertiesSize() ; - - userdata = (void*)0xFFFFFFFF; - - if (ObjectType.isChangeSummaryType()) - { - changesummaryobject = 0; - localCS = new ChangeSummaryImpl(); - } - else - { - changesummaryobject = 0; - localCS = 0; - } - - if (getType().isSequencedType()) - { - sequence = new SequenceImpl(this); - } - else - { - sequence = 0; - } - } - - void DataObjectImpl::deleteValue() - { - switch (getTypeEnum()) - { - case Type::BooleanType: - case Type::ByteType: - case Type::CharacterType: - case Type::IntegerType: - case Type::DateType: - case Type::DoubleType: - case Type::FloatType: - case Type::LongType: - case Type::ShortType: - case Type::BytesType: - delete (char*)value; - return; - - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::StringType: - case Type::UriType: - delete (wchar_t*)value; - return; - - case Type::DataObjectType: - return; - - default: - return; - } - } - - DataObjectImpl::~DataObjectImpl() - { - // We do not want to log changes to our own deletion - // if this DO owns the ChangeSummary. Do not delete - // it here as contained DOs still have a reference to it. - - if (getTypeImpl().isChangeSummaryType()) - { - ChangeSummaryPtr c = getChangeSummary(); - if (c) { - if (c->isLogging()) - { - c->endLogging(); - } - } - } - - - clearReferences(); - PropertyValueMap::iterator i = PropertyValues.begin(); - while (i != PropertyValues.end()) - { - unset((*i).first); - if (i == PropertyValues.begin()) - { - // unset has not removed the item from the list - do it - // here instead - PropertyValues.erase(i); - } - i = PropertyValues.begin(); - } - - // Theory: A DO cant get here if its still attached to anything, - //so we dont need to detach.... - //detach(); - - - if (asStringBuffer != 0) delete asStringBuffer; -// if (asXPathBuffer != 0) delete asXPathBuffer; - - if (value != 0) - { - if (getType().isDataType())deleteValue(); - } - - - - if (getType().isSequencedType()) - { - if (sequence != 0) delete sequence; - } - - - if (getTypeImpl().isChangeSummaryType() ) - { - if (getChangeSummary() != 0) - { - delete localCS; - localCS = 0; - } - } - } - - void DataObjectImpl::setApplicableChangeSummary() - { - changesummaryobject = 0; - if (getType().isChangeSummaryType()) - { - changesummaryobject = 0; - return; - } - else { - DataObjectImpl* dob = getContainerImpl(); - while (dob != 0) { - if (dob->getType().isChangeSummaryType()) - { - changesummaryobject = dob; - return; - } - dob = dob->getContainerImpl(); - } - } - - } - - void DataObjectImpl::logCreation(DataObjectImpl* dol, DataObjectImpl* cont, - const Property& theprop) - { - if (getChangeSummaryImpl() != 0 && getChangeSummaryImpl()->isLogging()) - { - getChangeSummaryImpl()->logCreation(dol,cont,theprop); - } - } - - void DataObjectImpl::logDeletion() - { - // Only log if ChangeSummary is inherited from container - - if (getChangeSummaryImpl() != 0 && getChangeSummaryImpl()->isLogging() && !getType().isChangeSummaryType()) - { - DataObjectImpl* cont = getContainerImpl(); - if (cont != 0) // log if there is a container. If there is not, then - // this can only be the object with the CS, so logging - // would not make sense. - { - const Property* p = cont->findInProperties(this); - if ( p != 0) // if the object is not in the properties, then its been - // detached, and has already been logged as deleted - { - getChangeSummaryImpl()->logDeletion(this,cont,*p, - objectToXPath(), true); - } - } - } - } - - void DataObjectImpl::logChange(const Property& prop) - { - if (getChangeSummaryImpl() != 0 && getChangeSummaryImpl()->isLogging()) - { - getChangeSummaryImpl()->logChange(this,prop); - } - } - - void DataObjectImpl::logChange(unsigned int propIndex) - { - if (getChangeSummaryImpl() != 0 && getChangeSummaryImpl()->isLogging()) - { - getChangeSummaryImpl()->logChange(this,getProperty(propIndex)); - } - } - // reference support - - void DataObjectImpl::setReference(DataObject* dol, const Property& prop) - { - LOGINFO_1(INFO,"ChangeSummary:Setting a reference to %s",prop.getName()); - - refs.push_back(new Reference(dol,prop)); - } - void DataObjectImpl::unsetReference(DataObject* dol, const Property& prop) - { - LOGINFO_1(INFO,"ChangeSummary:Unsetting a reference to %s",prop.getName()); - - for (int i=0;i< refs.size();i++) - { - if (refs[i]->getDataObject() == dol) - { - if (!strcmp(refs[i]->getProperty().getName(), - prop.getName())) - { - delete refs[i]; - refs.erase(refs.begin() + i); - } - } - } - } - - - void DataObjectImpl::clearReferences() - { - for (int i=0;igetDataObject()->unset(refs[i]->getProperty()); - delete refs[i]; - } - refs.clear(); - } - - const char* DataObjectImpl::objectToXPath() - { - asXPathBuffer = ""; - - DataObjectImpl* dob = getContainerImpl(); - DataObject*thisob = this; - while (dob != 0){ - const Property& p = thisob->getContainmentProperty(); - if (asXPathBuffer != "") - { - asXPathBuffer = "/" + asXPathBuffer; - } - - if (p.isMany()) { - DataObjectList& dol = dob->getList(p); - for (int i=0;igetContainerImpl(); - } - - asXPathBuffer = "#/" + asXPathBuffer; - - return asXPathBuffer.c_str(); -/* - char* temp1; - char* temp2; - - if (asXPathBuffer == 0) - { - asXPathBuffer = new char[2]; - sprintf(asXPathBuffer,"#"); - } - - DataObjectImpl* dob = getContainerImpl(); - DataObject*thisob = this; - while (dob != 0){ - const Property& p = thisob->getContainmentProperty(); - const char* name = p.getName(); - temp1 = new char[strlen(name) + 34]; - temp1[0] = 0; - - - if (p.isMany()) { - DataObjectList& dol = dob->getList(p); - for (int i=0;igetContainerImpl(); - } - return asXPathBuffer; */ - } - - // user data support... - void* DataObjectImpl::getUserData(const char* path) - { - DataObjectImpl *d; - void* v = 0; - char *spath = 0; - char* prop = 0; - try { - spath = DataObjectImpl::stripPath(path); - prop = findPropertyContainer(spath,&d); - if (spath) - { - delete spath; - spath = 0; - } - if (d != 0) - { - if (prop != 0) - { - const Property& p = d->getProperty(prop); - if (p.getType().isDataType()) return 0; - if (p.isMany()) - { - DataObjectImpl* d2 = d->getDataObjectImpl(prop); - if (d2) v = d2->getUserData(); - delete prop; - prop = 0; - return v; - } - v = d->getUserData(p); - delete prop; - prop = 0; - return v; - } - return d->getUserData(); - } - return 0; - } - catch (SDORuntimeException e) - { - if (prop) delete prop; - if (spath) delete spath; - return 0; - } - - } - - void* DataObjectImpl::getUserData(unsigned int propertyIndex) - { - if ((getProperty(propertyIndex).isMany())) - { - return 0; - } - if ((getProperty(propertyIndex).getType().isDataType())) - { - return 0; - } - DataObjectImpl* ptr = getDataObjectImpl(propertyIndex); - if (ptr) return ptr->getUserData(); - return 0; - } - - void* DataObjectImpl::getUserData(const Property& property) - { - if (property.isMany()) - { - return 0; - } - if (property.getType().isDataType()) - { - return 0; - } - DataObjectImpl* ptr = getDataObjectImpl(property); - if (ptr) return ptr->getUserData(); - return 0; - } - - void* DataObjectImpl::getUserData() - { - return userdata; - } - - void DataObjectImpl::setUserData(const char* path, void* value) - { - char *spath = 0; - char* prop = 0; - DataObjectImpl *d; - try { - spath = DataObjectImpl::stripPath(path); - prop = findPropertyContainer(spath,&d); - if (spath) - { - delete spath; - spath = 0; - } - if (d != 0) - { - if (prop != 0) - { - const Property& p = d->getProperty(prop); - if (p.getType().isDataType()) return; - if (p.isMany()) - { - DataObjectImpl* d2 = d->getDataObjectImpl(prop); - if (d2) d2->setUserData(value); - delete prop; - prop = 0; - return; - } - d->setUserData(p,value); - delete prop; - prop = 0; - return; - } - d->setUserData(value); - return; - } - } - catch (SDORuntimeException e) - { - if (prop) delete prop; - if (spath) delete spath; - return; - } - - } - - void DataObjectImpl::setUserData(unsigned int propertyIndex, void* value) - { - if ((getProperty(propertyIndex).isMany())) - { - return; - } - if ((getProperty(propertyIndex).getType().isDataType())) - { - return; - } - DataObjectImpl* ptr = getDataObjectImpl(propertyIndex); - if (ptr) ptr->setUserData(value); - return; - } - - void DataObjectImpl::setUserData(const Property& property, void* value) - { - if (property.isMany()) - { - return; - } - if (property.getType().isDataType()) - { - return; - } - DataObjectImpl* ptr = getDataObjectImpl(property); - if (ptr) ptr->setUserData(value); - return; - } - - void DataObjectImpl::setUserData(void* value) - { - userdata = value; - } - -}; -}; diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.h deleted file mode 100644 index 174e7b79c5..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectImpl.h +++ /dev/null @@ -1,668 +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: 2006/02/02 16:41:30 $ */ - -#ifndef _DATAOBJECTIMPL_H_ -#define _DATAOBJECTIMPL_H_ -#include "commonj/sdo/DataObject.h" - -#include "commonj/sdo/disable_warn.h" - -#include -#include -#include - -#include - - -#include "commonj/sdo/Property.h" -#include "commonj/sdo/TypeImpl.h" -#include "commonj/sdo/DataFactory.h" -#include "commonj/sdo/SequenceImpl.h" -#include "commonj/sdo/DataObjectListImpl.h" -#include "commonj/sdo/PropertyList.h" - -#include "commonj/sdo/RefCountingPointer.h" -#include "commonj/sdo/ChangeSummaryImpl.h" -#include "commonj/sdo/SDODate.h" - -namespace commonj{ -namespace sdo{ - -class DataGraph; -class DataObjectImpl; -class DataObjectListImpl; -class DataFactory; - - -#define DataObjectImplPtr RefCountingPointer -#define ChangeSummaryImplPtr RefCountingPointer - -/** - * rdo is an internal class holding a property value in a data object. - */ - -class rdo { -public: - unsigned int first; - DataObjectImplPtr second; - rdo(unsigned int infirst, DataObjectImpl* insecond); - rdo(); - rdo (const rdo& inrdo); - virtual ~rdo(); -}; - -typedef std::list< rdo > PropertyValueMap; - - - /** - * DataObjectImpl implements the abstract class DataObject. - * - * A data object is a representation of some structured data. - * it is the fundamental component in the SDO (Service Data Objects) package. - * Data objects support reflection, path-based accesss, convenience creation - * and deletion methods,and the ability to be part of a data graph. - * Each data object holds its data as a series of properties. - * Properties can be accessed by name, property index, or using the property - * meta object itself. - * A data object can also contain references to other data objects, through - * reference-type properties. - * A data object has a series of convenience accessors for its properties. - * These methods either use a path (String), a property index, - * or the property's meta object itself, to identify the property. - * Some examples of the path-based accessors are as follows: - * DataObjectPtr company = ...; - * company->getString("name"); - * company->setString("name", "acme"); - * company->getString("department.0/name") - * .n indexes from 0. - * company->getString("department[1]/name") [] indexes from 1. - * company->getDataObject("department[number=123]") returns the department where number=123 - * company->getDataObject("..") returns the containing data object - * company->getDataObject("/") returns the root containing data object - * There are specific accessors for the primitive types and commonly used - * data types like String. - */ - -class DataObjectImpl : public DataObject -{ - public: - - DataObjectImpl(); - DataObjectImpl(const TypeImpl& t); - DataObjectImpl(DataFactory* dataFactory, const Type& t); - - // This one only needs the values, and the type/prop info. The rest - // is not copied and would be unsafe to do so. This is used to - // store the cloned info in a change summary. - - DataObjectImpl(DataObjectImplPtr indo); - - virtual ~DataObjectImpl(); - - ///////////////////////////////////////////////////////////////////////// - // Introspection - ///////////////////////////////////////////////////////////////////////// - - - void handlePropertyNotSet(const char* name); - - /** getPropertyIndex gets the unique index of a property - * - * A property of a data object has a unique index associated with it. - * This method gets a property index for this object from the property, - * or throw SDOPropertyNotFoundException if the property is not part - * of this data object. - */ - - virtual unsigned int getPropertyIndex(const Property& p); - - /** - * These are just like getType().getProperty(), but may return - * values other than the property list for open types. - */ - - virtual const Property& getProperty(unsigned int index); - - virtual const Property& getProperty(const char* prop); - - virtual PropertyImpl* getPropertyImpl(const char* prop); - - virtual PropertyImpl* getPropertyImpl(unsigned int index); - - /** getInstanceProperties gets the props of the current object. - * - * Returns a read-only List of the Properties currently used in this DataObject. - * This list will contain all of the properties in getType().getProperties() - * and any properties where isSet(property) is true. - * For example, properties resulting from the use of - * open or mixed XML content are present if allowed by the Type. - * The list does not contain duplicates. - * The order of the properties in the list begins with getType().getProperties() - * and the order of the remaining properties is determined by the implementation. - * The same list will be returned unless the DataObject is updated so that - * the contents of the list change - * Returns the list of Properties currently used in this DataObject. - */ - - virtual PropertyList getInstanceProperties(); - - /** getContainer get the containing object - * - * Returns the containing data object - * or 0 if there is no container. - */ - - virtual DataObjectPtr getContainer(); - - /** getContainmentProperty returns the property containing this object - * - * Return the Property of the data object containing this data object - * or throw an SDOPropertyNotFoundException if there is no container. - */ - - virtual const Property& getContainmentProperty(); - - /** getType returns the data object's type. - * - * getType returns the data object's type. - * The type defines the properties available for reflective access. - */ - - virtual const Type& getType(); - - virtual const Type::Types getTypeEnum(); - - - - /////////////////////////////////////////////////////////////////////////// - // get/set - /////////////////////////////////////////////////////////////////////////// - - - /** getDataObject returns a data object by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual DataObjectPtr getDataObject(const char* path); - virtual DataObjectPtr getDataObject(unsigned int propertyIndex); - virtual DataObjectPtr getDataObject(const Property& property); - - /** setDataObject sets a value by path, index or property - * - * Sets a property of either this object or an object reachable from it, - * as identified by the specified path, - * to the specified value. - */ - - virtual void setDataObject(const char* path, DataObjectPtr value); - virtual void setDataObject(unsigned int propertyIndex, DataObjectPtr value); - virtual void setDataObject(const Property& property, DataObjectPtr value); - - /** getBoolean returns a boolean by path, index or property - * - * Returns the value of a property of either this object or an object - * reachable from it, as identified by the specified path. - */ - - virtual bool getBoolean(const char* path); - virtual bool getBoolean(unsigned int propindex); - virtual bool getBoolean(const Property& p); - - virtual void setBoolean(const char* path, bool b); - virtual void setBoolean(unsigned int propindex, bool b); - virtual void setBoolean(const Property& p, bool b); - - virtual char getByte(const char* path); - virtual char getByte(unsigned int propindex); - virtual char getByte(const Property& p); - - virtual void setByte(const char* path, char c); - virtual void setByte(unsigned int propindex, char c); - virtual void setByte(const Property& p, char c); - - virtual wchar_t getCharacter(const char* path); - virtual wchar_t getCharacter(unsigned int propindex); - virtual wchar_t getCharacter(const Property& p); - - virtual void setCharacter(const char* path, wchar_t c); - virtual void setCharacter(unsigned int propindex, wchar_t c); - virtual void setCharacter(const Property& p, wchar_t c); - - virtual unsigned int getLength(const char* path) ; - virtual unsigned int getLength(unsigned int propindex) ; - virtual unsigned int getLength(const Property& p) ; - virtual unsigned int getLength() ; - - virtual unsigned int getBytes(const char* path, char* buf, unsigned int max) ; - virtual unsigned int getBytes(unsigned int propindex, char* buf, unsigned int max) ; - virtual unsigned int getBytes(const Property& p, char* buf, unsigned int max) ; - - virtual void setBytes(const char* path, const char* c, unsigned int len) ; - virtual void setBytes(unsigned int propindex, const char* c,unsigned int len) ; - virtual void setBytes(const Property& p, const char* c,unsigned int len) ; - - virtual unsigned int getString(const char* path, wchar_t* buf, unsigned int max) ; - virtual unsigned int getString(unsigned int propindex,wchar_t* buf, unsigned int max) ; - virtual unsigned int getString(const Property& p,wchar_t* buf, unsigned int max) ; - - virtual void setString(const char* path, const wchar_t* c,unsigned int len) ; - virtual void setString(unsigned int propindex, const wchar_t* c,unsigned int len) ; - virtual void setString(const Property& p, const wchar_t* c,unsigned int len) ; - - virtual const SDODate getDate(const char* path); - virtual const SDODate getDate(unsigned int propindex); - virtual const SDODate getDate(const Property& p); - - virtual void setDate(const char* path, const SDODate d); - virtual void setDate(unsigned int propindex, const SDODate d); - virtual void setDate(const Property& p, const SDODate d); - - virtual long double getDouble(const char* path); - virtual long double getDouble(unsigned int propindex); - virtual long double getDouble(const Property& p); - - virtual void setDouble(const char* path, long double d); - virtual void setDouble(unsigned int propindex, long double d); - virtual void setDouble(const Property& p, long double d); - - virtual float getFloat(const char* path); - virtual float getFloat(unsigned int propindex); - virtual float getFloat(const Property& p); - - virtual void setFloat(const char* path, float f); - virtual void setFloat(unsigned int propindex, float f); - virtual void setFloat(const Property& p, float f); - - virtual long getInteger(const char* path); - virtual long getInteger(unsigned int propindex); - virtual long getInteger(const Property& p); - - virtual void setInteger(const char* path, long i); - virtual void setInteger(unsigned int propindex, long i); - virtual void setInteger(const Property& p, long i); - - virtual /*long long*/ int64_t getLong(const char* path); - virtual /*long long*/ int64_t getLong(unsigned int propindex); - virtual /*long long*/ int64_t getLong(const Property& p); - - virtual void setLong(const char* path, /*long long*/ int64_t l); - virtual void setLong(unsigned int propindex, /*long long*/ int64_t l); - virtual void setLong(const Property& p, /*long long*/ int64_t l); - - virtual short getShort(const char* path); - virtual short getShort(unsigned int propindex); - virtual short getShort(const Property& p); - - virtual void setShort(const char* path, short s); - virtual void setShort(unsigned int propindex, short s); - virtual void setShort(const Property& p, short s); - - virtual const char* getCString(const char* path); - virtual const char* getCString(unsigned int propertyIndex); - virtual const char* getCString(const Property& prop); - - virtual void setCString(const char* path, const char* value); - virtual void setCString(unsigned int propertyIndex, const char* value); - virtual void setCString (const Property& prop, const char* value); - - /** setNull sets a data object value to null. - * - * A DataObjectType or DataType value may be set or unset. If it is set, then - * it may have a value, or it may be set to null. A distinction is drawn between - * being unset, having the default value, being set and being null. - * When the value of an integer (for example) is returned as zero, it could have - * been set to zero, or it could be null. Use isNull() to verify. - */ - - virtual void setNull(const char* path); - virtual void setNull(unsigned int propertyIndex); - virtual void setNull(const Property& prop); - - virtual bool isNull(const char* path); - virtual bool isNull(unsigned int propertyIndex); - virtual bool isNull(const Property& prop); - - virtual bool isSet(const char* path); - virtual bool isSet(unsigned int propertyIndex); - virtual bool isSet(const Property& property); - - virtual bool isValid(const char* path); - virtual bool isValid(unsigned int propertyIndex); - virtual bool isValid(const Property& property); - - virtual void unset(const char* path); - virtual void unset(unsigned int propertyIndex); - virtual void unset(const Property& property); - - - /////////////////////////////////////////////////////////////////////////// - // Sequences - /////////////////////////////////////////////////////////////////////////// - - /** getSequence returns the sequence for a data object - * - * Returns the value of a Sequence property identified by - * the specified path. See Sequence. - */ - - virtual SequenceImpl* getSequenceImpl(); - virtual SequencePtr getSequence(); - virtual SequencePtr getSequence(const char* path); - virtual SequencePtr getSequence(unsigned int propertyIndex); - virtual SequencePtr getSequence(const Property& property); - - - /////////////////////////////////////////////////////////////////////////// - // Creation of dataobjects - /////////////////////////////////////////////////////////////////////////// - - /** createDataObject creates a data object value - * - * Returns a new data object contained by this object using the - * specified property,which must be a containment property. - * The type of the created object is the declared type - * of the specified property. - * If the property is many valued, this method adds an element to the - * list, otherwise it sets the value, removing any old value. - */ - - virtual DataObjectPtr createDataObject(const char* propertyName); - virtual DataObjectPtr createDataObject(unsigned int propertyIndex); - virtual DataObjectPtr createDataObject(const Property& property); - - - /** - * See if the property currently exists - */ - - virtual bool hasProperty(const char* name); - - - virtual void detach(); - - virtual void clear(); - - - /////////////////////////////////////////////////////////////////////////// - // Lists - /////////////////////////////////////////////////////////////////////////// - - /** getList gets the value of a many-valued property - * - * Many valued properties are returned as lists of DataObjects. - * These lists may contain primitives or data objects, but they behave - * like data objects. - * Getting a many valued integer consists of getting the list, then - * using the DataObjectList API to getInteger() for each list element. - */ - - virtual DataObjectList& getList(const char* path); - virtual DataObjectList& getList(unsigned int propIndex); - virtual DataObjectList& getList(const Property& p); - virtual DataObjectList& getList(); - virtual DataObjectListImpl* getListImpl(); - - void setList( DataObjectList* theList); - - /////////////////////////////////////////////////////////////////////////// - // Change Summary - /////////////////////////////////////////////////////////////////////////// - - /** getChangeSummary get the applicable change summary - * - * This method gets the applicable change summary for a data object. - * The summary is not necessarily attached to the data object, it may be - * the summary for a parent data object. No object with a summary attached - * may be a child of another object with a summary attached. - * See the ChangeSummary API for details of using the change sumamry. - */ - - virtual SDO_API ChangeSummaryPtr getChangeSummary(const char* path); - virtual SDO_API ChangeSummaryPtr getChangeSummary(unsigned int propIndex); - virtual SDO_API ChangeSummaryPtr getChangeSummary(const Property& prop); - virtual SDO_API ChangeSummaryPtr getChangeSummary(); - - - virtual bool getBoolean(); - virtual void setBoolean(bool b); - virtual char getByte(); - virtual void setByte(char c); - virtual wchar_t getCharacter(); - virtual void setCharacter(wchar_t c); - virtual unsigned int getString(wchar_t* buf, unsigned int max); - virtual unsigned int getBytes(char* buf, unsigned int max); - virtual void setString(const wchar_t* buf, unsigned int len); - virtual void setBytes(const char* c, unsigned int len); - virtual short getShort(); - virtual void setShort(short s); - virtual long getInteger(); - virtual void setInteger(long s); - virtual /* long long*/ int64_t getLong(); - virtual void setLong(/* long long */ int64_t i); - virtual float getFloat(); - virtual void setFloat(float b); - virtual long double getDouble(); - virtual void setDouble(long double d); - virtual const SDODate getDate(); - virtual void setDate(const SDODate d); - virtual const char* getCString(); - virtual void setCString(const char* s); - virtual DataObjectImpl* getDataObject(); - virtual void setDataObject(DataObject* d); - - // null support - virtual bool isNull(); - virtual void setNull(); - virtual void unsetNull(); - - // change logging is used by the dataobjectlistimpl - virtual void logChange(const Property& prop); - virtual void logChange(unsigned int propIndex); - virtual void logDeletion(); - virtual void logCreation(DataObjectImpl* dol, - DataObjectImpl* cont, const Property& prop); - - // reference support - virtual void setReference(DataObject* dob, const Property& prop); - virtual void unsetReference(DataObject* dob, const Property& prop); - virtual void clearReferences(); - - // user data support - virtual void setUserData(const char* path,void* value); - virtual void setUserData(unsigned int propertyIndex, void* value); - virtual void setUserData(const Property& property, void* value); - virtual void setUserData(void* value); - virtual void* getUserData(const char* path); - virtual void* getUserData(unsigned int propertyIndex); - virtual void* getUserData(const Property& property); - virtual void* getUserData(); - - virtual void setContainer(DataObjectImpl* d); - DataObjectImpl* getContainerImpl(); - - // builds a temporary XPath for this object. - const char* objectToXPath(); - - // The data factory can be used to create new data objects within - // the Type system of this data object - // - - SDO_API DataFactory* getDataFactory(); - - - // cache a copy of the change summary in this data object, if there - // is one in the tree. - - virtual void setApplicableChangeSummary(); - - - // open type support - virtual void setInstancePropertyType(unsigned int index, - const Type* t); - - /** - * defineProperty is used by open type support. - * This method and its siblings define a new property on an - * open type when a setting is requested. - */ - - virtual const PropertyImpl* defineProperty(const char* propname, - const Type& t); - - virtual const PropertyImpl* defineBoolean(const char* propname); - virtual const PropertyImpl* defineByte(const char* propname); - virtual const PropertyImpl* defineCharacter(const char* propname); - virtual const PropertyImpl* defineString(const char* propname); - virtual const PropertyImpl* defineBytes(const char* propname); - virtual const PropertyImpl* defineShort(const char* propname); - virtual const PropertyImpl* defineInteger(const char* propname); - virtual const PropertyImpl* defineLong(const char* propname); - virtual const PropertyImpl* defineFloat(const char* propname); - virtual const PropertyImpl* defineDouble(const char* propname); - virtual const PropertyImpl* defineDate(const char* propname); - virtual const PropertyImpl* defineCString(const char* propname); - virtual const PropertyImpl* defineDataObject(const char* propname, - const Type&t ); - virtual const PropertyImpl* defineDataObject(const char* propname, - const char* typeURI, const char* typeName ); - virtual const PropertyImpl* defineList(const char* propname); - virtual void undefineProperty(unsigned int index); - virtual const TypeImpl& getTypeImpl(); - -private: - - void validateIndex(unsigned int index); - virtual void checkFactory(DataObjectPtr dob); - virtual void checkType( const Property& prop, - const Type& objectType); - - virtual bool remove(DataObjectImpl* indol); - virtual bool isSet(const Property& prop, unsigned int propertyIndex); - - - virtual DataObjectImpl* getDataObjectImpl(const char* path); - virtual DataObjectImpl* getDataObjectImpl(unsigned int propertyIndex); - virtual DataObjectImpl* getDataObjectImpl(const Property& property); - - virtual DataObjectPtr - createDataObject(const Property& property, - const char* namespaceURI, - const char* typeName); - - DataObjectImpl* findDataObject(char* token, long* index); - const Property* findInProperties(DataObject* ob); - char* findPropertyContainer(const char* path, DataObjectImpl** din); - char* stripPath(const char* path); - - - // Does not keep a reference counted pointer to the container. - DataObjectImpl* container; - - // remove the value from the data object. - void deleteValue(); - - - PropertyValueMap PropertyValues; - - const TypeImpl& ObjectType; - - DataObjectListImpl* listValue; - - // Holds the value , reallocated as necessary for strings - void* value; - - // In the case of a bytes/string - this holds the length; - unsigned int valuelength; - - // holds the value as a string - if requested. - char* asStringBuffer; - - // holds the Xpath to this object if requested. - std::string asXPathBuffer; - - // The data object holds a counted reference to the data factory. - DataFactoryPtr factory; - - void setDataFactory(DataFactory *df); - - // Support for open types - int openBase; - std::list openProperties; - - static const char* emptyString; - static const char* templateString; - - // Data may be set to null in any data object - bool isnull; - - // user supplied 32 bit value. - void* userdata; - - // - // The sequence, if this is a sequenced type - not - // reference counted by the data object - // - SequenceImpl* sequence; - - // - // The change summary if this is a summarised type - // not reference counted by the data object - only by - // clients - // - - ChangeSummaryImpl* getChangeSummaryImpl(); - ChangeSummaryImpl* getSummary(); - ChangeSummaryImpl* localCS; - DataObjectImpl* changesummaryobject; - - - // reference type support - - class Reference - { - public: - DataObject* getDataObject() - { - return referer; - } - const Property& getProperty() - { - return refprop; - } - Reference(DataObject* d, const Property& p) : refprop(p), referer(d) - { - } - private: - DataObject* referer; - const Property& refprop; - }; - - typedef std::vector REFERENCE_LIST; - - REFERENCE_LIST refs; - - - -}; -}; -}; - -#endif //_DATAOBJECTIMPL_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.cpp deleted file mode 100644 index 67f54949c8..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.cpp +++ /dev/null @@ -1,69 +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:15 $ */ - -#include "commonj/sdo/DataObjectInstance.h" -using commonj::sdo::CopyHelper; - - - -namespace commonj -{ - namespace sdo - { - // ============ - // Constructors - // ============ - DataObjectInstance::DataObjectInstance() - { - } - - DataObjectInstance::DataObjectInstance(const DataObjectPtr& theDO) - { - dataObject = CopyHelper::copy(theDO); - } - - // ========== - // Destructor - // ========== - DataObjectInstance::~DataObjectInstance() - { - } - - // =================================== - // Copy constructor: deep copy the DO - // =================================== - DataObjectInstance::DataObjectInstance(const DataObjectInstance& doi) - { - dataObject = CopyHelper::copy(doi.dataObject); - } - - // ============================= - // operator= : deep copy the DO - // ============================= - DataObjectInstance& DataObjectInstance::operator=(const DataObjectInstance& doi) - { - if (this != &doi) - { - dataObject = CopyHelper::copy(doi.dataObject); - } - return *this; - } - - } // End namespace sca -} // End namespace osoa diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.h deleted file mode 100644 index 766392fbaa..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectInstance.h +++ /dev/null @@ -1,62 +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:15 $ */ - -#ifndef commonj_sdo_DataObjectInstance_h -#define commonj_sdo_DataObjectInstance_h - - -#include "commonj/sdo/export.h" -#include "commonj/sdo/SDO.h" -using commonj::sdo::DataObjectPtr; -using commonj::sdo::DataObject; - - -namespace commonj -{ - namespace sdo - { -/** - * DataObjectInstance is a class which allows DataObjects to be considered - * as instances rather than data object pointers. - */ - class DataObjectInstance - { - - public: - SDO_API DataObjectInstance(); - SDO_API virtual ~DataObjectInstance(); - - SDO_API DataObjectInstance(const DataObjectPtr& theDO); - SDO_API DataObjectInstance(const DataObjectInstance&); - - SDO_API DataObjectInstance& operator=(const DataObjectInstance&); - SDO_API bool operator!() {return (!dataObject);} - SDO_API operator bool() {return !!dataObject;} - - SDO_API DataObject* operator->() {return dataObject;} - - SDO_API DataObjectPtr getDataObject() {return dataObject;} - SDO_API operator DataObjectPtr() {return dataObject;} - private: - DataObjectPtr dataObject; - }; - } // End namespace sdo -} // End namespace commonj - -#endif // commonj_sdo_DataObjectInstance_h diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.cpp deleted file mode 100644 index 7202833360..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.cpp +++ /dev/null @@ -1,41 +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:15 $ */ - -#include "commonj/sdo/DataObjectList.h" - -namespace commonj{ -namespace sdo { - -/** - * - * List for retrieving many valued property values. - * - * DataObjectList provides an API for getting and setting values in - * many valued properties. The list deals with both DataType and - * DataObjectType properties. - */ - -DataObjectList::~DataObjectList() -{ - -} - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.h deleted file mode 100644 index a8d548ccc2..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectList.h +++ /dev/null @@ -1,192 +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: 2006/02/02 16:41:30 $ */ - -#ifndef _DATAOBJECTLIST_H_ -#define _DATAOBJECTLIST_H_ - - -#include "commonj/sdo/export.h" -#include "commonj/sdo/RefCountingPointer.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/SDODate.h" -#include - - -namespace commonj{ -namespace sdo{ - -/** - * - * List for retrieving many valued property values, DataType or DataObjectType. - * - * DataObjectList provides an API for getting and setting values in - * many valued properties. The list deals with both DataType and - * DataObjectType properties. - */ - -class DataObjectList -{ -public: - virtual ~DataObjectList(); - - /** [] is a index operator, and returns a dataobject. - * - * The index operator returns a data object, even if the - * list is of a DataType. The data object can yield its true value using - * getInteger() etc. Alternatively, list elements can be accessed - * with their correct type using the list getInteger(index) api. - */ - - virtual SDO_API DataObjectPtr operator[] (int pos) = 0; - virtual SDO_API const DataObjectPtr operator[] (int pos) const = 0; - - /** size returns the number of elements. - * - * The size method returns the number of elements in the list - */ - - virtual SDO_API int size () const = 0; - - /** getBoolean returns a boolean at an index - * - * Each of the DataTypes has a corresponding getter and setter - * overload. getBoolean returns a bool, getByte returns a char - * etc - */ - - virtual SDO_API bool getBoolean(unsigned int index) const = 0; - virtual SDO_API char getByte(unsigned int index) const = 0; - virtual SDO_API wchar_t getCharacter(unsigned int index) const = 0; - virtual SDO_API unsigned int getString(unsigned int index, wchar_t* value, - unsigned int max) const = 0; - virtual SDO_API unsigned int getBytes(unsigned int index, char* value, - unsigned int max) const = 0; - virtual SDO_API short getShort(unsigned int index) const = 0; - virtual SDO_API long getInteger(unsigned int index) const = 0; - virtual SDO_API int64_t getLong(unsigned int index) const = 0; - virtual SDO_API float getFloat(unsigned int index) const = 0; - virtual SDO_API long double getDouble(unsigned int index) const = 0; - virtual SDO_API const SDODate getDate(unsigned int index) const = 0; - virtual SDO_API const char* getCString(unsigned int index) const = 0; - virtual SDO_API DataObjectPtr getDataObject(unsigned int index) const = 0; - - virtual SDO_API void setBoolean(unsigned int index, bool d) = 0; - virtual SDO_API void setByte(unsigned int index, char d) = 0; - virtual SDO_API void setCharacter(unsigned int index, wchar_t d) = 0; - virtual SDO_API void setString(unsigned int index, const wchar_t* d, unsigned int len) = 0; - virtual SDO_API void setBytes(unsigned int index, const char* d, unsigned int len) = 0; - virtual SDO_API void setShort(unsigned int index, short d) = 0; - virtual SDO_API void setInteger(unsigned int index, long d) = 0; - virtual SDO_API void setLong(unsigned int index, int64_t d) = 0; - virtual SDO_API void setFloat(unsigned int index, float d) = 0; - virtual SDO_API void setDouble(unsigned int index, long double d) = 0; - virtual SDO_API void setDate(unsigned int index, const SDODate d) = 0; - virtual SDO_API void setCString(unsigned int index, char* d) = 0; - virtual SDO_API void setDataObject(unsigned int index, DataObjectPtr dob) = 0; - - /** getLength returns the length of a string element - * - * getLength behaves like DataObject::getlength. It returns the length - * of a bytes or string buffer such that space can be allocated for the - * values from getBytes() and getString() - */ - - virtual SDO_API unsigned int getLength(unsigned int index) const = 0; - - /** insert and append put items into the list - * - * insert and append have overrides for each of the DataTypes, and - * for DataObject. Insert inserts before the element number given. If the insertion - * point is off the end of the list, then an append is performed. - * Append puts the element on the end of the list. - */ - - - virtual SDO_API void insert (unsigned int index, DataObjectPtr d) = 0; - virtual SDO_API void append (DataObjectPtr d) = 0; - - virtual SDO_API void insert (unsigned int index, bool d) = 0; - virtual SDO_API void append (bool d) = 0; - - virtual SDO_API void insert (unsigned int index, char d) = 0; - virtual SDO_API void append (char d) = 0; - - virtual SDO_API void insert (unsigned int index, wchar_t d) = 0; - virtual SDO_API void append (wchar_t d) = 0; - - virtual SDO_API void insert (unsigned int index, const wchar_t* d, unsigned int len) = 0; - virtual SDO_API void append (const wchar_t* d, unsigned int len) = 0; - - virtual SDO_API void insert (unsigned int index, const char* d, unsigned int len) = 0; - virtual SDO_API void append (const char* d, unsigned int len) = 0; - - virtual SDO_API void insert (unsigned int index, const char* d) = 0; - virtual SDO_API void append (const char* d) = 0; - - virtual SDO_API void insert (unsigned int index, short d) = 0; - virtual SDO_API void append (short d) = 0; - - virtual SDO_API void insert (unsigned int index, const SDODate d) = 0; - virtual SDO_API void append (const SDODate d) = 0; - - virtual SDO_API void insert (unsigned int index, long d) = 0; - virtual SDO_API void append (long d) = 0; - - virtual SDO_API void insert (unsigned int index, int64_t d) = 0; - virtual SDO_API void append (int64_t d) = 0; - - virtual SDO_API void insert (unsigned int index, float d) = 0; - virtual SDO_API void append (float d) = 0; - - - virtual SDO_API void insert (unsigned int index, long double d) = 0; - virtual SDO_API void append (long double d) = 0; - - /** remove removes an element from the list. - * - * Remove removes the element from the list, and passes out a - * DataObjectPtr to the old value. This can be attached to the list - * somewhere else, or discarded. - */ - - virtual SDO_API DataObjectPtr remove (unsigned int index) = 0; - - /* getType returns type - * - * Returns the type. - * May throw SDOTYpeNotFoundException for unset open types - */ - - - virtual SDO_API const Type& getType() = 0; - - /* getTypeEnum returns an enumerator for the type - * - * Returns an enumerator for the type for easy switching on basic types. - * The enumerator is part of the Type class - * May throw SDOTypeNotFoundException for open types - */ - - virtual SDO_API const Type::Types getTypeEnum() = 0; - -}; -}; -}; - -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.cpp deleted file mode 100644 index 925d1ee1c5..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.cpp +++ /dev/null @@ -1,1027 +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: 2006/02/02 16:41:30 $ */ - -#include "commonj/sdo/DataObjectListImpl.h" - - -#include -#include "commonj/sdo/Property.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/Logger.h" -#include "commonj/sdo/SDORuntimeException.h" -#include "commonj/sdo/DataFactory.h" -#include "commonj/sdo/DataObjectImpl.h" -#include "commonj/sdo/DataFactoryImpl.h" - -#include - -namespace commonj{ -namespace sdo { - -/** - * DataObjectListImpl implements DataObjectList. - * List for retrieving many valued property values. - * - * DataObjectList provides an API for getting and setting values in - * many valued properties. The list deals with both DataType and - * DataObjectType properties. - */ -DataObjectListImpl::DataObjectListImpl(DATAOBJECT_VECTOR p) : plist (p) -{ - theFactory = 0; - container = 0; - pindex = 0; - isReference = false; -} - -DataObjectListImpl::DataObjectListImpl(const DataObjectListImpl &pin) -{ - plist = std::vector >(pin.getVec()); - theFactory = pin.theFactory; - container = pin.container; - pindex = pin.pindex; - typeUnset = pin.typeUnset; - isReference = pin.isReference; - if (pin.typeURI != 0) { - typeURI = new char[strlen(pin.typeURI) +1]; - strcpy(typeURI, pin.typeURI); - } - if (pin.typeName != 0) { - typeName = new char[strlen(pin.typeName) +1]; - strcpy(typeName, pin.typeName); - } -} - -DataObjectListImpl::DataObjectListImpl() -{ - theFactory = 0; - typeURI = 0; - typeName = 0; - theFactory = 0; - container = 0; - pindex = 0; - typeUnset = false; - isReference = false; -} - -DataObjectListImpl::DataObjectListImpl(DataFactory* df, - DataObjectImpl* cont, - unsigned int inpindex, - const char* intypeURI, - const char* intypeName) -{ - container = cont; - pindex = inpindex; - theFactory = df; - - - isReference = false; - if (container->getProperty(pindex).isReference()) - { - isReference = true; - } - typeUnset = false; - - if (container->getType().isOpenType()) - { - if (!strcmp(intypeURI,Type::SDOTypeNamespaceURI) && - !strcmp(intypeName,"DataObject")) - { - typeUnset = true; - } - } - - - if (intypeURI != 0) { - typeURI = new char[strlen(intypeURI) +1]; - strcpy(typeURI, intypeURI); - } - else { - typeURI = 0; - } - if (intypeName != 0) { - typeName = new char[strlen(intypeName) +1]; - strcpy(typeName, intypeName); - } - else { - typeName = 0; - theFactory = 0; - } -} - -DataObjectListImpl::~DataObjectListImpl() -{ - if (typeURI != 0) { - delete typeURI; - typeURI = 0; - } - if (typeName != 0) { - delete typeName; - typeName = 0; - } -} - -RefCountingPointer DataObjectListImpl::operator[] (int pos) -{ - validateIndex(pos); - return plist[pos]; -} - -const RefCountingPointer DataObjectListImpl::operator[] (int pos) const -{ - validateIndex(pos); - RefCountingPointer d = plist[pos]; - DataObjectImpl* dob = d; - return RefCountingPointer((DataObject*)dob); -} - - -int DataObjectListImpl::size () const -{ - return plist.size(); -} - -DATAOBJECT_VECTOR DataObjectListImpl::getVec() const -{ - return plist; -} - - - -const Type& DataObjectListImpl::getType() -{ - if (typeUnset) - { - string msg("The list property is open, and the type of the contents has not bee determined yet."); - SDO_THROW_EXCEPTION("Get Type", SDOTypeNotFoundException, - msg.c_str()); - } - return theFactory->getType(typeURI, typeName); -} - - -const Type::Types DataObjectListImpl::getTypeEnum() -{ - if (typeUnset) - { - return Type::UndefinedOpenPropertyType; - - } - return theFactory->getType(typeURI, typeName).getTypeEnum(); -} - - -void DataObjectListImpl::insert (unsigned int index, DataObjectPtr d) -{ - if (typeUnset)setType(d->getType().getURI(),d->getType().getName()); - - checkFactory(d); - - checkType(theFactory->getType(typeURI,typeName), - d->getType()); - - if (container != 0) - { - container->logChange(pindex); - } - for (int i=0;i < plist.size(); i++) - { - if (plist[i] == d) - { - string msg("Insertion of object which already exists in the list:"); - msg += typeURI; - msg += " "; - msg += typeName; - SDO_THROW_EXCEPTION("List insert", SDOUnsupportedOperationException, - msg.c_str()); - } - } - if (strcmp(typeURI,d->getType().getURI()) - || - strcmp(typeName,d->getType().getName())) - { - string msg("Insertion of object of the wrong type to a list:"); - msg += typeURI; - msg += " "; - msg += typeName; - msg += " not compatible with "; - msg += d->getType().getURI(); - msg += " "; - msg += d->getType().getName(); - SDO_THROW_EXCEPTION("List append", SDOInvalidConversionException, - msg.c_str()); - } - - DataObject* dob = d; // unwrap the data object ready for a downcasting hack. - DataObjectImpl* con = ((DataObjectImpl*)dob)->getContainerImpl(); - if (!isReference) - { - if (con != 0) - { - if (con != container) - { - /* this data object is already contained somewhere else */ - string msg("Insertion of object to list, object is already contained:"); - msg += d->getType().getURI(); - msg += " "; - msg += d->getType().getName(); - SDO_THROW_EXCEPTION("List append", SDOInvalidConversionException, - msg.c_str()); - } - } - else - { - ((DataObjectImpl*)dob)->setContainer(container); - ((DataObjectImpl*)dob)->setApplicableChangeSummary(); - ((DataObjectImpl*)dob)->logCreation((DataObjectImpl*)dob, - (DataObjectImpl*)container, - container->getProperty(pindex)); - } - } - - plist.insert(plist.begin()+index, RefCountingPointer((DataObjectImpl*)dob)); - - if (container != 0) - { - if (container->getType().isSequencedType()) - { - SequenceImpl* sq = container->getSequenceImpl(); - if (sq)sq->push(container->getProperty(pindex),index); - } - } - -} - - void DataObjectListImpl::checkFactory(DataObjectPtr dob) - { - - DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dob; - - if (d->getDataFactory() == theFactory) return; - - string msg("Insertion from incompatible factory "); - const Type& t = d->getType(); - msg += t.getURI(); - msg += "#"; - msg += t.getName(); - msg += " into list "; - msg += typeURI; - msg += "#"; - msg += typeName; - SDO_THROW_EXCEPTION("checkFactory", SDOInvalidConversionException, - msg.c_str()); - } - - -void DataObjectListImpl::checkType(const Type& listType, const Type& objectType) - { - if (listType.equals(objectType)) return; - - const TypeImpl* ti = ((DataFactoryImpl*)theFactory)->findTypeImpl - (objectType.getURI(),objectType.getName()); - if (ti != 0) - { - do - { - ti = (const TypeImpl*)ti->getBaseType(); - if (ti == 0) break; - if (listType.equals(*ti)) return; - } while (ti != 0); - - // allow types of any substitutes - if (container != 0) - { - PropertyImpl* pi = - container->getPropertyImpl(pindex); - if (pi != 0) - { - unsigned int subcount = pi->getSubstitutionCount(); - for (int i=0;igetSubstitutionType(i); - if (tsub != 0 && tsub->equals(objectType)) return; - } - } - } - } - - // no match.. - string msg("Insertion of object of incompatible type "); - msg += objectType.getURI(); - msg += "#"; - msg += objectType.getName(); - msg += " into list of type "; - msg += listType.getURI(); - msg += "#"; - msg += listType.getName(); - SDO_THROW_EXCEPTION("TypeCheck", SDOInvalidConversionException, - msg.c_str()); - } - - -void DataObjectListImpl::setType(const char* uri, const char* name) -{ - // need to check for an opentype list which has not been set up yet - if (name == 0) return; - - const TypeImpl* t = ((DataFactoryImpl*)theFactory)->findTypeImpl(uri,name); - if (t == 0) return; // cannot set to a type which is not avilable - - // need to modify the instance property of the container - container->setInstancePropertyType(pindex,t); - - delete typeName; - typeName = new char[strlen(name)+1]; - strcpy(typeName, name); - delete typeURI; - if (uri == 0) - { - typeURI = new char[1]; - typeURI[0] = 0; - } - else - { - typeURI = new char[strlen(uri)+1]; - strcpy(typeURI, uri); - } - typeUnset = false; -} - - -void DataObjectListImpl::append (DataObjectPtr d) -{ - - if (typeUnset)setType(d->getType().getURI(),d->getType().getName()); - - if (container != 0) - { - container->logChange(pindex); - } - - for (int i=0;i < plist.size(); i++) - { - if (plist[i] == d) - { - string msg("Append of object which already exists in the list:"); - msg += typeURI; - msg += " "; - msg += typeName; - SDO_THROW_EXCEPTION("List append", SDOUnsupportedOperationException, - msg.c_str()); - } - } - - checkFactory(d); - - checkType(theFactory->getType(typeURI,typeName), - d->getType()); - - DataObject* dob = d; // unwrap the data object ready for a downcasting hack. - DataObjectImpl* con = ((DataObjectImpl*)dob)->getContainerImpl(); - - if (!isReference) - { - if (con != 0) - { - if (con != container) - { - /* this data object is already contained somewhere else */ - string msg("Append of object to list, object is already contained:"); - msg += d->getType().getURI(); - msg += " "; - msg += d->getType().getName(); - SDO_THROW_EXCEPTION("List append", SDOInvalidConversionException, - msg.c_str()); - } - } - else - { - ((DataObjectImpl*)dob)->setContainer(container); - ((DataObjectImpl*)dob)->setApplicableChangeSummary(); - if (!container->getProperty(pindex).getType().isDataType()) - { - ((DataObjectImpl*)dob)->logCreation((DataObjectImpl*)dob, - container,container->getProperty(pindex)); - } - - } - } - plist.insert(plist.end(),RefCountingPointer((DataObjectImpl*)dob)); - - if (container != 0) { - if (container->getType().isSequencedType()) - { - SequenceImpl* sq = container->getSequenceImpl(); - if (sq)sq->push(container->getProperty(pindex),plist.size()-1); - } - } -} - -void DataObjectListImpl::insert (unsigned int index, bool d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Boolean"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setBoolean(d); - insert(index, dol); -} - -void DataObjectListImpl::append (bool d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Boolean"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setBoolean(d); - append( dol); -} - -void DataObjectListImpl::insert (unsigned int index, char d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Byte"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setByte(d); - insert(index, dol); -} - -void DataObjectListImpl::append (char d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Byte"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setByte(d); - append( dol); -} - -void DataObjectListImpl::insert (unsigned int index, wchar_t d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Character"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setCharacter(d); - insert(index, dol); -} - -void DataObjectListImpl::append (wchar_t d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Character"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setCharacter(d); - append( dol); -} - -void DataObjectListImpl::insert (unsigned int index, const wchar_t* d, unsigned int length) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "String"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setString(d, length); - insert(index, dol); -} - -void DataObjectListImpl::append (const wchar_t* d, unsigned int length) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "String"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setString(d, length); - append( dol); -} -void DataObjectListImpl::insert (unsigned int index, const char* d, unsigned int length) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Bytes"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setBytes(d, length); - insert(index, dol); -} - -void DataObjectListImpl::append (const char* d, unsigned int length) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Bytes"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setBytes(d, length); - append( dol); -} -void DataObjectListImpl::insert (unsigned int index, const char* d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Bytes"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setCString(d); - insert(index, dol); -} - -void DataObjectListImpl::append (const char* d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Bytes"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setCString(d); - append( dol); -} - -void DataObjectListImpl::insert (unsigned int index, short d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Short"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setShort(d); - insert(index, dol); -} - -void DataObjectListImpl::append (short d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Short"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setShort(d); - append( dol); -} - -void DataObjectListImpl::insert (unsigned int index, long d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Integer"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setInteger(d); - insert(index, dol); -} - -void DataObjectListImpl::append (long d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Integer"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setInteger(d); - append( dol); -} - - -void DataObjectListImpl::insert (unsigned int index, const SDODate d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Date"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setDate(d); - insert(index, dol); -} - -void DataObjectListImpl::append (const SDODate d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Date"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setDate(d); - append( dol); -} - -void DataObjectListImpl::insert (unsigned int index, int64_t d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Long"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setLong(d); - insert(index, dol); -} - -void DataObjectListImpl::append (int64_t d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Long"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setLong(d); - append( dol); -} - -void DataObjectListImpl::insert (unsigned int index, float d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Float"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setFloat(d); - insert(index, dol); -} - -void DataObjectListImpl::append (float d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Float"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setFloat(d); - append( dol); -} - -void DataObjectListImpl::insert (unsigned int index, long double d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Double"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setDouble(d); - insert(index, dol); -} - -void DataObjectListImpl::append (long double d) -{ - if (theFactory == 0) return; - - if (typeUnset)setType(Type::SDOTypeNamespaceURI, "Double"); - - RefCountingPointer dol = theFactory->create(typeURI, typeName); - DataObject* dob = dol; - ((DataObjectImpl*)dob)->setDouble(d); - append( dol); -} - - -void DataObjectListImpl::decrementPindex() -{ - pindex--; -} - - -RefCountingPointer DataObjectListImpl::remove(unsigned int index) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer d = (*this)[index]; - - // log deletion only if the list is of data objects. - if (theFactory != 0) - { - const Type& t = theFactory->getType(typeURI,typeName); - const Property& p = container->getProperty(pindex); - if (!t.isDataType() && !p.isReference()) - { - (getVec()[index])->logDeletion(); - } - } - plist.erase(plist.begin()+index); - DataObject* dob = d; - ((DataObjectImpl*)dob)->setContainer(0); - return d; -} - -void DataObjectListImpl::validateIndex(int index) const -{ - if ((index < 0) || (index >= size())) - { - char val[32]; - string msg("Index out of range:"); - sprintf(val,"%d",index); - msg += val; - SDO_THROW_EXCEPTION("validateIndex", SDOIndexOutOfRangeException, - msg.c_str()); - - } - -} - -bool DataObjectListImpl::getBoolean(unsigned int index) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getBoolean(); -} -char DataObjectListImpl::getByte(unsigned int index) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getByte(); -} -wchar_t DataObjectListImpl::getCharacter(unsigned int index) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getCharacter(); -} -unsigned int DataObjectListImpl::getBytes(unsigned int index, char* value, unsigned int max) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getBytes(value, max); -} -unsigned int DataObjectListImpl::getString(unsigned int index, wchar_t* value, unsigned int max) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getString(value, max); -} -short DataObjectListImpl::getShort(unsigned int index) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getShort(); -} -long DataObjectListImpl::getInteger(unsigned int index) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getInteger(); -} -int64_t DataObjectListImpl::getLong(unsigned int index) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getLong(); -} -float DataObjectListImpl::getFloat(unsigned int index) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getFloat(); -} -long double DataObjectListImpl::getDouble(unsigned int index) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getDouble(); -} -const SDODate DataObjectListImpl::getDate(unsigned int index) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getDate(); -} -const char* DataObjectListImpl::getCString(unsigned int index) const -{ - validateIndex(index); - RefCountingPointer d = ((*this)[index]); - DataObject* dob = d; - return ((DataObjectImpl*)dob)->getCString(); -} - -DataObjectPtr DataObjectListImpl::getDataObject(unsigned int index) const -{ - validateIndex(index); - return (*this)[index]; -} - -void DataObjectListImpl::setBoolean(unsigned int index, bool d) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setBoolean(d); -} -void DataObjectListImpl::setByte(unsigned int index, char d) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setByte(d); -} -void DataObjectListImpl::setCharacter(unsigned int index, wchar_t d) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setCharacter(d); -} - -void DataObjectListImpl::setString(unsigned int index, const wchar_t* d, unsigned int len) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setString(d, len); -} -void DataObjectListImpl::setBytes(unsigned int index, const char* d, unsigned int len) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setBytes(d, len); -} - -void DataObjectListImpl::setShort(unsigned int index, short d) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setShort(d); -} -void DataObjectListImpl::setInteger(unsigned int index, long d) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setInteger(d); -} -void DataObjectListImpl::setLong(unsigned int index, int64_t d) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setLong(d); -} -void DataObjectListImpl::setFloat(unsigned int index, float d) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setFloat(d); -} -void DataObjectListImpl::setDouble(unsigned int index, long double d) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setDouble(d); -} -void DataObjectListImpl::setDate(unsigned int index, const SDODate d) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setDate(d); -} -void DataObjectListImpl::setCString(unsigned int index, char* d) -{ - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - ((DataObjectImpl*)dob)->setCString(d); -} - -void DataObjectListImpl::setDataObject(unsigned int index, DataObjectPtr dob) -{ - - if (dob != 0) - { - checkFactory(dob); - - checkType(theFactory->getType(typeURI,typeName), - dob->getType()); - } - - validateIndex(index); - if (container != 0) - { - container->logChange(pindex); - } - - remove(index); - insert(index,dob); -} - -unsigned int DataObjectListImpl::getLength(unsigned int index) const -{ - validateIndex(index); - RefCountingPointer dd = ((*this)[index]); - DataObject* dob = dd; - return dob->getLength(); -} - -}; -}; diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.h deleted file mode 100644 index e5b7ebd2d5..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DataObjectListImpl.h +++ /dev/null @@ -1,191 +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: 2006/02/02 16:41:30 $ */ - -#ifndef _DATAOBJECTLISTIMPL_H_ -#define _DATAOBJECTLISTIMPL_H_ - -#include "commonj/sdo/DataObjectList.h" -#include "commonj/sdo/SDODate.h" - -#include "commonj/sdo/disable_warn.h" - -#include - - -namespace commonj{ -namespace sdo{ - -class DataObjectImpl; -class DataFactory; - -typedef std::vector< RefCountingPointer > DATAOBJECT_VECTOR; - -/** - * DataObjectListImpl implements the abstract class DataObjectList. - * List for retrieving many valued property values. - * - * DataObjectList provides an API for getting and setting values in - * many valued properties. The list deals with both DataType and - * DataObjectType properties. - */ - -class DataObjectListImpl : public DataObjectList -{ - -public: - DataObjectListImpl(DATAOBJECT_VECTOR p); - DataObjectListImpl(const DataObjectListImpl &pin); - DataObjectListImpl(); - DataObjectListImpl(DataFactory* df, DataObjectImpl* cont, unsigned int inpindex, - const char* tURI, const char* tName); - - virtual ~DataObjectListImpl(); - - // open type support - virtual void decrementPindex(); - - virtual DataObjectPtr operator[] (int pos); - virtual const DataObjectPtr operator[] (int pos) const; - - // set/get primitive values - virtual bool getBoolean(unsigned int index) const; - virtual char getByte(unsigned int index) const; - virtual wchar_t getCharacter(unsigned int index) const; - virtual unsigned int getString(unsigned int index, wchar_t* buf, - unsigned int max) const; - virtual unsigned int getBytes(unsigned int index, char* buf, - unsigned int max) const; - virtual short getShort(unsigned int index) const; - virtual long getInteger(unsigned int index) const; - virtual int64_t getLong(unsigned int index) const; - virtual float getFloat(unsigned int index) const; - virtual long double getDouble(unsigned int index) const; - virtual const SDODate getDate(unsigned int index) const; - virtual const char* getCString(unsigned int index) const; - virtual DataObjectPtr getDataObject(unsigned int index) const; - - virtual void setBoolean(unsigned int index, bool d); - virtual void setByte(unsigned int index, char d); - virtual void setCharacter(unsigned int index, wchar_t d); - virtual void setString(unsigned int index, const wchar_t* d, unsigned int len); - virtual void setBytes(unsigned int index, const char* d, unsigned int len); - virtual void setShort(unsigned int index, short d); - virtual void setInteger(unsigned int index, long d); - virtual void setLong(unsigned int index, int64_t d); - virtual void setFloat(unsigned int index, float d); - virtual void setDouble(unsigned int index, long double d); - virtual void setDate(unsigned int index, const SDODate d); - virtual void setCString(unsigned int index, char* d); - virtual void setDataObject(unsigned int index, DataObjectPtr dob); - - virtual unsigned int getLength(unsigned int index) const; - - virtual int size () const; - - virtual void insert (unsigned int index, DataObjectPtr d); - virtual void append (DataObjectPtr d); - - virtual void insert (unsigned int index, bool d) ; - virtual void append (bool d) ; - - virtual void insert (unsigned int index, char d) ; - virtual void append (char d) ; - - virtual void insert (unsigned int index, wchar_t d) ; - virtual void append (wchar_t d) ; - - virtual void insert (unsigned int index, const wchar_t* d, unsigned int len) ; - virtual void append (const wchar_t* d, unsigned int len) ; - - virtual void insert (unsigned int index, const char* d, unsigned int len) ; - virtual void append (const char* d, unsigned int len) ; - - virtual void insert (unsigned int index, const char* d) ; - virtual void append (const char* d) ; - - virtual void insert (unsigned int index, short d) ; - virtual void append (short d) ; - - virtual void insert (unsigned int index, const SDODate d) ; - virtual void append (const SDODate d) ; - - virtual void insert (unsigned int index, long d) ; - virtual void append (long d) ; - - virtual void insert (unsigned int index, int64_t d) ; - virtual void append (int64_t d) ; - - virtual void insert (unsigned int index, float d) ; - virtual void append (float d) ; - - virtual void insert (unsigned int index, long double d) ; - virtual void append (long double d) ; - - - virtual DataObjectPtr remove (unsigned int index); - - virtual void checkFactory(DataObjectPtr dob); - virtual void checkType(const Type& listType, const Type& objectType); - virtual void setType(const char* uri, const char* name); - - /* getType returns type - * - * Returns the type. - * May throw SDOTYpeNotFoundException for unset open types - */ - - - virtual const Type& getType(); - - /* getTypeEnum returns an enumerator for the type - * - * Returns an enumerator for the type for easy switching on basic types. - * The enumerator is part of the Type class - * May throw SDOTypeNotFoundException for open types - */ - - virtual const Type::Types getTypeEnum(); - - -private: - DATAOBJECT_VECTOR plist; - DATAOBJECT_VECTOR getVec() const; - - // For creation of items via the insert/append api. - char* typeURI; - char* typeName; - - // for open types, the list may not have a type until the - // first item is entered - - bool typeUnset; - - // No reference count held on the factory - DataFactory* theFactory; - - // For logging a change in the change summary when appending - DataObjectImpl* container; - unsigned int pindex; - bool isReference; - - void validateIndex(int index) const; -}; -}; -}; -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.cpp deleted file mode 100644 index bfd75a18fb..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.cpp +++ /dev/null @@ -1,53 +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:15 $ */ - -#include "commonj/sdo/disable_warn.h" -#include "commonj/sdo/DefaultLogWriter.h" - -#include -using namespace std; - -namespace commonj -{ - namespace sdo - { - - DefaultLogWriter::DefaultLogWriter() - { - formatindent = 0; - } - - DefaultLogWriter::~DefaultLogWriter() - { - } - - void DefaultLogWriter::log(int indent, int level, const char* msg) - { - if (indent < 0) formatindent += indent; - for (int i=0; i < formatindent; i++) - { - cout << " "; - } - cout << msg < 0) formatindent += indent; - } - - } // End namespace sca -} // End namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.h deleted file mode 100644 index e9b5318c4e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/DefaultLogWriter.h +++ /dev/null @@ -1,52 +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:15 $ */ - -#ifndef SDO_DefaultLOGWriter_H -#define SDO_DefaultLOGWriter_H - -#include "commonj/sdo/LogWriter.h" - - - -namespace commonj -{ - namespace sdo - { - -/** - * DefaultLogWriter is a basic log writer, part of the logger. - * The logging API holds a log writer , and uses it to send - * output whereever it is needed. The application writer would - * hook their own LogWriter in place of this simple one. - */ - class DefaultLogWriter : public LogWriter - { - public: - - DefaultLogWriter(); - virtual ~DefaultLogWriter(); - - virtual void log(int indent, int level, const char* msg); - private: - int formatindent; - }; - - } // End namespace sca -} // End namespace commonj -#endif // SDO_DefaultLOGWriter_H diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.cpp deleted file mode 100644 index 603c24891e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.cpp +++ /dev/null @@ -1,370 +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:15 $ */ - -#include "commonj/sdo/Property.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/TypeList.h" -#include "commonj/sdo/Sequence.h" - -#include "commonj/sdo/DataObject.h" - - - -#include "commonj/sdo/EqualityHelper.h" - -namespace commonj{ -namespace sdo{ - - bool EqualityHelper::compareitem(DataObjectPtr to, DataObjectPtr from, const Property& p) - { - switch (p.getTypeEnum()) - { - case Type::BooleanType: - return (to->getBoolean(p) == from->getBoolean(p)); - case Type::ByteType: - return (to->getByte(p) == from->getByte(p)); - case Type::CharacterType: - return (to->getCharacter(p) == from->getCharacter(p)); - case Type::IntegerType: - return (to->getInteger(p) == from->getInteger(p)); - case Type::ShortType: - return (to->getShort(p) == from->getShort(p)); - case Type::DoubleType: - return (to->getDouble(p) == from->getDouble(p)); - case Type::FloatType: - return (to->getFloat(p) == from->getFloat(p)); - case Type::LongType: - return (to->getLong(p) == from->getLong(p)); - case Type::DateType: - return (to->getDate(p).getTime() == from->getDate(p).getTime()); - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::UriType: - case Type::StringType: - { - unsigned int siz = from->getLength(p); - if (siz != to->getLength(p)) return false; - - if (siz > 0) - { - wchar_t * buff = new wchar_t[siz]; - wchar_t * buft = new wchar_t[siz]; - from->getString(p, buff, siz); - to->getString(p, buft, siz); - for (int i=0;i< siz; i++) - { - if (buff[i] != buft[i]) - { - delete buff; - delete buft; - return false; - } - } - delete buff; - delete buft; - } - return true; - } - case Type::BytesType: - { - unsigned int siz = from->getLength(p); - if (siz != to->getLength(p)) return false; - - if (siz > 0) - { - char * buff = new char[siz]; - char * buft = new char[siz]; - from->getBytes(p, buff, siz); - to->getBytes(p, buft, siz); - for (int i=0;i< siz; i++) - { - if (buff[i] != buft[i]) - { - delete buff; - delete buft; - return false; - } - } - delete buff; - delete buft; - } - return true; - } - default: - return true; - } // switch - } - - bool EqualityHelper::comparelist(DataObjectList& to, DataObjectList& from, Type::Types t) - { - switch (t) - { - case Type::BooleanType: - { - for (int i=0;i< from.size(); i++) - { - if (to.getBoolean(i) != from.getBoolean(i)) - { - return false; - } - } - return true; - } - - case Type::ByteType: - { - for (int i=0;i< from.size(); i++) - { - if (to.getByte(i) != from.getByte(i)) - { - return false; - } - } - return true; - } - - case Type::CharacterType: - { - for (int i=0;i< from.size(); i++) - { - if (to.getCharacter(i) != from.getCharacter(i)) - { - return false; - } - } - return true; - } - - case Type::IntegerType: - { - for (int i=0;i< from.size(); i++) - { - if (to.getInteger(i) != from.getInteger(i)) - { - return false; - } - } - return true; - } - - case Type::ShortType: - { - for (int i=0;i< from.size(); i++) - { - if (to.getShort(i) != from.getShort(i)) - { - return false; - } - } - return true; - } - case Type::DoubleType: - { - for (int i=0;i< from.size(); i++) - { - if (to.getDouble(i) != from.getDouble(i)) - { - return false; - } - } - return true; - } - - case Type::FloatType: - { - for (int i=0;i< from.size(); i++) - { - if (to.getFloat(i) != from.getFloat(i)) - { - return false; - } - } - return true; - } - - case Type::LongType: - { - for (int i=0;i< from.size(); i++) - { - if (to.getLong(i) != from.getLong(i)) - { - return false; - } - } - return true; - } - - case Type::DateType: - { - for (int i=0;i< from.size(); i++) - { - if (to.getDate(i).getTime() != from.getDate(i).getTime()) - { - return false; - } - } - return true; - } - - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::UriType: - case Type::StringType: - { - for (int i=0;i< from.size(); i++) - { - unsigned int siz = from.getLength(i); - if (siz != to.getLength(i)) return false; - - if (siz > 0) - { - wchar_t * buff = new wchar_t[siz]; - wchar_t * buft = new wchar_t[siz]; - from.getString(i,buff,siz); - to.getString(i,buft,siz); - for (int j=0;j 0) - { - char * buff = new char[siz]; - char * buft = new char[siz]; - from.getBytes(i,buff,siz); - to.getBytes(i,buft,siz); - for (int j=0;jgetInstanceProperties(); - for (int i=0;i < pl.size(); i++) - { - // data objects are only compared the deep equality case - if (pl[i].getType().isDataObjectType()) - { - if (!fullEqual) - { - continue; - } - else - { - if (pl[i].isMany()) - { - DataObjectList& dolold = dataObject1->getList(pl[i]); - DataObjectList& dolnew = dataObject2->getList(pl[i]); - if (dolnew.size() != dolold.size()) return false; - - for (int i=0;i< dolold.size(); i++) - { - if (!internalEqual(dolold[i], dolnew[i], true)) - { - return false; - } - } - } - else - { - if (!internalEqual( - dataObject1->getDataObject(pl[i]), - dataObject2->getDataObject(pl[i]), true)) - { - return false; - } - } - } - } - else - { - if (pl[i].isMany()) - { - DataObjectList& dolold = dataObject1->getList(pl[i]); - DataObjectList& dolnew = dataObject2->getList(pl[i]); - if (dolold.size() != dolnew.size()) return false; - if (!comparelist(dolold, dolnew, pl[i].getTypeEnum())) return false; - } - else - { - if (!compareitem(dataObject1,dataObject2, pl[i])) - { - return false; - } - } // else - } - } - return true; - } - -} -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.h deleted file mode 100644 index 381564338c..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/EqualityHelper.h +++ /dev/null @@ -1,97 +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:15 $ */ - -#ifndef _EQUALITYHELPER_H_ -#define _EQUALITYHELPER_H_ - -#include "commonj/sdo/RefCountingPointer.h" - - - -namespace commonj{ -namespace sdo{ - -/** - * EqualityHelper provides static helper methods for equals. - * equalsShallow compares the DataType properties of the - * two data objects. - * equals performs a check on all the memebers and verifies that - * the same data objects are children. - */ - - class EqualityHelper -{ - public: - - /** - * Shallow compare of DataObjects - * - * Compares two DataObjects for each property where - * property.getType().isDataObjectType() is false. - * Compares dataObject1.get(property).equals(dataObject2.get(property)) - * Properties where property.getType().isDataObjectType() is true - * are not compared. - * DataObjects must have the same type - * dataObject1.getType() == dataObject2.getType() - * Returns true if all values of all compared properties are equal. - * @param dataObject1 DataObject to be compared - * @param dataObject2 DataObject to be compared - * @return true if equal - */ - static SDO_API bool equalShallow(DataObjectPtr dataObject1, DataObjectPtr dataObject2); - - /** - * Deep compare of DataObjects - * Compares dataObject1 and dataObject2 and all their contained - * DataObjects (property.isContainment() is true) recursively. - * Values of properties are comapred as in isEqualShallow, - * and values of properties where - * property.getType().isDataObjectType() is true - * are compared where each value copied must be a corresponding - * DataObject contained by the source dataObject. - * The dataObject trees must be closed. - * If any DataObject referenced in either tree is not part of the - * containment trees an IllegalArgumentException is thrown. - * If a ChangeSummary is part of the tree they must contain an - * identical summary for their respective trees. - * - * @param dataObject1 DataObject to be compared - * @param dataObject2 DataObject to be compared - * @return true if all compared aspects of all compared objects are equal - * @throws IllegalArgumentException if any referenced DataObject - * is not part of the containment trees. - */ - static SDO_API bool equal(DataObjectPtr dataObject1, DataObjectPtr dataObject2); - - private: - - static bool internalEqual(DataObjectPtr dataObject1, - DataObjectPtr dataObject2, - bool fullEqual); - - static bool comparelist(DataObjectList& to, DataObjectList& from, Type::Types t); - - static bool compareitem(DataObjectPtr to, DataObjectPtr from, const Property& p); - - - -}; -}; -}; -#endif //_EQUALITYHELPER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.cpp deleted file mode 100644 index b41c47a501..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.cpp +++ /dev/null @@ -1,47 +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:15 $ */ - -#include "commonj/sdo/HelperProvider.h" -#include "commonj/sdo/XSDHelperImpl.h" -#include "commonj/sdo/XMLHelperImpl.h" -#include "commonj/sdo/export.h" -#include "commonj/sdo/DataFactory.h" - -namespace commonj -{ - namespace sdo - { - - ////////////////////////////////////////////////////////////////////// - // Create an XSDHelper - ////////////////////////////////////////////////////////////////////// - XSDHelperPtr HelperProvider::getXSDHelper(DataFactoryPtr dataFactory) - { - return new XSDHelperImpl(dataFactory); - } - ////////////////////////////////////////////////////////////////////// - // Create an XMLHelper - ////////////////////////////////////////////////////////////////////// - XMLHelperPtr HelperProvider::getXMLHelper(DataFactoryPtr dataFactory) - { - return new XMLHelperImpl(dataFactory); - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.h deleted file mode 100644 index 7be271f128..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/HelperProvider.h +++ /dev/null @@ -1,65 +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:15 $ */ - -#ifndef _HELPERPROVIDER_H_ -#define _HELPERPROVIDER_H_ - - -#include "commonj/sdo/XSDHelper.h" -#include "commonj/sdo/XMLHelper.h" -#include "commonj/sdo/DataFactory.h" -#include "commonj/sdo/export.h" - - -namespace commonj -{ - namespace sdo - { - - -/** - * HelperProvider gives access to helpers (static methods). - * - * The helper provider gives back an XSD or XML helper associated - * with the given data factory - */ - class HelperProvider - { - public: - -/** - * - * The helper provider gives back an XSD helper associated - * with the given data factory - */ - SDO_API static XSDHelperPtr getXSDHelper(DataFactoryPtr dataFactory=0); - -/** - * - * The helper provider gives back an XML helper associated - * with the given data factory - */ - SDO_API static XMLHelperPtr getXMLHelper(DataFactoryPtr dataFactory=0); - - }; - - } // End - namespace sdo -} // End - namespace commonj - -#endif // _HELPERPROVIDER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.cpp deleted file mode 100644 index 79f7d48671..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.cpp +++ /dev/null @@ -1,32 +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:15 $ */ - -#include "commonj/sdo/LogWriter.h" - -namespace commonj -{ - namespace sdo - { - LogWriter::~LogWriter() - { - } - - } // End namespace sdo -} // End namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.h deleted file mode 100644 index 9948c86ed9..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/LogWriter.h +++ /dev/null @@ -1,44 +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:15 $ */ - -#ifndef SDO_LOGWriter_H -#define SDO_LOGWriter_H - -#include "commonj/sdo/export.h" - -namespace commonj -{ - namespace sdo - { - -/** - * LogWriter is an abstract class for implementers to inherit from. - * see DefaultLogWriter. - */ - class LogWriter - { - public: - virtual ~LogWriter(); - - SDO_API virtual void log(int indent, int level, const char* msg) = 0; - }; - - } // End namespace sdo -} // End namespace commonj -#endif // SDO_LOGWriter_H diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.cpp deleted file mode 100644 index 6d799f2435..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.cpp +++ /dev/null @@ -1,100 +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: 2006/01/23 16:39:24 $ */ - -#include "commonj/sdo/Logger.h" -#include -#include -#include "commonj/sdo/DefaultLogWriter.h" -#include - -using namespace std; - -namespace commonj -{ - namespace sdo - { - LogWriter* Logger::logWriter = getLogWriter(); - - LogWriter* Logger::getLogWriter() - { - if (logWriter == 0) - { - setLogWriter(0); - } - return logWriter; - } - - void Logger::setLogWriter(LogWriter* writer) - { - if (logWriter != writer) - { - delete logWriter; - } - - if (writer == 0) - { - logWriter = new DefaultLogWriter; - } - else - { - logWriter = writer; - } - } - - int Logger::loggingLevel = setLogging(); - - int Logger::setLogging() - { - char* loggingVar = 0; - loggingVar = getenv("SDO4CPP_LOGGING"); - if (loggingVar == 0) - return 0; - else - return atoi(loggingVar); - } - - void Logger::setLogging(int level) - { - loggingLevel = level; - } - - void Logger::log(int indent, int level, const char* msg) - { - if (level <= loggingLevel) - { - logWriter->log(indent, level, msg); - } - } - - void Logger::logArgs(int indent, int level, const char* msg, ...) - { - if (level <= loggingLevel) - { - va_list variableArguments; - va_start(variableArguments, msg); - char messageBuffer[1024]; - vsprintf(messageBuffer, msg, variableArguments); - logWriter->log(indent, level, messageBuffer); - va_end(variableArguments); - } - } - - } // End namespace sdo -} // End namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.h deleted file mode 100644 index ee566e9c44..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logger.h +++ /dev/null @@ -1,69 +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:15 $ */ - -#ifndef SDO_LOGGER_H -#define SDO_LOGGER_H - - - -#include "commonj/sdo/export.h" -#include "commonj/sdo/LogWriter.h" -namespace commonj -{ - namespace sdo - { - -/** - * Logger is used for debug style logging such as method trace. - * The logger can log at different levels, and can log entry, exit - * and events. The log entries can take arguments or be just - * strings. - */ - class Logger { - - public: -/** - * attach a log writer. - */ - SDO_API static void setLogWriter(LogWriter* writer); -/** - * switch logging to a level. - */ - SDO_API static void setLogging(int level); - -/** - * log a message. - */ - SDO_API static void log(int indent, int level, const char* msg); -/** - * log a message with parameters. - */ - SDO_API static void logArgs(int indent, int level, const char* msg, ...); - - static int loggingLevel; - - private: - static LogWriter* logWriter; - static LogWriter* getLogWriter(); - static int setLogging(); - }; - - } // End namespace sdo -} // End namespace commonj -#endif // SDO_LOGGER_H diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logging.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logging.h deleted file mode 100644 index e2adac2d84..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Logging.h +++ /dev/null @@ -1,170 +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:15 $ */ - -#include "commonj/sdo/Logger.h" -#include "commonj/sdo/SDORuntimeException.h" - -# -#ifndef SDO_LOGGING_H -#define SDO_LOGGING_H - -/** - * logging level for stuff you rarely want to see, like - * memory allocations. - */ - -#define HIGHVOLUME 40 -/** - * logging level for normal path information - */ -#define INFO 30 - - /** - * logging level for something which is unusual. - */ - -#define WARNING 20 -/** - * logging level for a major problem - */ - -#define ERROR 10 - -#define INDENT 1 -#define OUTDENT -1 -#define NODENT 0 - - -/** - * Macro for simplifying addition of trace points - */ - -#ifdef _DEBUG -#define LOGENTRY(level, methodName) \ -if (Logger::loggingLevel >= level) \ -Logger::logArgs(INDENT, level, "Entering: %s", methodName); - -/** - * Macro for simplifying addition of trace points - */ -#define LOGEXIT(level, methodName) \ -if (Logger::loggingLevel >= level) \ -Logger::logArgs(OUTDENT, level, "Exiting: %s" ,methodName); - -/** - * Macro for simplifying addition of trace points - */ -#define LOGINFO(level, message) \ -if (Logger::loggingLevel >= level) \ -Logger::log(NODENT, level, message); - -/** - * Macro for simplifying addition of trace points - */ -#define LOGINFO_1(level, message, arg1) \ -if (Logger::loggingLevel >= level) \ -Logger::logArgs(NODENT,level, message, arg1); - -/** - * Macro for simplifying addition of trace points - */ -#define LOGINFO_2(level, message, arg1, arg2) \ -if (Logger::loggingLevel >= level) \ -Logger::logArgs(NODENT,level, message, arg1, arg2); - -/** - * Macro for simplifying addition of trace points - */ -#define LOGERROR(level, message) \ -if (Logger::loggingLevel >= level) \ -Logger::log(NODENT,level, message); - -/** - * Macro for simplifying addition of trace points - */ -#define LOGERROR_1(level, message, arg1) \ -if (Logger::loggingLevel >= level) \ -Logger::logArgs(NODENT,level, message, arg1); - -/** - * Macro for simplifying addition of trace points - */ -#define LOGERROR_2(level, message, arg1, arg2) \ -if (Logger::loggingLevel >= level) \ -Logger::logArgs(NODENT,level, message, arg1, arg2); - -/** - * Macro for simplifying addition of trace points - */ -#define LOGSDOEXCEPTION(level, message, arg1) \ -if (Logger::loggingLevel >= level) \ -Logger::log(NODENT,level, message);\ -Logger::logArgs(NODENT,level, "%s:%s\nIn %s\nAt %s line %ld\n",\ - ((SDORuntimeException)arg1).getEClassName(),\ - ((SDORuntimeException)arg1).getMessageText(),\ - ((SDORuntimeException)arg1).getFunctionName(),\ - ((SDORuntimeException)arg1).getFileName(),\ - ((SDORuntimeException)arg1).getLineNumber()); - -#else // Not DEBUG - -/** - * Macro for simplifying addition of trace points - */ -#define LOGSDOEXCEPTION(level, message, arg1) - -/** - * Macro for simplifying addition of trace points - */ -#define LOGENTRY(level, methodName) - -/** - * Macro for simplifying addition of trace points - */ -#define LOGEXIT(level, methodName) - -/** - * Macro for simplifying addition of trace points - */ -#define LOGINFO(level, message) - -/** - * Macro for simplifying addition of trace points - */ -#define LOGINFO_1(level, message, arg1) - -/** - * Macro for simplifying addition of trace points - */ -#define LOGINFO_2(level, message, arg1, arg2) -/** - * Macro for simplifying addition of trace points - */ -#define LOGERROR(level, message) -/** - * Macro for simplifying addition of trace points - */ -#define LOGERROR_1(level, message, arg1) -/** - * Macro for simplifying addition of trace points - */ -#define LOGERROR_2(level, message, arg1, arg2) - -#endif -#endif // SDO_LOGGING_H diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Makefile.am b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Makefile.am deleted file mode 100644 index 46c66361e3..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Makefile.am +++ /dev/null @@ -1,81 +0,0 @@ -lib_LTLIBRARIES = libtuscany_sdo.la -AM_CPPFLAGS = $(CPPFLAGS) - -libtuscany_sdo_la_SOURCES = \ - ChangedDataObjectListImpl.cpp \ - ChangeSummaryBuilder.cpp \ - ChangeSummary.cpp \ - ChangeSummaryImpl.cpp \ - CopyHelper.cpp \ - DASProperty.cpp \ - DASType.cpp \ - DASValue.cpp \ - DASValues.cpp \ - DataFactory.cpp \ - DataFactoryImpl.cpp \ - DataGraph.cpp \ - DataGraphImpl.cpp \ - DataObject.cpp \ - DataObjectImpl.cpp \ - DataObjectInstance.cpp \ - DataObjectList.cpp \ - DataObjectListImpl.cpp \ - DefaultLogWriter.cpp \ - EqualityHelper.cpp \ - HelperProvider.cpp \ - Logger.cpp \ - LogWriter.cpp \ - ParserErrorSetter.cpp \ - Property.cpp \ - PropertyDefinition.cpp \ - PropertyImpl.cpp \ - PropertyList.cpp \ - PropertySetting.cpp \ - RefCountingObject.cpp \ - RefCountingPointer.cpp \ - SAX2Attribute.cpp \ - SAX2Attributes.cpp \ - SAX2Namespaces.cpp \ - SAX2Parser.cpp \ - SchemaInfo.cpp \ - SdoCheck.cpp \ - SDODate.cpp \ - SdoRuntime.cpp \ - SDORuntimeException.cpp \ - SDOSAX2Parser.cpp \ - SDOSchemaSAX2Parser.cpp \ - SDOUtils.cpp \ - SDOXMLBufferWriter.cpp \ - SDOXMLFileWriter.cpp \ - SDOXMLStreamWriter.cpp \ - SDOXMLString.cpp \ - SDOXMLWriter.cpp \ - SDOXSDBufferWriter.cpp \ - SDOXSDFileWriter.cpp \ - SDOXSDStreamWriter.cpp \ - SDOXSDWriter.cpp \ - Sequence.cpp \ - SequenceImpl.cpp \ - Setting.cpp \ - SettingList.cpp \ - Type.cpp \ - TypeDefinition.cpp \ - TypeDefinitions.cpp \ - TypeImpl.cpp \ - TypeList.cpp \ - XMLDocument.cpp \ - XMLDocumentImpl.cpp \ - XMLHelper.cpp \ - XMLHelperImpl.cpp \ - XMLQName.cpp \ - XpathHelper.cpp \ - XSDHelper.cpp \ - XSDHelperImpl.cpp \ - XSDPropertyInfo.cpp \ - XSDTypeInfo.cpp - -libtuscany_sdo_la_LIBADD = -lstdc++ - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I${LIBXML2_INCLUDE} - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.cpp deleted file mode 100644 index 2d9a99360f..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.cpp +++ /dev/null @@ -1,38 +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:15 $ */ - -// ParserErrorSetter.cpp: class allowing parser to push errors back. -// -////////////////////////////////////////////////////////////////////// -#include "commonj/sdo/ParserErrorSetter.h" -namespace commonj -{ - namespace sdo - { - ////////////////////////////////////////////////////////////////////// - // Construction/Destruction - ////////////////////////////////////////////////////////////////////// - ParserErrorSetter::~ParserErrorSetter() - { - } - - } // End - namespace sdo -} // End - namespace commonj - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.h deleted file mode 100644 index 15dccc7eba..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/ParserErrorSetter.h +++ /dev/null @@ -1,48 +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:15 $ */ - -#ifndef _PARSER_ERROR_SETTER_H_ -#define _PARSER_ERROR_SETTER_H_ - -#include "commonj/sdo/export.h" - -#include "commonj/sdo/disable_warn.h" - -#include -using namespace std; - -namespace commonj{ -namespace sdo{ - -/** - * The ParserErrorSetter builds a list of all the errors which - * occurred during a parse, so they can be displayed for the - * user of an XSDHelper or XMLHelper - */ - -class ParserErrorSetter -{ -public: - virtual ~ParserErrorSetter(); - virtual void setError(const char* message) = 0; -}; -}; -}; - -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.cpp deleted file mode 100644 index 11fc167377..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.cpp +++ /dev/null @@ -1,42 +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:15 $ */ - -#include -using namespace std; - - -#ifndef SDO_EXPORTS -#define SDO_EXPORTS -#endif -#include "commonj/sdo/export.h" - -#include "commonj/sdo/Sequence.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/TypeList.h" - -#include "commonj/sdo/Type.h" -#include "commonj/sdo/Property.h" -namespace commonj{ -namespace sdo{ - - // All delegated to the impl. - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.h deleted file mode 100644 index fb7e418de2..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Property.h +++ /dev/null @@ -1,193 +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:15 $ */ - -#ifndef _PROPERTY_H_ -#define _PROPERTY_H_ - - -#include "commonj/sdo/export.h" - -#include "commonj/sdo/Type.h" -#include "commonj/sdo/SDODate.h" - -namespace commonj{ -namespace sdo{ - -class Type; -class TypeImpl; -class DataObject; - -/** - * - * A representation of a property in the type of a data object. - */ - -class Property -{ - public: - - /** getName gets the name of the property - * - * Returns the name of the property. - */ - - virtual const SDO_API char* getName() const = 0; - - /** getAlias returns the n'th alias - * - * This method returns a const char* corresponding to the - * alias at index n of the list of aliases. Use getAliasCount to - * discover the size of the list. - */ - - virtual SDO_API const char* getAlias(unsigned int index = 0) const = 0; - - /** getAliasCount returns the number of aliases - * - * This method returns the number of aliases for this type - */ - - virtual SDO_API unsigned int getAliasCount() const = 0; - - /** getType returns the type of this property - * - * This method returns the type, which may be a DataType or a - * DataObjectType - */ - - virtual SDO_API const Type& getType() const = 0; - - /** getTypeEnum gets the enum for this type. - * - * Each DataType has a defined value in the list of Types. - */ - - virtual SDO_API const Type::Types getTypeEnum() const = 0; - - /** isMany is true if the property is a list - * - * IsMany returns true if this property represents a list of - * values, and should be accessed via the getList DataObjectAPI. - */ - - virtual bool SDO_API isMany() const = 0; - - /** isContainment is true if the property value is contained - * - * IsContainment returns true if this property represents a DataObjectType, - * and that DataObjectType is contained. I.E the property value is not a pointer - * to a DataObject somewhere else in the graph, it is an actual value. - */ - - virtual bool SDO_API isContainment() const = 0; - - /** isReference is true if the property value is not contained - * - * IsReference returns true if this property represents a DataObjectType, - * and that DataObjectType is not contained. I.E the property value is a pointer - * to a DataObject somewhere else in the graph not an actual value. - */ - - virtual bool SDO_API isReference() const = 0; - - /** getContainingType give the type which holds this property. - * - * Although many types may have a property of the same name, any given - * instance of a property belongs to only one type. - * This method returns the type which holds this proeprty. - */ - - virtual SDO_API const Type& getContainingType() const = 0; - - - - /** isReadOnly returns true if the property is unmodifiable. - * - * NOT IMPLEMENTED - * Returns true if values for this Property cannot be modified using the SDO APIs. - * When true, DataObject.set(Property property, Object value) throws an exception. - * Values may change due to other factors, such as services operating on DataObjects. - */ - - virtual bool SDO_API isReadOnly() const = 0; - - /** getOpposite returns the opposite property or zero. - * - * NOT IMPLEMENTED - */ - - virtual SDO_API const Property* getOpposite() const = 0; - - /** isDefaulted is true if a default has been set. - * - * A property value may be set or unset. If unset, requests to the - * data object for the value will return a default if there is one. - * If the property is not defaulted, an un specified value will be - * returned. (Thism value will probably be zero). - */ - - virtual SDO_API bool isDefaulted() const = 0 ; - - /** setDefault sets the right sort of default. - * - * The many overrides of this method allow the setting - * of a default value for any DataType property. - */ - - virtual SDO_API void setDefault(bool b ) = 0; - virtual SDO_API void setDefault(char c) = 0; - virtual SDO_API void setDefault(wchar_t c) = 0; - virtual SDO_API void setDefault(char* c) = 0; - virtual SDO_API void setDefault(short s) = 0; - virtual SDO_API void setDefault(long l) = 0; - virtual SDO_API void setDefault(int64_t i) = 0; - virtual SDO_API void setDefault(float f) = 0; - virtual SDO_API void setDefault(long double d) = 0; - virtual SDO_API void setDefault(const SDODate d) = 0; - virtual SDO_API void setDefault(const wchar_t* c, unsigned int len) = 0; - virtual SDO_API void setDefault(const char* c, unsigned int len) = 0; - - /** getDefault gets the right sort of default. - * - * The many overrides of this method allow the getting - * of a default value for any DataType property. - */ - - virtual SDO_API unsigned int getStringDefault(wchar_t* val, unsigned int max) const = 0; - virtual SDO_API unsigned int getBytesDefault(char* val, unsigned int max) const = 0; - virtual SDO_API bool getBooleanDefault() const = 0; - virtual SDO_API char getByteDefault() const = 0; - virtual SDO_API wchar_t getCharacterDefault() const = 0; - virtual SDO_API short getShortDefault() const = 0; - virtual SDO_API long getIntegerDefault() const = 0; - virtual SDO_API int64_t getLongDefault() const = 0; - virtual SDO_API float getFloatDefault() const = 0; - virtual SDO_API long double getDoubleDefault() const = 0; - virtual SDO_API const SDODate getDateDefault() const = 0; - virtual SDO_API const char* getCStringDefault() const = 0; - virtual SDO_API unsigned int getDefaultLength() const = 0; - - -}; - - -}; -}; - -#endif //_PROPERTY_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.cpp deleted file mode 100644 index 3b84204a0c..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.cpp +++ /dev/null @@ -1,44 +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:15 $ */ - -#include "commonj/sdo/PropertyDefinition.h" -namespace commonj -{ - namespace sdo - { - PropertyDefinition::PropertyDefinition() - : isMany(false), - isContainment(true), - isReadOnly(false), - isElement(false), - isReference(false), - isQName(false), - isID(false), - isIDREF(false), - isSubstitute(false) - - { - } - - PropertyDefinition::~PropertyDefinition() - { - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.h deleted file mode 100644 index e82a17da70..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyDefinition.h +++ /dev/null @@ -1,88 +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:15 $ */ - -#ifndef _PROPERTYDEFINITION_H_ -#define _PROPERTYDEFINITION_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SDOXMLString.h" -#include -using namespace std; - - - -namespace commonj -{ - namespace sdo - { - - -/** - * PropertyDefinition holds a property as defined by an XSD. - * The XSD holds more information than does the SDO Property. - * This class holds the extra information found as the XSD is - * parsed. - */ - class PropertyDefinition - { - - public: - PropertyDefinition(); - virtual ~PropertyDefinition(); - - // where this property is to be substituted for another - SDOXMLString substituteName; - SDOXMLString substituteUri; - - // where there are substitute names for this property. - std::vector substituteNames; - std::vector substituteLocalNames; - - SDOXMLString aliases; - - SDOXMLString name; - SDOXMLString localname; - - SDOXMLString typeUri; - SDOXMLString typeName; - SDOXMLString fullTypeName; - - SDOXMLString fullLocalTypeName; - - SDOXMLString defaultValue; - - bool isMany; - bool isContainment; - bool isReadOnly; - - bool isID; - bool isIDREF; - bool isReference; - bool isElement; - - bool isQName; - - bool isSubstitute; - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_PROPERTYDEFINITION_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.cpp deleted file mode 100644 index b549711217..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.cpp +++ /dev/null @@ -1,536 +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: 2006/01/23 09:19:14 $ */ - -#include -using namespace std; - -#ifndef SDO_EXPORTS -#define SDO_EXPORTS -#endif -#include "commonj/sdo/export.h" - - -#include "commonj/sdo/Sequence.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/TypeList.h" - -#include "commonj/sdo/Type.h" -#include "commonj/sdo/TypeImpl.h" -#include "commonj/sdo/Property.h" -#include "commonj/sdo/PropertyImpl.h" -#include "commonj/sdo/DataFactoryImpl.h" -#include "commonj/sdo/SDORuntimeException.h" - -namespace commonj{ -namespace sdo{ - - - Substitution::Substitution() - { - name = 0; - type = 0; - } - - Substitution::Substitution(DataFactoryPtr mdg, const char* inname, - const Type& intype) - { - DataFactory* f = (DataFactory*)mdg; - - - if (inname != 0) - { - name = new char[strlen(inname) + 1]; - strcpy(name,inname); - } - else - { - name = 0; - } - - type = ((DataFactoryImpl*)f)->findType(intype.getURI(),intype.getName()); - } - - Substitution::Substitution(const Substitution& s) - { - type = s.type; - if (s.name != 0) - { - name = new char[strlen(s.name)+1]; - strcpy(name,s.name); - } - else - { - name = 0; - } - } - - Substitution::~Substitution() - { - if (name != 0) delete (char*)name; - } - - - /////////////////////////////////////////////////////////////////////////// - // construction by DAS - /////////////////////////////////////////////////////////////////////////// - - PropertyImpl::PropertyImpl( const Type& cont, - const char* inname, - const TypeImpl& intype, - bool many , - bool ro , - bool contain) : containertype(cont), type (intype) - { - name = new char[strlen(inname)+1]; - strcpy(name,inname); - defvalue = 0; - defvaluelength = 0; - opposite = 0; - stringdef = 0; - bisMany = many; - bisReadOnly = ro; - bisContainer = contain; - bDefaulted=false; - if (contain == false && intype.isDataObjectType()) - { - bisReference = true; - } - else - { - bisReference = false; - } - } - - - PropertyImpl::PropertyImpl(const PropertyImpl& p) : - type((*(p.getTypeImpl()))), - containertype (p.getContainingType()) - - - { - name = new char[strlen(p.getName())+1]; - strcpy(name,p.getName()); - defvalue = 0; - defvaluelength = 0; - stringdef = 0; - opposite = 0; - bisMany = p.bisMany; - bisReadOnly = p.bisReadOnly; - bisContainer = p.bisContainer; - bDefaulted=false; - if (bisContainer == false && type.isDataObjectType()) - { - bisReference = true; - } - else - { - bisReference = false; - } - } - - - PropertyImpl::~PropertyImpl() - { - if (name != 0) delete (char*)name; - if (defvalue != 0) delete (char*)defvalue; - if (stringdef != 0) delete stringdef; - for (int i = 0; i < aliases.size();i++) - { - delete ((char*)aliases[i]); - } - - } - - /////////////////////////////////////////////////////////////////////////// - // Setting of attributes by DAS - /////////////////////////////////////////////////////////////////////////// - - void PropertyImpl::setMany(bool many) - { - bisMany = many; - } - - void PropertyImpl::setReadOnly(bool readonly) - { - bisReadOnly = readonly; - } - - void PropertyImpl::setContainment(bool contains) - { - if (contains == true && type.isDataType()) - { - return; - } - bisContainer = contains; - if (bisContainer == false && type.isDataObjectType()) - { - bisReference = true; - } - else - { - bisReference = false; - } - } - - - /////////////////////////////////////////////////////////////////////////// - // Setting of defaults by DAS - /////////////////////////////////////////////////////////////////////////// - - void PropertyImpl::setDefault(bool b ) - { - setDefaultBoolean(b); - } - - void PropertyImpl::setDefault(char c ) - { - setDefaultByte(c); - } - - void PropertyImpl::setDefault(wchar_t c ) - { - setDefaultCharacter(c); - } - void PropertyImpl::setDefault(char* c ) - { - setDefaultCString(c); - } - void PropertyImpl::setDefault(short s ) - { - setDefaultShort(s); - } - void PropertyImpl::setDefault(long i ) - { - setDefaultInteger(i); - } - void PropertyImpl::setDefault(int64_t i ) - { - setDefaultLong(i); - } - void PropertyImpl::setDefault(float f ) - { - setDefaultFloat(f); - } - void PropertyImpl::setDefault(long double d ) - { - setDefaultDouble(d); - } - void PropertyImpl::setDefault(const SDODate d ) - { - setDefaultDate(d); - } - void PropertyImpl::setDefault(const char* c , unsigned int len) - { - setDefaultBytes(c, len); - } - - void PropertyImpl::setDefault(const wchar_t* c, unsigned int len ) - { - setDefaultString(c, len); - } - - /////////////////////////////////////////////////////////////////////////// - // Substitution groups. - /////////////////////////////////////////////////////////////////////////// - const Type* PropertyImpl::getSubstitutionType(const char* inname) const - { - for (int i=0;iconvertToCString(defvalue, &(p->stringdef), defvaluelength); - } - bool PropertyImpl::getBooleanDefault() const - { - return getTypeImpl()->convertToBoolean(defvalue,defvaluelength); - } - char PropertyImpl::getByteDefault() const - { - return getTypeImpl()->convertToByte(defvalue,defvaluelength); - } - wchar_t PropertyImpl::getCharacterDefault() const - { - return getTypeImpl()->convertToCharacter(defvalue,defvaluelength); - } - short PropertyImpl::getShortDefault() const - { - return getTypeImpl()->convertToShort(defvalue,defvaluelength); - } - long PropertyImpl::getIntegerDefault() const - { - return getTypeImpl()->convertToInteger(defvalue,defvaluelength); - } - int64_t PropertyImpl::getLongDefault() const - { - return getTypeImpl()->convertToLong(defvalue,defvaluelength); - } - float PropertyImpl::getFloatDefault() const - { - return getTypeImpl()->convertToFloat(defvalue,defvaluelength); - } - long double PropertyImpl::getDoubleDefault() const - { - return getTypeImpl()->convertToDouble(defvalue,defvaluelength); - } - const SDODate PropertyImpl::getDateDefault() const - { - return getTypeImpl()->convertToDate(defvalue,defvaluelength); - } - unsigned int PropertyImpl::getStringDefault(wchar_t* val, unsigned int max) const - { - if (val == 0 || max == 0) return defvaluelength; - return getTypeImpl()->convertToString(defvalue, val, defvaluelength, max); - - } - unsigned int PropertyImpl::getBytesDefault(char* val, unsigned int max) const - { - if (val == 0 || max == 0) return defvaluelength; - return getTypeImpl()->convertToBytes(defvalue, val, defvaluelength, max); - } - - unsigned int PropertyImpl::getDefaultLength() const - { - return defvaluelength; - } - - /////////////////////////////////////////////////////////////////////////// - // sets the default value by type - /////////////////////////////////////////////////////////////////////////// - - void PropertyImpl::setDefaultCString(const char* s) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convert(&defvalue,s); - } - void PropertyImpl::setDefaultString( const wchar_t* c , unsigned int len ) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convert(&defvalue,c, len); - } - void PropertyImpl::setDefaultBytes( const char* c , unsigned int len ) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convert(&defvalue,c, len); - } - void PropertyImpl::setDefaultBoolean( const bool b ) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convert(&defvalue,b); - } - void PropertyImpl::setDefaultByte( const char c ) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convert(&defvalue,c); - } - void PropertyImpl::setDefaultCharacter( const wchar_t c) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convert(&defvalue,c); - } - void PropertyImpl::setDefaultShort( const short s ) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convert(&defvalue,s); - } - void PropertyImpl::setDefaultInteger( const long i ) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convert(&defvalue,i); - } - void PropertyImpl::setDefaultLong(const int64_t l) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convert(&defvalue,l); - } - void PropertyImpl::setDefaultFloat( const float f ) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convert(&defvalue,f); - } - void PropertyImpl::setDefaultDouble( const long double d ) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convert(&defvalue,d); - } - void PropertyImpl::setDefaultDate( const SDODate d ) - { - bDefaulted=true; - defvaluelength = getTypeImpl()->convertDate(&defvalue,d); - } - - /////////////////////////////////////////////////////////////////////////// - // Returns true if values for this Property cannot be modified using the SDO APIs. - // When true, DataObject.set(Property property, Object value) throws an exception. - // Values may change due to other factors, such as services operating on DataObjects. - /////////////////////////////////////////////////////////////////////////// - bool PropertyImpl::isReadOnly() const - { - return bisReadOnly; - } - -}; -}; - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.h deleted file mode 100644 index d40fa58690..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyImpl.h +++ /dev/null @@ -1,277 +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:15 $ */ - -#ifndef _PROPERTYIMPL_H_ -#define _PROPERTYIMPL_H_ - -#include "commonj/sdo/disable_warn.h" - -#include -using namespace std; - -#include "commonj/sdo/DASProperty.h" -#include "commonj/sdo/SDODate.h" -#include "commonj/sdo/DataFactory.h" - -namespace commonj{ -namespace sdo{ - -class Type; -class TypeImpl; -class DataObject; - -/** - * A substitution is a class which permits a property to be a substitute for - * another one. - * A substitution is a definition of a type which is allowed to be placed in the - * data object in place of a property of another type. - */ - - -class Substitution -{ -public: - Substitution(); - Substitution(DataFactoryPtr mdg, const char* inname, - const Type& intype); - Substitution(const Substitution& s); - virtual ~Substitution(); - const Type* type; - char* name; -}; - -/** PropertyImpl implements the abstract class Property. - * - * A representation of a property in the type of a data object. - */ - -class PropertyImpl :public DASProperty -{ - public: - - - /////////////////////////////////////////////////////////////////////////// - // Construction for the DAS - /////////////////////////////////////////////////////////////////////////// - - SDO_API PropertyImpl( - const Type& cont, - const char* name, - const TypeImpl& type, - bool many = false, - bool ro = false, - bool contain = false); - - - - virtual SDO_API ~PropertyImpl(); - - /** - * A Data access service may set the features of this property instead of - * passing them as construction parameters. - */ - - virtual SDO_API void setMany(bool many ); - - /** - * A Data access service may set the features of this property instead of - * passing them as construction parameters. - */ - virtual SDO_API void setReadOnly(bool rdonly); - - /** - * A Data access service may set the features of this property instead of - * passing them as construction parameters. - */ - virtual SDO_API void setContainment(bool contains); - - /** - * A Data access service may set the features of this property instead of - * passing them as construction parameters. - */ - - virtual SDO_API bool isDefaulted() const; - - /** - * A Data access service sets the default value. - */ - - virtual SDO_API void setDefault(bool b ); - virtual SDO_API void setDefault(char c); - virtual SDO_API void setDefault(wchar_t c); - virtual SDO_API void setDefault(char* c); - virtual SDO_API void setDefault(short s); - virtual SDO_API void setDefault(long l); - virtual SDO_API void setDefault(int64_t i); - virtual SDO_API void setDefault(float f); - virtual SDO_API void setDefault(long double d); - virtual SDO_API void setDefault(const SDODate d); - virtual SDO_API void setDefault(const wchar_t* c, unsigned int len); - virtual SDO_API void setDefault(const char* c, unsigned int len); - - - - - - /** - * Returns the name of the property. - */ - - virtual const SDO_API char* getName() const; - - /** getAlias returns the n'th alias - * - * This method returns a const char* corresponding to the - * alias at index n of the list of aliases. Use getAliasCount to - * discover the size of the list. - */ - - virtual const char* getAlias(unsigned int index = 0) const ; - virtual unsigned int getAliasCount() const ; - virtual void setAlias(const char* alias) ; - - /** - * - * SubstitutionGroup support. - */ - - virtual const Type* getSubstitutionType(const char* name) const ; - virtual unsigned int getSubstitutionCount(void) const ; - virtual const Type* getSubstitutionType(unsigned int index) const ; - virtual const char* getSubstitutionName(unsigned int index) const ; - virtual void setSubstitution(DataFactoryPtr mdg, const char* alias, - const Type& substype) ; - - - /** getType returns the type of this property - * - * This method returns the type, which may be a DataType or a - * DataObjectType - */ - - virtual SDO_API const Type& getType() const; - - virtual SDO_API const Type::Types getTypeEnum() const; - - virtual SDO_API const TypeImpl* getTypeImpl() const; - - /** - * Returns whether the property is many-valued. - */ - virtual bool SDO_API isMany() const; - - /** - * Returns whether the property is containment. - */ - virtual bool SDO_API isContainment() const; - - /** - * Returns whether the property is a reference. - */ - virtual bool SDO_API isReference() const; - - /** - * Returns the containing type of this property. - */ - virtual SDO_API const Type& getContainingType() const; - - /** - * returns the opposite property, or zero if there is none - */ - virtual SDO_API const Property* getOpposite() const; - - virtual void setOpposite(const Property* opp); - - - /** - * setters for type primitive types and 'an object' - */ - - SDO_API void setDefaultCString( const char* s); - SDO_API void setDefaultString( const wchar_t* c , unsigned int len ); - SDO_API void setDefaultBytes( const char* c , unsigned int len ); - SDO_API void setDefaultBoolean( const bool b ); - SDO_API void setDefaultByte( const char c ); - SDO_API void setDefaultCharacter( const wchar_t c); - SDO_API void setDefaultShort( const short s ); - SDO_API void setDefaultInteger( const long i ); - SDO_API void setDefaultLong(const int64_t l); - SDO_API void setDefaultFloat( const float f ); - SDO_API void setDefaultDouble( const long double d ); - SDO_API void setDefaultDate( const SDODate d ); - - SDO_API const char* getCStringDefault() const; - SDO_API unsigned int getStringDefault(wchar_t* val, unsigned int max) const; - SDO_API unsigned int getBytesDefault(char* val, unsigned int max) const; - SDO_API bool getBooleanDefault() const; - SDO_API char getByteDefault() const; - SDO_API wchar_t getCharacterDefault() const; - SDO_API short getShortDefault() const; - SDO_API long getIntegerDefault() const; - SDO_API int64_t getLongDefault() const; - SDO_API float getFloatDefault() const; - SDO_API long double getDoubleDefault() const; - SDO_API const SDODate getDateDefault() const; - SDO_API unsigned int getDefaultLength() const; - - /** - * Returns true if values for this Property cannot be modified using the SDO APIs. - * When true, DataObject.set(Property property, Object value) throws an exception. - * Values may change due to other factors, such as services operating on DataObjects. - */ - virtual bool SDO_API isReadOnly() const; - - SDO_API PropertyImpl(const PropertyImpl& p); - - private: - - // clear the default value - void deleteValue(); - - bool bisReadOnly; - bool bisContainer; - bool bisReference; - bool bisMany; - - bool bDefaulted; - - const TypeImpl& type; - const Type& containertype; - const Property* opposite; - char* name; - char* stringdef; - - void* defvalue; - // in the event of a bytes and string, this holds the length - unsigned int defvaluelength; - - // alias support - std::vector aliases; - - std::vector substitutions; - - typedef std::list REFEREE_LIST; - REFEREE_LIST references; - - -}; -}; -}; - -#endif //_PROPERTYIMPL_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.cpp deleted file mode 100644 index 5da678f10b..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.cpp +++ /dev/null @@ -1,93 +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:15 $ */ - -#ifndef SDO_EXPORTS - #define SDO_EXPORTS -#endif - -#include "commonj/sdo/export.h" -#include -#include "commonj/sdo/Property.h" -#include "commonj/sdo/PropertyImpl.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/PropertyList.h" - -#include "commonj/sdo/Logger.h" - -namespace commonj{ -namespace sdo { - -class Property; - -SDO_API PropertyList::PropertyList(PROPERTY_LIST p) -{ - PROPERTY_LIST::iterator i; - for (i = p.begin(); i != p.end(); ++i) - { - plist.insert(plist.end(),(PropertyImpl*)(*i)); - } -} - -SDO_API PropertyList::PropertyList(PROPERTY_VECTOR p) -{ - plist = PROPERTY_VECTOR(p); -} - -SDO_API PropertyList::PropertyList(const PropertyList &pin) -{ - plist = PROPERTY_VECTOR(pin.getVec()); -} - -SDO_API PropertyList::PropertyList() -{ -} - -SDO_API PropertyList::~PropertyList() -{ -} - -SDO_API Property& PropertyList::operator[] (int pos) -{ - return *(plist[pos]); -} - -SDO_API const Property& PropertyList::operator[] (int pos) const -{ - return *(plist[pos]); -} - -SDO_API int PropertyList::size () -{ - return plist.size(); -} - -SDO_API void PropertyList::insert(const Property& p) -{ - PropertyImpl* pi = (PropertyImpl*)&p; - plist.insert(plist.end(),new PropertyImpl(*pi)); -} - -PROPERTY_VECTOR PropertyList::getVec() const -{ - return plist; -} - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.h deleted file mode 100644 index 61146f18db..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertyList.h +++ /dev/null @@ -1,87 +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:15 $ */ - -#ifndef _PROPERTYLIST_H_ -#define _PROPERTYLIST_H_ - - -#include "commonj/sdo/export.h" - -#include -#include - - - - -namespace commonj{ -namespace sdo{ - - class PropertyImpl; - class Property; - typedef std::vector PROPERTY_VECTOR; -#ifndef PROPERTY_LIST - typedef std::list PROPERTY_LIST; -#endif - -/** - * This class provides for iteration over a collection of Properties - */ - -class PropertyList -{ -private: - PROPERTY_VECTOR plist; - PROPERTY_VECTOR getVec() const; -public: - SDO_API PropertyList(PROPERTY_VECTOR p); - SDO_API PropertyList(PROPERTY_LIST p); - SDO_API PropertyList(const PropertyList &pin); - SDO_API PropertyList(); - virtual SDO_API ~PropertyList(); - - /** [] - * - * Operator to allow reference to an element of the list. - * There are separate versions for const and variable lists - */ - - SDO_API Property& operator[] (int pos); - SDO_API const Property& operator[] (int pos) const; - - /** size gives the number of elements. - * - * size() returns the number of elements in the list. - */ - - SDO_API int size (); - - /** insert adds an element to the list - * - * insert appends an item to the list. This is not - * of any use to a client application, as these lists - * are always supplied by the library, and are const. - */ - - SDO_API void insert (const Property& p); -}; -}; -}; - - -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.cpp deleted file mode 100644 index ee73d81d28..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.cpp +++ /dev/null @@ -1,42 +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:15 $ */ - -#include "commonj/sdo/PropertySetting.h" -namespace commonj -{ - namespace sdo - { - PropertySetting::PropertySetting() - : dataObject(NULL), isNULL(false), isIDREF(false) - - { - } - - PropertySetting::PropertySetting(DataObjectPtr dataObj, const SDOXMLString& propertyName, - bool isNull, bool IDREF) - : dataObject(dataObj), name(propertyName), isNULL(isNull),isIDREF(IDREF) - { - } - - PropertySetting::~PropertySetting() - { - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.h deleted file mode 100644 index dfce988475..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/PropertySetting.h +++ /dev/null @@ -1,60 +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:15 $ */ - -#ifndef _PROPERTYSETTING_H_ -#define _PROPERTYSETTING_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SDOXMLString.h" -#include "commonj/sdo/DataObject.h" - - -namespace commonj -{ - namespace sdo - { - -/** - * PropertySetting holds some information about properties as - * they are read by the parser, for subsequent creation - */ - class PropertySetting - { - - public: - PropertySetting(); - PropertySetting(DataObjectPtr dataObj, - const SDOXMLString& propertyName, - bool isNull=false, - bool isIDREF=false); - virtual ~PropertySetting(); - - SDOXMLString name; - SDOXMLString value; - DataObjectPtr dataObject; - bool isIDREF; - bool isNULL; - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_PROPERTYSETTING_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.cpp deleted file mode 100644 index 3c27a4b2bd..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.cpp +++ /dev/null @@ -1,74 +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:15 $ */ - -#include "commonj/sdo/RefCountingObject.h" -#include "commonj/sdo/Logging.h" - -#include -using namespace std; - -namespace commonj{ -namespace sdo{ - -long RefCountingObject::allObs = 0; - -RefCountingObject::RefCountingObject() -: refCount(0) -{ - LOGINFO_2(HIGHVOLUME,"RCO:CREATE:%p Count:%ld",this, ++allObs); -} - -RefCountingObject::RefCountingObject(const RefCountingObject& rc) -: refCount(0) -{ - LOGINFO_2(HIGHVOLUME,"RCO:COPCON:%p Count:%ld",this,++allObs); -} - -RefCountingObject& RefCountingObject::operator=(const RefCountingObject& rc) -{ - return *this; -} - -RefCountingObject::~RefCountingObject() -{ - LOGINFO_2(HIGHVOLUME,"RCO:DELETE:%p Count:%ld",this, --allObs); - // - //if (allObs < 0) - // LOGINFO(HIGHVOLUME,"RCO:More objects deleted than created"); - //if (allObs == 0) - // LOGINFO(HIGHVOLUME,"RCO: All data objects deleted");; -} - -void RefCountingObject::addRef() - -{ - - ++refCount; - LOGINFO_2(HIGHVOLUME,"RCO:ADDREF:%p:%ld",this,refCount); -} - -void RefCountingObject::releaseRef() -{ - LOGINFO_2(HIGHVOLUME,"RCO:DECREF:%p:%ld",this,refCount-1); - if (--refCount == 0) delete this; -} - - -}; -}; diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.h deleted file mode 100644 index 2d5724a8f5..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingObject.h +++ /dev/null @@ -1,59 +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:15 $ */ - -#ifndef _REFCOUNTINGOBJECT_H -#define _REFCOUNTINGOBJECT_H - - -#include "commonj/sdo/export.h" - - -namespace commonj { - namespace sdo { - -/** - * RefcountingObject is the base class for all objects in SDO - * These objects keep a count of references to themselves, then - * free themselves when they are unused. - */ - class RefCountingObject - { - public: - SDO_API RefCountingObject(); - SDO_API RefCountingObject(const RefCountingObject& rc); - SDO_API RefCountingObject& operator=(const RefCountingObject& rc); - SDO_API virtual ~RefCountingObject() = 0; -/** - * Add to the reference count - a new pointer has been created. - */ - SDO_API void addRef(); -/** - * Subtract from the the reference count - a reference has dropped. - */ - SDO_API void releaseRef(); - - private: - unsigned int refCount; - static long allObs; - }; - - }; -}; - -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.cpp deleted file mode 100644 index a9dabd10b4..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.cpp +++ /dev/null @@ -1,153 +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:15 $ */ - -#include "commonj/sdo/RefCountingPointer.h" -#include "commonj/sdo/DataFactory.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/DataGraph.h" -#include "commonj/sdo/ChangeSummary.h" -#include "commonj/sdo/XMLDocument.h" -#include "commonj/sdo/XSDHelper.h" -#include "commonj/sdo/XMLHelper.h" - -namespace commonj{ - namespace sdo{ - - // officially, there is nothing here- but if I dont use the overrides in - // the templates, then they dont get generated. - void Test () - { - -#if defined(WIN32) || defined (_WINDOWS) - /* 1) construct */ - DataFactoryPtr fptr = DataFactory::getDataFactory(); - - /* 2) use the & operator= */ - fptr = DataFactory::getDataFactory(); - - /* 3) copy */ - DataFactoryPtr fptr2 = fptr; - - /* 4) use the == and ! */ - if (fptr2 == fptr || !fptr){} - - /* 5) Use the T* and * */ - DataFactory* dmsf = fptr; - DataFactory& dmsr = *fptr; - - /* 1) construct */ - DataFactoryPtr dfptr(fptr); - - /* 3) copy */ - DataFactoryPtr dfptr2 = dfptr; - - /* 2) use the & operator= */ - dfptr = dfptr2; - - /* 4) use the == and ! */ - if (dfptr2 == dfptr || !dfptr){} - - /* 5) Use the T* and * */ - DataFactory* ddmsf = dfptr; - DataFactory& ddmsr = *dfptr; - - /* 6) Use the -> */ - DataObjectPtr dptr = dfptr->create("nothing","nowhere"); - - /* and agin to catch the = */ - dptr = fptr->create("nothing","nowhere"); - - DataObjectPtr dptr2 = dptr; - - /* Use the T* and * */ - DataObject* dof = dptr; - DataObject& dor = *dptr; - - if (dptr2 == dptr || !dptr){} - - - ChangeSummaryPtr cptr = dptr->getChangeSummary(); - cptr = dptr->getChangeSummary(); - ChangeSummaryPtr cptr2 = cptr; - - ChangeSummary* cof = cptr; - ChangeSummary& cop = *cptr; - - - if (cptr2 == cptr || !cptr){} - - cptr->endLogging(); - - SequencePtr sptr = dptr->getSequence(); - sptr = dptr->getSequence(); - SequencePtr sptr2 = sptr; - - Sequence* sof = sptr; - Sequence& sop = *sptr; - - - if (sptr2 == sptr || !sptr){} - - sptr->getBooleanValue(0); - - - // Generate code for XMLDocumentPtr - XMLDocumentPtr xmldocptr1 = 0; - XMLDocumentPtr xmldocptr2 = xmldocptr1; - xmldocptr1 = xmldocptr2; - if (xmldocptr2 == xmldocptr1 || !xmldocptr1){} - XMLDocument* xmldocp = xmldocptr1; - XMLDocument& xmldocref = *xmldocptr2; - xmldocptr1->getEncoding(); - - // Generate code for XSDHelperPtr - XSDHelperPtr xsdhptr1 = 0; - XSDHelperPtr xsdhptr2 = xsdhptr1; - xsdhptr1 = xsdhptr2; - if (xsdhptr2 == xsdhptr1 || !xsdhptr1){} - XSDHelper* xsdhp = xsdhptr1; - XSDHelper& xsdhref = *xsdhptr2; - xsdhptr1->define("dummy"); - - // Generate code for XMLHelperPtr - XMLHelperPtr xmlhptr1 = 0; - XMLHelperPtr xmlhptr2 = xmlhptr1; - xmlhptr1 = xmlhptr2; - if (xmlhptr2 == xmlhptr1 || !xmlhptr1){} - XMLHelper* xmlhp = xmlhptr1; - XMLHelper& xmlhref = *xmlhptr2; - xmlhptr1->load("dummy"); - - // Generate code for DataGraphPtr - DataGraphPtr dgptr1 = 0; - DataGraphPtr dgptr2 = dgptr1; - dgptr1 = dgptr2; - if (dgptr2 == dgptr1 || !dgptr1){} - DataGraph* dghp = dgptr1; - DataGraph& dgref = *dgptr2; - dgptr1->getRootObject(); - -#endif - - } - }; -}; - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.h deleted file mode 100644 index b5b97d9c04..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/RefCountingPointer.h +++ /dev/null @@ -1,179 +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:15 $ */ - -#ifndef _REFCOUNTINGPOINTER_H -#define _REFCOUNTINGPOINTER_H - - -#include "commonj/sdo/export.h" - -#include -using namespace std; - -namespace commonj{ -namespace sdo{ - -/** - * RefcountingPointer is a template for all SDO pointers. - * The ref count increases with each use, and drops when one of these - * goes out of scope. - * Refcounting pointers are a lot like smart pointers, however in this - * implementation there is a cast method to a void*, so unlike real - * smart pointers, a user might call "delete mypointer", which would - * compile, but cause a crash. - * RefCountingPointers do not need to be deleted. - */ - -template -class RefCountingPointer { - public: - SDO_API RefCountingPointer(T* realPtr = 0); - SDO_API RefCountingPointer(const RefCountingPointer& rhs); - SDO_API ~RefCountingPointer(); - SDO_API RefCountingPointer& operator=(const RefCountingPointer& rhs); - SDO_API bool operator==(RefCountingPointer& test) const; - SDO_API T* operator->() const; - SDO_API T& operator*() const; - SDO_API bool operator!() const; - -#ifdef MFT - // MFT == member function templates - // Notes on the items below. - // In our code, we use subclasses to expose the API, and super - // classes to implement. E,g DataObject and DataObjectImpl. - // In some cases, we know that the DataObject given to us is a - // DataObjectImpl, and cast it. With RefCountingPointers, however, - // the cast cannot work, as the RefCountingPointer to the superclass - // is not related to the RCP to the subclass. Recent changes in the - // C++ language allow this to work by defining an operator which - // causes a pointer of the other type to be returned, as long as pointee - // is acceptable as a parameter to the cosntructor of the other type - // of pointer. This works in C++.NET, but not in C++6: - operator RefCountingPointer() - { - return RefCountingPointer(pointee); - } - - // Since we are using C6, a possible workround is to provide a method - // which returns the dumb pointer, then construct a pointer to the - // base class from the pointer returned. This is that the operator T* does. - // The code in DataObject could be simpler if we used C7,and we should - // discusss changing. -#else - operator T*() {return pointee;} -#endif - - template - operator RefCountingPointer() - { - return RefCountingPointer(pointee); - } - - private: - T *pointee; - void init(); -}; - - - -template -void RefCountingPointer::init() -{ - if (pointee == 0) return; - pointee->addRef(); -} - -template -SDO_API RefCountingPointer::RefCountingPointer(T* realPtr) -:pointee(realPtr) -{ - init(); -} - -template -SDO_API RefCountingPointer::RefCountingPointer(const RefCountingPointer& rhs) -: pointee(rhs.pointee) -{ - init(); -} - -template -SDO_API RefCountingPointer::~RefCountingPointer() -{ - if (pointee)pointee->releaseRef(); -} - -template -SDO_API RefCountingPointer& RefCountingPointer::operator=(const RefCountingPointer& rhs) -{ - if (pointee != rhs.pointee) - { - T *oldP = pointee; - pointee = rhs.pointee; - init(); - if (oldP) oldP->releaseRef(); - } - return *this; -} - -template -SDO_API bool RefCountingPointer::operator!() const -{ - return (pointee == 0); -} - -template -SDO_API bool RefCountingPointer::operator==(RefCountingPointer& test) const -{ - return (pointee == test.pointee); -} - -template -SDO_API T* RefCountingPointer::operator->() const -{ - return pointee; -} - -template -SDO_API T& RefCountingPointer::operator*() const -{ - return *pointee; -} - -class DataObject; -typedef RefCountingPointer DataObjectPtr; -class DataGraph; -typedef RefCountingPointer DataGraphPtr; -class DataFactory; -typedef RefCountingPointer DataFactoryPtr; -class Sequence; -typedef Sequence* SequencePtr; -class ChangeSummary; -typedef ChangeSummary* ChangeSummaryPtr; -class XMLDocument; -typedef RefCountingPointer XMLDocumentPtr; -class XSDHelper; -typedef RefCountingPointer XSDHelperPtr; -class XMLHelper; -typedef RefCountingPointer XMLHelperPtr; - -}; -}; - -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.cpp deleted file mode 100644 index 921b13fe02..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.cpp +++ /dev/null @@ -1,49 +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:15 $ */ - -#include "commonj/sdo/SAX2Attribute.h" - - -namespace commonj -{ - namespace sdo - { - -/** - * SAX2Attribute holds an attribute supplied by the SAX2 parser. - */ - SAX2Attribute::SAX2Attribute() - { - } - - SAX2Attribute::SAX2Attribute(const xmlChar **attribute) // localname/prefix/URI/value/end - { - name = attribute[0]; - prefix = attribute[1]; - uri = attribute[2]; - value = SDOXMLString(attribute[3],0, (int)(attribute[4] - attribute[3])); - } - - SAX2Attribute::~SAX2Attribute() - { - } - - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.h deleted file mode 100644 index a8657ab6ef..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attribute.h +++ /dev/null @@ -1,64 +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:15 $ */ - -#ifndef _SAX2ATTRIBUTE_H_ -#define _SAX2ATTRIBUTE_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SDOXMLString.h" - -namespace commonj -{ - namespace sdo - { - -/** - * SAX2Attribute holds an attribute supplied by the SAX2 parser. - */ - - class SAX2Attribute - { - - public: - - SAX2Attribute(); - SAX2Attribute(const xmlChar **attribute); - - virtual ~SAX2Attribute(); - - const SDOXMLString& getName() const {return name;} - const SDOXMLString& getPrefix() const {return prefix;} - const SDOXMLString& getUri() const {return uri;} - const SDOXMLString& getValue() const {return value;} - - - private: - SDOXMLString name; - SDOXMLString prefix; - SDOXMLString uri; - SDOXMLString value; - - - - }; - } // End - namespace sdo -} // End - namespace commonj - -#endif //_SAX2ATTRIBUTE_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.cpp deleted file mode 100644 index 8d7ea19349..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.cpp +++ /dev/null @@ -1,92 +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:15 $ */ - -#include "commonj/sdo/SAX2Attributes.h" - -namespace commonj -{ - namespace sdo - { - -/** - * SAX2Attributes holds a list of attributes supplied by the SAX2 parser. - */ - SAX2Attributes::SAX2Attributes( - int nb_attributes, - int nb_defaulted, - const xmlChar **attrs) // localname/prefix/URI/value/end - { - for (int i=0; i < nb_attributes*5; i+=5) - { - attributes.insert(attributes.end(), SAX2Attribute(&attrs[i])); - } - } - - SAX2Attributes::~SAX2Attributes() - { - } - - const SAX2Attribute& SAX2Attributes::operator[] (int pos) const - { - return attributes[pos]; - } - - int SAX2Attributes::size () const - { - return attributes.size(); - } - - - const SDOXMLString SAX2Attributes::nullValue; - - const SDOXMLString& SAX2Attributes::getValue( - const SDOXMLString& attributeUri, - const SDOXMLString& attributeName) const - { - for (int i=0; i < attributes.size(); i++) - { - if (attributes[i].getUri().equalsIgnoreCase(attributeUri)) - { - if (attributes[i].getName().equalsIgnoreCase(attributeName)) - { - return attributes[i].getValue(); - } - } - } - - return nullValue; - } - - const SDOXMLString& SAX2Attributes::getValue( - const SDOXMLString& attributeName) const - { - for (int i=0; i < attributes.size(); i++) - { - if (attributes[i].getName().equalsIgnoreCase(attributeName)) - { - return attributes[i].getValue(); - } - } - - return nullValue; - } - - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.h deleted file mode 100644 index df32bada2a..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Attributes.h +++ /dev/null @@ -1,72 +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:15 $ */ - -#ifndef _SAX2ATTRIBUTES_H_ -#define _SAX2ATTRIBUTES_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SAX2Attribute.h" - -#include "vector" - - -namespace commonj -{ - namespace sdo - { - -/** - * SAX2Attributes holds a list of attributes supplied by the SAX2 parser. - */ - class SAX2Attributes - { - - public: - - SAX2Attributes( - int nb_attributes, - int nb_defaulted, - const xmlChar **attributes); - - virtual ~SAX2Attributes(); - - const SAX2Attribute& operator[] (int pos) const; - int size() const; - - const SDOXMLString& getValue( - const SDOXMLString& attributeUri, - const SDOXMLString& attributeName) const; - - const SDOXMLString& getValue( - const SDOXMLString& attributeName) const; - - private: - typedef std::vector ATTRIBUTE_LIST; - ATTRIBUTE_LIST attributes; - - static const SDOXMLString nullValue; - - - - }; - } // End - namespace sdo -} // End - namespace commonj - -#endif //_SAX2ATTRIBUTES_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.cpp deleted file mode 100644 index ae99c4949e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.cpp +++ /dev/null @@ -1,93 +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:15 $ */ - -#include "commonj/sdo/SAX2Namespaces.h" - - -namespace commonj -{ - namespace sdo - { - - SAX2Namespaces::SAX2Namespaces() - { - } - - SAX2Namespaces::SAX2Namespaces(int nb_namespaces, const xmlChar** namespaces) - { - for (int i=0; isecond); - - } - - const SDOXMLString* SAX2Namespaces::findPrefix(const SDOXMLString& uri) const - { - NAMESPACE_MAP::const_iterator nsIter; - for (nsIter = namespaceMap.begin(); nsIter != namespaceMap.end(); nsIter++) - { - if (nsIter->second.equals(uri)) - return &(nsIter->first); - } - return 0; - } - - void SAX2Namespaces::merge(const SAX2Namespaces& inspaces) - { - NAMESPACE_MAP::const_iterator nsIter; - for (nsIter = inspaces.namespaceMap.begin(); - nsIter != inspaces.namespaceMap.end(); nsIter++) - { - // add will not overwrite if it already exists - namespaceMap[nsIter->first] = nsIter->second; - } - return; - } - - - - void SAX2Namespaces::add(const SDOXMLString& prefix, const SDOXMLString& uri) - { - namespaceMap[prefix] = uri; - } - - void SAX2Namespaces::empty() - { - namespaceMap.empty(); - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.h deleted file mode 100644 index d100889544..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Namespaces.h +++ /dev/null @@ -1,67 +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:15 $ */ - -#ifndef _SAX2NAMESPACES_H_ -#define _SAX2NAMESPACES_H_ -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SDOXMLString.h" -#include "map" - - -namespace commonj -{ - namespace sdo - { - -/** - * SAX2Namespaces holds a list of namespaces supplied by the SAX2 parser. - */ - - class SAX2Namespaces - { - - public: - - SAX2Namespaces(); - - SAX2Namespaces(int nb_namespaces, const xmlChar** namespaces); - - virtual ~SAX2Namespaces(); - - void add(const SDOXMLString& prefix, const SDOXMLString& uri); - - void merge(const SAX2Namespaces& inspaces); - - const SDOXMLString* find(const SDOXMLString& prefix) const; - const SDOXMLString* findPrefix(const SDOXMLString& uri) const; - - void empty(); - - private: - typedef std::map NAMESPACE_MAP; - NAMESPACE_MAP namespaceMap; - - - - }; - } // End - namespace sdo -} // End - namespace commonj - -#endif //_SAX2NAMESPACES_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.cpp deleted file mode 100644 index 3a3dde3915..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.cpp +++ /dev/null @@ -1,415 +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:15 $ */ - -#include "commonj/sdo/SAX2Parser.h" -#include "libxml/SAX2.h" -#include "commonj/sdo/SDORuntimeException.h" -using namespace commonj::sdo; - -/** - * SAX2Parser holds the methods which will be called back. - * The implementation uses libxml, which provides callbacks for - * errors, warnings , elements etc. These methods correspond to thos - * callbacks. - * Callbacks from libxml to these C methods are converted into calls - * to the C++ equivalent (with some parameter manipulation - * In the callback methods the void* ctx is a pointer to 'this' SAX2Parser - */ - - - -int sdo_isStandalone(void *ctx) -{ - return 0; -} - - -int sdo_hasInternalSubset(void *ctx) -{ - return(0); -} - -int sdo_hasExternalSubset(void *ctx) -{ - return(0); -} - -void sdo_internalSubset(void *ctx, const xmlChar *name, - const xmlChar *ExternalID, const xmlChar *SystemID) -{ -} - - -void sdo_externalSubset(void *ctx, const xmlChar *name, - const xmlChar *ExternalID, const xmlChar *SystemID) -{ -} - -xmlParserInputPtr sdo_resolveEntity(void *ctx, const xmlChar *publicId, const xmlChar *systemId) -{ - return(NULL); -} - - -xmlEntityPtr sdo_getEntity(void *ctx, const xmlChar *name) -{ - return(NULL); -} - - -xmlEntityPtr sdo_getParameterEntity(void *ctx, const xmlChar *name) -{ - return(NULL); -} - - -void sdo_entityDecl(void *ctx, const xmlChar *name, int type, - const xmlChar *publicId, const xmlChar *systemId, xmlChar *content) -{ -} - - -void sdo_attributeDecl(void *ctx, const xmlChar * elem, - const xmlChar * name, int type, int def, - const xmlChar * defaultValue, xmlEnumerationPtr tree) -{ -} - -void sdo_elementDecl(void *ctx, const xmlChar *name, int type, - xmlElementContentPtr content) -{ -} - - -void sdo_notationDecl(void *ctx, const xmlChar *name, - const xmlChar *publicId, const xmlChar *systemId) -{ -} - -void sdo_unparsedEntityDecl(void *ctx, const xmlChar *name, - const xmlChar *publicId, const xmlChar *systemId, - const xmlChar *notationName) -{ -} - - -void sdo_setDocumentLocator(void *ctx, xmlSAXLocatorPtr loc) -{ -} - - -void sdo_startDocument(void *ctx) -{ - if (!((SAX2Parser*)ctx)->parserError) - ((SAX2Parser*)ctx)->startDocument(); -} - - -void sdo_endDocument(void *ctx) -{ - if (!((SAX2Parser*)ctx)->parserError) - ((SAX2Parser*)ctx)->endDocument(); -} - - -void sdo_startElement(void *ctx, const xmlChar *name, const xmlChar **atts) -{ - // ((SAX2Parser*)ctx)->startElement(name, atts); -} - - -void sdo_endElement(void *ctx, const xmlChar *name) -{ - // ((SAX2Parser*)ctx)->endElement(name); -} - - -void sdo_characters(void *ctx, const xmlChar *ch, int len) -{ - if (!((SAX2Parser*)ctx)->parserError) - ((SAX2Parser*)ctx)->characters(SDOXMLString(ch, 0, len)); -} - - -void sdo_reference(void *ctx, const xmlChar *name) -{ -} - - -void sdo_ignorableWhitespace(void *ctx, const xmlChar *ch, int len) -{ -} - - -void sdo_processingInstruction(void *ctx, const xmlChar *target, - const xmlChar *data) -{ -} - - -void sdo_cdataBlock(void *ctx, const xmlChar *value, int len) -{ -} - -void sdo_comment(void *ctx, const xmlChar *value) -{ -} - - -void sdo_warning(void *ctx, const char *msg, ...) -{ - va_list args; - va_start(args, msg); - ((SAX2Parser*)ctx)->warning(msg, args); - va_end(args); -} - -void sdo_error(void *ctx, const char *msg, ...) -{ - va_list args; - va_start(args, msg); - ((SAX2Parser*)ctx)->error(msg, args); - va_end(args); - - -} - -void sdo_fatalError(void *ctx, const char *msg, ...) -{ - va_list args; - va_start(args, msg); - ((SAX2Parser*)ctx)->fatalError(msg, args); - va_end(args); -} - - - -// =============== -// SAX2 callbacks -// =============== -void sdo_startElementNs(void *ctx, - const xmlChar *localname, - const xmlChar *prefix, - const xmlChar *URI, - int nb_namespaces, - const xmlChar **namespaces, - int nb_attributes, - int nb_defaulted, - const xmlChar **attributes) -{ - if (!((SAX2Parser*)ctx)->parserError) - ((SAX2Parser*)ctx)->startElementNs( - localname, - prefix, - URI, - SAX2Namespaces(nb_namespaces, namespaces), - SAX2Attributes(nb_attributes, nb_defaulted, attributes)); -} - - -void sdo_endElementNs(void *ctx, - const xmlChar *localname, - const xmlChar *prefix, - const xmlChar *URI) -{ - if (!((SAX2Parser*)ctx)->parserError) - ((SAX2Parser*)ctx)->endElementNs(localname, prefix, URI); -} - - -// The callback method structure -xmlSAXHandler SDOSAX2HandlerStruct = { - sdo_internalSubset, - sdo_isStandalone, - sdo_hasInternalSubset, - sdo_hasExternalSubset, - sdo_resolveEntity, - sdo_getEntity, - sdo_entityDecl, - sdo_notationDecl, - sdo_attributeDecl, - sdo_elementDecl, - sdo_unparsedEntityDecl, - sdo_setDocumentLocator, - sdo_startDocument, - sdo_endDocument, - sdo_startElement, - sdo_endElement, - sdo_reference, - sdo_characters, - sdo_ignorableWhitespace, - sdo_processingInstruction, - sdo_comment, - sdo_warning, - sdo_error, - sdo_fatalError, - sdo_getParameterEntity, - sdo_cdataBlock, - sdo_externalSubset, - XML_SAX2_MAGIC, - NULL, - sdo_startElementNs, - sdo_endElementNs, - NULL -}; - - -namespace commonj -{ - namespace sdo - { - - - - - SAX2Parser::SAX2Parser() - { - setter = 0; - parserError = false; - currentFile = 0; - } - - SAX2Parser::SAX2Parser(ParserErrorSetter* insetter) - { - setter = insetter; - parserError = false; - currentFile = 0; - } - - SAX2Parser::~SAX2Parser() - { - // xmlCleanupParser(); - if (currentFile != 0)delete currentFile; - - } - - const char* SAX2Parser::getCurrentFile() const - { - return currentFile; - } - - int SAX2Parser::parse(const char* filename) - { - - parserError = false; - xmlSAXHandlerPtr handler = &SDOSAX2HandlerStruct; - - if (currentFile != 0) - { - delete currentFile; - } - currentFile = new char[strlen(filename)+1]; - strcpy(currentFile,filename); - - int rc = xmlSAXUserParseFile(handler, this, filename); - if (rc == -1) - { - sdo_error(this, "xmlSAXUserParseFile returned an error %d", rc); - SDO_THROW_EXCEPTION("parse", SDOFileNotFoundException,messageBuffer); - } - return rc; - } - - void SAX2Parser::startDocument() - { - } - - void SAX2Parser::endDocument() - { - } - - void SAX2Parser::startElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - } - - void SAX2Parser::endElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI) - { - } - - void SAX2Parser::characters(const SDOXMLString& chars) - { - } - - - void SAX2Parser::warning(const char* msg, va_list args) - { - // warnings are perhaps too frequent - // vsprintf(messageBuffer, msg, args); - // if (setter != 0)setter->setError(messageBuffer); - } - - void SAX2Parser::fatalError(const char* msg, va_list args) - { - parserError = true; - vsprintf(messageBuffer, msg, args); - if (setter != 0)setter->setError(messageBuffer); - } - - void SAX2Parser::error(const char* msg, va_list args) - { - vsprintf(messageBuffer, msg, args); - if (setter != 0)setter->setError(messageBuffer); - } - - void SAX2Parser::stream(std::istream& input) - { - char buffer[100]; - parserError = false; - xmlSAXHandlerPtr handler = &SDOSAX2HandlerStruct; - xmlParserCtxtPtr ctxt; - - input.read(buffer,4); - ctxt = xmlCreatePushParserCtxt(handler, this, - buffer, input.gcount(), NULL); - - while (input.read(buffer,100)) - { - xmlParseChunk(ctxt, buffer, input.gcount(), 0); - - } - - xmlParseChunk(ctxt, buffer, input.gcount(), 1); - xmlFreeParserCtxt(ctxt); - - if (parserError) - { - SDO_THROW_EXCEPTION("stream", SDOXMLParserException,messageBuffer); - } - - } - - - std::istream& operator>>(std::istream& input, SAX2Parser& parser) - { - parser.stream(input); - return input; - } - - - } // End - namespace sdo -} // End - namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.h deleted file mode 100644 index 603a89b5f2..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SAX2Parser.h +++ /dev/null @@ -1,103 +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:15 $ */ - -#ifndef _SAX2PARSER_H_ -#define _SAX2PARSER_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SDOXMLString.h" -#include "commonj/sdo/SAX2Namespaces.h" -#include "commonj/sdo/SAX2Attributes.h" -#include "commonj/sdo/ParserErrorSetter.h" - - - -#include "sstream" -namespace commonj -{ - namespace sdo - { - -/** - * SAX2Parser holds the methods which will be called back. - * The implementation uses libxml, which provides callbacks for - * errors, warnings , elements etc. These methods correspond to thos - * callbacks. - * Callbacks from libxml to these C methods are converted into calls - * to the C++ equivalent (with some parameter manipulation - * In the callback methods the void* ctx is a pointer to 'this' SAX2Parser - */ - class SAX2Parser - { - - public: - - SAX2Parser(); - - SAX2Parser(ParserErrorSetter* insetter); - - virtual ~SAX2Parser(); - - virtual int parse (const char* filename); - - virtual void startDocument(); - virtual void endDocument(); - - virtual void startElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void endElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI); - - virtual void characters(const SDOXMLString& chars); - - virtual void warning(const char* msg, va_list args); - - virtual void fatalError(const char* msg, va_list args); - - virtual void error(const char* msg, va_list args); - - virtual void stream(std::istream& input); - - friend std::istream& operator>>(std::istream& input, SAX2Parser& parser); - - ParserErrorSetter* setter; - bool parserError; - - char messageBuffer[1024]; - - virtual const char* getCurrentFile() const; - private: - - char* currentFile; - - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_SAX2PARSER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDO.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDO.h deleted file mode 100644 index bdcb87d5c3..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDO.h +++ /dev/null @@ -1,56 +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:15 $ */ - -#include "commonj/sdo/Property.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/SDORuntimeException.h" -#include "commonj/sdo/PropertyList.h" -#include "commonj/sdo/Sequence.h" -#include "commonj/sdo/TypeList.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/DataObjectList.h" -#include "commonj/sdo/XSDHelper.h" -#include "commonj/sdo/XMLHelper.h" -#include "commonj/sdo/EqualityHelper.h" -#include "commonj/sdo/CopyHelper.h" -#include "commonj/sdo/SdoRuntime.h" -#include "commonj/sdo/HelperProvider.h" -#include "commonj/sdo/SDODate.h" -#include "commonj/sdo/DataGraph.h" -#include "commonj/sdo/ChangeSummary.h" -#include "commonj/sdo/export.h" -#include "commonj/sdo/SDOUtils.h" -#include "commonj/sdo/ChangedDataObjectList.h" -#include "commonj/sdo/DataFactory.h" -#include "commonj/sdo/DataObjectInstance.h" -#include "commonj/sdo/DefaultLogWriter.h" -#include "commonj/sdo/Logger.h" -#include "commonj/sdo/LogWriter.h" -#include "commonj/sdo/RefCountingPointer.h" -#include "commonj/sdo/RefCountingObject.h" -#include "commonj/sdo/SdoCheck.h" -#include "commonj/sdo/Setting.h" -#include "commonj/sdo/SettingList.h" -#include "commonj/sdo/XMLDocument.h" -#include "commonj/sdo/DASValue.h" -#include "commonj/sdo/XpathHelper.h" - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.cpp deleted file mode 100644 index 50ae8b2297..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.cpp +++ /dev/null @@ -1,52 +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:15 $ */ - -#include "commonj/sdo/SDODate.h" - -namespace commonj{ -namespace sdo{ - - - SDODate::~SDODate() - { - } - - SDODate::SDODate(time_t inval) - { - value = inval; - } - - /////////////////////////////////////////////////////////////////////////// - // - /////////////////////////////////////////////////////////////////////////// - - const time_t SDODate::getTime(void) const - { - return value; - } - - const char* SDODate::ascTime(void) const - { - return asctime(localtime(&value)); - } - -}; -}; -// end - namespace sdo - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.h deleted file mode 100644 index da900cb298..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDODate.h +++ /dev/null @@ -1,77 +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:15 $ */ - -#ifndef _SDO_SDODATE_H_ -#define _SDO_SDODATE_H_ - - -#include "commonj/sdo/export.h" -#include "time.h" - - - - -namespace commonj{ -namespace sdo{ - - - /////////////////////////////////////////////////////////////////////////// - // A representation of the type of a date. - /////////////////////////////////////////////////////////////////////////// - -/** - * SDODate - a means of hiding the time_t. - * The SDO API in several places uses method overloads to allow the - * same method to set many types of data. As time_t and long are - * sometimes synonymous, it was not possible to have a time_t and a - * long method, so SDODate simply wraps the time_t. - * SDODate also allows modifcation of the implementation, as time_t is - * only a short-term solution - better date/time handling is required. - */ - -class SDODate -{ - -public: - - - virtual SDO_API ~SDODate(); - - SDO_API SDODate(time_t inval); - - /** - * Hand out the date as a time_t - */ - virtual SDO_API const time_t getTime() const; - - /** - * Format the date as a string - */ - - virtual const char* ascTime(void) const; - - -private: - time_t value; -}; - -}; -}; -#endif //_SDO_SDODATE_H_ - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDORuntimeException.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDORuntimeException.cpp deleted file mode 100644 index e25f6789e1..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDORuntimeException.cpp +++ /dev/null @@ -1,227 +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: 2006/01/23 16:39:24 $ */ - -#include "commonj/sdo/SDORuntimeException.h" - -#include - -// ======================================================================== -// Constructor -// ======================================================================== -SDORuntimeException :: SDORuntimeException(const char* name, - severity_level sev, - const char* msg_text) - : severity(sev),location_set(0) -{ - class_name = new char[strlen(name) + 1]; - strcpy(class_name,name); - message_text = new char[strlen(msg_text)+1]; - strcpy(message_text,msg_text); - -} // end SDORuntimeException constuctor - -// ======================================================================== -// Constructor -// ======================================================================== -SDORuntimeException :: SDORuntimeException(const SDORuntimeException& c) - : - severity(c.getSeverity()), location_set(c.location_set) - -{ - class_name = new char[strlen(c.getEClassName()) + 1]; - strcpy(class_name, c.getEClassName()); - message_text = new char[strlen(c.getMessageText())+1]; - strcpy(message_text,c.getMessageText()); - for (int i=0;i -#include - -using namespace std; - - -/** SDORuntimeException - Exception base class. - * - * - * Description : - * ------------- - * SDO exception class definition - * - * This is intended as a base class. - * - * Parent Classes : - * ---------------- - * none - * - * Public Member functions: - * ------------------------ - * - * Constructors : - * SDORuntimeExceptionm(severity_level sev=severe, - * const string &msg_text=""); - * - * creates the exception object. Parameters are: - * sev: the severity of the exception (Error, Severe) - * msg_text: descriptive message_text - * - * copy constructor not necessary - * - * Destructor : - * virtual ~SDORuntimeException(); - * - * Assignment operator: - * not necessary - * - * void setSeverity(severity_level sev); - * set the exception severity - * - * void setMessageText(const char* msg_text); - * set the message text associated with the exception. (This text should - * come from a message catalog as it may be written to stdout/stderr at - * some point) - * - * void setExceptionLocation(const char* file, - * unsigned long line, - * const char* function=""); - * - * adds the location of the exception. Parameters - * file: the filename from where the exception is being created - * (from __FILE__) - * line: the line number from where the exception is being created - * (from __LINE__) - * function: The function name from where the exception is being created - * - * severity_level getSeverity() const; - * returns the severity of the exception - * - * const char* getMessageText() const; - * returns the message text that describes this exception. - * - * const tring& getFileName() const; - * returns the file name from the location information in the exception - * - * unsigned long getLineNumber() const; - * returns the line number from the location information in the exception - * - * const char* getFunctionName() const; - * returns the function name from the location information in the exception - * - * Private Data Members : - * ---------------------- - * severity_level severity; * Severity of exception - * string message_text; * Message associated with exception - * string file_name; * File name (from __FILE__) - * unsigned long line_number; * Line number (from __LINE__) - * string function_name; * Function name - * - */ - -class SDORuntimeException -{ - public: - // Constructor - enum severity_level - { - Normal, - Warning, - Error, - Severe - }; - - SDO_API SDORuntimeException(const char *name="SDORuntimeException", - severity_level sev=Severe, - const char* msg_text=""); - - SDO_API SDORuntimeException(const SDORuntimeException& c); - - // Destructor - virtual SDO_API ~SDORuntimeException(); - - /** getEClassName() get the exception class - * - * returns the name of the exception class, which will be - * a subclass of SDORuntimeException - */ - - SDO_API const char* getEClassName() const; - - /** getSeverity returns a level from severity_levels - * - * Return severity - * from the enumerator severity_levels, which is: - * - * Normal,Warning, Error,Severe - */ - - SDO_API severity_level getSeverity() const; - - /** - * Return message text associated with exception - */ - - SDO_API const char* getMessageText() const; - - /** getFileName() the file where the exception occurred - * - * Return file name where exception was raised - */ - - SDO_API const char* getFileName() const; - - /** getLineNumber gives the line where the excepion occurred - * - * Return line number where exception was raised - */ - - SDO_API unsigned long getLineNumber() const; - - /** getFunctionName give the name of the raising function - * - * Return function name where exception was raised - */ - - SDO_API const char* getFunctionName() const; - - - /** setSeverity - * - * sets an exception severity - */ - - SDO_API void setSeverity(severity_level sev); - - /** setMessageText - * - * set the message text associated with exception - */ - - SDO_API void setMessageText(const char* msg_text); - - - /** setExceptionLocation - * - * set exception location - */ - - SDO_API void setExceptionLocation(const char* file, - unsigned long line, - const char* function=""); - - SDO_API void setLocation(const char* file, - unsigned long line, - const char* function=""); - - SDO_API void trace(const char* text="%1:\n %3 %4 %2"); - - SDO_API virtual ostream& PrintSelf(ostream &os) const; - - /** operator << to write the exception - * - * ostream operator << - */ - - SDO_API friend ostream& operator<< (ostream &os, const SDORuntimeException &except); - - protected: - - private: - - char* class_name; - - severity_level severity; // Severity of exception - - char* message_text; // Description of exception - - //* Location where the exception was last thrown*handled - - class location - { - public: - char* file; //* File name (from __FILE__) - unsigned long line; //* Line number (from __LINE__) - char* function; //* Function name - }; - - // Array of locations - enum {num_locations=5}; - location locations[num_locations]; - - // Index into locations array - int location_set; - - -}; // End SDORuntimeException class definition - -/** - *************************************************************************** - * - * SDOOutOfMemoryException - Exception for no-storage - * - * *************************************************************************** - */ - -class SDOOutOfMemoryException: public SDORuntimeException -{ - public: - SDOOutOfMemoryException(unsigned long size) - : SDORuntimeException("SDOOutOfMemoryException", Severe, - "Unable to obtain storage of length " + size) - { - } - private: -}; // End SDOOutOfMemory class definition - -/** -*************************************************************************** -* -* SDOPathNotFoundException - Exception for bad path -* -**************************************************************************** -*/ -class SDOPathNotFoundException: public SDORuntimeException -{ - public: - SDOPathNotFoundException(const char* path) - : SDORuntimeException("SDOPathNotFoundException", Warning, - path) - { - } - private: -}; // End SDOPathNotFoundException class definition - -/** -*************************************************************************** -* -* SDOPropertyNotFoundException - Exception for property not found -* -**************************************************************************** -*/ - -class SDOPropertyNotFoundException: public SDORuntimeException -{ - public: - SDOPropertyNotFoundException(const char* name) - : SDORuntimeException("SDOPropertyNotFoundException", Warning, - name) - { - } - private: -}; // End SDOPropertyNotFoundException class definition - -/** -*************************************************************************** -* -* SDOTypeNotFoundException - Exception for type not found. -* -**************************************************************************** -*/ -class SDOTypeNotFoundException: public SDORuntimeException -{ - public: - SDOTypeNotFoundException(const char* name) - : SDORuntimeException("SDOTypeNotFoundException", Warning, - name) - { - } - private: -}; // End SDOTypeNotFoundException class definition - -/** -*************************************************************************** -* -* SDOFileNotFoundException - Exception for file not found -* -**************************************************************************** -*/ - -class SDOFileNotFoundException: public SDORuntimeException -{ - public: - SDOFileNotFoundException(const char* name) - : SDORuntimeException("SDOFileNotFoundException", Warning, - name) - { - } - private: -}; // End SDOFileNotFoundException class definition -/** -*************************************************************************** -* -* SDOPropertyNotSetException - Exception for asking for the value of an -* unset/undefaulted prop -* -**************************************************************************** -*/ -class SDOPropertyNotSetException: public SDORuntimeException -{ - public: - SDOPropertyNotSetException(const char* name) - : SDORuntimeException("SDOPropertyNotSetException", Warning, - name) - { - } - private: -}; // End SDOPropertyNotSetException class definition -/** -*************************************************************************** -* -* SDOUnsupportedOperationException - Invalid action or unimplemented method. -* -**************************************************************************** -*/ -class SDOUnsupportedOperationException: public SDORuntimeException -{ - public: - SDOUnsupportedOperationException(const char* name) - : SDORuntimeException("SDOUnsupportedOperationException", Warning, - name) - { - } - private: -}; // End SDOTypeNotFoundException class definition - -/** -*************************************************************************** -* -* SDOInvalidConversionException - Invalid conversion - cannot convert to type. -* -**************************************************************************** -*/ -class SDOInvalidConversionException: public SDORuntimeException -{ - public: - SDOInvalidConversionException(const char* name) - : SDORuntimeException("SDOInvalidConversionException", Warning, - name) - { - } - private: -}; // End SDOTypeNotFoundException class definition -/** -*************************************************************************** -* -* SDOIllegalArgumentException - Invalid argument passed (null name?). -* -**************************************************************************** -*/ -class SDOIllegalArgumentException: public SDORuntimeException -{ - public: - SDOIllegalArgumentException(const char* name) - : SDORuntimeException("SDOIllegalArgumentException", Warning, - name) - { - } - private: -}; // End SDOTypeNotFoundException class definition -/** -**************************************************************************** -* -* SDOIndexOutOfRangeException - element index not in a list. -* -**************************************************************************** -*/ -class SDOIndexOutOfRangeException: public SDORuntimeException -{ - public: - SDOIndexOutOfRangeException(const char* name) - : SDORuntimeException("SDOIndexOutOfRangeException", Warning, - name) - { - } - private: -}; // End SDOTypeNotFoundException class definition - -/** -*************************************************************************** -* -* SDOXMLParserException - XMLParser error -* -**************************************************************************** -*/ -class SDOXMLParserException: public SDORuntimeException -{ - public: - SDOXMLParserException(const char* name) - : SDORuntimeException("SDOXMLParserException", Warning, - name) - { - } - private: -}; // End SDOTypeNotFoundException class definition - -/* -*************************************************************************** -* -* Macro definitions -* -**************************************************************************** -*/ -/** - * ========================================================================= - * Macro - SDO_THROW_EXCEPTION - * - * adds the current file name, line number and function name to the exception. - * then throws the exception. - * The parameter 'function_name' should be the name of the function throwing - * this exception. - * The parameter 'type' is the class of exception to throw and must be a - * SDORuntimeException or a class derived from SDORuntimeException. - * The parameter 'parameter' is the construction parameter for the exception - * ========================================================================= -*/ - - #define SDO_THROW_EXCEPTION(function_name, type, parameter ) \ - {\ - type ex(parameter); \ - ex.setExceptionLocation(__FILE__,__LINE__,#function_name); \ - throw ex;\ - } - -/** - ========================================================================= - * Macro - SDO_RETHROW_EXCEPTION - * - * adds the current file name, line number and function name to the exception. - * then re-throws the exception. - * The parameter 'function_name' should be the name of the function throwing - * this exception. - * ========================================================================= -*/ - #define SDO_RETHROW_EXCEPTION(function_name, exception) \ - (exception).setLocation(__FILE__,__LINE__,#function_name); \ - throw; - -/** - * ========================================================================= - * Macro - SDO_HANDLE_EXCEPTION - * - * adds the current file name, line number and function name to the exception. - * Writes an exception trace entry then continues. - * The parameter 'function_name' should be the name of the function handling - * this exception. - * ========================================================================= -*/ - #define SDO_HANDLE_EXCEPTION(function_name, exception) \ - {\ - (exception).setLocation(__FILE__,__LINE__,#function_name); \ - (exception).Trace("Exception handled by %1: \n %3 %4 %2");\ - } - -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.cpp deleted file mode 100644 index d52be22b4c..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.cpp +++ /dev/null @@ -1,1303 +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: 2006/02/08 14:43:56 $ */ - -#include "commonj/sdo/SDOSAX2Parser.h" - -#include "commonj/sdo/SDORuntimeException.h" -#include "commonj/sdo/ChangeSummary.h" -#include "commonj/sdo/XSDPropertyInfo.h" -#include "commonj/sdo/XMLQName.h" -#include "commonj/sdo/DASProperty.h" -#include "commonj/sdo/Logging.h" -#include "commonj/sdo/DASType.h" -#include "commonj/sdo/XSDTypeInfo.h" -#include "commonj/sdo/TypeImpl.h" -#include "commonj/sdo/DataObjectImpl.h" -#include "commonj/sdo/DataFactoryImpl.h" - -namespace commonj -{ - namespace sdo - { - - SDOSAX2Parser::SDOSAX2Parser( - DataFactoryPtr df, - const SDOXMLString& targetNamespace, - DataObjectPtr& rootDO, - ParserErrorSetter* insetter - ) - - : dataFactory(df), - targetNamespaceURI(targetNamespace), - rootDataObject(rootDO), - currentDataObject(0), - isDataGraph(false), - ignoreEvents(false), - dealingWithChangeSummary(false), - csbuilder(0), - SAX2Parser(insetter) - - - { - reset(); - if (targetNamespace.isNull()) - { - targetNamespaceURI = ""; - } - rootDataObject = 0; - } - - SDOSAX2Parser::~SDOSAX2Parser() - { - } - - void SDOSAX2Parser::reset() - { - rootDataObject = 0; - currentDataObject = 0; - isDataGraph = false; - ignoreEvents = false; - changeSummary = false; - IDMap.empty(); - IDRefs.empty(); - } - - - void SDOSAX2Parser::startDocument() - { - LOGINFO(INFO,"SDOSAX2Parser: startDocument"); - setNamespaces = true; - reset(); - } - - void SDOSAX2Parser::endDocument() - { - LOGENTRY(INFO,"SDOSAX2Parser: endDocument"); - // Iterate over IDREFs list and set references - ID_REFS::iterator refsIter; - for (refsIter = IDRefs.begin(); refsIter != IDRefs.end(); refsIter++) - { - try - { - const Type& type = refsIter->dataObject->getType(); - const Property& prop = refsIter->dataObject->getProperty(refsIter->property); - const Type& propType = ((TypeImpl&)type).getRealPropertyType(refsIter->property); - - // Allowing referenes to DataObjects only - if (!propType.isDataType()) - { - DataObjectPtr reffedDO; - ID_MAP::iterator idIter = IDMap.find(refsIter->value); - if (idIter != IDMap.end()) - { - reffedDO = idIter->second; - } - else - { - // assume it is an XPath? - - // Remove #/ from front of XPATH as getDataObject doeesnt - // support this yet - it does now - //SDOXMLString xpath(refsIter->value); - //if (xpath.firstIndexOf('#') == 0) - // xpath = xpath.substring(1); - //if (xpath.firstIndexOf('/') == 0) - // xpath = xpath.substring(1); - - reffedDO = rootDataObject->getDataObject(refsIter->value); - } - - if (!reffedDO) - { - continue; - } - - if (prop.isMany()) - { - DataObjectList& dol = refsIter->dataObject->getList(prop); - dol.append(reffedDO); - } - else - { - refsIter->dataObject->setDataObject(prop, reffedDO); - } - } - - } - catch (const SDORuntimeException&) - { - } - } - try { - // Now rebuild the changeSummary - if (csbuilder != 0) - { - csbuilder->buildChangeSummary(changeSummaryDO); - delete csbuilder; - csbuilder = 0; - } - } - catch (SDORuntimeException&) - { - } - - LOGEXIT(INFO,"SDOSAX2Parser: endDocument"); - } - - - bool SDOSAX2Parser::setDO(DataObjectPtr newDO, - SDOXMLString& propertyName) - { - LOGENTRY(INFO,"SDOSAX2Parser: setDO"); - - if (currentDataObject) - { - const Type& type = currentDataObject->getType(); - // go lower level so we can find open properties w/o exception - DataObject* dob = currentDataObject; - const PropertyImpl* pprop = ((DataObjectImpl*)dob)->getPropertyImpl(propertyName); - if (pprop == 0) - { - - LOGEXIT(INFO,"SDOSAX2Parser: setDO - exit1"); - return false; - } - - const Property& property = (Property&)*pprop; - const Type& propertyType = ((TypeImpl&)type).getRealPropertyType(propertyName); - if (currentDataObject->getType().isSequencedType()) - { - SequencePtr seq = currentDataObject->getSequence(); - seq->addDataObject(property, newDO); - } - else - { - if (!property.isMany()) - { - currentDataObject->setDataObject(propertyName, newDO); - } - else - { - DataObjectList& dol = currentDataObject->getList(propertyName); - dol.append(newDO); - } - } - } - - setCurrentDataObject(newDO); - - LOGEXIT(INFO,"SDOSAX2Parser: setDO - exit2"); - return true; - } - - void SDOSAX2Parser::handleOpenAttribute( - SDOXMLString& tns, - const char* propuri, - const char* propname, - const char* value) - { - // first, see if there is a global element or attribute corresponding... - try - { - DataFactory* df = dataFactory; - const PropertyImpl* prop = 0; - const TypeImpl* ti = - ((DataFactoryImpl*)df)->findTypeImpl(propuri,"RootType"); - - if (ti != 0) - { - prop = (const PropertyImpl*)ti->getPropertyImpl(propname); - } - else - { - ti = ((DataFactoryImpl*)df)->findTypeImpl(tns,"RootType"); - } - - if (ti != 0) - { - prop = (const PropertyImpl*)ti->getPropertyImpl(propname); - } - - if (prop == 0) - { - currentDataObject->setCString(propname,value); - return; - } - - DataObject* dob = currentDataObject; - - switch (prop->getTypeEnum()) - { - case Type::BooleanType: - ((DataObjectImpl*)dob)->defineBoolean(propname); - break; - case Type::ByteType: - ((DataObjectImpl*)dob)->defineByte(propname); - break; - case Type::CharacterType: - ((DataObjectImpl*)dob)->defineCharacter(propname); - break; - case Type::BytesType: - ((DataObjectImpl*)dob)->defineBytes(propname); - break; - case Type::StringType: - ((DataObjectImpl*)dob)->defineString(propname); - break; - case Type::ShortType: - ((DataObjectImpl*)dob)->defineShort(propname); - break; - case Type::IntegerType: - ((DataObjectImpl*)dob)->defineInteger(propname); - break; - case Type::LongType: - ((DataObjectImpl*)dob)->defineLong(propname); - break; - case Type::DoubleType: - ((DataObjectImpl*)dob)->defineDouble(propname); - break; - case Type::FloatType: - ((DataObjectImpl*)dob)->defineFloat(propname); - break; - case Type::DateType: - ((DataObjectImpl*)dob)->defineDate(propname); - break; - } // switch - - // regardless of what type the property now is, we can set CString , and the - // right conversion will happen - - currentDataObject->setCString(propname,value); - } - catch (SDORuntimeException) - { - } - return; - } - - - void SDOSAX2Parser::setAttributes( - SDOXMLString& tns, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - - LOGENTRY(INFO,"SDOSAX2Parser::setAttributes"); - - ////////////////////////////////////////////// - // The attributes are properties on the new DO - // Handle attributes - ////////////////////////////////////////////// - for (int i=0; i < attributes.size(); i++) - { - // Should ignore attributes like xsi:type - if (!(attributes[i].getUri().equalsIgnoreCase("http://www.w3.org/2001/XMLSchema-instance"))) - { - try - { - const SDOXMLString& propertyName = getSDOName(*currentDataObjectType, attributes[i].getName()); - DataObject* dob = currentDataObject; - const PropertyImpl* pprop = ((DataObjectImpl*)dob)->getPropertyImpl(propertyName); - if (pprop == 0 ) - { - if (currentDataObject->getType().isOpenType()) - { - // if its an open type, then attributes will be allowed to have - // an invalid name, and setCString will create them all as bytes - handleOpenAttribute(tns, (const char*)attributes[i].getUri(), - (const char*)attributes[i].getName(), - (const char*)attributes[i].getValue()); - - } - else - { - LOGERROR_1(WARNING,"SDOSAX2Parser: Property not found on closed type (ignored):%s", - (const char*)(attributes[i].getName())); - } - } - else - { - const Property& prop = (Property&)*pprop; - SDOXMLString propValue; - - XSDPropertyInfo* pi = (XSDPropertyInfo*)((DASProperty*)&prop)->getDASValue("XMLDAS::PropertyInfo"); - if (pi && pi->getPropertyDefinition().isQName) - { - XMLQName qname(attributes[i].getValue(), - documentNamespaces, namespaces); - propValue = qname.getSDOName(); - } - else - { - propValue = attributes[i].getValue(); - } - - if ((pi && pi->getPropertyDefinition().isIDREF) - || prop.isReference()) - { - // remember this value to resolve later - IDRef ref(currentDataObject, attributes[i].getName(), propValue); - IDRefs.insert(IDRefs.end(), ref); - } - else - { - if (pi && pi->getPropertyDefinition().isID) - { - // add this ID to the map - IDMap[propValue] = currentDataObject; - } - // Always set the property as a String. SDO will do the conversion - currentDataObject->setCString(attributes[i].getName(), propValue); - } - } - } - catch (const SDOPropertyNotFoundException&) - { - LOGERROR_1(WARNING,"SDOSAX2Parser: Error processing attribute (ignored):%s", - (const char*)(attributes[i].getName())); - } - } - } // End iterate over attributes - - LOGEXIT(INFO,"SDOSAX2Parser:setAttributes"); - - } - - - const PropertyImpl* SDOSAX2Parser::handleOpenType( - SDOXMLString& tns, - const SDOXMLString& localname, - DataObjectImpl* dob, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes, - SDOXMLString& xsitypeURI, - SDOXMLString& xsitypeName, - bool bToBeNull) - { - // first, see if there is a global element or attribute corresponding... - const PropertyImpl* pprop; - DataObjectPtr newDO = 0; - try - { - DataFactory* df = dataFactory; - const TypeImpl* ti = 0; - const PropertyImpl* prop = 0; - SDOXMLString propertyName; - - ti = ((DataFactoryImpl*)df)->findTypeImpl(tns,"RootType"); - if (ti != 0) - { - propertyName = getSDOName((Type&)*ti, localname); - prop = ti->getPropertyImpl(propertyName); - } - else - { - propertyName = localname; - } - - if (prop != 0) - { - if (prop->isMany()) - { - pprop = ((DataObjectImpl*)dob)->defineList(propertyName); - - // the type of the list needs to be set, as chars sets a CString - try - { - DataObjectList& dl = ((DataObjectImpl*)dob)->getList(propertyName); - ((DataObjectListImpl*)&dl)->setType(prop->getType().getURI(), - prop->getType().getName()); - } - catch (SDORuntimeException) - { - // let it pass - the type will be Bytes - } - - if (prop->getType().isDataType()) - { - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - } - else - { - newDO = dataFactory->create( - prop->getType().getURI(), - prop->getType().getName()); - DataObjectList& dol = dob->getList(propertyName); - dol.append(newDO); - setCurrentDataObject(newDO); - setAttributes(tns, namespaces,attributes); - } - return pprop; - } - else - { - switch (prop->getTypeEnum()) - { - case Type::BooleanType: - pprop = ((DataObjectImpl*)dob)->defineBoolean(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - break; - case Type::ByteType: - pprop = ((DataObjectImpl*)dob)->defineByte(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - break; - case Type::CharacterType: - pprop = ((DataObjectImpl*)dob)->defineCharacter(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - break; - case Type::BytesType: - pprop = ((DataObjectImpl*)dob)->defineBytes(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - break; - case Type::StringType: - pprop = ((DataObjectImpl*)dob)->defineString(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - break; - case Type::ShortType: - pprop = ((DataObjectImpl*)dob)->defineShort(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - break; - case Type::IntegerType: - pprop = ((DataObjectImpl*)dob)->defineInteger(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - break; - case Type::LongType: - pprop = ((DataObjectImpl*)dob)->defineLong(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - break; - case Type::DoubleType: - pprop = ((DataObjectImpl*)dob)->defineDouble(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - break; - case Type::FloatType: - pprop = ((DataObjectImpl*)dob)->defineFloat(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - break; - case Type::DateType: - pprop = ((DataObjectImpl*)dob)->defineDate(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - break; - case Type::DataObjectType: - pprop = ((DataObjectImpl*)dob)->defineDataObject(propertyName, - prop->getType().getURI(), prop->getType().getName()); - newDO = dataFactory->create( - prop->getType().getURI(), - prop->getType().getName()); - dob->setDataObject(propertyName, newDO); - setCurrentDataObject(newDO); - setAttributes(tns,namespaces,attributes); - break; - } - } // else - } // if prop != 0 - else - { - // The type is open, and the property doesnt exist, so we are creating - // a property, and need to find out the type to create. - // As I cannot tell if its a single value or many valued, I create all - // as many valued - // could be data object or primitive. All primitives will appear - // as bytes. - if (!xsitypeName.isNull()) - { - // it has a type from xsi:type - pprop = ((DataObjectImpl*)dob)->defineList(propertyName); - newDO = dataFactory->create(xsitypeURI, xsitypeName); - DataObjectList& dol = dob->getList(propertyName); - dol.append(newDO); - setCurrentDataObject(newDO); - setAttributes(tns,namespaces,attributes); - } - else - { - pprop = ((DataObjectImpl*)dob)->defineList(propertyName); - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - } - } - return pprop; - } - catch (SDORuntimeException) - { - // fail to find the property or create a dummy - return 0; - } - } - - void SDOSAX2Parser::startElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - - { - LOGENTRY(INFO,"SDOSAX2Parser: startElementNs"); - - LOGINFO_1(INFO,"SDOSAX2Parser: startElementNs:%s", - (const char*)localname); - - bool bToBeNull = false; - // Save the namespace information from the first element - if (setNamespaces) - { - documentNamespaces = namespaces; - setNamespaces = false; - } - - if (ignoreEvents) - { - // Check for the tag we are waiting for - if ( (ignoreTag.localname.equals(localname)) - && (ignoreTag.uri.equals(URI)) - && (ignoreTag.prefix.equals(prefix)) ) - { - ignoreTag.tagCount++; - } - LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit1"); - return; - } - - if (URI.equalsIgnoreCase("http://www.w3.org/2001/XMLSchema")) - { - // ignore anything within a schema - LOGINFO_1(INFO,"SDOSAX2Parser ignores schema element:%s", - (const char *)localname); - - // We need to ignore all events until the end tag for this element - ignoreEvents = true; - ignoreTag.localname = localname; - ignoreTag.uri = URI; - ignoreTag.prefix = prefix; - ignoreTag.tagCount = 0; - return; - } - - - if (dealingWithChangeSummary) - { - if (csbuilder == 0) - { - LOGERROR(ERROR,"SDOSAX2Parser:Parser builds summary with no builder"); - LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit2"); - return; - } - csbuilder->processStart( - localname, - prefix, - URI, - namespaces, - attributes); - LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit3"); - return; - } - - - if (URI.equalsIgnoreCase(Type::SDOTypeNamespaceURI)) - { - /////////////////////////////////////////////////////////////////////// - // Handle datagraph - /////////////////////////////////////////////////////////////////////// - if (localname.equalsIgnoreCase("datagraph")) - { - // Remember this is a datagraph. The root DO will be created - // later when we can have a better guess at the namespaceURI - isDataGraph = true; - } // end handling sdo:datagraph - - //////////////////////////////////// - // Handle ChangeSummary on datagraph - //////////////////////////////////// - if (localname.equals("changeSummary")) - { - changeSummary = true; - changeSummaryDO = currentDataObject; - - csbuilder = new ChangeSummaryBuilder( - dataFactory, rootDataObject ); - - changeSummaryLogging = true; - - - SDOXMLString logging = attributes.getValue("logging"); - if (!logging.isNull()) - { - if (logging.equals("false")) - { - changeSummaryLogging = false; - } - } - - LOGINFO(INFO,"SDOSAX2Parser:Start change summary"); - dealingWithChangeSummary = true; - LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit4"); - return; - - } - - } - else - { - /////////////////////////////////////////////////////////////////////// - // Each element is a DataObject or a Property on the current DO - /////////////////////////////////////////////////////////////////////// - DataObjectPtr newDO = 0; - - SDOXMLString typeURI, typeName, propertyName; - - /////////////////////////////////////////////////////////////////////// - // Determine the type. It is either specified by the xsi:type attribute - // or the localname is the name of a property on "RootType" - /////////////////////////////////////////////////////////////////////// - int i; - for (i=0; i < attributes.size(); i++) - { - if (attributes[i].getUri().equalsIgnoreCase("http://www.w3.org/2001/XMLSchema-instance")) - { - if (attributes[i].getName().equalsIgnoreCase("type")) - { - SDOXMLString fullTypeName = attributes[i].getValue(); - SDOXMLString pref; - - int index = fullTypeName.firstIndexOf(':'); - if (index < 0) - { - typeName = fullTypeName; - } - else - { - // Is the namespace prefix defined? - typeName = fullTypeName.substring(index+1); - pref = fullTypeName.substring(0, index); - } - - // Convert the prefix to a namespace URI - const SDOXMLString* namespaceURI = namespaces.find(pref); - if (namespaceURI == 0) - { - namespaceURI = documentNamespaces.find(pref); - } - if (namespaceURI != 0) - { - typeURI = *namespaceURI; - } - } - else if (attributes[i].getName().equalsIgnoreCase("nil")) - { - if (attributes[i].getValue().equalsIgnoreCase("true")) - { - // the current setting needs to be setNull - bToBeNull = true; - } - } - } - } // End - attribute loop - - if (typeURI.isNull()) - { - typeURI = ""; - } - - SDOXMLString tns = URI; - - try - { - if (currentDataObject == 0) - { - // This element should become the root data object - - // Target namespace will be: - // the targetNamespaceURI if specified - // or the URI of xsi:type if specified - // or the URI of this element - if (!typeURI.equals("")) - { - tns = typeURI; - } - - if (!targetNamespaceURI.isNull() && !targetNamespaceURI.equals("")) - { - tns = targetNamespaceURI; - } - - // Check for localname as a property of the RootType - // if we do not already know the type - if (typeName.isNull()) - { - const Type& rootType = dataFactory->getType(tns, "RootType"); - propertyName = getSDOName(rootType, localname); - const Type& newType = - ((TypeImpl&)(rootType)).getRealPropertyType(propertyName); - - typeURI = newType.getURI(); - typeName = newType.getName(); - } - - // Create the root DataObject - if (isDataGraph) - { - DataObjectPtr rootdo = dataFactory->create(tns, "RootType"); - setCurrentDataObject(rootdo); - changeSummaryDO = currentDataObject; - } - else - { - DataFactory* df = dataFactory; - ((DataFactoryImpl*)df)->setRootElementName(localname); - } - - // NOTE: always creating DO doesn't cater for DataType as top element - - const Type& tp = dataFactory->getType(typeURI,typeName); - if (tp.isDataType()) - { - newDO = dataFactory->create(tns, "RootType"); - currentPropertySetting = PropertySetting(newDO, localname, - bToBeNull); - } - else - { - - newDO = dataFactory->create(typeURI, typeName); - - // get the type definition, and see if its an extended primitive. - - XSDTypeInfo* typeInfo = (XSDTypeInfo*) - ((DASType*)&tp)->getDASValue("XMLDAS::TypeInfo"); - if (typeInfo) - { - const TypeDefinition& typeDefinition = typeInfo->getTypeDefinition(); - if (typeDefinition.isExtendedPrimitive) - { - // The name of this element is the name of a property on the current DO - currentPropertySetting = PropertySetting(newDO, localname, - bToBeNull); - } - } - } - - } // End - currentDataObject == 0 - - else - { // currentDataObject != 0 - - // Get the Property from the dataObject - propertyName = getSDOName(*currentDataObjectType, localname); - const Type& type = currentDataObject->getType(); - - - // go lower level so we can find open properties w/o exception - DataObject* dob = currentDataObject; - const PropertyImpl* pprop = ((DataObjectImpl*)dob)->getPropertyImpl(propertyName); - if (pprop == 0) - { - if (type.isOpenType()) - { - pprop = handleOpenType( - tns, - localname, - (DataObjectImpl*)dob, - namespaces, - attributes, - typeURI, - typeName, - bToBeNull); - } - if (pprop == 0) - { - // this is an open property , we will need to create it - LOGERROR_1(WARNING,"SDOSAX2Parser Unknown element:%s", - (const char *)localname); - - // We need to ignore all events until the end tag for this element - ignoreEvents = true; - ignoreTag.localname = localname; - ignoreTag.uri = URI; - ignoreTag.prefix = prefix; - ignoreTag.tagCount = 0; - if (setter != 0) - { - char *msg = new char[strlen((const char*)localname) + 32]; - if (msg) { - sprintf(msg,"Parser found unknown element %s", - (const char*)localname); - setter->setError( msg ); - delete msg; - } - } - } - LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit5"); - return; - } - else - { - - const Property& prop = (Property&)*pprop; - const TypeImpl* propType = ((TypeImpl&)type).getRealPropertyTypeImpl(propertyName); - if (propType == 0) - { - // could be a previously created open type property - propType = (const TypeImpl*)pprop->getTypeImpl(); - } - if (propType != 0) - { - XSDPropertyInfo* pi = (XSDPropertyInfo*)((DASProperty*)&prop)->getDASValue("XMLDAS::PropertyInfo"); - if ((pi && pi->getPropertyDefinition().isIDREF) - || prop.isReference()) - { - // The name of this element is the name of a property on the current DO - currentPropertySetting = PropertySetting(currentDataObject, propertyName, bToBeNull, - true); - } - - // If it is a DataType then we need set the value - else if (propType->isDataType() ) - { - // The name of this element is the name of a property on the current DO - currentPropertySetting = PropertySetting(currentDataObject, propertyName, - bToBeNull); - } - else - { - - // If typeName is not set then create object of Type of Property - // otherwise use the typeURI and typeName specified by e.g. xsi:type - if (typeName.isNull()) - { - newDO = dataFactory->create(propType->getURI(), propType->getName()); - } - else - { - newDO = dataFactory->create(typeURI, typeName); - } - - XSDTypeInfo* typeInfo = (XSDTypeInfo*) - ((DASType*)propType)->getDASValue("XMLDAS::TypeInfo"); - if (typeInfo && typeInfo->getTypeDefinition().isExtendedPrimitive) - { - // The name of this element is the name of a property on the current DO - currentPropertySetting = PropertySetting(newDO, "value", bToBeNull); - } - - } - } - } // End // currentDataObject != 0 - } // end prop != 0 - if (newDO) - { - if (!setDO(newDO, propertyName)) - { - LOGERROR_1(WARNING,"SDOSAX2Parser Unknown element:%s", - (const char *)localname); - - // We need to ignore all events until the end tag for this element - ignoreEvents = true; - ignoreTag.localname = localname; - ignoreTag.uri = URI; - ignoreTag.prefix = prefix; - ignoreTag.tagCount = 0; - if (setter != 0) - { - char *msg = new char[strlen((const char*)localname) + 32]; - if (msg) { - sprintf(msg,"Parser found unknown element %s", - (const char*)localname); - setter->setError( msg ); - delete msg; - } - } - LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit6"); - return; - } - } - } // end try - - catch (const SDOTypeNotFoundException& ) - { - - LOGERROR_1(WARNING,"SDOSAX2Parser Unknown element:%s", - (const char *)localname); - - // We need to ignore all events until the end tag for this element - ignoreEvents = true; - ignoreTag.localname = localname; - ignoreTag.uri = URI; - ignoreTag.prefix = prefix; - ignoreTag.tagCount = 0; - if (setter != 0) - { - char *msg = new char[strlen((const char*)localname) + 32]; - if (msg) { - sprintf(msg,"Parser found unknown element %s", - (const char*)localname); - setter->setError( msg ); - delete msg; - } - } - LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit7"); - return; - } - -#ifdef _DEBUG - catch (const SDOPropertyNotFoundException& e ) -#else - catch (const SDOPropertyNotFoundException& ) -#endif - { - LOGERROR_1(WARNING,"SDOSAX2Parser Unknown element exception:%s", - (const char *)localname); - LOGSDOEXCEPTION(WARNING,"Exception:",e); - - // We need to ignore all events until the end tag for this element - ignoreEvents = true; - ignoreTag.localname = localname; - ignoreTag.uri = URI; - ignoreTag.prefix = prefix; - ignoreTag.tagCount = 0; - if (setter != 0) - { - char *msg = new char[strlen((const char*)localname) + 32]; - if (msg) - { - sprintf(msg,"Parser found unknown element %s", - (const char*)localname); - setter->setError( msg ); - delete msg; - } - } - LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit8"); - return; - } - - setAttributes(tns,namespaces, attributes); - - } - LOGEXIT(INFO,"SDOSAX2Parser: startElementNs - exit9"); - } - - - void SDOSAX2Parser::endElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI) - { - - LOGENTRY(INFO,"SDOSAX2Parser: endElementNs"); - - if (localname.equals("changeSummary")) - { - // end of change summary - dealingWithChangeSummary = false; - LOGINFO(INFO,"SDOSAX2Parser: Finished change summary"); - LOGEXIT(INFO,"SDOSAX2Parser: endElementNs - exit1"); - return; - } - - if (dealingWithChangeSummary) - - { - if (csbuilder == 0) - { - LOGERROR(WARNING,"SDOSAX2Parser: End change summary with no builder"); - LOGEXIT(INFO,"SDOSAX2Parser: endElementNs - exit2"); - return; - } - csbuilder->processEnd(localname, - prefix, - URI); - LOGEXIT(INFO,"SDOSAX2Parser: endElementNs - exit3"); - return; - } - - - if (ignoreEvents) - { - // Check for the tag we are waiting for - if ( (ignoreTag.localname.equals(localname)) - && (ignoreTag.uri.equals(URI)) - && (ignoreTag.prefix.equals(prefix)) ) - { - if (ignoreTag.tagCount == 0) - { - ignoreEvents = false; - } - ignoreTag.tagCount--; - } - LOGEXIT(INFO,"SDOSAX2Parser: endElementNs - exit4"); - return; - } - - // If currentPropertySetting is set (name is not null) - // then we need to set the property now - if (!currentPropertySetting.name.isNull()) - { - if (currentPropertySetting.isNULL) - { - - currentPropertySetting.dataObject-> - setNull((const char*)currentPropertySetting.name); - - } - else if (!currentPropertySetting.value.isNull()) - { - try - { - const Type& tp = currentPropertySetting.dataObject->getType(); - XSDTypeInfo* typeInfo = (XSDTypeInfo*) - ((DASType*)&tp)->getDASValue("XMLDAS::TypeInfo"); - if (typeInfo && typeInfo->getTypeDefinition().isExtendedPrimitive) - { - const Property& p = currentPropertySetting.dataObject->getProperty( - "value"); - if (p.isMany()) - { - DataObjectList& dl = currentPropertySetting.dataObject-> - getList((const char*)"value"); - dl.append((const char*)currentPropertySetting.value); - } - else - { - currentPropertySetting.dataObject-> - setCString((const char*)"value", currentPropertySetting.value ); - } - if (dataObjectStack.size() == 0 || rootDataObject == dataObjectStack.top()) - { - currentDataObject = 0; - currentDataObjectType = 0; - } - else - { - dataObjectStack.pop(); - currentDataObject = dataObjectStack.top(); - currentDataObjectType = &(currentDataObject->getType()); - } - - } - else - { - if (currentPropertySetting.isIDREF) - { - // remember this value to resolve later - IDRef ref(currentPropertySetting.dataObject, - currentPropertySetting.name, - currentPropertySetting.value ); - IDRefs.insert(IDRefs.end(), ref); - } - else - { - if (currentPropertySetting.dataObject->getType().isSequencedType()) - { - SequencePtr seq = currentPropertySetting.dataObject->getSequence(); - seq->addCString(currentPropertySetting.name, currentPropertySetting.value); - } - // Always set the property as a String. SDO will do the conversion - - // It might be a single setting for a many-valued property. - // may throw SDOPropertyNotFoundException - - const Property& p = currentPropertySetting.dataObject->getProperty( - currentPropertySetting.name); - if (p.isMany()) - { - DataObjectList& dl = currentPropertySetting.dataObject-> - getList((const char*)currentPropertySetting.name); - dl.append((const char*)currentPropertySetting.value); - } - else - { - currentPropertySetting.dataObject-> - setCString((const char*)currentPropertySetting.name, currentPropertySetting.value ); - } - } - } - } -#ifdef _DEBUG - catch (const SDOPropertyNotFoundException& e) -#else - catch (const SDOPropertyNotFoundException&) -#endif - { - LOGSDOEXCEPTION(WARNING,"SDOSAX2Parser error attribute (ignored)",e); - } - } - currentPropertySetting = PropertySetting(); - - } - else - { - if (changeSummary - && changeSummaryLogging - && changeSummaryDO == currentDataObject) - { - // Set logging on for this DO before it is popped from stack - ChangeSummary* cs = currentDataObject->getChangeSummary(); - if (cs) - { - cs->beginLogging(); - } - changeSummary = false; - } - - if (dataObjectStack.size() == 0 || rootDataObject == dataObjectStack.top()) - { - currentDataObject = 0; - currentDataObjectType = 0; - } - else - { - dataObjectStack.pop(); - currentDataObject = dataObjectStack.top(); - currentDataObjectType = &(currentDataObject->getType()); - } - } - LOGEXIT(INFO,"SDOSAX2Parser: endElementNs - exit4"); - } - - - void SDOSAX2Parser::characters(const SDOXMLString& chars) - { - if (dealingWithChangeSummary) - { - if (csbuilder == 0) - { - LOGERROR(WARNING,"SDOSAX2Parser: no builder"); - return; - } - csbuilder->processChars(chars); - return; - } - - if (ignoreEvents) - return; - - // If currentPropertySetting is set (name is not null) - // then we need to accumulate the value - if (!currentPropertySetting.name.isNull()) - { - currentPropertySetting.value = currentPropertySetting.value + chars; - } - else - { - // If the current DataObject is a sequenced Type - // then add this as text to the sequence - if (currentDataObject && currentDataObjectType->isSequencedType()) - { - SequencePtr seq = currentDataObject->getSequence(); - if (seq) - { - seq->addText(chars); - } - } - } - } - - - void SDOSAX2Parser::setCurrentDataObject(DataObjectPtr currentDO) - { - currentDataObject = currentDO; - dataObjectStack.push(currentDataObject); - currentDataObjectType = &(currentDataObject->getType()); - if (rootDataObject == 0) - { - rootDataObject = currentDataObject; - } - } - - const SDOXMLString& SDOSAX2Parser::getSDOName(const Type& type, const SDOXMLString& localName) - { - -/* XSDTypeInfo* typeInfo = (XSDTypeInfo*)((DASType*)&type)->getDASValue("XMLDAS::TypeInfo"); - if (typeInfo) - { - const TypeDefinition& typeDefinition = typeInfo->getTypeDefinition(); - XmlDasPropertyDefs::const_iterator propsIter; - for (propsIter = typeDefinition.properties.begin(); propsIter != typeDefinition.properties.end(); propsIter++) - { - const PropertyDefinition& prop = *propsIter; - if (prop.localname.equals(localName)) - { - return prop.name; - } - for (int i=0;i< prop.substituteNames.size();i++) - { - if (prop.substituteLocalNames[i].equals(localName)) - { - return prop.substituteNames[i]; - // possibly should be return prop.name; - } - } - } - } - */ - - PropertyList pl = type.getProperties(); - for (int i = 0; i < pl.size(); i++) - { - XSDPropertyInfo* pi = (XSDPropertyInfo*)((DASProperty*)&pl[i])->getDASValue("XMLDAS::PropertyInfo"); - if (pi) - { - const PropertyDefinition& propdef = pi->getPropertyDefinition(); - if (localName .equals(propdef.localname)) - return propdef.name; - - for (int j=0;j< propdef.substituteNames.size();j++) - { - if (propdef.substituteLocalNames[j].equals(localName)) - { - return propdef.substituteNames[j]; - // possibly should be return propdef.name; - } - } - } - } - - - - return localName; - } - - - std::istream& operator>>(std::istream& input, SDOSAX2Parser& parser) - { - parser.stream(input); - - return input; - } - - std::istringstream& operator>>(std::istringstream& input, SDOSAX2Parser& parser) - { - parser.stream(input); - - return input; - } - - } // End - namespace sdo -} // End - namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.h deleted file mode 100644 index 6b26bba83b..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSAX2Parser.h +++ /dev/null @@ -1,169 +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:15 $ */ - -#ifndef _SDOSAX2PARSER_H_ -#define _SDOSAX2PARSER_H_ -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SAX2Parser.h" - -#include "commonj/sdo/DataFactory.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/SAX2Namespaces.h" -#include "commonj/sdo/PropertySetting.h" -#include "commonj/sdo/ChangeSummaryImpl.h" -#include "commonj/sdo/ChangeSummaryBuilder.h" - - -#include - -namespace commonj -{ - namespace sdo - { - - -/** - * SDOSAX2Parser implements SAX2Parser. - * This class gets called back by the libxml library, and - * deals with the creation of data objects from XML. - */ - - class SDOSAX2Parser : public SAX2Parser - { - - - public: - - - SDOSAX2Parser( - DataFactoryPtr df, - const SDOXMLString& targetNamespaceURI, - DataObjectPtr& rootDO, - ParserErrorSetter* insetter); - - virtual ~SDOSAX2Parser(); - - virtual void startDocument(); - virtual void endDocument(); - - virtual bool setDO(DataObjectPtr newDO, - SDOXMLString& propertyName); - - virtual void setAttributes( - SDOXMLString& tns, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void handleOpenAttribute( - SDOXMLString& tns, - const char* propuri, - const char* propname, - const char* value); - - virtual const PropertyImpl* handleOpenType( - SDOXMLString& tns, - const SDOXMLString& localname, - DataObjectImpl* dob, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes, - SDOXMLString& xsitypeURI, - SDOXMLString& xsitypeName, - bool bToBeNull); - - virtual void startElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void endElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI); - - virtual void characters(const SDOXMLString& chars); - - friend std::istream& operator>>(std::istream& input, SDOSAX2Parser& parser); - friend std::istringstream& operator>>(std::istringstream& input, SDOSAX2Parser& parser); - - - private: - SDOXMLString targetNamespaceURI; - DataFactoryPtr dataFactory; - DataObjectPtr& rootDataObject; - - - std::stack dataObjectStack; - - DataObjectPtr currentDataObject; - bool isDataGraph; - - void setCurrentDataObject(DataObjectPtr currentDO); - const Type* currentDataObjectType; - const SDOXMLString& getSDOName(const Type& type, const SDOXMLString& localName); - - PropertySetting currentPropertySetting; - - void reset(); - - bool setNamespaces; - SAX2Namespaces documentNamespaces; - - bool changeSummary; - DataObjectPtr changeSummaryDO; - bool changeSummaryLogging; - bool dealingWithChangeSummary; - ChangeSummaryBuilder* csbuilder; - - bool ignoreEvents; - struct ignoretag - { - SDOXMLString localname; - SDOXMLString uri; - SDOXMLString prefix; - int tagCount; - } ignoreTag; - - - typedef std::map ID_MAP; - ID_MAP IDMap; - - class IDRef - { - public: - IDRef(DataObjectPtr dataobj, - const SDOXMLString& prop, - const SDOXMLString& val) - : dataObject(dataobj), property(prop), value(val) - {} - - DataObjectPtr dataObject; - SDOXMLString property; - SDOXMLString value; - }; - - typedef std::list ID_REFS; - ID_REFS IDRefs; - }; - } // End - namespace sdo -} // End - namespace commonj - -#endif //_SDOSAX2PARSER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSPI.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSPI.h deleted file mode 100644 index 1165514123..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSPI.h +++ /dev/null @@ -1,25 +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:15 $ */ - -#include "commonj/sdo/DataFactory.h" -#include "commonj/sdo/ChangeSummary.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/SDO.h" - -#include "commonj/sdo/DASValues.h" diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp deleted file mode 100644 index 8732c6aa9d..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp +++ /dev/null @@ -1,1080 +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: 2006/02/08 15:53:52 $ */ - -#include "commonj/sdo/SDOSchemaSAX2Parser.h" -#include "commonj/sdo/XSDPropertyInfo.h" -#include "commonj/sdo/XSDTypeInfo.h" -#include "commonj/sdo/SDORuntimeException.h" -#include "commonj/sdo/Logging.h" - -#include - -namespace commonj -{ - namespace sdo - { - - SDOSchemaSAX2Parser::SDOSchemaSAX2Parser(SchemaInfo& schemaInf, - ParserErrorSetter* insetter) - : schemaInfo(schemaInf) ,SAX2Parser(insetter) - { - bInSchema = false; - } - - SDOSchemaSAX2Parser::~SDOSchemaSAX2Parser() - { - } - - - - // ============================================================================ - // startElementNS - // ============================================================================ - void SDOSchemaSAX2Parser::startElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - LOGINFO_1( INFO,"SchemaParser:startElementNs:%s",(const char*)localname); - - if (URI.equalsIgnoreCase("http://www.w3.org/2001/XMLSchema")) - { - - /////////////////////////////////////////////////////////////////////// - // Handle schema - // Set the URI from the targetNamespace of the xsd:schema element - // Remember namespace mappings - // Create the root Type - /////////////////////////////////////////////////////////////////////// - - - if (localname.equalsIgnoreCase("schema")) - { - bInSchema = true; - // Handle namespace definitions - - - schemaInfo.getSchemaNamespaces().merge(namespaces); - - // Handle attributes - for (int i=0; i < attributes.size(); i++) - { - if (attributes[i].getName().equalsIgnoreCase("targetNamespace")) - { - schemaInfo.setTargetNamespaceURI(attributes[i].getValue()); - } - } - - - currentType.uri = schemaInfo.getTargetNamespaceURI(); - currentType.name = "RootType"; - currentType.localname="RootType"; - - } // end schema handling - - // Handle of other schema - else if (localname.equalsIgnoreCase("import")) - { - // TODO - import and include treated equally for now - need to - // separate out the namespace info for import - startInclude(localname, prefix, URI, namespaces, attributes); - } - - // Handle of other schema - else if (localname.equalsIgnoreCase("include")) - { - startInclude(localname, prefix, URI, namespaces, attributes); - } - - /////////////////////////////////////////////////////////////////////// - // Handle elements and attributes - // These become Properties of the current Type - // ?? Any special handling of global elements??? - /////////////////////////////////////////////////////////////////////// - else if (localname.equalsIgnoreCase("element")) - { - startElement(localname, prefix, URI, namespaces, attributes); - } - else if (localname.equalsIgnoreCase("attribute")) - { - startAttribute(localname, prefix, URI, namespaces, attributes); - } - else if (localname.equalsIgnoreCase("any") - || localname.equalsIgnoreCase("anyAttribute")) - { - // the type containing this is to be created as open - currentType.isOpen = true; - } - - - /////////////////////////////////////////////////////////////////////// - // Handle complexType - // These become new types - /////////////////////////////////////////////////////////////////////// - else if (localname.equalsIgnoreCase("complexType")) - { - startComplexType(localname, prefix, URI, namespaces, attributes); - } // end complexType handling - - else if (localname.equalsIgnoreCase("choice") - || localname.equalsIgnoreCase("sequence") - || localname.equalsIgnoreCase("all")) - { - startGroup(localname, prefix, URI, namespaces, attributes); - } // end Group handling - - else if (localname.equalsIgnoreCase("group") - || localname.equalsIgnoreCase("attributeGroup")) - { - if (setter) - { - setter->setError("Schema contains group or attributeGroup which are not yet implemented"); - } - } - /////////////////////////////////////////////////////////////////////// - // Handle simpleType - // These become new types - /////////////////////////////////////////////////////////////////////// - else if (localname.equalsIgnoreCase("simpleType")) - { - startSimpleType(localname, prefix, URI, namespaces, attributes); - } // end complexType handling - - else if (localname.equalsIgnoreCase("restriction")) - { - startRestriction(localname, prefix, URI, namespaces, attributes); - } - - else if (localname.equalsIgnoreCase("extension")) - { - startExtension(localname, prefix, URI, namespaces, attributes); - } - } - else // not in schema - check for any extra namespaces - { - schemaInfo.getSchemaNamespaces().merge(namespaces); - } - - } - - - // ============================================================================ - // endElementNs - // ============================================================================ - void SDOSchemaSAX2Parser::endElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI) - { - LOGINFO_1( INFO,"SchemaParser:endElementNs:%s",(const char*)localname); - - if (URI.equalsIgnoreCase("http://www.w3.org/2001/XMLSchema")) - { - if (localname.equalsIgnoreCase("schema")) - { - bInSchema = false; - } - - /////////////////////////////////////////////////////////////////////// - // Handle complexType - // Pop the Type off our stack - /////////////////////////////////////////////////////////////////////// - if (localname.equalsIgnoreCase("complexType")) - { - defineType(); - } // end complexType handling - else if (localname.equalsIgnoreCase("simpleType")) - { - defineType(); - } - - else if (localname.equalsIgnoreCase("schema")) - { - defineType(); - } // end complexType handling - - else if (localname.equalsIgnoreCase("element") - || localname.equalsIgnoreCase("attribute")) - { - // PropertyDefinition should now be complete - defineProperty(); - } - else if (localname.equalsIgnoreCase("choice") - || localname.equalsIgnoreCase("sequence") - || localname.equalsIgnoreCase("all")) - { - currentType.isMany = false; - } - - } - } - - - // ============================================================================ - // startInclude - // ============================================================================ - void SDOSchemaSAX2Parser::startInclude( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - LOGINFO_1( INFO,"SchemaParser:startInclude:%s",(const char*)localname); - - if (!bInSchema) return; - - SDOXMLString schemaLocation = attributes.getValue("schemaLocation"); - if (!schemaLocation.isNull()) - { - SchemaInfo schemaInf; - SDOSchemaSAX2Parser schemaParser(schemaInf, (ParserErrorSetter*)setter); - - try - { - SDOXMLString sl = getCurrentFile(); - FILE *f; - bool bprocessed = false; - - if (!sl.isNull()) - { - int i = sl.lastIndexOf('/'); - if (i < 0)i = sl.lastIndexOf('\\'); - if (i >= 0) - { - sl = sl.substring(0,i+1) + schemaLocation; - // first attempt, relative path plus the location - f = fopen(sl,"r+"); - if (f != NULL) - { - fclose(f); - schemaParser.parse(sl); - bprocessed = true; - } - else // didnt find the file - { - int j = schemaLocation.lastIndexOf('/'); - if (j < 0)j = schemaLocation.lastIndexOf('\\'); - if (j >= 0) - { - sl = sl.substring(0,i+1) + - schemaLocation.substring(0,j+1); - f = fopen(sl,"r+"); - if (f != NULL) - { - fclose(f); - schemaParser.parse(sl); - bprocessed = true; - } - } - } - } - } - if (!bprocessed) - { - schemaParser.parse(schemaLocation); - } - } - - catch (SDOFileNotFoundException e) - { - // finally give up - its not in the current path, or - // in the path specified - return; - } - - - TypeDefinitions& typedefs = schemaParser.getTypeDefinitions(); - XMLDAS_TypeDefs types = typedefs.types; - XMLDAS_TypeDefs::iterator iter; - for (iter=types.begin(); iter != types.end(); iter++) - { - if ((*iter).second.name.equals("RootType") - && currentType.name.equals("RootType") - && (*iter).second.uri.equals(currentType.uri)) - { - // This must be true for an import/include to be - // legally positioned - - XMLDAS_TypeDefs::iterator find = typeDefinitions.types.find( - (*iter).first); - - std::list::iterator propit; - std::list::iterator currpropit; - bool found; - - for (propit = (*iter).second.properties.begin() ; - propit != (*iter).second.properties.end(); ++ propit) - { - found = false; - // do not merge properties whose names clash - for ( currpropit = currentType.properties.begin(); - currpropit != currentType.properties.end(); - ++currpropit) - { - if ((*currpropit).name.equals((*propit).name)) - { - found = true; - break; - } - } - if (!found) - { - currentType.properties.insert( - currentType.properties.end(),*propit); - } - } - } - else - { - typeDefinitions.types.insert(*iter); - } - } - } - } - - - // ============================================================================ - // startElement - // ============================================================================ - void SDOSchemaSAX2Parser::startElement( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - - if (!bInSchema) return; - - PropertyDefinition thisProperty; - - LOGINFO_1( INFO,"SchemaParser:startElement:%s",(const char*)localname); - - thisProperty.isElement = true; - - setName(attributes, - thisProperty.name, - thisProperty.localname); - - - setType(thisProperty, attributes, namespaces); - - SDOXMLString maxOccurs = attributes.getValue("maxOccurs"); - if (!maxOccurs.isNull()) - { - if (!maxOccurs.equalsIgnoreCase("1")) - { - thisProperty.isMany = true; - } - } - - // find aliases - thisProperty.aliases = attributes.getValue("aliasName"); - - // mark this as a substitution group. - // TODO - what about properties which have already been set into the tree, - // and might have a substitution? - - SDOXMLString substituteName = attributes.getValue("substitutionGroup"); - if (! substituteName.isNull()) - { - XMLQName qname = resolveTypeName( - substituteName, - namespaces, - thisProperty.substituteUri, - thisProperty.substituteName); - thisProperty.isSubstitute=true; - } - - // count the number of elements in the group - if (currentType.isMany) - { - currentType.groupElementCount++; - } - - setCurrentProperty(thisProperty); - - } - - // ============================================================================ - // startAttribute - // ============================================================================ - void SDOSchemaSAX2Parser::startAttribute( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - - LOGINFO_1( INFO,"SchemaParser:startAttribute:%s",(const char*)localname); - - if (!bInSchema) return; - - PropertyDefinition thisProperty; - - thisProperty.isElement = false; - - setName(attributes, - thisProperty.name, - thisProperty.localname); - - setType(thisProperty, attributes, namespaces); - - setCurrentProperty(thisProperty); - } - - // ============================================================================ - // startComplexType - // ============================================================================ - void SDOSchemaSAX2Parser::startComplexType( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - LOGINFO_1( INFO,"SchemaParser:startComplexType:%s",(const char*)localname); - - if (!bInSchema) return; - - TypeDefinition thisType; // set defaults - thisType.uri=schemaInfo.getTargetNamespaceURI(); - - setTypeName(thisType, attributes,namespaces); - - - - for (int i=0; i < attributes.size(); i++) - { - // If sdo:sequence="true" or mixed="true" it is sequenced - if ( (attributes[i].getUri().equalsIgnoreCase("commonj.sdo/xml") - && attributes[i].getName().equalsIgnoreCase("sequence")) - || attributes[i].getName().equalsIgnoreCase("mixed")) - { - if (attributes[i].getValue().equals("true")) - { - thisType.isSequenced = true; - } - } - // If abstract="true" it is abstract - else if (attributes[i].getName().equalsIgnoreCase("abstract")) - { - if (attributes[i].getValue().equals("true")) - { - thisType.isAbstract = true; - } - } - else if (attributes[i].getName().equalsIgnoreCase("aliasName")) - { - thisType.aliases = attributes[i].getValue(); - } - } - - setCurrentType(thisType); - } - - // ============================================================================ - // startSimpleType - // ============================================================================ - void SDOSchemaSAX2Parser::startSimpleType( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - LOGINFO_1( INFO,"SchemaParser:startSimpleType:%s",(const char*)localname); - - if (!bInSchema) return; - - TypeDefinition thisType; // set defaults - thisType.uri=schemaInfo.getTargetNamespaceURI(); - thisType.dataType = true; - - for (int i=0; i < attributes.size(); i++) - { - // If abstract="true" it is abstract - if (attributes[i].getName().equalsIgnoreCase("abstract")) - { - if (attributes[i].getValue().equals("true")) - { - thisType.isAbstract = true; - } - } - else if (attributes[i].getName().equalsIgnoreCase("aliasName")) - { - thisType.aliases = attributes[i].getValue(); - } - } - setTypeName(thisType, attributes,namespaces); - - // see if the type is going to be abstract... - - - setCurrentType(thisType); - } - - // ============================================================================ - // startRestriction - // ============================================================================ - void SDOSchemaSAX2Parser::startRestriction( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - LOGINFO_1( INFO,"SchemaParser:startRestriction:%s",(const char*)localname); - - if (!bInSchema) return; - - SDOXMLString base = attributes.getValue("base"); - if (!base.isNull()) - { - // Resolve typename to uri:name - XMLQName qname = resolveTypeName( - base, - namespaces, - currentType.parentTypeUri, - currentType.parentTypeName); - - - if(qname.getLocalName().equals("QName")) - { - currentType.isQName = true; - } - } - } - - // ============================================================================ - // startExtension - // ============================================================================ - void SDOSchemaSAX2Parser::startExtension( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - LOGINFO_1( INFO,"SchemaParser:startExtension:%s",(const char*)localname); - - if (!bInSchema) return; - - SDOXMLString base = attributes.getValue("base"); - if (!base.isNull()) - { - SDOXMLString typeUri; - SDOXMLString typeName; - // Resolve typename to uri:name - XMLQName qname = resolveTypeName( - base, - namespaces, - typeUri, - typeName); - - // If extending a simple type (an SDO DataType) we create a - // Property named "value" of this type rather than set the - // simple type as a base - - // ?? Does this only apply within a tag?? - if (typeUri.equalsIgnoreCase(Type::SDOTypeNamespaceURI)) - { - // here the type needs to be flagged so that - // we know to serialize this property as an element with - // just the contents abc rather than - // value=abc - - - PropertyDefinition thisProperty; - thisProperty.name = "value"; - thisProperty.localname = "value"; - thisProperty.typeUri = typeUri; - thisProperty.typeName = typeName; - thisProperty.fullTypeName = base; - thisProperty.isContainment = false; - thisProperty.isElement=true; - - currentType.isExtendedPrimitive= true; - - if(qname.getLocalName().equals("QName")) - { - thisProperty.isQName = true; - } - - setCurrentProperty(thisProperty); - defineProperty(); - } - else - { - currentType.parentTypeUri = typeUri; - currentType.parentTypeName = typeName; - } - } - } - - // ============================================================================ - // startGroup - // ============================================================================ - void SDOSchemaSAX2Parser::startGroup( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes) - { - LOGINFO_1( INFO,"SchemaParser:startGroup:%s",(const char*)localname); - - if (!bInSchema) return; - - SDOXMLString maxOccurs = attributes.getValue("maxOccurs"); - if (!maxOccurs.isNull()) - { - if (!maxOccurs.equalsIgnoreCase("1")) - { - currentType.isMany = true; - } - } - } - - // ============================================================================ - // setCurrentType - // ============================================================================ - void SDOSchemaSAX2Parser::setCurrentType(const TypeDefinition& type) - { - typeStack.push(currentType); - currentType = type; - } - - // ============================================================================ - // defineType - // ============================================================================ - void SDOSchemaSAX2Parser::defineType() - { - // Set this Type as sequenced of more than one element in a group definition - if (currentType.groupElementCount > 1) - { - currentType.isSequenced = true; - } - - SDOXMLString typeQname = TypeDefinitions::getTypeQName(currentType.uri, currentType.localname); - typeDefinitions.types[typeQname] = currentType; - - if (currentProperty.typeName.isNull()) - { - // Set the type name to the name of this type - currentProperty.typeUri = currentType.uri; - currentProperty.typeName = currentType.localname; - } - - if (typeStack.size() != 0) - { - currentType = typeStack.top(); - typeStack.pop(); - } - else - { - currentType = TypeDefinition(); - } - } - - // ============================================================================ - // setCurrentProperty - // ============================================================================ - void SDOSchemaSAX2Parser::setCurrentProperty(const PropertyDefinition& prop) - { - propertyStack.push(currentProperty); - currentProperty = prop; - } - - // ============================================================================ - // defineProperty - // ============================================================================ - void SDOSchemaSAX2Parser::defineProperty() - { - - if (currentProperty.typeName.isNull()) - { - // Set the type of this property to default (sdo:String) - currentProperty.typeUri = Type::SDOTypeNamespaceURI; - currentProperty.typeName = "String"; - } - - if (currentProperty.localname.isNull()) - currentProperty.localname = currentProperty.typeName; - - // Set isMany if property isMany OR if containing type isMany - // NOTE: The above comment is as per the SDO2.0 spec however this does not - // work when serializing a sequence containing a single-valued property and - // then deserializing. - // currentProperty.isMany = currentProperty.isMany || currentType.isMany; - - - currentType.properties.insert(currentType.properties.end(), currentProperty); - if (propertyStack.size() != 0) - { - currentProperty = propertyStack.top(); - propertyStack.pop(); - } - else - currentProperty = PropertyDefinition(); - - } - - // ============================================================================ - // setDefault - // ============================================================================ - void SDOSchemaSAX2Parser::setDefault( - PropertyDefinition& thisProperty, - const SAX2Attributes& attributes) - { - thisProperty.defaultValue = attributes.getValue("fixed"); - if (!thisProperty.defaultValue.isNull()) - { - thisProperty.isReadOnly = true; - } - else - { - thisProperty.defaultValue = attributes.getValue("default"); - } - } - - // ============================================================================ - // setName - // ============================================================================ - void SDOSchemaSAX2Parser::setName( - const SAX2Attributes& attributes, - SDOXMLString& sdoname, - SDOXMLString& localname) - { - for (int i=0; i < attributes.size(); i++) - { - // Handle sdo: annotations - if (attributes[i].getUri().equalsIgnoreCase("commonj.sdo/xml")) - { - // sdo:name overrides the property name - if (attributes[i].getName().equalsIgnoreCase("name")) - { - sdoname = attributes[i].getValue(); - } - } - else - { - - if (attributes[i].getName().equalsIgnoreCase("name")) - { - localname = attributes[i].getValue(); - // If name is already set it must have been an - // override using sdo:name - if (sdoname.isNull()) - { - sdoname = localname; - } - } - } - } - - } - - // ============================================================================ - // setType - // ============================================================================ - void SDOSchemaSAX2Parser::setType( - PropertyDefinition& property, - const SAX2Attributes& attributes, - const SAX2Namespaces& namespaces) - { - property.fullLocalTypeName = attributes.getValue("type"); - if (!property.fullLocalTypeName.isNull()) - { - XMLQName qname(property.fullLocalTypeName,schemaInfo.getSchemaNamespaces(), namespaces); - if (qname.getLocalName().equals("IDREF") - || qname.getLocalName().equals("IDREFS")) - { - property.fullTypeName = attributes.getValue("commonj.sdo/xml","propertyType"); - - property.isIDREF = true; - property.isContainment = false; - - if (qname.getLocalName().equals("IDREFS")) - { - property.isMany = true; - } - } - else if (qname.getLocalName().equals("anyURI")) - { - property.fullTypeName = attributes.getValue("commonj.sdo/xml","propertyType"); - } - else if (qname.getLocalName().equals("ID")) - { - property.isID = true; - currentType.IDPropertyName = property.name; - } - - else - { - property.fullTypeName = attributes.getValue("commonj.sdo/xml","dataType"); - } - } - - else - { - property.fullLocalTypeName = attributes.getValue("ref"); - if (!property.fullLocalTypeName.isNull()) - { - property.isReference = true; - } - } - - if (property.fullTypeName.isNull()) - { - property.fullTypeName = property.fullLocalTypeName; - } - - if (!property.fullTypeName.isNull()) - { - // Resolve typename to uri:name - XMLQName qname = resolveTypeName( - property.fullTypeName, - namespaces, - property.typeUri, - property.typeName); - - if(qname.getLocalName().equals("QName")) - { - property.isQName = true; - } - } - - } - - // ============================================================================ - // setTypeName - // ============================================================================ - void SDOSchemaSAX2Parser::setTypeName( - TypeDefinition& type, - const SAX2Attributes& attributes, - const SAX2Namespaces& namespaces) - { - std::map::iterator it; - setName(attributes, type.name, type.localname); - // If localname is not set it is anonymous so use the enclosing element name - - - if (type.localname.isNull()) - { - type.localname = currentProperty.name; - } - else - { - // check for an overriding url in the name - int i; - if ((i = type.localname.firstIndexOf(':')) > 0) - { - XMLQName qname(type.localname, - schemaInfo.getSchemaNamespaces(), - namespaces); - type.uri = qname.getURI(); - type.localname = qname.getLocalName(); - } - } - - // Set SDO name if not specified - if (type.name .isNull()) - { - type.name = type.localname ; - } - else - { - // check for an overriding url in the name - int i; - if ((i = type.name.firstIndexOf(':')) > 0) - { - XMLQName qname(type.name, - schemaInfo.getSchemaNamespaces(), - namespaces); - type.uri = qname.getURI(); - type.name = qname.getLocalName(); - } - } - } - - std::istream& operator>>(std::istream& input, SDOSchemaSAX2Parser& parser) - { - parser.stream(input); - - return input; - } - - std::istringstream& operator>>(std::istringstream& input, SDOSchemaSAX2Parser& parser) - { - parser.stream(input); - - return input; - } - - // ============================================================================ - // resolveTypeName - // ============================================================================ - XMLQName SDOSchemaSAX2Parser::resolveTypeName( - const SDOXMLString& fullTypeName, - const SAX2Namespaces& namespaces, - SDOXMLString& uri, - SDOXMLString& name) - { - XMLQName qname(fullTypeName, - schemaInfo.getSchemaNamespaces(), - namespaces); - - uri = qname.getURI(); - name = qname.getLocalName(); - - /////////////////////////////////////////////////////////////////////// - // Map the xsd types to SDO Types - /////////////////////////////////////////////////////////////////////// - if (qname.getURI().equalsIgnoreCase("http://www.w3.org/2001/XMLSchema")) - { - uri = Type::SDOTypeNamespaceURI; - if (qname.getLocalName().equalsIgnoreCase("ID")) - { - name = "String"; - } - if (qname.getLocalName().equalsIgnoreCase("NCName")) - { - name = "String"; - } - if (qname.getLocalName().equalsIgnoreCase("string")) - { - name = "String"; - } - else if (qname.getLocalName().equalsIgnoreCase("anyType")) - { - name = "DataObject"; - } - else if (qname.getLocalName().equalsIgnoreCase("int")) - { - name = "Integer"; - } - else if (qname.getLocalName().equalsIgnoreCase("integer")) - { - name = "Integer"; - } - else if (qname.getLocalName().equalsIgnoreCase("negativeInteger")) - { - name = "Integer"; - } - else if (qname.getLocalName().equalsIgnoreCase("nonNegativeInteger")) - { - name = "Integer"; - } - else if (qname.getLocalName().equalsIgnoreCase("positiveInteger")) - { - name = "Integer"; - } - else if (qname.getLocalName().equalsIgnoreCase("nonPositiveInteger")) - { - name = "Integer"; - } - else if (qname.getLocalName().equalsIgnoreCase("unsignedLong")) - { - name = "Integer"; - } - else if (qname.getLocalName().equalsIgnoreCase("unsignedShort")) - { - name = "Integer"; - } - else if (qname.getLocalName().equalsIgnoreCase("unsignedInt")) - { - name = "Long"; - } - else if (qname.getLocalName().equalsIgnoreCase("long")) - { - name = "Long"; - } - else if (qname.getLocalName().equalsIgnoreCase("double")) - { - name = "Double"; - } - else if (qname.getLocalName().equalsIgnoreCase("short")) - { - name = "Short"; - } - else if (qname.getLocalName().equalsIgnoreCase("unsignedByte")) - { - name = "Short"; - } - else if (qname.getLocalName().equalsIgnoreCase("float")) - { - name = "Float"; - } - else if (qname.getLocalName().equalsIgnoreCase("boolean")) - { - name = "Boolean"; - } - else if (qname.getLocalName().equalsIgnoreCase("byte")) - { - name = "Byte"; - } - else if (qname.getLocalName().equalsIgnoreCase("base64Binary")) - { - name = "Bytes"; - } - else if (qname.getLocalName().equalsIgnoreCase("hexBinary")) - { - name = "Bytes"; - } - else if (qname.getLocalName().equalsIgnoreCase("anyURI")) - { - name = "URI"; - } - else if (qname.getLocalName().equalsIgnoreCase("QName")) - { - name = "URI"; - } - else - { - // Default unknown xs: types to string?? - name = "String"; - } - } - - // Temporary hack: ChangeSummaryType is ChangeSummary in core - else if (qname.getURI().equalsIgnoreCase(Type::SDOTypeNamespaceURI)) - { - if (qname.getLocalName().equalsIgnoreCase("ChangeSummaryType")) - { - name = "ChangeSummary"; - } - - } - else if (qname.getURI().isNull()) - { - uri = schemaInfo.getTargetNamespaceURI(); - } - - return qname; - } - - } // End - namespace sdo - -} // End - namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.h deleted file mode 100644 index 53d7cc4e42..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.h +++ /dev/null @@ -1,181 +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:15 $ */ - -#ifndef _SDOSCHEMASAX2PARSER_H_ -#define _SDOSCHEMASAX2PARSER_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SAX2Parser.h" -#include "commonj/sdo/SchemaInfo.h" -#include "stack" -#include "commonj/sdo/TypeDefinitions.h" -#include "commonj/sdo/XMLQName.h" -#include "commonj/sdo/ParserErrorSetter.h" - -namespace commonj -{ - namespace sdo - { - -/** - * SDOSAX2Parser implements SAX2Parser. - * This class gets called back by the libxml library, and - * deals with the creation of metadata objects from XSD. - */ - - class SDOSchemaSAX2Parser : public SAX2Parser - { - - public: - - SDOSchemaSAX2Parser(SchemaInfo& schemaInfo, - ParserErrorSetter* insetter); - - virtual ~SDOSchemaSAX2Parser(); - - - virtual void startElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void endElementNs( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI); - - const SDOXMLString& getTargetNamespaceURI() const {return schemaInfo.getTargetNamespaceURI();} - - TypeDefinitions& getTypeDefinitions() {return typeDefinitions;} - - friend std::istream& operator>>(std::istream& input, SDOSchemaSAX2Parser& parser); - friend std::istringstream& operator>>(std::istringstream& input, SDOSchemaSAX2Parser& parser); - - - private: - - const char* currentFile; - bool bInSchema; // only parse when within a schema - - - virtual void startInclude( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void startElement( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void startAttribute( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void startComplexType( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void startSimpleType( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void startRestriction( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void startExtension( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - virtual void startGroup( - const SDOXMLString& localname, - const SDOXMLString& prefix, - const SDOXMLString& URI, - const SAX2Namespaces& namespaces, - const SAX2Attributes& attributes); - - XMLQName resolveTypeName( - const SDOXMLString& fullTypeName, - const SAX2Namespaces& namespaces, - SDOXMLString& uri, - SDOXMLString& name); - - void setName( - const SAX2Attributes& attributes, - SDOXMLString& sdoname, - SDOXMLString& localname - ); - - void setType( - PropertyDefinition& property, - const SAX2Attributes& attributes, - const SAX2Namespaces& namespaces); - - void setTypeName( - TypeDefinition& type, - const SAX2Attributes& attributes, - const SAX2Namespaces& namespaces); - - void setDefault( - PropertyDefinition& thisProperty, - const SAX2Attributes& attributes); - - - SchemaInfo& schemaInfo; - - - PropertyDefinition currentProperty; - std::stack propertyStack; - void setCurrentProperty(const PropertyDefinition& property); - void defineProperty(); - - TypeDefinition currentType; - std::stack typeStack; - void setCurrentType(const TypeDefinition& type); - void defineType(); - - TypeDefinitions typeDefinitions; - - }; - } // End - namespace sdo -} // End - namespace commonj -#endif //_SDOSCHEMASAX2PARSER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOUtils.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOUtils.cpp deleted file mode 100644 index abfcb32a4b..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOUtils.cpp +++ /dev/null @@ -1,142 +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:15 $ */ - -#include "commonj/sdo/SDOUtils.h" - -using namespace std; - -// -// Utility methods to print a DataObject tree -// - -namespace commonj { - namespace sdo { - - - -////////////////////////////////////////////////////////////////////////// -// Print Tabs -////////////////////////////////////////////////////////////////////////// - - void SDOUtils::printTabs(unsigned int incr) - { - for (int ind=0; ind < incr; ind++) - { - cout << " "; - } - } - -////////////////////////////////////////////////////////////////////////// -// Print a DatObject tree -////////////////////////////////////////////////////////////////////////// - - void SDOUtils::printDataObject(DataObjectPtr dataObject) - { - printDataObject(dataObject,0); - } - - - void SDOUtils::printDataObject(DataObjectPtr dataObject, - unsigned int incr) - { - - cout << ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> start of DO" - << endl; - - if (!dataObject)return; - - const Type& dataObjectType = dataObject->getType(); - printTabs(incr); - cout << "DataObject type: " - << dataObjectType.getURI() - << "#" << dataObjectType.getName() << endl; - - incr++; - - ////////////////////////////////////////////////////////////// - // Iterate over all the properties - ////////////////////////////////////////////////////////////// - PropertyList pl = dataObject->getInstanceProperties(); - for (int i = 0; i < pl.size(); i++) - { - printTabs(incr); - cout << "Property: " << pl[i].getName() << endl; - - const Type& propertyType = pl[i].getType(); - - printTabs(incr); - - cout << "Property Type: " - << propertyType.getURI() - << "#" << propertyType.getName() << endl; - - if (dataObject->isSet(pl[i])) - { - - /////////////////////////////////////////////////////////// - // For a many-valued property get the list of values - /////////////////////////////////////////////////////////// - if (pl[i].isMany()) - { - incr++; - DataObjectList& dol = dataObject->getList(pl[i]); - for (int j = 0; j getCString(pl[i]) <getDataObject(pl[i]),incr); - incr--; - } - } - else - { - printTabs(incr); - cout << "Property Value: not set" <content; - } - } // End - namespace sdo -} // End - namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLBufferWriter.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLBufferWriter.h deleted file mode 100644 index 489f44b86c..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLBufferWriter.h +++ /dev/null @@ -1,51 +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:15 $ */ - -#ifndef _SDOXMLBUFFERWRITER_H_ -#define _SDOXMLBUFFERWRITER_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SDOXMLWriter.h" - -namespace commonj -{ - namespace sdo - { - -/** - * SDOXMLBufferWriter extends SDOXMLWriter and writes a buffer. - */ - class SDOXMLBufferWriter : public SDOXMLWriter - { - - public: - - SDOXMLBufferWriter(DataFactoryPtr dataFactory = NULL); - virtual ~SDOXMLBufferWriter(); - - SDOXMLString getBuffer(); - private: - xmlBufferPtr buf; - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_SDOXMLBUFFERWRITER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.cpp deleted file mode 100644 index 09d80075c9..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.cpp +++ /dev/null @@ -1,44 +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:15 $ */ - -#include "commonj/sdo/SDOXMLFileWriter.h" - -namespace commonj -{ - namespace sdo - { - - - - - SDOXMLFileWriter::SDOXMLFileWriter(const char* xmlFile, DataFactoryPtr dataFactory) - : SDOXMLWriter(dataFactory) - { - setWriter(xmlNewTextWriterFilename(xmlFile, 0)); - } - - SDOXMLFileWriter::~SDOXMLFileWriter() - { - - } - - - } // End - namespace sdo -} // End - namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.h deleted file mode 100644 index cddfb41293..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLFileWriter.h +++ /dev/null @@ -1,52 +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:15 $ */ - -#ifndef _SDOXMLFILEWRITER_H_ -#define _SDOXMLFILEWRITER_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SDOXMLWriter.h" - - - -namespace commonj -{ - namespace sdo - { - -/** - * SDOXMLFileWriter extends SDOXMLWriter and writes a file. - */ - class SDOXMLFileWriter : public SDOXMLWriter - { - - public: - - SDOXMLFileWriter(const char* xmlFile, DataFactoryPtr dataFactory = NULL); - - virtual ~SDOXMLFileWriter(); - - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_SDOXMLFILEWRITER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.cpp deleted file mode 100644 index 00d76b1b6e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.cpp +++ /dev/null @@ -1,50 +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: 2006/02/01 16:24:13 $ */ - -#include "commonj/sdo/SDOXMLStreamWriter.h" -#include - -namespace commonj -{ - namespace sdo - { - - - - - SDOXMLStreamWriter::SDOXMLStreamWriter(std::ostream& outXML, DataFactoryPtr dataFactory) - : SDOXMLBufferWriter(dataFactory), outXmlStream(outXML) - { - } - - SDOXMLStreamWriter::~SDOXMLStreamWriter() - { - } - - int SDOXMLStreamWriter::write(XMLDocumentPtr doc, int indent) - { - int rc = SDOXMLBufferWriter::write(doc, indent); - - // Now stream the buffer - outXmlStream << getBuffer(); - return rc; - } - } // End - namespace sdo -} // End - namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.h deleted file mode 100644 index 92bbfa3cf0..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLStreamWriter.h +++ /dev/null @@ -1,54 +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: 2006/02/01 16:24:13 $ */ - -#ifndef _SDOXMLSTREAMWRITER_H_ -#define _SDOXMLSTREAMWRITER_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SDOXMLBufferWriter.h" -#include - - -namespace commonj -{ - namespace sdo - { - -/** - * SDOXMLStreamWriter extends SDOXMLWriter and writes a stream. - */ - class SDOXMLStreamWriter : public SDOXMLBufferWriter - { - - public: - - SDOXMLStreamWriter(std::ostream& outXML, DataFactoryPtr dataFactory = NULL); - virtual ~SDOXMLStreamWriter(); - - int write(XMLDocumentPtr doc, int indent = -1); - private: - std::ostream& outXmlStream; - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_SDOXMLSTREAMWRITER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.cpp deleted file mode 100644 index 248df58a7f..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.cpp +++ /dev/null @@ -1,223 +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: 2006/01/23 16:39:24 $ */ - -#include "commonj/sdo/SDOXMLString.h" -#include -#include "libxml/globals.h" - -#include - -namespace commonj -{ - namespace sdo - { - - SDOXMLString::SDOXMLString() - : xmlForm(0) - { - } - - SDOXMLString::SDOXMLString(const xmlChar* xmlString) - { - xmlForm = xmlStrdup(xmlString); - } - - SDOXMLString::SDOXMLString(const char* localString) - { - xmlForm = xmlCharStrdup(localString); - } - - SDOXMLString::SDOXMLString(const SDOXMLString& str) - { - xmlForm = xmlStrdup(str.xmlForm); - } - - SDOXMLString::SDOXMLString(const xmlChar* str, int start, int len) - { - xmlForm = xmlStrsub(str, start, len); - } - - SDOXMLString& SDOXMLString::operator=(const SDOXMLString& str) - { - if (this != &str) - { - release(); - xmlForm = xmlStrdup(str.xmlForm); - } - return *this; - } - - SDOXMLString SDOXMLString::operator+(const SDOXMLString& str) const - { - xmlChar* newString = xmlStrncatNew(xmlForm, str.xmlForm, xmlStrlen(str.xmlForm)); - SDOXMLString retString(newString); - if (newString) - xmlFree(newString); - return retString; - } - - SDOXMLString& SDOXMLString::operator+=(const SDOXMLString& str) - { - xmlForm = xmlStrncat(xmlForm, str.xmlForm, xmlStrlen(str.xmlForm)); - return *this; - } - - SDOXMLString::~SDOXMLString() - { - release(); - } - - void SDOXMLString::release() - { - if (xmlForm) - xmlFree((void*)xmlForm); - } - - bool SDOXMLString::operator< (const SDOXMLString& str) const - { - if (xmlStrcmp(xmlForm, str.xmlForm) <0) - return true; - else - return false; - } - - bool SDOXMLString::operator==(const SDOXMLString& str) const - { - if (xmlStrEqual(xmlForm, str.xmlForm)) - return true; - else - return false; - } - - bool SDOXMLString::equals(const SDOXMLString& str) const - { - return equals(str.xmlForm); - } - - bool SDOXMLString::equals(const char* localString) const - { - return equals(SDOXMLString(localString)); - } - - - bool SDOXMLString::equals(const xmlChar* xmlString) const - { - if (xmlStrEqual(xmlForm, xmlString)) - return true; - else - return false; - } - - bool SDOXMLString::equalsIgnoreCase(const SDOXMLString& str) const - { - return equalsIgnoreCase(str.xmlForm); - } - - bool SDOXMLString::equalsIgnoreCase(const char* localString) const - { - return equalsIgnoreCase(SDOXMLString(localString)); - } - - - bool SDOXMLString::equalsIgnoreCase(const xmlChar* xmlString) const - { - if (xmlStrcasecmp(xmlForm, xmlString) == 0) - return true; - else - return false; - } - - - std::ostream& operator<<(std::ostream& output, const SDOXMLString& str) - { - if (str.xmlForm) - output << str.xmlForm; - return output; - } - - bool SDOXMLString::isNull() const - { - if (xmlForm) - return false; - else - return true; - } - - SDOXMLString SDOXMLString::toLower(unsigned int start, unsigned int length) - { - char* newString = new char[strlen(*this)+1]; - strcpy(newString, *this); - for (int i = start; (i<=(strlen(newString)) && i < length); i++) - { - newString[i] = tolower(newString[i]); - } - SDOXMLString retString(newString); - delete newString; - return retString; - } - - int SDOXMLString::firstIndexOf(const char ch) const - { - const xmlChar* loc = xmlStrchr(xmlForm, ch); - if (loc == 0) - { - return -1; - } - - return int(loc-xmlForm); - } - - int SDOXMLString::lastIndexOf(const char ch) const - { - const xmlChar* index = 0; - const xmlChar* loc = xmlStrchr(xmlForm, ch); - while (loc !=0) - { - index = loc; - loc = xmlStrchr(loc+1, ch); - } - - if (index == 0) - return -1; - - return int(index-xmlForm); - } - - SDOXMLString SDOXMLString::substring(int start, int length) const - { - if (length >0) - { - return xmlStrsub(xmlForm, start, length); - } - else - return SDOXMLString(); - } - - SDOXMLString SDOXMLString::substring(int start) const - { - - return xmlStrsub(xmlForm, start, xmlStrlen(xmlForm) - start); - } - - - } // End - namespace sdo -} // End - namespace commonj - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.h deleted file mode 100644 index 9cbf48be1d..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLString.h +++ /dev/null @@ -1,91 +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:15 $ */ - -#include "commonj/sdo/disable_warn.h" - -#ifndef _SDOXMLString_H_ -#define _SDOXMLString_H_ -#include "commonj/sdo/export.h" - -#include -#include - -namespace commonj -{ - namespace sdo - { - /** - * SDOXMLString - utility class for string handling. - * Keeps the string handling local to one place, so we can - * replace it with a more NLS friendly version later. - * Many places within the core should use this too instead - * of allocated char* buffers. (DataObject etc...) - */ - - class SDOXMLString - { - public: - SDO_SPI SDOXMLString(); - SDO_SPI SDOXMLString(const xmlChar* xmlString); - SDO_SPI SDOXMLString(const char* localString); - SDO_SPI SDOXMLString(const SDOXMLString& str); - SDO_SPI SDOXMLString(const xmlChar* str, int start, int len); - SDO_SPI virtual ~SDOXMLString(); - - SDO_SPI SDOXMLString& operator=(const SDOXMLString& str); - SDO_SPI SDOXMLString operator+(const SDOXMLString& str) const; - SDO_SPI SDOXMLString& operator+=(const SDOXMLString& str); - - - SDO_SPI bool operator== (const SDOXMLString& str) const; - SDO_SPI bool equals(const xmlChar* xmlString) const; - SDO_SPI bool equals(const char* localString) const; - SDO_SPI bool equals(const SDOXMLString& str) const; - SDO_SPI bool equalsIgnoreCase(const xmlChar* xmlString) const; - SDO_SPI bool equalsIgnoreCase(const char* localString) const; - SDO_SPI bool equalsIgnoreCase(const SDOXMLString& str) const; - - SDO_SPI bool operator< (const SDOXMLString& str) const; - - SDO_SPI operator const char*() const {return (const char*) xmlForm;} - SDO_SPI operator const xmlChar*() const {return xmlForm;} - - SDO_SPI friend std::ostream& operator<<(std::ostream& output, const SDOXMLString& str); - - SDO_SPI bool isNull() const; - - SDO_SPI SDOXMLString toLower( - unsigned int start = 0, - unsigned int length = 0); - - - SDO_SPI int firstIndexOf(const char ch) const; - SDO_SPI int lastIndexOf(const char ch) const; - SDO_SPI SDOXMLString substring(int start, int length) const; - SDO_SPI SDOXMLString substring(int start) const; - private : - xmlChar* xmlForm; - void release(); - }; - } // End - namespace sdo -} // End - namespace commonj - - - -#endif // _SDOXMLString_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp deleted file mode 100644 index cb72060e98..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp +++ /dev/null @@ -1,1173 +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: 2006/02/17 16:01:05 $ */ - -#include "commonj/sdo/SDOXMLWriter.h" -#include "commonj/sdo/SDOXMLString.h" -#include "iostream" -using namespace::std; -#include "commonj/sdo/DASProperty.h" -#include "commonj/sdo/XSDPropertyInfo.h" -#include "commonj/sdo/XSDTypeInfo.h" -#include "commonj/sdo/ChangeSummary.h" -#include "commonj/sdo/Sequence.h" -#include "commonj/sdo/SDORuntimeException.h" -#include "commonj/sdo/XMLQName.h" -#include "commonj/sdo/DataObjectImpl.h" - -namespace commonj -{ - namespace sdo - { - - - - - SDOXMLWriter::SDOXMLWriter( - DataFactoryPtr dataFact) - : dataFactory(dataFact) - { - - } - - SDOXMLWriter::~SDOXMLWriter() - { - freeWriter(); - } - - void SDOXMLWriter::setWriter(xmlTextWriterPtr textWriter) - { - writer = textWriter; - } - - void SDOXMLWriter::freeWriter() - { - if (writer != NULL) - { - xmlFreeTextWriter(writer); - writer = NULL; - } - } - - int SDOXMLWriter::write(XMLDocumentPtr doc, int indent) - { - if (!doc) - { - return 0; - } - - if (writer == NULL) - { - // Throw exception - return -1; - } - - int rc = 0; - - //namespaceUriStack.empty(); - //namespaceUriStack.push(SDOXMLString()); - //namespaces.empty(); - //namespaceStack.push(namespaces); - namespaceMap.empty(); - - if (indent >= 0) - { - xmlTextWriterSetIndent(writer, 1); - if (indent > 0) - { - char * chars = new char[indent+1]; - for (int i=0;igetXMLDeclaration()) - { - rc = xmlTextWriterStartDocument(writer, doc->getXMLVersion(), doc->getEncoding(), NULL); - if (rc < 0) { - SDO_THROW_EXCEPTION("write", SDOXMLParserException, "xmlTextWriterStartDocument failed"); - } - } - - DataObjectPtr root = doc->getRootDataObject(); - if (root) - { - bool writeXSIType = false; - // For the root DataObject we need to determine the element name - SDOXMLString elementURI = doc->getRootElementURI(); - if (elementURI.isNull() || elementURI.equals("")) - { - elementURI = root->getType().getURI(); - } - SDOXMLString elementName = doc->getRootElementName(); - if (elementName.isNull() || elementName.equals("")) - { - elementName = root->getType().getName(); - elementName = elementName.toLower(0,1); - writeXSIType = true; - } - - writeDO(root, elementURI, elementName, true, true); - } - rc = xmlTextWriterEndDocument(writer); - if (rc < 0) { - SDO_THROW_EXCEPTION("write", SDOXMLParserException, "xmlTextWriterEndDocument failed"); - return rc; - } - - xmlTextWriterFlush(writer); - freeWriter(); - - return rc; - } - - ////////////////////////////////////////////////////////////////////////// - // Write Change Summary attributes - ////////////////////////////////////////////////////////////////////////// - - void SDOXMLWriter::handleChangeSummaryAttributes( - ChangeSummaryPtr cs, - DataObjectPtr dol) - { - int rc; - - SettingList& sl = cs->getOldValues(dol); - if (sl.size() == 0) - { - // no attributes - return; - } - for (int j=0;j< sl.size(); j++) - { - try { - - if (sl.get(j)->getProperty().isMany()) - { - // manys are elements - continue; - } - - if (sl.get(j)->getProperty().getType().isDataType()) - { - // data types are OK - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString(sl.get(j)->getProperty().getName()), - SDOXMLString(sl.get(j)->getCStringValue())); - } - else - { - DataObjectPtr dob = sl.get(j)->getDataObjectValue(); - if (dob) - { - if (cs->isDeleted(dob)) - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString(sl.get(j)->getProperty().getName()), - SDOXMLString(cs->getOldXpath(dob))); - } - else - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString(sl.get(j)->getProperty().getName()), - SDOXMLString(dob->objectToXPath())); - } - } - else - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString(sl.get(j)->getProperty().getName()), - SDOXMLString("")); - } - } - } - catch (SDORuntimeException e) - { - // ignore this attribute - } - } - } - - ////////////////////////////////////////////////////////////////////////// - // Write Change Summary elements - ////////////////////////////////////////////////////////////////////////// - - void SDOXMLWriter::handleChangeSummaryElements( - ChangeSummaryPtr cs, - DataObjectPtr dob) - { - int rc; - - SettingList& sl = cs->getOldValues(dob); - - if (sl.size() == 0) - { - // there are no setting for this element. - return; - } - - for (int j=0;j< sl.size(); j++) - { - try - { - - // single values will have been covered by the attributes. - if (!sl.get(j)->getProperty().isMany()) continue; - - if (sl.get(j)->getProperty().getType().isDataType()) - { - - rc = xmlTextWriterWriteElement( - writer, - SDOXMLString(sl.get(j)->getProperty().getName()), - SDOXMLString(sl.get(j)->getCStringValue())); - - } // if datatype - else - { - DataObjectPtr dob2 = sl.get(j)->getDataObjectValue(); - if (!dob2) - { - continue; - } - if (cs->isDeleted(dob2)) - { - handleChangeSummaryDeletedObject(sl.get(j)->getProperty().getName(), cs,dob2); - } - else - { - rc = xmlTextWriterStartElement( - writer, - SDOXMLString(sl.get(j)->getProperty().getName())); - rc = xmlTextWriterWriteAttribute( - writer, - SDOXMLString("sdo:ref"), - SDOXMLString(dob2->objectToXPath())); - rc = xmlTextWriterEndElement( - writer); - } - } - } - catch (SDORuntimeException e) - { - // ignore this element - } - } // for - } - - - ////////////////////////////////////////////////////////////////////////// - // Write a deleted object and all its props - ////////////////////////////////////////////////////////////////////////// - - void SDOXMLWriter::handleChangeSummaryDeletedObject( - const char* name, - ChangeSummaryPtr cs, - DataObjectPtr dob) - { - - int rc, k; // TODO error handling - - SettingList& sl = cs->getOldValues(dob); - - rc = xmlTextWriterStartElement( - writer, - SDOXMLString(name)); - - if (sl.size() == 0) - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("sdo:ref"), - SDOXMLString(cs->getOldXpath(dob))); - rc = xmlTextWriterEndElement(writer); - return; - } - - - try - { - // print single valued datatypes as attributes - - for (int j=0;j< sl.size(); j++) - { - //if (!sl.get(j)->isSet()) - //{ - // // unset properties dont need recording - ah but they do! - // - // continue; - //} - if ( sl.get(j)->getProperty().isMany()) - { - // manys are elements - continue; - } - if (!sl.get(j)->getProperty().getType().isDataType()) - { - // data objects are element in a deleted data object. - continue; - } - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString(sl.get(j)->getProperty().getName()), - SDOXMLString(sl.get(j)->getCStringValue())); - - } // for attributes - - - // now we are onto the many-values, - // and dataobject single values. - // - // handle deletions within deletions in reverse order, so they match the - // deletion records above. - - for (k=sl.size()-1;k>=0; k--) - { - - if ( !sl.get(k)->getProperty().getType().isDataType() && - sl.get(k)->getProperty().isMany()) - { - // its a dataobject type - DataObjectPtr dob2 = sl.get(k)->getDataObjectValue(); - if (!dob2) continue; - if (!cs->isDeleted(dob2)) continue; - handleChangeSummaryDeletedObject(sl.get(k)-> - getProperty().getName(),cs,dob2); - } - } // for attributes - - for (k=0;k< sl.size(); k++) - { - - if ( !sl.get(k)->getProperty().getType().isDataType()) - { - if (sl.get(k)->getProperty().isMany()) continue; - // its a single valued dataobject type - - DataObjectPtr dob2 = sl.get(k)->getDataObjectValue(); - if (!dob2) continue; - if (!cs->isDeleted(dob2)) continue; - handleChangeSummaryDeletedObject(sl.get(k)-> - getProperty().getName(),cs,dob2); - - } - else - { - if ( !sl.get(k)->getProperty().isMany()) continue; - - // could only be many valued data type - - rc = xmlTextWriterWriteElement(writer, - SDOXMLString(sl.get(k)->getProperty().getName()), - SDOXMLString(sl.get(k)->getCStringValue())); - } - } // for attributes - } - catch (SDORuntimeException e) - { - // ignore - and write the end-element - } - - rc = xmlTextWriterEndElement(writer); - } - - - ////////////////////////////////////////////////////////////////////////// - // Write the list of elements of a change summary - ////////////////////////////////////////////////////////////////////////// - - void SDOXMLWriter::handleSummaryChange( - const SDOXMLString& elementName, - ChangeSummaryPtr cs, - DataObjectPtr dob) - { - int rc; - DataObject* temp = dob; - const char* name; - try - { - name = temp->getContainmentProperty().getName(); - } - catch (SDORuntimeException e) - { - // This could be a root, and have no name. - name = 0; - } - - if (name == 0) - { - rc = xmlTextWriterStartElement( - writer, - elementName); - } - else - { - rc = xmlTextWriterStartElement( - writer, - SDOXMLString(name)); - } - - if (rc != 0) - { - // failed to write an element - return; - } - - try - { - name = temp->objectToXPath(); - } - catch (SDORuntimeException e) - { - name = 0; - } - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("sdo:ref"), - SDOXMLString(name)); - - handleChangeSummaryAttributes(cs, temp); - - handleChangeSummaryElements(cs, temp); - - rc = xmlTextWriterEndElement(writer); - - } - - ////////////////////////////////////////////////////////////////////////// - // Write a Change Summary - ////////////////////////////////////////////////////////////////////////// - - void SDOXMLWriter::handleChangeSummary( - const SDOXMLString& elementName, - ChangeSummaryPtr cs) - { - int i; - int rc; - - ChangedDataObjectList& changedDOs = cs->getChangedDataObjects(); - if (changedDOs.size() > 0) - { - rc = xmlTextWriterStartElementNS(writer, - SDOXMLString("sdo"), SDOXMLString("changeSummary"), SDOXMLString(Type::SDOTypeNamespaceURI)); - - // Fall at the first hurdle - dont write anything. - if (rc != 0) return; - - // write the creates/deletes in the order they - // happened, as elements. - - for (i=0;i< changedDOs.size();i++) - { - if (cs->isCreated(changedDOs[i]) - && changedDOs.getType(i) == ChangedDataObjectList::Create) - { - // TODO - should work out if theres a IDREF here - // TODO - can we have more than one create like this? - try - { - rc = xmlTextWriterWriteElement(writer, - SDOXMLString("create"), - SDOXMLString(changedDOs[i]->objectToXPath())); - } - catch (SDORuntimeException e) - { - // The object was not in our tree - we ignore it. - } - } - if (cs->isDeleted(changedDOs[i]) - && changedDOs.getType(i) == ChangedDataObjectList::Delete) - { - // TODO - should work out if theres a IDREF here - try - { - rc = xmlTextWriterWriteElement(writer, - SDOXMLString("delete"), - SDOXMLString(cs->getOldXpath(changedDOs[i]))); - } - catch (SDORuntimeException e) - { - // The object was not in the deleted list - we ignore it. - } - } - } - - if (cs->isLogging()) - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("logging"), - SDOXMLString("true")); - } - - - for (i=0;i< changedDOs.size();i++) - { - if (cs->isModified(changedDOs[i])) - { - handleSummaryChange(elementName, cs, changedDOs[i]); - } - } - - rc = xmlTextWriterEndElement(writer); - - } - } - - ////////////////////////////////////////////////////////////////////////// - // Add to namespaces - ////////////////////////////////////////////////////////////////////////// - - void SDOXMLWriter::addToNamespaces(DataObjectImpl* dob) - { - std::map::iterator it; - SDOXMLString uri = dob->getType().getURI(); - - it = namespaceMap.find(uri); - if (it == namespaceMap.end()) - { - char buf[20]; - sprintf(buf,"%d",++spacescount); - SDOXMLString s = SDOXMLString("tns") + buf; - namespaceMap.insert(make_pair(uri,s)); - } - - PropertyList pl = dob->getInstanceProperties(); - for (int i = 0; i < pl.size(); i++) - { - if (!dob->isSet(pl[i]))continue; - - if (pl[i].isMany()) - { - if (!pl[i].getType().isDataType()) - { - DataObjectList& dl = dob->getList(pl[i]); - for (int k=0;k< dl.size() ;k++) - { - DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dl[k]; - if (d != 0)addToNamespaces(d); - } - } - } - else - { - if (!pl[i].getType().isDataType()) - { - DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dob->getDataObject(pl[i]); - if (d != 0)addToNamespaces(d); - } - else - { - XSDPropertyInfo* pi = getPropertyInfo(dob->getType(), pl[i]); - if (pi) - { - PropertyDefinition propdef; - propdef = pi->getPropertyDefinition(); - if (propdef.isElement)continue; - if (!propdef.isQName)continue; - - SDOXMLString propertyValue = (dob->getCString(pl[i])); - XMLQName qname(propertyValue); - - it = namespaceMap.find(qname.getURI()); - if (it == namespaceMap.end()) - { - char buf[20]; - sprintf(buf,"%d",++spacescount); - SDOXMLString s = SDOXMLString("tns") + buf; - namespaceMap.insert(make_pair(qname.getURI(),s)); - } - } - } - } - } - } - - - - - ////////////////////////////////////////////////////////////////////////// - // Write a DatObject tree - ////////////////////////////////////////////////////////////////////////// - - int SDOXMLWriter::writeDO( - DataObjectPtr dataObject, - const SDOXMLString& elementURI, - const SDOXMLString& elementName, - bool writeXSIType, - bool isRoot) - { - - int rc; - - if (dataObject == 0) - return 0; - - - //SDOXMLString uri; - //if (!elementURI.equals(namespaceUriStack.top())) - //{ - // uri = elementURI; - // namespaceUriStack.push(elementURI); - //} - - const Type& dataObjectType = dataObject->getType(); - - ////////////////////////////////////////////////////////////////////////// - // suppose its a primitive type - just write the value - ////////////////////////////////////////////////////////////////////////// - if (dataObjectType.isDataType()) - { - if (dataObject->isNull("")) - { - rc = xmlTextWriterStartElementNS(writer, - NULL, elementName, elementURI); - if (rc < 0) - { - SDO_THROW_EXCEPTION("writeDO", - SDOXMLParserException, - "xmlTextWriterStartElementNS failed"); - } - rc = xmlTextWriterWriteAttribute(writer, - (const unsigned char*)"xsi:nil", - (const unsigned char*)"true"); - rc = xmlTextWriterEndElement(writer); - } - else - { - xmlTextWriterWriteElement( - writer, - elementName, - SDOXMLString(dataObject->getCString(""))); - } - - // need to pop stacks before returning - //if (!uri.isNull()) - //{ - // namespaceUriStack.pop(); - //} - return 0; - - } - - - //namespaceStack.push(namespaces); - - - if (isRoot) - { - tnsURI=elementURI; - if (elementURI.equals("")) { - rc = xmlTextWriterStartElementNS(writer, NULL, elementName, NULL); - } - else - { - rc = xmlTextWriterStartElementNS(writer, NULL, elementName, elementURI); - } - if (rc < 0) { - SDO_THROW_EXCEPTION("writeDO", SDOXMLParserException, "xmlTextWriterStartElementNS failed"); - } - } - else - { - //xmlTextWriterWriteString(writer,SDOXMLString("\n")); - - SDOXMLString theName=elementName; - - if (!elementURI.isNull() && !elementURI.equals(tnsURI) && !elementURI.equals("")) - { - std::map::iterator it = namespaceMap.find(elementURI); - if (it != namespaceMap.end()) - { - theName = (*it).second; - theName += ":"; - theName += elementName; - } - } - - rc = xmlTextWriterStartElementNS(writer, NULL, theName, NULL); - if (rc < 0) { - SDO_THROW_EXCEPTION("writeDO", SDOXMLParserException, "xmlTextWriterStartElementNS failed"); - } - } - - - if (writeXSIType) - { - rc = xmlTextWriterWriteAttributeNS(writer, - SDOXMLString("xsi"), SDOXMLString("type"), - NULL, - /*SDOXMLString("http://www.w3.org/2001/XMLSchema-instance"),*/ - SDOXMLString(dataObject->getType().getName())); - if (isRoot) - { - namespaceMap.insert(make_pair( - SDOXMLString("http://www.w3.org/2001/XMLSchema-instance"), - SDOXMLString("xsi"))); - - } - } - - - if (isRoot) - { - std::map::iterator it = namespaceMap.find(elementURI); - if (it == namespaceMap.end()) - { - SDOXMLString s = SDOXMLString("tns"); - namespaceMap.insert(make_pair(elementURI,s)); - } - DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dataObject; - spacescount = 1; - addToNamespaces(d); - -///////////////////////////////////////////////////////////////////////////////////// -// // build the namespace map, and write the items out at the -// // top of the tree. -// int spacecount = 0; -// DataObjectImpl* d = (DataObjectImpl*)(DataObject*)dataObject; -// if (d != 0) -// { -// TypeList types = (d->getDataFactory())->getTypes(); -// std::map::iterator it; -// -// for (int i = 0; i::iterator it = namespaceMap.find(uri); -// if (it == namespaceMap.end()) -// { -// char buf[4]; -// if (!elementURI.isNull()) -// { -// if (elementURI.equals(uri)) -// { -// SDOXMLString s = SDOXMLString("tns"); -// namespaceMap.insert(make_pair(uri,s)); -// } -// else -// { -// sprintf(buf,"%d",++spacecount); -// SDOXMLString s = SDOXMLString("tns") + buf; -// namespaceMap.insert(make_pair(uri,s)); -// } -// } -// } -// } -//////////////////////////////////////////////////////////////////////////////////// - - for (it = namespaceMap.begin();it != namespaceMap.end(); ++it) - { - if ((*it).first.equals("")) continue; - SDOXMLString space = SDOXMLString("xmlns:") + (*it).second; - rc = xmlTextWriterWriteAttribute(writer, - space, (*it).first); - } - } - - - ////////////////////////////////////////////////////////////////////////// - // write out the type if the xsi:type if the containing type is open - // and the property is not one of the declared properties - ////////////////////////////////////////////////////////////////////////// - DataObject* dob = dataObject; - DataObjectImpl* cont = - ((DataObjectImpl*)dob)->getContainerImpl(); - if (cont != 0) - { - if (cont->getType().isOpenType()) - { - //if (dataObject->getType().getURI() != 0) - //{ - // std::string value = - // dataObject->getType().getURI(); - // value += ":"; - // value += dataObject->getType().getName(); - // rc = xmlTextWriterWriteAttribute(writer, - // (const unsigned char*)"xsi:type", - // (const unsigned char*)value.c_str()); - //} - //else - //{ - if (cont->getTypeImpl().getPropertyImpl(elementName) == 0) - { - rc = xmlTextWriterWriteAttribute(writer, - (const unsigned char*)"xsi:type", - (const unsigned char*)dataObject->getType().getName()); - } - } - } - - // write nil if required - if (dataObject->isNull("")) - { - rc = xmlTextWriterWriteAttribute(writer, - (const unsigned char*)"xsi:nil", - (const unsigned char*)"true"); - } - - - ////////////////////////////////////////////////////////////////////////// - // Iterate over all the properties to find attributes - ////////////////////////////////////////////////////////////////////////// - int i; - int j = 1; - PropertyList pl = dataObject->getInstanceProperties(); - for (i = 0; i < pl.size(); i++) - { - if (dataObject->isSet(pl[i])) - { - SDOXMLString propertyName(pl[i].getName()); - XSDPropertyInfo* pi = getPropertyInfo(dataObjectType, pl[i]); - PropertyDefinition propdef; - if (pi) - { - propdef = pi->getPropertyDefinition(); - propertyName = propdef.localname; - } - - // Elements are written as - if (propdef.isElement) - continue; - - // Many-valued properties are written as - if (pl[i].isMany()) - continue; - - // if (pl[i].isContainment()) - // continue; - - ////////////////////////////////////////////////////////////////////// - // Non contained properties become attributes - ////////////////////////////////////////////////////////////////////// - const Type& propertyType = pl[i].getType(); - - if (propertyType.isDataType()) - { - SDOXMLString propertyValue = (dataObject->getCString(pl[i])); - if (pi && pi->getPropertyDefinition().isQName) - { - XMLQName qname(propertyValue); - - //{ - //const SDOXMLString* prefix = namespaces.findPrefix(qname.getURI()); - //if (prefix == 0) - //{ - // char buffer[100]; - // SDOXMLString pref = "tns"; - // sprintf(buffer, "%d", i); - // pref += buffer; - // namespaces.add(pref, qname.getURI()); - // prefix = namespaces.findPrefix(qname.getURI()); - //} - - //if (prefix != 0 && !(*prefix).equals("")) - - std::map::iterator it = namespaceMap.find(qname.getURI()); - if (it != namespaceMap.end()) - { - propertyValue = (*it).second + ":" + qname.getLocalName(); - } - else - { - char buffer[20]; - SDOXMLString pref = "tnss"; - sprintf(buffer, "%d", j++); - pref += buffer; - rc = xmlTextWriterWriteAttributeNS(writer, - SDOXMLString("xmlns"), pref, NULL, qname.getURI()); - propertyValue = pref + ":" + qname.getLocalName(); - } - - } - rc = xmlTextWriterWriteAttribute(writer, - propertyName, propertyValue); - } - else - { - // Handle non-containment reference to DataObject - if (pl[i].isReference()) - { - writeReference(dataObject, pl[i], false); - } - } - } - } - - // -------------------- - // Handle ChangeSummary - // -------------------- - if (dataObject->getType().isChangeSummaryType()) - { - ChangeSummaryPtr changeSummary = dataObject->getChangeSummary(); - if (changeSummary) - { - handleChangeSummary(elementName, changeSummary); - } - } - - if (dataObjectType.isSequencedType()) - { - SequencePtr sequence = dataObject->getSequence(); - if (sequence) - { - for (i=0; isize(); i++) - { - - if (sequence->isText(i)) - { - rc = xmlTextWriterWriteString( - writer, - SDOXMLString(sequence->getCStringValue(i))); - continue; - } // end TextType - - const Property& seqProp = sequence->getProperty(i); - SDOXMLString seqPropName = seqProp.getName(); - const Type& seqPropType = seqProp.getType(); - - if (seqPropType.isDataObjectType()) - { - DataObjectPtr doValue; - if (seqProp.isMany()) - { - int index = sequence->getListIndex(i); - doValue = dataObject->getList(seqProp)[index]; - } - else - { - doValue = dataObject->getDataObject(seqProp); - } - - if (doValue) - { - // Handle non-containment reference to DataObject - if (seqProp.isReference()) - { - writeReference(dataObject, seqProp, true, doValue); - } - else - { - writeDO(doValue, doValue->getType().getURI(), seqPropName); - } - } - } // end DataObject - - - else - { - // Sequence member is a primitive - xmlTextWriterWriteElement( - writer, - seqPropName, - SDOXMLString(sequence->getCStringValue(i))); - - } // end DataType - } // end - iterate over sequence - - } - - } // end sequence handling - - else - { - - ////////////////////////////////////////////////////////////////////////// - // Iterate over all the properties to find elements - ////////////////////////////////////////////////////////////////////////// - for (i = 0; i < pl.size(); i++) - { - if (dataObject->isSet(pl[i])) - { - - SDOXMLString propertyName(pl[i].getName()); - XSDPropertyInfo* pi = getPropertyInfo(dataObjectType, pl[i]); - if (pi) - { - if (!pi->getPropertyDefinition().isElement) - continue; - propertyName = pi->getPropertyDefinition().localname; - } - - const Type& propertyType = pl[i].getType(); - - ////////////////////////////////////////////////////////////////////// - // For a many-valued property get the list of values - ////////////////////////////////////////////////////////////////////// - if (pl[i].isMany()) - { - DataObjectList& dol = dataObject->getList(pl[i]); - for (int j = 0; j getType().getURI(); - writeDO(dol[j], dol[j]->getType().getURI(), propertyName); - } - } - } // end IsMany - - ////////////////////////////////////////////////////////////////////// - // For a dataobject write the do - ////////////////////////////////////////////////////////////////////// - else if (!propertyType.isDataType()) - { - // Handle non-containment reference to DataObject - if (pl[i].isReference()) - { - if (pi) - writeReference(dataObject, pl[i], true); - } - else - { - DataObjectPtr propDO = dataObject->getDataObject(pl[i]); - writeDO(propDO, propDO->getType().getURI(), propertyName); - } - } - - ////////////////////////////////////////////////////////////////////// - // For a primitive - ////////////////////////////////////////////////////////////////////// - else - { - // Only write a primitive as an element if defined by the XSD - if (pi) - { - const Type& tp = dataObject->getType(); - XSDTypeInfo* typeInfo = (XSDTypeInfo*) - ((DASType*)&tp)->getDASValue("XMLDAS::TypeInfo"); - if (typeInfo && typeInfo->getTypeDefinition().isExtendedPrimitive) - { - xmlTextWriterWriteRaw( - writer, - SDOXMLString(dataObject->getCString(pl[i]))); - } - else - { - if (dataObject->isNull(propertyName)) - { - rc = xmlTextWriterStartElementNS(writer, - NULL, elementName, elementURI); - if (rc < 0) - { - SDO_THROW_EXCEPTION("writeDO", - SDOXMLParserException, - "xmlTextWriterStartElementNS failed"); - } - rc = xmlTextWriterWriteAttribute(writer, - (const unsigned char*)"xsi:nil", - (const unsigned char*)"true"); - rc = xmlTextWriterEndElement(writer); - } - else - { - xmlTextWriterWriteElement( - writer, - propertyName, - SDOXMLString(dataObject->getCString(pl[i]))); - } - } - } - } - } - } - } - rc = xmlTextWriterEndElement(writer); - return rc; - - //namespaces = namespaceStack.top(); - //namespaceStack.pop(); - //if (!uri.isNull()) - //{ - // namespaceUriStack.pop(); - //} - } - - XSDPropertyInfo* SDOXMLWriter::getPropertyInfo(const Type& type, const Property& property) - { - if (dataFactory) - { - return (XSDPropertyInfo*)dataFactory->getDASValue(type, property.getName(), "XMLDAS::PropertyInfo"); - } - else - { - return (XSDPropertyInfo*)((DASProperty*)&property)->getDASValue("XMLDAS::PropertyInfo"); - } - - } - - void SDOXMLWriter::writeReference( - DataObjectPtr dataObject, - const Property& property, - bool isElement, - DataObjectPtr refferedToObject) - { - DataObjectPtr reffedObject = refferedToObject; - if (reffedObject == 0) - { - reffedObject = dataObject->getDataObject(property); - } - - // Get ID from referred to DataObject or use XPath - SDOXMLString refValue; - XSDTypeInfo* ti = (XSDTypeInfo*)((DASType*)&reffedObject->getType())-> - getDASValue("XMLDAS::TypeInfo"); - if (ti) - { - TypeDefinition typeDef = ti->getTypeDefinition(); - if (!typeDef.IDPropertyName.isNull()) - { - refValue = reffedObject->getCString(typeDef.IDPropertyName); - } - } - - if (refValue.isNull()) - { - // need to get XPATH - refValue = ((DataObjectImpl*)(DataObject*)reffedObject)->objectToXPath(); - } - - if (!refValue.isNull()) - { - if (isElement) - { - // Set the IDREF value - xmlTextWriterWriteElement(writer, - SDOXMLString(property.getName()), refValue); - } - else - { - // Set the IDREF value - xmlTextWriterWriteAttribute(writer, - SDOXMLString(property.getName()), refValue); - } - } - } - - } // End - namespace sdo -} // End - namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.h deleted file mode 100644 index b862a492e1..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.h +++ /dev/null @@ -1,117 +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: 2006/02/01 12:53:49 $ */ - -#ifndef _SDOXMLWRITER_H_ -#define _SDOXMLWRITER_H_ - -#include "commonj/sdo/disable_warn.h" - -#include -#include "commonj/sdo/XMLDocument.h" -#include "commonj/sdo/SDOXMLString.h" -#include "commonj/sdo/SchemaInfo.h" -#include "commonj/sdo/DataFactory.h" -#include "commonj/sdo/XSDPropertyInfo.h" -#include -#include "commonj/sdo/SAX2Namespaces.h" -#include "commonj/sdo/DataObjectImpl.h" - - -namespace commonj -{ - namespace sdo - { - -/** - * SDOXMLWriter writes a data object tree to XML - */ - class SDOXMLWriter - { - - public: - - SDOXMLWriter(DataFactoryPtr dataFactory = NULL); - - virtual ~SDOXMLWriter(); - - int write(XMLDocumentPtr doc, int indent=-1); - - protected: - void setWriter(xmlTextWriterPtr textWriter); - void freeWriter(); - - private: - xmlTextWriterPtr writer; - - void handleChangeSummaryAttributes( - ChangeSummaryPtr cs, - DataObjectPtr doB); - - void handleChangeSummaryElements( - ChangeSummaryPtr cs, - DataObjectPtr dob); - - void handleChangeSummaryDeletedObject( - const char* name, - ChangeSummaryPtr cs, - DataObjectPtr dob); - - void handleSummaryChange( - const SDOXMLString& elementName, - ChangeSummaryPtr cs, - DataObjectPtr dob); - - void handleChangeSummary( - const SDOXMLString& elementName, - ChangeSummaryPtr cs); - - void addToNamespaces(DataObjectImpl* dob); - - int writeDO( - DataObjectPtr dataObject, - const SDOXMLString& elementURI, - const SDOXMLString& elementName, - bool writeXSIType = false, - bool isRoot = false); - - SchemaInfo* schemaInfo; - DataFactoryPtr dataFactory; - - XSDPropertyInfo* getPropertyInfo(const Type& type, const Property& property); - - //std::stack namespaceUriStack; - //SAX2Namespaces namespaces; - //std::stack namespaceStack; - int spacescount; - std::map namespaceMap; - SDOXMLString tnsURI; - - - void writeReference( - DataObjectPtr dataObject, - const Property& property, - bool isElement, - DataObjectPtr refferedToObject = 0); - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_SDOXMLWRITER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.cpp deleted file mode 100644 index e92b0eb48e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.cpp +++ /dev/null @@ -1,53 +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:15 $ */ - -#include "commonj/sdo/SDOXSDBufferWriter.h" -#include "commonj/sdo/SDORuntimeException.h" - -namespace commonj -{ - namespace sdo - { - - - - - SDOXSDBufferWriter::SDOXSDBufferWriter() - { - buf = xmlBufferCreate(); - if (buf == NULL) - { - SDO_THROW_EXCEPTION("SDOXSDBufferWriter", SDOXMLParserException, "xmlBufferCreate failed"); - } - setWriter(xmlNewTextWriterMemory(buf, 0)); - } - - SDOXSDBufferWriter::~SDOXSDBufferWriter() - { - freeWriter(); - xmlBufferFree(buf); - } - - SDOXMLString SDOXSDBufferWriter::getBuffer() - { - freeWriter(); - return xmlBufferContent(buf); - } - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.h deleted file mode 100644 index a923c32bd1..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDBufferWriter.h +++ /dev/null @@ -1,52 +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:15 $ */ - -#ifndef _SDOXSDBUFFERWRITER_H_ -#define _SDOXSDBUFFERWRITER_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SDOXSDWriter.h" - - -namespace commonj -{ - namespace sdo - { - -/** - * SDOXSDBufferWriter extends SDOXSDWriter and writes a buffer. - */ - class SDOXSDBufferWriter : public SDOXSDWriter - { - - public: - - SDOXSDBufferWriter(); - virtual ~SDOXSDBufferWriter(); - - SDOXMLString getBuffer(); - private: - xmlBufferPtr buf; - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_SDOXSDBUFFERWRITER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.cpp deleted file mode 100644 index e0a5b78de4..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.cpp +++ /dev/null @@ -1,43 +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:15 $ */ - -#include "commonj/sdo/SDOXSDFileWriter.h" - -namespace commonj -{ - namespace sdo - { - - - - - SDOXSDFileWriter::SDOXSDFileWriter(const char* xsdFile) - { - setWriter(xmlNewTextWriterFilename(xsdFile, 0)); - } - - SDOXSDFileWriter::~SDOXSDFileWriter() - { - - } - - - } // End - namespace sdo -} // End - namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.h deleted file mode 100644 index b85b88bbc4..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDFileWriter.h +++ /dev/null @@ -1,51 +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:15 $ */ - -#ifndef _SDOXSDFILEWRITER_H_ -#define _SDOXSDFILEWRITER_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SDOXSDWriter.h" - - -namespace commonj -{ - namespace sdo - { - -/** - * SDOXSDFileWriter extends SDOXSDWriter and writes a file. - */ - class SDOXSDFileWriter : public SDOXSDWriter - { - - public: - - SDOXSDFileWriter(const char* xsdFile); - - virtual ~SDOXSDFileWriter(); - - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_SDOXSDFILEWRITER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.cpp deleted file mode 100644 index 664dbe1c6f..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.cpp +++ /dev/null @@ -1,51 +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: 2006/02/01 16:24:13 $ */ - -#include "commonj/sdo/SDOXSDStreamWriter.h" -#include - -namespace commonj -{ - namespace sdo - { - - - - - SDOXSDStreamWriter::SDOXSDStreamWriter(std::ostream& outXML) - : outXmlStream(outXML) - { - } - - SDOXSDStreamWriter::~SDOXSDStreamWriter() - { - } - - int SDOXSDStreamWriter::write(const TypeList& types, const SDOXMLString& targetNamespaceURI, - const propertyMap& openprops, int indent) - { - int rc = SDOXSDBufferWriter::write(types, targetNamespaceURI, openprops, indent); - - // Now stream the buffer - outXmlStream << getBuffer(); - return rc; - } - } // End - namespace sdo -} // End - namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.h deleted file mode 100644 index 5f80536f4d..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDStreamWriter.h +++ /dev/null @@ -1,55 +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: 2006/02/01 16:24:13 $ */ - -#ifndef _SDOXSDSTREAMWRITER_H_ -#define _SDOXSDSTREAMWRITER_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SDOXSDBufferWriter.h" -#include - - -namespace commonj -{ - namespace sdo - { - -/** - * SDOXSDStreamWriter extends SDOXSDWriter and writes a stream. - */ - class SDOXSDStreamWriter : public SDOXSDBufferWriter - { - - public: - - SDOXSDStreamWriter(std::ostream& outXML); - virtual ~SDOXSDStreamWriter(); - - int write(const TypeList& types, const SDOXMLString& targetNamespaceURI, - const propertyMap& openprops, int indent = -1); - private: - std::ostream& outXmlStream; - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_SDOXSDSTREAMWRITER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.cpp deleted file mode 100644 index bf504019b3..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.cpp +++ /dev/null @@ -1,840 +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: 2006/02/01 12:53:49 $ */ - -#include "commonj/sdo/SDOXSDWriter.h" -#include "iostream" -using namespace::std; -#include "commonj/sdo/DASProperty.h" -#include "commonj/sdo/XSDPropertyInfo.h" -#include "commonj/sdo/SDORuntimeException.h" -#include "commonj/sdo/DataFactoryImpl.h" - -namespace commonj -{ - namespace sdo - { - - - - - SDOXSDWriter::SDOXSDWriter( - DataFactoryPtr dataFact) - : dataFactory(dataFact) - { - - } - - SDOXSDWriter::~SDOXSDWriter() - { - freeWriter(); - } - - void SDOXSDWriter::setWriter(xmlTextWriterPtr textWriter) - { - writer = textWriter; - } - - void SDOXSDWriter::freeWriter() - { - if (writer != NULL) - { - xmlFreeTextWriter(writer); - writer = NULL; - } - } - - - void SDOXSDWriter::writeProps( const propertyMap& pl, const SDOXMLString& targetNamespaceURI, - SDOXMLString& xsd) - { - int rc; - - // ------------------------------------------------------- - // Create definitions - // ------------------------------------------------------- - - propertyMap::const_iterator j; - for (j = pl.begin(); j != pl.end(); ++j) - { - const PropertyImpl& prop = (*j).second; - const Type& propType = prop.getType(); - - - SDOXMLString propTypeName = resolveName(propType.getURI(), - propType.getName(), targetNamespaceURI); - - - if (prop.isMany() || !prop.getType().isDataType()) - { - // ----------------------------- - // Write an definition - // ----------------------------- - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("element"), NULL); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("name"), - SDOXMLString(prop.getName())); - - if (!propType.isDataType() && !prop.isContainment()) - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("sdoxml:propertyType"), - propTypeName); - propTypeName = "xsd:anyURI"; - } - - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("type"), - propTypeName); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("minOccurs"), - SDOXMLString("0")); - - if (prop.isMany()) - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("maxOccurs"), - SDOXMLString("unbounded")); - } - - // End element - rc = xmlTextWriterEndElement(writer); - } - else - { - // ------------------------------- - // Write an definition - // ------------------------------- - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("attribute"), NULL); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("name"), - SDOXMLString(prop.getName())); - - if (!propType.isDataType()) - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("sdoxml:propertyType"), - propTypeName); - if (prop.isReference()) - { - propTypeName = "xsd:IDREF"; - } - else - { - propTypeName = "xsd:anyURI"; - } - } - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("type"), - propTypeName); - - // End attribute - rc = xmlTextWriterEndElement(writer); - - } // else - } // for - } // method - - - //////////////////////////////////////// - - int SDOXSDWriter::write(const TypeList& types, const SDOXMLString& targetNamespaceURI, - const propertyMap& openprops, int indent) - { - int i; - if (writer == NULL) - { - // Throw exception - return -1; - } - - int rc = 0; - - if (indent >= 0) - { - xmlTextWriterSetIndent(writer, 1); - if (indent > 0) - { - char * chars = new char[indent+1]; - for (int i=0;i definition including namespace information - // -------------------------------------------------------------- - SDOXMLString tns; - SDOXMLString xsd("xsd"); - SDOXMLString sdoURI(Type::SDOTypeNamespaceURI); - - SDOXMLString schemaURI = "http://www.w3.org/2001/XMLSchema"; - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("schema"), schemaURI); - if (rc < 0) { - SDO_THROW_EXCEPTION("write", SDOXMLParserException, "xmlTextWriterStartElementNS failed"); - } - - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("xmlns:sdo"), - sdoURI); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("xmlns:sdoxml"), - sdoURI + "/xml"); - - // -------------------------------------------------------------- - // Add all namespaces found in type list - // -------------------------------------------------------------- - int spacecount = 0; - - std::map::iterator it; - - for (i = 0; i::iterator it = namespaceMap.find(uri); - if (it == namespaceMap.end()) - { - char buf[4]; - if (!targetNamespaceURI.isNull() - && !targetNamespaceURI.equals(uri)) - { - sprintf(buf,"%d",++spacecount); - SDOXMLString s = SDOXMLString("tns") + buf; - namespaceMap.insert(make_pair(uri,s)); - } - } - } - - for (it = namespaceMap.begin();it != namespaceMap.end(); ++it) - { - SDOXMLString space = SDOXMLString("xmlns:") + (*it).second; - rc = xmlTextWriterWriteAttribute(writer, - space, (*it).first); - } - - // -------------------------------------------------------------- - // Add targetNamespace if necessary - // -------------------------------------------------------------- - if (!targetNamespaceURI.isNull() && !targetNamespaceURI.equals("")) - { - tns = "tns:"; - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("xmlns:tns"), - targetNamespaceURI); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("targetNamespace"), - targetNamespaceURI); - } - - - // -------------------------------------------------------------- - // Now iterate through the Types creating elements as appropriate - // -------------------------------------------------------------- - for (i = 0; i 0) - { - unsigned int j = type.getAliasCount(); - SDOXMLString value = ""; - for (int i=0;igetURI(), baseType->getName(), targetNamespaceURI); - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("base"), - baseName); - - - rc = xmlTextWriterEndElement(writer); - } - rc = xmlTextWriterEndElement(writer); - - } - else - // --------------------------------------------------------------------- - // DataObject Types become ComplexType definitions with a global element - // --------------------------------------------------------------------- - { - rc = xmlTextWriterStartElementNS(writer,xsd, SDOXMLString("element"), NULL); - if (rc < 0) { - SDO_THROW_EXCEPTION("write", SDOXMLParserException, "xmlTextWriterStartElementNS failed"); - } - - SDOXMLString typeName; - it = namespaceMap.find(type.getURI()); - if (it != namespaceMap.end() && - !targetNamespaceURI.equals((*it).first)) - { - typeName = (*it).second + ":" + name; - } - else - { - typeName = name; - } - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("name"), - name.toLower(0,1)); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("type"), - typeName); - - rc = xmlTextWriterEndElement(writer); - - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("complexType"), NULL); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("name"), - typeName); - - // ----------------------------------------------------- - // If there is an alias, write it - // ----------------------------------------------------- - if (type.getAliasCount() > 0) - { - unsigned int j = type.getAliasCount(); - SDOXMLString value = ""; - for (int i=0;i - // ----------------------------------------------------- - if (baseType != 0) - { - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("complexContent"), NULL); - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("extension"), NULL); - - SDOXMLString baseName = resolveName(baseType->getURI(), baseType->getName(), targetNamespaceURI); - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("base"), - baseName); - - // End extension - rc = xmlTextWriterEndElement(writer); - } - - // --------------------------- - // Iterate over the properties - // --------------------------- - PropertyList pl = type.getProperties(); - - if (pl.size() != 0) - { - bool inSequence = false; - - // ------------------------------------------------------- - // Create definitions - // ------------------------------------------------------- - - int j; - for (j = 0; j < pl.size(); j++) - { - const Property& prop = pl[j]; - const Type& propType = prop.getType(); - - SDOXMLString propTypeName = resolveName(propType.getURI(), - propType.getName(), targetNamespaceURI); - - bool isElement = false; - bool isQName = false; - XSDPropertyInfo* pi = (XSDPropertyInfo*) - ((DASProperty*)&prop)->getDASValue("XMLDAS::PropertyInfo"); - if (pi) - { - PropertyDefinition propdef = pi->getPropertyDefinition(); - if (propdef.isElement) - isElement=true; - if (propdef.isQName) - isQName=true; - } - - if (prop.isMany() - || prop.isContainment() - || isElement) - { - // ------------------------------------------------- - // Write or before first element - // ------------------------------------------------- - if (!inSequence) - { - if (type.isSequencedType()) - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("mixed"), - SDOXMLString("true")); - - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("choice"), NULL); - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("maxOccurs"), - SDOXMLString("unbounded")); - } - else - { - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("sequence"), NULL); - } - inSequence = true; - } - // ----------------------------- - // Write an definition - // ----------------------------- - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("element"), NULL); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("name"), - SDOXMLString(prop.getName())); - - if (!propType.isDataType() && !prop.isContainment()) - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("sdoxml:propertyType"), - propTypeName); - propTypeName = "xsd:anyURI"; - } - - if (isQName) - { - propTypeName = "xsd:QName"; - } - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("type"), - propTypeName); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("minOccurs"), - SDOXMLString("0")); - - if (prop.isMany()) - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("maxOccurs"), - SDOXMLString("unbounded")); - } - - // ----------------------------------------------------- - // If there is an alias... - // ----------------------------------------------------- - if (prop.getAliasCount() > 0) - { - unsigned int j = prop.getAliasCount(); - SDOXMLString value = ""; - for (int i=0;i / if necessary - // ----------------------------------------------------- - if (inSequence) - { - // End sequence - rc = xmlTextWriterEndElement(writer); - } - - // --------------------------------- - // Add ChangeSummary if there is one - // --------------------------------- - if (type.isChangeSummaryType()) - { - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("element"), NULL); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("name"), - SDOXMLString("changeSummary")); - - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("type"), - SDOXMLString("sdo:ChangeSummaryType")); - - rc = xmlTextWriterEndElement(writer); - } - - // ------------------------------------------------------- - // Create definitions - // ------------------------------------------------------- - for (j = 0; j < pl.size(); j++) - { - const Property& prop = pl[j]; - const Type& propType = prop.getType(); - - - SDOXMLString propTypeName = resolveName(propType.getURI(), - propType.getName(), targetNamespaceURI); - - bool isElement = false; - XSDPropertyInfo* pi = (XSDPropertyInfo*) - ((DASProperty*)&prop)->getDASValue("XMLDAS::PropertyInfo"); - if (pi) - { - if (pi->getPropertyDefinition().isElement) - isElement=true; - } - - if (!isElement - && !prop.isMany() - && !prop.isContainment()) - { - // ------------------------------- - // Write an definition - // ------------------------------- - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("attribute"), NULL); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("name"), - SDOXMLString(prop.getName())); - - if (!propType.isDataType()) - { - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("sdoxml:propertyType"), - propTypeName); - if (prop.isReference()) - { - propTypeName = "xsd:IDREF"; - } - else - { - propTypeName = "xsd:anyURI"; - } - } - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("type"), - propTypeName); - - // End attribute - rc = xmlTextWriterEndElement(writer); - - } - - } - - } - - // ----------------------------------------------------- - // Write open type information - // ----------------------------------------------------- - if (type.isOpenType()) - { - // - - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("any"), NULL); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("namespace"), - SDOXMLString("##other")); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("processContents"), - SDOXMLString("lax")); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("minOccurs"), - SDOXMLString("0")); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("maxOccurs"), - SDOXMLString("unbounded")); - - - // End element - rc = xmlTextWriterEndElement(writer); - - // ----------------------------------------------------- - // Write open type information 2 - // ----------------------------------------------------- - // - - rc = xmlTextWriterStartElementNS(writer, xsd, SDOXMLString("anyAttribute"), NULL); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("namespace"), - SDOXMLString("##any")); - - rc = xmlTextWriterWriteAttribute(writer, - SDOXMLString("processContents"), - SDOXMLString("lax")); - - // End element - rc = xmlTextWriterEndElement(writer); - - } - - // ----------------------------------------------------- - // End if necessary - // ----------------------------------------------------- - if (baseType != 0) - { - rc = xmlTextWriterEndElement(writer); - } - - - rc = xmlTextWriterEndElement(writer); - } - } - - - // ----------------------------------------------- - // Write any open content from the factory - // ----------------------------------------------- - if (openprops.size() != 0) - { - writeProps(openprops, targetNamespaceURI, xsd); - } - // End the definition - rc = xmlTextWriterEndElement(writer); - return rc; - } - - - // ======================================================================================== - // resolveName - resolve a Type uri and name to xsd equivalent - // ======================================================================================== - SDOXMLString SDOXSDWriter::resolveName(const SDOXMLString& uri, const SDOXMLString& name, const SDOXMLString& targetNamespaceURI) - { - SDOXMLString resolvedName = name; - if (uri.equals(Type::SDOTypeNamespaceURI)) - { - resolvedName = "xsd:"; - if (name.equalsIgnoreCase("Boolean")) - { - resolvedName += "boolean"; - } - else if (name.equalsIgnoreCase("Byte")) - { - resolvedName += "byte"; - } - else if (name.equalsIgnoreCase("Bytes")) - { - resolvedName += "hexBinary"; - } - else if (name.equalsIgnoreCase("Character")) - { - resolvedName += "string"; - } - else if (name.equalsIgnoreCase("DataObject")) - { - resolvedName += "anyType"; - } - else if (name.equalsIgnoreCase("Date")) - { - resolvedName += "dateTime"; - } - else if (name.equalsIgnoreCase("DateTime")) - { - resolvedName += "dateTime"; - } - else if (name.equalsIgnoreCase("Day")) - { - resolvedName += "gDay"; - } - else if (name.equalsIgnoreCase("Decimal")) - { - resolvedName += "decimal"; - } - else if (name.equalsIgnoreCase("Double")) - { - resolvedName += "double"; - } - else if (name.equalsIgnoreCase("Duration")) - { - resolvedName += "duration"; - } - else if (name.equalsIgnoreCase("Float")) - { - resolvedName += "float"; - } - else if (name.equalsIgnoreCase("Int")) - { - resolvedName += "int"; - } - else if (name.equalsIgnoreCase("Integer")) - { - resolvedName += "integer"; - } - else if (name.equalsIgnoreCase("Long")) - { - resolvedName += "long"; - } - else if (name.equalsIgnoreCase("Month")) - { - resolvedName += "gMonth"; - } - else if (name.equalsIgnoreCase("MonthDay")) - { - resolvedName += "gMonthDay"; - } - else if (name.equalsIgnoreCase("Object")) - { - resolvedName += "anySimpleType"; - } - else if (name.equalsIgnoreCase("Short")) - { - resolvedName += "short"; - } - else if (name.equals("String")) - { - resolvedName += "String"; - } - else if (name.equalsIgnoreCase("Strings")) - { - resolvedName += "string"; - } - else if (name.equalsIgnoreCase("Time")) - { - resolvedName += "time"; - } - else if (name.equalsIgnoreCase("Year")) - { - resolvedName += "gYear"; - } - else if (name.equalsIgnoreCase("YearMonth")) - { - resolvedName += "gYearMonth"; - } - else if (name.equalsIgnoreCase("YearMonthDay")) - { - resolvedName += "date"; - } - else if (name.equalsIgnoreCase("URI")) - { - resolvedName += "anyURI"; - } - else - { - resolvedName += "String"; - } - } - else if (!targetNamespaceURI.isNull() && uri.equals(targetNamespaceURI)) - { - resolvedName = "tns:"; - resolvedName += name; - } - else - { - SDOXMLString propTypeName; - std::map::iterator it; - it = namespaceMap.find(uri); - if (it != namespaceMap.end() && - !targetNamespaceURI.equals((*it).first)) - { - resolvedName = (*it).second + ":" + name; - } - } - - return resolvedName; - } - - - - } // End - namespace sdo -} // End - namespace commonj - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.h deleted file mode 100644 index 88ab27fbe6..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SDOXSDWriter.h +++ /dev/null @@ -1,75 +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: 2006/02/01 12:53:49 $ */ - -#ifndef _SDOXSDWRITER_H_ -#define _SDOXSDWRITER_H_ - -#include "commonj/sdo/disable_warn.h" - -#include -#include "commonj/sdo/SDOXMLString.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/DataFactoryImpl.h" - - -namespace commonj -{ - namespace sdo - { - -/** - * SDOXSDWriter writes XSD from types and properties. - * The writer takes the contents of a data factory and writes an - * XSD which will be usable to serialize data from the graph. - */ - class SDOXSDWriter - { - - public: - - SDOXSDWriter(DataFactoryPtr dataFactory = NULL); - - virtual ~SDOXSDWriter(); - - int write(const TypeList& types, const SDOXMLString& targetNamespaceURI, - const propertyMap& openprops, int indent = -1); - - protected: - void setWriter(xmlTextWriterPtr textWriter); - void freeWriter(); - - private: - xmlTextWriterPtr writer; - - std::map namespaceMap; - - void writeProps( const propertyMap& pl, const SDOXMLString& targetNamespaceURI, - SDOXMLString& xsd); - int writeDO(DataObjectPtr dataObject, const SDOXMLString& elementName); - - DataFactoryPtr dataFactory; - - SDOXMLString resolveName(const SDOXMLString& uri, const SDOXMLString& name, const SDOXMLString& targetNamespaceURI); - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_SDOXSDWRITER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.cpp deleted file mode 100644 index 024546876a..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.cpp +++ /dev/null @@ -1,35 +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:15 $ */ - -#include "commonj/sdo/SchemaInfo.h" -namespace commonj -{ - namespace sdo - { - - SchemaInfo::SchemaInfo() - { - } - - SchemaInfo::~SchemaInfo() - { - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.h deleted file mode 100644 index 0488df1893..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SchemaInfo.h +++ /dev/null @@ -1,59 +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:15 $ */ - -#ifndef _SCHEMAINFO_H_ -#define _SCHEMAINFO_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SAX2Namespaces.h" -#include "commonj/sdo/DataObject.h" - -namespace commonj -{ - namespace sdo - { - -/** - * - * SchemaInfo holds information supplied by the parser on the schema - * held in an XSD - */ - class SchemaInfo - { - - public: - SDO_SPI SchemaInfo(); - SDO_SPI virtual ~SchemaInfo(); - - SDO_SPI SAX2Namespaces& getSchemaNamespaces() {return schemaNamespaces;} - - SDO_SPI const SDOXMLString& getTargetNamespaceURI() const {return targetNamespaceURI;} - SDO_SPI void setTargetNamespaceURI(const SDOXMLString& URI) {targetNamespaceURI = URI;} - - private: - SAX2Namespaces schemaNamespaces; - SDOXMLString targetNamespaceURI; - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_SCHEMAINFO_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.cpp deleted file mode 100644 index d577d5bd12..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.cpp +++ /dev/null @@ -1,27 +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:15 $ */ - -#include "commonj/sdo/SdoCheck.h" - -extern "C" { - SDO_API int SDOCheck(void) - { - return 0; - } -} diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.h deleted file mode 100644 index daf28c6d6f..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoCheck.h +++ /dev/null @@ -1,33 +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:15 $ */ - -#include "commonj/sdo/export.h" - - -/** - * SDOCheck is a simple C method which can be called to verify that - * this is an SDO library - this is used in building - */ - -extern "C" { - SDO_API int SDOCheck(void); -} - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.cpp deleted file mode 100644 index 177fc90e4e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.cpp +++ /dev/null @@ -1,64 +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: 2006/01/23 16:39:24 $ */ - -#include "commonj/sdo/SdoRuntime.h" -#include -#include - -namespace commonj{ -namespace sdo{ - - -const unsigned int SdoRuntime::major = 0; -const unsigned int SdoRuntime::minor = 9; -const unsigned int SdoRuntime::fix =3; -char* SdoRuntime::version = 0; - - - -const char* SdoRuntime::getVersion() -{ - if (SdoRuntime::version == 0) - { - SdoRuntime::version = new char[11]; - sprintf(SdoRuntime::version,"%02d:%02d:%04d", - SdoRuntime::major, SdoRuntime::minor, SdoRuntime::fix); - } - return (const char *)SdoRuntime::version; - -} - -const unsigned int SdoRuntime::getMajor() -{ - return SdoRuntime::major; -} - -const unsigned int SdoRuntime::getMinor() -{ - return SdoRuntime::minor; -} - -const unsigned int SdoRuntime::getFix() -{ - return SdoRuntime::fix; -} - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.h deleted file mode 100644 index 5720a34a0c..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SdoRuntime.h +++ /dev/null @@ -1,74 +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:15 $ */ - -#ifndef SDO_RUNTIME_H -#define SDO_RUNTIME_H -#include "commonj/sdo/export.h" - -namespace commonj{ -namespace sdo{ - -/** - * SDORuntime gives information about the version of the library. - */ - -class SdoRuntime -{ - public: - - virtual ~SdoRuntime(); - - /** - * The version as a string major:minor:fix - */ - - static SDO_API const char* getVersion(); - - /** - * The major version as an integer. - */ - - static SDO_API const unsigned int getMajor(); - - /** - * The minor version as an integer. - */ - - static SDO_API const unsigned int getMinor(); - - /** - * The fix level as an integer. - */ - - static SDO_API const unsigned int getFix(); - - - private: - static const unsigned int major; - static const unsigned int minor; - static const unsigned int fix; - static char* version; - -}; -}; -}; - - -#endif - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.cpp deleted file mode 100644 index 3e830e9889..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.cpp +++ /dev/null @@ -1,36 +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:15 $ */ - -#include "commonj/sdo/Property.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/TypeList.h" - -#include "commonj/sdo/Sequence.h" - -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/SDORuntimeException.h" - - -namespace commonj{ -namespace sdo{ - -// all delegated to sequenceimpl -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.h deleted file mode 100644 index 610848ce98..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Sequence.h +++ /dev/null @@ -1,309 +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: 2006/02/02 16:41:30 $ */ - -#ifndef _SEQUENCE_H_ -#define _SEQUENCE_H_ - - -#include "commonj/sdo/export.h" -#include "commonj/sdo/RefCountingObject.h" -#include "commonj/sdo/RefCountingPointer.h" -#include "commonj/sdo/SDODate.h" -#include "commonj/sdo/Type.h" - - -namespace commonj{ -namespace sdo{ - -class Property; /* forward declaration */ -class DataObject; - -/** - * A sequence is a heterogeneous list of properties and corresponding values. - * It represents an ordered arbitrary mixture of data values from more - * than one property of a {@link DataObject data object}. - */ - -class Sequence : public RefCountingObject -{ - public: - /** size() returns the number of elements - * - * Returns the number of entries in the sequence. - */ - - SDO_API virtual unsigned int size() = 0; - - /** - * - * A Sequence element is either a free text item, or represents a property - * setting. If the element is a property setting, then the information - * held in the element consists of: - * -# The property which was set. - * -# The element of that property if it was many valued. - * -# The value which was set. - * - * If the sequence element is text, then there is no property, and only the - * methods for text retrieval will work. Use the isText() method to check - * before calling getProperty(). - */ - - SDO_API virtual const Property& getProperty(unsigned int index) = 0; - - /** - * Return the data object associated with this sequence - */ - - SDO_API virtual const DataObjectPtr getDataObject() = 0; - - /** - * - * The element of that property if it was many valued. Zero if the - * property was single valued. - */ - - SDO_API virtual unsigned int getListIndex(unsigned int index) = 0; - - /** - * - * The element contains the actual value set within the property. The - * method required to get that value will vary depending on the type - * of the property. This is shorthand for getProperty.getTypeEnum(). - */ - - SDO_API virtual Type::Types getTypeEnum(unsigned int index) = 0; - - /** - * - * This method searched the sequence for a setting which corresponds - * to the specified index of the specified property. Searches for single - * valued property settings may omit the pindex parameter. - */ - - - SDO_API virtual unsigned int getIndex(const Property& p, unsigned int pindex=0) = 0; - SDO_API virtual unsigned int getIndex(const char* propName, unsigned int pindex=0) = 0; - - /** - * - * These methods retrieve the setting according to the type of the - * property concerned. If a retrieval method is used which does not correspond to - * the correct type, a conversion will be performed, or an illegal conversion - * exception will be thrown. - */ - - SDO_API virtual const char* getCStringValue(unsigned int index) = 0; - SDO_API virtual bool getBooleanValue(unsigned int index) = 0; - SDO_API virtual char getByteValue(unsigned int index) = 0; - SDO_API virtual wchar_t getCharacterValue(unsigned int index) = 0; - SDO_API virtual unsigned int getStringValue(unsigned int index, wchar_t* val, unsigned int max) = 0; - SDO_API virtual unsigned int getBytesValue(unsigned int index, char* val, unsigned int max) = 0; - SDO_API virtual short getShortValue(unsigned int index) = 0; - SDO_API virtual long getIntegerValue(unsigned int index) = 0; - SDO_API virtual int64_t getLongValue(unsigned int index) = 0; - SDO_API virtual float getFloatValue(unsigned int index) = 0; - SDO_API virtual long double getDoubleValue(unsigned int index) = 0; - SDO_API virtual const SDODate getDateValue(unsigned int index) = 0; - SDO_API virtual DataObjectPtr getDataObjectValue(unsigned int index) = 0; - - /** - * - * getlength applies to string and byte buffer types, and allows the - * client to allocate the correct size of buffer before retrieving the - * value. - */ - - SDO_API virtual unsigned int getLength(unsigned int index) = 0; - - - /** - * - * The setter methods use an element of the sequence to perform a - * property setting. The value in the sequence is updated, and so is the - * rel value of the property in the data object. - */ - - SDO_API virtual void setCStringValue( unsigned int index, const char* s ) = 0; - SDO_API virtual void setBooleanValue( unsigned int index, bool b ) = 0; - SDO_API virtual void setByteValue( unsigned int index, char c ) = 0; - SDO_API virtual void setCharacterValue( unsigned int index, wchar_t c ) = 0; - SDO_API virtual void setStringValue( unsigned int index, const wchar_t* s , unsigned int len) = 0; - SDO_API virtual void setBytesValue( unsigned int index, const char* s , unsigned int len) = 0; - SDO_API virtual void setShortValue( unsigned int index, short s ) = 0; - SDO_API virtual void setIntegerValue( unsigned int index, long i ) = 0; - SDO_API virtual void setLongValue( unsigned int index, int64_t l ) = 0; - SDO_API virtual void setFloatValue( unsigned int index, float f ) = 0; - SDO_API virtual void setDoubleValue(unsigned int index, long double d ) = 0; - SDO_API virtual void setDateValue(unsigned int index, const SDODate t ) = 0; - SDO_API virtual void setDataObjectValue(unsigned int index, DataObjectPtr d ) = 0; - - - /** - * - * Sequences may be added to by usign the addXXX methods. These provoke - * a setting of the real value of the property concerned, and also append - * an element to the sequence to reflect that setting. - * Additions may be performed based on property name, property index or - * the Property itself. - */ - - SDO_API virtual bool addCString( const char* propertyName,const char* s ) = 0; - SDO_API virtual bool addBoolean( const char* propertyName,bool b ) = 0; - SDO_API virtual bool addByte( const char* propertyName,char c ) = 0; - SDO_API virtual bool addCharacter( const char* propertyName,wchar_t c ) = 0; - SDO_API virtual bool addString( const char* propertyName,const wchar_t* s , unsigned int len) = 0; - SDO_API virtual bool addBytes ( const char* propertyName,const char* s , unsigned int len) = 0; - SDO_API virtual bool addShort( const char* propertyName,short s ) = 0; - SDO_API virtual bool addInteger( const char* propertyName,long i ) = 0; - SDO_API virtual bool addLong( const char* propertyName,int64_t l ) = 0; - SDO_API virtual bool addFloat( const char* propertyName,float f ) = 0; - SDO_API virtual bool addDouble(const char* propertyName,long double d ) = 0; - SDO_API virtual bool addDate(const char* propertyName,const SDODate t ) = 0; - SDO_API virtual bool addDataObject(const char* propertyName,DataObjectPtr d ) = 0; - - - SDO_API virtual bool addCString( unsigned int propertyIndex,const char* s ) = 0; - SDO_API virtual bool addBoolean( unsigned int propertyIndex,bool b ) = 0; - SDO_API virtual bool addByte( unsigned int propertyIndex,char c ) = 0; - SDO_API virtual bool addCharacter( unsigned int propertyIndex,wchar_t c ) = 0; - SDO_API virtual bool addString( unsigned int propertyIndex,const wchar_t* s , unsigned int len) = 0; - SDO_API virtual bool addBytes( unsigned int propertyIndex,const char* s , unsigned int len) = 0; - SDO_API virtual bool addShort( unsigned int propertyIndex,short s ) = 0; - SDO_API virtual bool addInteger( unsigned int propertyIndex,long i ) = 0; - SDO_API virtual bool addLong( unsigned int propertyIndex,int64_t l ) = 0; - SDO_API virtual bool addFloat( unsigned int propertyIndex,float f ) = 0; - SDO_API virtual bool addDouble(unsigned int propertyIndex,long double d ) = 0; - SDO_API virtual bool addDate(unsigned int propertyIndex,const SDODate t ) = 0; - SDO_API virtual bool addDataObject(unsigned int propertyIndex,DataObjectPtr d ) = 0; - - - - SDO_API virtual bool addCString( const Property& property,const char* s ) = 0; - SDO_API virtual bool addBoolean( const Property& property,bool b ) = 0; - SDO_API virtual bool addByte( const Property& property,char c ) = 0; - SDO_API virtual bool addCharacter( const Property& property,wchar_t c ) = 0; - SDO_API virtual bool addString ( const Property& property,const wchar_t* s , unsigned int len) = 0; - SDO_API virtual bool addBytes( const Property& property,const char* s , unsigned int len) = 0; - SDO_API virtual bool addShort( const Property& property,short s ) = 0; - SDO_API virtual bool addInteger( const Property& property,long i ) = 0; - SDO_API virtual bool addLong( const Property& property,int64_t l ) = 0; - SDO_API virtual bool addFloat( const Property& property,float f ) = 0; - SDO_API virtual bool addDouble(const Property& property,long double d ) = 0; - SDO_API virtual bool addDate(const Property& property,const SDODate t ) = 0; - SDO_API virtual bool addDataObject(const Property& property,DataObjectPtr d ) = 0; - - - /** - * - * Sequences may be added to by usign the addXXX methods. These provoke - * a setting of the real value of the property concerned, and also append - * an element to the sequence to reflect that setting. - * Additions may be performed based on property name, property index or - * the Property itself. - * The add method also has an override to allow insertion of a sequence element - * before any index. - */ - - SDO_API virtual bool addCString( unsigned int index,const char* propertyName,const char* s ) = 0; - SDO_API virtual bool addBoolean( unsigned int index,const char* propertyName,bool b ) = 0; - SDO_API virtual bool addByte( unsigned int index,const char* propertyName,char c ) = 0; - SDO_API virtual bool addCharacter( unsigned int index,const char* propertyName,wchar_t c ) = 0; - SDO_API virtual bool addString( unsigned int index,const char* propertyName,const wchar_t* s, unsigned int len ) = 0; - SDO_API virtual bool addBytes( unsigned int index,const char* propertyName,const char* s , unsigned int len) = 0; - SDO_API virtual bool addShort( unsigned int index,const char* propertyName,short s ) = 0; - SDO_API virtual bool addInteger( unsigned int index,const char* propertyName,long i ) = 0; - SDO_API virtual bool addLong( unsigned int index,const char* propertyName,int64_t l ) = 0; - SDO_API virtual bool addFloat( unsigned int index,const char* propertyName,float f ) = 0; - SDO_API virtual bool addDouble(unsigned int index,const char* propertyName,long double d ) = 0; - SDO_API virtual bool addDate(unsigned int index,const char* propertyName,const SDODate t ) = 0; - SDO_API virtual bool addDataObject(unsigned int index,const char* propertyName,DataObjectPtr d ) = 0; - - - SDO_API virtual bool addCString( unsigned int index,unsigned int propertyIndex,const char* s ) = 0; - SDO_API virtual bool addBoolean( unsigned int index,unsigned int propertyIndex,bool b ) = 0; - SDO_API virtual bool addByte( unsigned int index,unsigned int propertyIndex,char c ) = 0; - SDO_API virtual bool addCharacter( unsigned int index,unsigned int propertyIndex,wchar_t c ) = 0; - SDO_API virtual bool addString( unsigned int index,unsigned int propertyIndex,const wchar_t* s , unsigned int len) = 0; - SDO_API virtual bool addBytes( unsigned int index,unsigned int propertyIndex,const char* s , unsigned int len) = 0; - SDO_API virtual bool addShort( unsigned int index,unsigned int propertyIndex,short s ) = 0; - SDO_API virtual bool addInteger( unsigned int index,unsigned int propertyIndex,long i ) = 0; - SDO_API virtual bool addLong( unsigned int index,unsigned int propertyIndex,int64_t l ) = 0; - SDO_API virtual bool addFloat( unsigned int index,unsigned int propertyIndex,float f ) = 0; - SDO_API virtual bool addDouble(unsigned int index,unsigned int propertyIndex,long double d ) = 0; - SDO_API virtual bool addDate(unsigned int index,unsigned int propertyIndex,const SDODate t ) = 0; - SDO_API virtual bool addDataObject(unsigned int index,unsigned int propertyIndex,DataObjectPtr d ) = 0; - - - SDO_API virtual bool addCString( unsigned int index,const Property& property,const char* s ) = 0; - SDO_API virtual bool addBoolean( unsigned int index,const Property& property,bool b ) = 0; - SDO_API virtual bool addByte( unsigned int index,const Property& property,char c ) = 0; - SDO_API virtual bool addCharacter( unsigned int index,const Property& property,wchar_t c ) = 0; - SDO_API virtual bool addString( unsigned int index,const Property& property,const wchar_t* s , unsigned int len) = 0; - SDO_API virtual bool addBytes( unsigned int index,const Property& property,const char* s , unsigned int len) = 0; - SDO_API virtual bool addShort( unsigned int index,const Property& property,short s ) = 0; - SDO_API virtual bool addInteger( unsigned int index,const Property& property,long i ) = 0; - SDO_API virtual bool addLong( unsigned int index,const Property& property,int64_t l ) = 0; - SDO_API virtual bool addFloat( unsigned int index,const Property& property,float f ) = 0; - SDO_API virtual bool addDouble(unsigned int index,const Property& property,long double d ) = 0; - SDO_API virtual bool addDate(unsigned int index,const Property& property,const SDODate t ) = 0; - SDO_API virtual bool addDataObject(unsigned int index,const Property& property,DataObjectPtr d ) = 0; - - - /** remove() removes an item. - * - * Remove the item at the specified index in the sequence. - * This has no effect on the value of the property in the data object, - * but the setting is no longer recorded. - */ - SDO_API virtual void remove(unsigned int index) = 0; - SDO_API virtual void removeAll(const Property& p) = 0; - - /** - * Moves an entry in the sequence from one index to another. This - * makes the entry appear to have been set at a different point in - * the sequence, but does not alter the actual value set. - */ - - SDO_API virtual void move(unsigned int toIndex, unsigned int fromIndex) = 0; - - /** - * The text setting APIs add an element to the sequence which - * is not a property setting. - * This is text which may be retieved in sequence with the settings. - */ - - SDO_API virtual bool addText(const char* text) = 0; - SDO_API virtual bool addText(unsigned int index, const char* text) = 0; - SDO_API virtual bool setText(unsigned int index, const char* text) = 0; - - /** - * isText returns true if the element is not a property setting. - * This method should be used before getting the Property, to avoid an - * exception - */ - - SDO_API virtual bool isText(unsigned int index) = 0; - -}; - - -}; -}; - -#endif //_SEQUENCE_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.cpp deleted file mode 100644 index 2910962d3b..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.cpp +++ /dev/null @@ -1,969 +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: 2006/02/17 16:01:05 $ */ - -#include "commonj/sdo/disable_warn.h" -#include "commonj/sdo/Property.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/TypeList.h" - -#include "commonj/sdo/SequenceImpl.h" - -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/DataObjectImpl.h" -#include "commonj/sdo/SDORuntimeException.h" - - - -#define CHECK_RANGE\ - if (index >= the_list.size()){\ - string msg("Index out of range:");\ - msg += index;\ - SDO_THROW_EXCEPTION("Sequence API", SDOIndexOutOfRangeException,\ - msg.c_str());\ - }\ - int j = 0;\ - for (i = the_list.begin(); (j < index) && (i != the_list.end()); ++i)\ - {\ - j++;\ - } - - -namespace commonj{ -namespace sdo{ - - SequenceImpl::SequenceImpl() - { - SDO_THROW_EXCEPTION("Sequence constructor", SDORuntimeException,\ - "SequenceImpl::construction without a data object");\ - } - - SequenceImpl::SequenceImpl(DataObject* indo) - { - the_do = (DataObjectImpl*)indo; - } - - SequenceImpl::SequenceImpl(SequenceImpl* inseq) - { - // take a copy of the_list - the_list = inseq->the_list; - } - - unsigned int SequenceImpl::size() - { - return the_list.size(); - } - - - /** - * Return the data object associated with this sequence - */ - - const DataObjectPtr SequenceImpl::getDataObject() - { - return the_do; - } - - const Property& SequenceImpl::getProperty(unsigned int index) - { - SEQUENCE_ITEM_LIST::iterator i; - - if (isText(index)) - { - string msg("Cannot get property of a text item"); - msg += index; - SDO_THROW_EXCEPTION("getProperty", SDOUnsupportedOperationException, - msg.c_str()); - } - - unsigned int j = 0; - for (i = the_list.begin() ; (j < index) && (i != the_list.end()); ++i){j++;} - - if (i != the_list.end()) { - return *((*i).getProp()); - } - string msg("Index out of range:"); - msg += index; - SDO_THROW_EXCEPTION("getProperty", SDOIndexOutOfRangeException, - msg.c_str()); - } - - Type::Types SequenceImpl::getTypeEnum(unsigned int index) - { - SEQUENCE_ITEM_LIST::iterator i; - - unsigned int j = 0; - for (i = the_list.begin() ; (j < index) && (i != the_list.end()); ++i){j++;} - - if (i != the_list.end()) { - if ((*i).getProp() == 0) { - // text type - return Type::TextType; - } - return (*i).getProp()->getTypeEnum(); - } - string msg("Index out of range:"); - msg += index; - SDO_THROW_EXCEPTION("getTypeEnum", SDOIndexOutOfRangeException, - msg.c_str()); - } - - unsigned int SequenceImpl::getListIndex(unsigned int index) - { - SEQUENCE_ITEM_LIST::iterator i; - unsigned int j = 0; - for (i = the_list.begin() ; (j < index) && (i != the_list.end()); ++i){j++;} - - if (i != the_list.end()) { - if ((*i).getProp() == 0) - { - string msg("Get list index on text property"); - SDO_THROW_EXCEPTION("getListIndex", SDOUnsupportedOperationException, - msg.c_str()); - } - if ( (*i).getProp()->isMany()) - { - return (*i).getIndex(); - } - else - { - string msg("Get list index on text single valued property"); - SDO_THROW_EXCEPTION("getListIndex", SDOUnsupportedOperationException, - msg.c_str()); - } - } - string msg("Index out of range:"); - msg += index; - SDO_THROW_EXCEPTION("getListIndex", SDOIndexOutOfRangeException, - msg.c_str()); - } - - unsigned int SequenceImpl::getIndex(const char* propName, unsigned int pindex) - { - SEQUENCE_ITEM_LIST::iterator i; - unsigned int j = 0; - for (i=the_list.begin(), j=0;i != the_list.end();++i,++j) { - const Property* p = (*i).getProp(); - if (p == 0 ) continue; // avoid text - if (!strcmp(p->getName(), propName)) { - if (p->isMany()) - { - if( pindex == (*i).getIndex())return j; - } - else { - return j; - } - } - } - SDO_THROW_EXCEPTION("getIndex", SDOIndexOutOfRangeException, - "SequenceImpl::getIndex - property Setting not in sequence"); - } - - unsigned int SequenceImpl::getIndex(const Property& p, unsigned int pindex) - { - return getIndex(p.getName(), pindex); - } - - /////////////////////////////////////////////////////////////////////////// - // specific getters for prims and data objects - /////////////////////////////////////////////////////////////////////////// - - -#define StringGetter(returntype,primtype,defval)\ - returntype SequenceImpl::get##primtype##Value(unsigned int index)\ - {\ - SEQUENCE_ITEM_LIST::iterator i;\ - CHECK_RANGE;\ - const Property* p = (*i).getProp();\ - if (p == 0) {\ - return (*i).getText();\ - }\ - if (p->isMany())\ - {\ - DataObjectList& dol = the_do->getList(*p);\ - DataObject* list_do = dol[(*i).getIndex()];\ - if (list_do != 0)\ - {\ - return ((DataObjectImpl*)list_do)->get##primtype();\ - }\ - return defval;\ - }\ - return the_do->get##primtype(*((*i).getProp()));\ - } - -#define getter(returntype,primtype,defval)\ - returntype SequenceImpl::get##primtype##Value(unsigned int index)\ - {\ - SEQUENCE_ITEM_LIST::iterator i;\ - CHECK_RANGE;\ - const Property* p = (*i).getProp();\ - if (p == 0) {\ - return defval;\ - }\ - if (p->isMany())\ - {\ - DataObjectList& dol = the_do->getList(*p);\ - DataObject* list_do = dol[(*i).getIndex()];\ - if (list_do != 0)\ - {\ - return ((DataObjectImpl*)list_do)->get##primtype();\ - }\ - return defval;\ - }\ - return the_do->get##primtype(*((*i).getProp()));\ - } - -#define ObjectGetter(returntype,primtype,defval)\ - returntype SequenceImpl::get##primtype##Value(unsigned int index)\ - {\ - SEQUENCE_ITEM_LIST::iterator i;\ - CHECK_RANGE;\ - const Property* p = (*i).getProp();\ - if (p == 0) {\ - return defval;\ - }\ - if (p->isMany())\ - {\ - DataObjectList& dol = the_do->getList(*p);\ - DataObject* list_do = dol[(*i).getIndex()];\ - if (list_do != 0)\ - {\ - return list_do;\ - }\ - return defval;\ - }\ - return the_do->get##primtype(*((*i).getProp()));\ - } - -#define CharGetter(returntype,primtype,defval)\ - unsigned int SequenceImpl::get##primtype##Value(unsigned int index, returntype ptr, unsigned int max)\ - {\ - SEQUENCE_ITEM_LIST::iterator i;\ - CHECK_RANGE;\ - const Property* p = (*i).getProp();\ - if (p == 0) {\ - return defval;\ - }\ - if (p->isMany())\ - {\ - DataObjectList& dol = the_do->getList(*p);\ - DataObject* list_do = dol[(*i).getIndex()];\ - if (list_do != 0)\ - {\ - return ((DataObjectImpl*)list_do)->get##primtype(ptr, max);\ - }\ - return defval;\ - }\ - return the_do->get##primtype(*((*i).getProp()), ptr, max);\ - } - - -StringGetter(const char* , CString, 0); - -CharGetter( wchar_t* , String, 0); -CharGetter( char*, Bytes, 0); - -unsigned int SequenceImpl::getLength(unsigned int index) -{ - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - const Property* p = (*i).getProp(); - switch (p->getTypeEnum()) - { - case Type::StringType: - return getStringValue(index,0,0); - case Type::BytesType: - return getBytesValue(index,0,0); - default: - return 0; - } -} - -getter(bool, Boolean, false); -getter(char, Byte, (char)0); -getter(wchar_t, Character, 0); -getter(short, Short, 0); -getter(long, Integer, 0L); -getter(int64_t, Long, 0); -getter(float, Float, (float)0); -getter(long double, Double, 0); -getter(const SDODate, Date, 0); - -ObjectGetter(RefCountingPointer , DataObject, 0); - - - /////////////////////////////////////////////////////////////////////////// - // generic getter for those types which support it - /////////////////////////////////////////////////////////////////////////// - - void SequenceImpl::setCStringValue( unsigned int index, const char* s ) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - (*i).setText(s); - return; - } - the_do->setCString(*((*i).getProp()),s); - - } - void SequenceImpl::setBooleanValue( unsigned int index, bool b ) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setBoolean(*((*i).getProp()),b); - } - - void SequenceImpl::setByteValue( unsigned int index, char c ) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setByte(*((*i).getProp()),c); - } - - void SequenceImpl::setCharacterValue( unsigned int index, wchar_t c ) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setCharacter(*((*i).getProp()),c); - } - void SequenceImpl::setStringValue( unsigned int index, const wchar_t* s , unsigned int len) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setString(*((*i).getProp()),s, len); - } - void SequenceImpl::setBytesValue( unsigned int index, const char* s , unsigned int len) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setBytes(*((*i).getProp()),s, len); - } - void SequenceImpl::setShortValue( unsigned int index, short s ) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setShort(*((*i).getProp()),s); - } - - void SequenceImpl::setIntegerValue( unsigned int index, long l) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setInteger(*((*i).getProp()),l); - } - - - void SequenceImpl::setLongValue( unsigned int index, int64_t l ) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setLong(*((*i).getProp()),l); - } - - void SequenceImpl::setFloatValue( unsigned int index, float f ) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setFloat(*((*i).getProp()),f); - } - - - void SequenceImpl::setDoubleValue(unsigned int index, long double d ) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setDouble(*((*i).getProp()),d); - } - - void SequenceImpl::setDateValue(unsigned int index, const SDODate t ) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setDate(*((*i).getProp()),t); - } - - void SequenceImpl::setDataObjectValue(unsigned int index, DataObjectPtr d ) - { - SEQUENCE_ITEM_LIST::iterator i; - CHECK_RANGE; - if ((*i).getProp() == 0) { - return; - } - the_do->setDataObject(*((*i).getProp()),d); - } - - -#define doadder(primtype,primval)\ - bool SequenceImpl::add##primtype(const char* propertyName, primval v)\ - {\ - const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ - if (p == 0)\ - {\ - if (the_do->getType().isOpenType())\ - {\ - p = the_do->define ##primtype (propertyName, v->getType());\ - }\ - if (p == 0)\ - {\ - string msg("Cannot find property:");\ - msg += propertyName;\ - SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ - msg.c_str());\ - }\ - }\ - return add##primtype((const Property&)*p,v);\ - }\ - bool SequenceImpl::add##primtype(unsigned int propertyIndex, primval v)\ - {\ - return add##primtype(the_do->getProperty(propertyIndex), v);\ - }\ - bool SequenceImpl::add##primtype(const Property& p, primval v)\ - {\ - if (p.isMany())\ - {\ - DataObjectList& dol = the_do->getList(p);\ - dol.append((primval)v);\ - /* the_list.push_back(seq_item(&p,dol.size()-1));*/\ - return true;\ - }\ - SEQUENCE_ITEM_LIST::iterator i;\ - for (i=the_list.begin();i != the_list.end();++i) {\ - const Property* pp = (*i).getProp();\ - if (pp == 0) continue;\ - if (!strcmp(pp->getName(),p.getName()))\ - {\ - SDO_THROW_EXCEPTION("add", SDOUnsupportedOperationException,\ - "Sequence::add of property which already exists in sequence");\ - }\ - }\ - the_do->set##primtype(p,v);\ - the_list.push_back(seq_item(&p,0));\ - return true;\ - } - - -#define adder(primtype,primval)\ - bool SequenceImpl::add##primtype(const char* propertyName, primval v)\ - {\ - const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ - if (p == 0)\ - {\ - if (the_do->getType().isOpenType())\ - {\ - p = the_do->define ##primtype (propertyName);\ - }\ - if (p == 0)\ - {\ - string msg("Cannot find property:");\ - msg += propertyName;\ - SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ - msg.c_str());\ - }\ - }\ - return add##primtype((const Property&)*p,v);\ - }\ - bool SequenceImpl::add##primtype(unsigned int propertyIndex, primval v)\ - {\ - return add##primtype(the_do->getProperty(propertyIndex), v);\ - }\ - bool SequenceImpl::add##primtype(const Property& p, primval v)\ - {\ - if (p.isMany())\ - {\ - DataObjectList& dol = the_do->getList(p);\ - dol.append((primval)v);\ - /* the_list.push_back(seq_item(&p,dol.size()-1));*/\ - return true;\ - }\ - SEQUENCE_ITEM_LIST::iterator i;\ - for (i=the_list.begin();i != the_list.end();++i) {\ - const Property* pp = (*i).getProp();\ - if (pp == 0) continue;\ - if (!strcmp(pp->getName(),p.getName()))\ - {\ - SDO_THROW_EXCEPTION("add", SDOUnsupportedOperationException,\ - "Sequence::add of property which already exists in sequence");\ - }\ - }\ - the_do->set##primtype(p,v);\ - the_list.push_back(seq_item(&p,0));\ - return true;\ - } - -adder( CString , const char* ); -adder( Boolean, bool); -adder( Byte, char ); -adder(Character, wchar_t); -adder(Short, short); -adder(Integer, long); -adder(Long, int64_t); -adder(Float, float); -adder(Double, long double); -adder(Date, const SDODate); -doadder(DataObject, RefCountingPointer); - - -#define charAdder(primtype,primval)\ - bool SequenceImpl::add##primtype(const char* propertyName, primval v, unsigned int len)\ - {\ - const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ - if (p == 0)\ - {\ - if (the_do->getType().isOpenType())\ - {\ - p = the_do->define ##primtype (propertyName);\ - }\ - if (p == 0)\ - {\ - string msg("Cannot find property:");\ - msg += propertyName;\ - SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ - msg.c_str());\ - }\ - }\ - return add##primtype((const Property&)*p,v, len);\ - }\ - bool SequenceImpl::add##primtype(unsigned int propertyIndex, primval v, unsigned int len)\ - {\ - return add##primtype(the_do->getProperty(propertyIndex), v, len);\ - }\ - bool SequenceImpl::add##primtype(const Property& p, primval v, unsigned int len)\ - {\ - if (p.isMany())\ - {\ - DataObjectList& dol = the_do->getList(p);\ - dol.append((primval)v, len);\ - /*the_list.push_back(seq_item(&p,dol.size()-1));*/\ - return true;\ - }\ - SEQUENCE_ITEM_LIST::iterator i;\ - for (i=the_list.begin();i != the_list.end();++i) {\ - const Property* pp = (*i).getProp();\ - if (pp == 0) continue;\ - if (!strcmp(pp->getName(),p.getName()))\ - {\ - SDO_THROW_EXCEPTION("add", SDOUnsupportedOperationException,\ - "Sequence::add of property which already exists in sequence");\ - }\ - }\ - the_do->set##primtype(p,v, len);\ - the_list.push_back(seq_item(&p,0));\ - return true;\ - } - - -charAdder ( String, const wchar_t* ); -charAdder ( Bytes , const char* ); - - -#define inserter(primtype,primval)\ - bool SequenceImpl::add##primtype(unsigned int index, const char* propertyName, primval v)\ - {\ - const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ - if (p == 0)\ - {\ - if (the_do->getType().isOpenType())\ - {\ - p = the_do->define ##primtype (propertyName);\ - }\ - if (p == 0)\ - {\ - string msg("Cannot find property:");\ - msg += propertyName;\ - SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ - msg.c_str());\ - }\ - }\ - return add##primtype(index,(const Property&)*p,v);\ - }\ - bool SequenceImpl::add##primtype(unsigned int index, unsigned int propertyIndex, primval v)\ - {\ - return add##primtype(index,the_do->getProperty(propertyIndex), v);\ - }\ - bool SequenceImpl::add##primtype(unsigned int index, const Property& p, primval v)\ - {\ - SEQUENCE_ITEM_LIST::iterator i;\ - SEQUENCE_ITEM_LIST::iterator i2 = the_list.end();\ - int j;\ - if (index >= the_list.size()) {\ - return add##primtype(p,v);\ - }\ - if (p.isMany())\ - {\ - DataObjectList& dol = the_do->getList(p);\ - dol.append((primval)v);\ - j = 0;\ - for (i=the_list.begin();(j < index) && (i != the_list.end());++i) {\ - j++;\ - }\ - /*the_list.insert(i,seq_item(&p,dol.size()-1));*/\ - return true;\ - }\ - j = 0;\ - for (i=the_list.begin();i != the_list.end();++i) {\ - const Property* pp = (*i).getProp();\ - if (pp == 0) continue;\ - if (!strcmp(pp->getName(),p.getName()))\ - {\ - SDO_THROW_EXCEPTION("Insert", SDOUnsupportedOperationException,\ - "Sequence::insert of property which already exists in sequence");\ - }\ - if (j == index) {\ - i2 = i;\ - }\ - j++;\ - }\ - the_do->set##primtype(p,v);\ - the_list.insert(i2,seq_item(&p,0));\ - return true;\ - } - -#define doinserter(primtype,primval)\ - bool SequenceImpl::add##primtype(unsigned int index, const char* propertyName, primval v)\ - {\ - const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ - if (p == 0)\ - {\ - if (the_do->getType().isOpenType())\ - {\ - p = the_do->define ##primtype (propertyName, v->getType());\ - }\ - if (p == 0)\ - {\ - string msg("Cannot find property:");\ - msg += propertyName;\ - SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ - msg.c_str());\ - }\ - }\ - return add##primtype(index,(const Property&)*p,v);\ - }\ - bool SequenceImpl::add##primtype(unsigned int index, unsigned int propertyIndex, primval v)\ - {\ - return add##primtype(index,the_do->getProperty(propertyIndex), v);\ - }\ - bool SequenceImpl::add##primtype(unsigned int index, const Property& p, primval v)\ - {\ - SEQUENCE_ITEM_LIST::iterator i;\ - SEQUENCE_ITEM_LIST::iterator i2 = the_list.end();\ - int j;\ - if (index >= the_list.size()) {\ - return add##primtype(p,v);\ - }\ - if (p.isMany())\ - {\ - DataObjectList& dol = the_do->getList(p);\ - dol.append((primval)v);\ - j = 0;\ - for (i=the_list.begin();(j < index) && (i != the_list.end());++i) {\ - j++;\ - }\ - /*the_list.insert(i,seq_item(&p,dol.size()-1));*/\ - return true;\ - }\ - j = 0;\ - for (i=the_list.begin();i != the_list.end();++i) {\ - const Property* pp = (*i).getProp();\ - if (pp == 0) continue;\ - if (!strcmp(pp->getName(),p.getName()))\ - {\ - SDO_THROW_EXCEPTION("Insert", SDOUnsupportedOperationException,\ - "Sequence::insert of property which already exists in sequence");\ - }\ - if (j == index) {\ - i2 = i;\ - }\ - j++;\ - }\ - the_do->set##primtype(p,v);\ - the_list.insert(i2,seq_item(&p,0));\ - return true;\ - } - -inserter( CString , const char* ); -inserter( Boolean, bool); -inserter( Byte, char ); -inserter(Character, wchar_t); -inserter(Short, short); -inserter(Integer, long); -inserter(Long, int64_t); -inserter(Float, float); -inserter(Double, long double); -inserter(Date, const SDODate); -doinserter(DataObject, RefCountingPointer); - - - -#define charInserter(primtype,primval)\ - bool SequenceImpl::add##primtype(unsigned int index, const char* propertyName, primval v, unsigned int len)\ - {\ - const PropertyImpl* p = the_do->getPropertyImpl(propertyName);\ - if (p == 0)\ - {\ - if (the_do->getType().isOpenType())\ - {\ - p = the_do->define ##primtype (propertyName);\ - }\ - if (p == 0)\ - {\ - string msg("Cannot find property:");\ - msg += propertyName;\ - SDO_THROW_EXCEPTION("getProperty", SDOPropertyNotFoundException,\ - msg.c_str());\ - }\ - }\ - return add##primtype(index,(const Property&)*p,v, len);\ - }\ - bool SequenceImpl::add##primtype(unsigned int index, unsigned int propertyIndex, primval v, unsigned int len)\ - {\ - return add##primtype(index,the_do->getProperty(propertyIndex), v, len);\ - }\ - bool SequenceImpl::add##primtype(unsigned int index, const Property& p, primval v, unsigned int len)\ - {\ - SEQUENCE_ITEM_LIST::iterator i;\ - SEQUENCE_ITEM_LIST::iterator i2 = the_list.end();\ - unsigned int j;\ - if (index >= the_list.size()) {\ - return add##primtype(p,v, len);\ - }\ - if (p.isMany())\ - {\ - DataObjectList& dol = the_do->getList(p);\ - dol.append((primval)v, len);\ - j = 0;\ - for (i=the_list.begin();(j < index) && (i != the_list.end());++i) {\ - j++;\ - }\ - /*the_list.insert(i,seq_item(&p,dol.size()-1));*/\ - return true;\ - }\ - j = 0;\ - for (i=the_list.begin();i != the_list.end();++i) {\ - const Property* pp = (*i).getProp();\ - if (pp == 0) continue;\ - if (!strcmp(pp->getName(),p.getName()))\ - {\ - SDO_THROW_EXCEPTION("Insert", SDOUnsupportedOperationException,\ - "Sequence::insert of property which already exists in sequence");\ - }\ - if (j == index) {\ - i2 = i;\ - }\ - j++;\ - }\ - the_do->set##primtype(p,v, len);\ - the_list.insert(i2,seq_item(&p,0));\ - return true;\ - } - - -charInserter( String , const wchar_t* ); -charInserter (Bytes , const char* ); - - - - - - void SequenceImpl::push(const Property& p, unsigned int index) - { - the_list.push_back(seq_item(&p,index)); - } - - void SequenceImpl::remove(unsigned int index) - { - if (index >= the_list.size()) { - string msg("Index out of range:"); - msg += index; - SDO_THROW_EXCEPTION("Sequence remove", SDOIndexOutOfRangeException, - msg.c_str()); - } - SEQUENCE_ITEM_LIST::iterator i; - int j = 0; - for (i=the_list.begin();(j < index) && (i != the_list.end()) ; ++i) - { - j++; - } - the_list.erase(i); - return; - } - - void SequenceImpl::removeAll(const Property& p) - { - int j = 0; - const Property* prop; - SEQUENCE_ITEM_LIST::iterator i; - for (i=the_list.begin();i != the_list.end(); ++i) - { - prop = (*i).getProp(); - if (prop != 0) { - if (!strcmp(prop->getName(), - p.getName())) - { - // not sure this works - does i still equate - // to an iterator over the list after the remove? - i = the_list.erase(i); - } - } - } - - return; - } - - void SequenceImpl::move(unsigned int toIndex, unsigned int fromIndex) - { - if (fromIndex >= the_list.size()) { - string msg("Index out of range:"); - msg += fromIndex; - SDO_THROW_EXCEPTION("Sequence Move", SDOIndexOutOfRangeException, - msg.c_str()); - } - - if (toIndex == fromIndex) return; - - SEQUENCE_ITEM_LIST::iterator i1, - i2 = the_list.end(), - i3 = the_list.end(); - int j = 0; - for (i3 = the_list.begin(); - j < toIndex && j < fromIndex && - i3 != the_list.end() ; ++i3); - { - if (j == toIndex) i1 = i3; - if (j == fromIndex) i2 = i3; - j++; - } - - if (toIndex < fromIndex) - { - the_list.insert( i1, *i2); - the_list.erase(i2); - } - else - { - if (toIndex + 1 == the_list.size()) - { - the_list.push_back(*i2); - } - else - { - the_list.insert(++i1,*i2); - } - the_list.erase(i2); - } - return; - } - - bool SequenceImpl::addText(const char* text) - { - the_list.push_back(seq_item(text)); - return true; - } - - bool SequenceImpl::isText(unsigned int index) - { - if (index >= the_list.size()) { - return false; - } - SEQUENCE_ITEM_LIST::iterator i; - int j = 0; - for (i= the_list.begin(); (j < index) && (i != the_list.end()); ++i) - { - j++; - } - if ((*i).getProp() == 0) - { - return true; - } - - return false; - } - - bool SequenceImpl::addText(unsigned int index, const char* text) - { - if (index >= the_list.size()) { - return addText(text); - } - - SEQUENCE_ITEM_LIST::iterator i; - int j = 0; - for (i= the_list.begin(); (j < index) && (i != the_list.end()); ++i) - { - j++; - } - the_list.insert(i,seq_item(text)); - return true; - } - - bool SequenceImpl::setText(unsigned int index, const char* text) - { - if (index >= the_list.size()) { - return false; - } - - if (!isText(index)) - { - return false; - } - - SEQUENCE_ITEM_LIST::iterator i; - int j = 0; - for (i= the_list.begin(); (j < index) && (i != the_list.end()); ++i) - { - j++; - } - (*i).setText(text); - return true; - } - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.h deleted file mode 100644 index 74fe808ced..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SequenceImpl.h +++ /dev/null @@ -1,375 +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: 2006/02/17 16:01:05 $ */ - -#ifndef _SEQUENCEIMPL_H_ -#define _SEQUENCEIMPL_H_ - -#include "commonj/sdo/disable_warn.h" - -#include -using namespace std; - -#include "commonj/sdo/Sequence.h" -#include "commonj/sdo/SDODate.h" - -#define SequenceImplPtr RefCountingPointer - -namespace commonj{ -namespace sdo{ - -class Property; /* forward declaration */ -class DataObjectImpl; - -/** SequenceImpl implements the abstract class Sequence. - * - * A sequence is a heterogeneous list of properties and corresponding values. - * It represents an ordered arbitrary mixture of data values from more - * than one property of a {@link DataObject data object}. - */ - -class SequenceImpl : public Sequence -{ - public: - /////////////////////////////////////////////////////////////////////////// - // Returns the number of entries in the sequence. - // @return the number of entries. - /////////////////////////////////////////////////////////////////////////// - virtual unsigned int size(); - - /////////////////////////////////////////////////////////////////////////// - // Returns the property for the given entry index. - /////////////////////////////////////////////////////////////////////////// - virtual const Property& getProperty(unsigned int index); - - /** - * Return the data object associated with this sequence - */ - - SDO_API virtual const DataObjectPtr getDataObject(); - - /////////////////////////////////////////////////////////////////////////// - // Returns the property for the given entry index. - /////////////////////////////////////////////////////////////////////////// - virtual unsigned int getIndex(const Property& p, unsigned int pindex=0); - virtual unsigned int getIndex(const char* propName, unsigned int pindex=0); - - virtual unsigned int getListIndex(unsigned int index); - - Type::Types getTypeEnum(unsigned int index); - - - /////////////////////////////////////////////////////////////////////////// - // Returns the property value for the given entry index. - // @param index the index of the entry. - // @return the value for the given entry index.. - /////////////////////////////////////////////////////////////////////////// - virtual const char* getCStringValue(unsigned int index); - virtual bool getBooleanValue(unsigned int index); - virtual char getByteValue(unsigned int index); - virtual wchar_t getCharacterValue(unsigned int index); - virtual unsigned int getStringValue(unsigned int index, wchar_t* val, unsigned int max); - virtual unsigned int getBytesValue(unsigned int index, char* val, unsigned int max); - virtual short getShortValue(unsigned int index); - virtual long getIntegerValue(unsigned int index); - virtual int64_t getLongValue(unsigned int index); - virtual float getFloatValue(unsigned int index); - virtual long double getDoubleValue(unsigned int index); - virtual const SDODate getDateValue(unsigned int index); - virtual DataObjectPtr getDataObjectValue(unsigned int index); - - virtual unsigned int getLength(unsigned int index); - - /////////////////////////////////////////////////////////////////////////// - // sets the entry at a specified index to the new value. - // @param index the index of the entry. - // @param value the new value for the entry. - /////////////////////////////////////////////////////////////////////////// - - virtual void setCStringValue( unsigned int index, const char* s ); - virtual void setBooleanValue( unsigned int index, bool b ); - virtual void setByteValue( unsigned int index, char c ); - virtual void setCharacterValue( unsigned int index, wchar_t c ); - virtual void setBytesValue( unsigned int index, const char* s , unsigned int len); - virtual void setStringValue( unsigned int index, const wchar_t* s , unsigned int len); - virtual void setShortValue( unsigned int index, short s ); - virtual void setIntegerValue( unsigned int index, long i ); - virtual void setLongValue( unsigned int index, int64_t l ); - virtual void setFloatValue( unsigned int index, float f ); - virtual void setDoubleValue( unsigned int index, long double d ); - virtual void setDateValue( unsigned int index, const SDODate t ); - virtual void setDataObjectValue(unsigned int index, DataObjectPtr d ); - - - /////////////////////////////////////////////////////////////////////////// - // adds a new entry with the specified property name and value - // to the end of the entries. - // @param propertyName the name of the entry's property. - // @param value the value for the entry. - /////////////////////////////////////////////////////////////////////////// - virtual bool addCString( const char* propertyName,const char* s ); - virtual bool addBoolean( const char* propertyName,bool b ); - virtual bool addByte( const char* propertyName,char c ); - virtual bool addCharacter( const char* propertyName,wchar_t c ); - virtual bool addString( const char* propertyName,const wchar_t* s , unsigned int len); - virtual bool addBytes( const char* propertyName,const char* s , unsigned int len); - virtual bool addShort( const char* propertyName,short s ); - virtual bool addInteger( const char* propertyName,long i ); - virtual bool addLong( const char* propertyName,int64_t l ); - virtual bool addFloat( const char* propertyName,float f ); - virtual bool addDouble( const char* propertyName,long double d ); - virtual bool addDate( const char* propertyName,const SDODate t ); - virtual bool addDataObject(const char* propertyName,DataObjectPtr d ); - - - /////////////////////////////////////////////////////////////////////////// - // adds a new entry with the specified property index and value - // to the end of the entries. - // @param propertyIndex the index of the entry's property. - // @param value the value for the entry. - /////////////////////////////////////////////////////////////////////////// - virtual bool addCString( unsigned int propertyIndex,const char* s ); - virtual bool addBoolean( unsigned int propertyIndex,bool b ); - virtual bool addByte( unsigned int propertyIndex,char c ); - virtual bool addCharacter( unsigned int propertyIndex,wchar_t c ); - virtual bool addString( unsigned int propertyIndex,const wchar_t* s , unsigned int len); - virtual bool addBytes( unsigned int propertyIndex,const char* s , unsigned int len); - virtual bool addShort( unsigned int propertyIndex,short s ); - virtual bool addInteger( unsigned int propertyIndex,long i ); - virtual bool addLong( unsigned int propertyIndex,int64_t l ); - virtual bool addFloat( unsigned int propertyIndex,float f ); - virtual bool addDouble( unsigned int propertyIndex,long double d ); - virtual bool addDate( unsigned int propertyIndex,const SDODate t ); - virtual bool addDataObject(unsigned int propertyIndex,DataObjectPtr d ); - - - /////////////////////////////////////////////////////////////////////////// - // adds a new entry with the specified property and value - // to the end of the entries. - // @param property the property of the entry. - // @param value the value for the entry. - /////////////////////////////////////////////////////////////////////////// - - virtual bool addCString( const Property& property,const char* s ); - virtual bool addBoolean( const Property& property,bool b ); - virtual bool addByte( const Property& property,char c ); - virtual bool addCharacter( const Property& property,wchar_t c ); - virtual bool addString( const Property& property,const wchar_t* s , unsigned int len); - virtual bool addBytes( const Property& property,const char* s , unsigned int len); - virtual bool addShort( const Property& property,short s ); - virtual bool addInteger( const Property& property,long i ); - virtual bool addLong( const Property& property,int64_t l ); - virtual bool addFloat( const Property& property,float f ); - virtual bool addDouble( const Property& property,long double d ); - virtual bool addDate( const Property& property,const SDODate t ); - virtual bool addDataObject(const Property& property,DataObjectPtr d ); - - - /////////////////////////////////////////////////////////////////////////// - // adds a new entry with the specified property name and value - // at the specified entry index. - // @param index the index at which to add the entry. - // @param propertyName the name of the entry's property. - // @param value the value for the entry. - /////////////////////////////////////////////////////////////////////////// - virtual bool addCString( unsigned int index,const char* propertyName,const char* s ); - virtual bool addBoolean( unsigned int index,const char* propertyName,bool b ); - virtual bool addByte( unsigned int index,const char* propertyName,char c ); - virtual bool addCharacter( unsigned int index,const char* propertyName,wchar_t c ); - virtual bool addString( unsigned int index,const char* propertyName,const wchar_t* s , unsigned int len); - virtual bool addBytes( unsigned int index,const char* propertyName,const char* s , unsigned int len); - virtual bool addShort( unsigned int index,const char* propertyName,short s ); - virtual bool addInteger( unsigned int index,const char* propertyName,long i ); - virtual bool addLong( unsigned int index,const char* propertyName,int64_t l ); - virtual bool addFloat( unsigned int index,const char* propertyName,float f ); - virtual bool addDouble( unsigned int index,const char* propertyName,long double d ); - virtual bool addDate( unsigned int index,const char* propertyName,const SDODate t ); - virtual bool addDataObject(unsigned int index,const char* propertyName,DataObjectPtr d ); - - - /////////////////////////////////////////////////////////////////////////// - // adds a new entry with the specified property index and value - // at the specified entry index. - // @param index the index at which to add the entry. - // @param propertyIndex the index of the entry's property. - // @param value the value for the entry. - /////////////////////////////////////////////////////////////////////////// - virtual bool addCString( unsigned int index,unsigned int propertyIndex,const char* s ); - virtual bool addBoolean( unsigned int index,unsigned int propertyIndex,bool b ); - virtual bool addByte( unsigned int index,unsigned int propertyIndex,char c ); - virtual bool addCharacter( unsigned int index,unsigned int propertyIndex,wchar_t c ); - virtual bool addString( unsigned int index,unsigned int propertyIndex,const wchar_t* s , unsigned int len); - virtual bool addBytes( unsigned int index,unsigned int propertyIndex,const char* s , unsigned int len); - virtual bool addShort( unsigned int index,unsigned int propertyIndex,short s ); - virtual bool addInteger( unsigned int index,unsigned int propertyIndex,long i ); - virtual bool addLong( unsigned int index,unsigned int propertyIndex,int64_t l ); - virtual bool addFloat( unsigned int index,unsigned int propertyIndex,float f ); - virtual bool addDouble( unsigned int index,unsigned int propertyIndex,long double d ); - virtual bool addDate( unsigned int index,unsigned int propertyIndex,const SDODate t ); - virtual bool addDataObject(unsigned int index,unsigned int propertyIndex,DataObjectPtr d ); - - - /////////////////////////////////////////////////////////////////////////// - // adds a new entry with the specified property and value - // at the specified entry index. - // @param index the index at which to add the entry. - // @param property the property of the entry. - // @param value the value for the entry. - /////////////////////////////////////////////////////////////////////////// - virtual bool addCString( unsigned int index,const Property& property,const char* s ); - virtual bool addBoolean( unsigned int index,const Property& property,bool b ); - virtual bool addByte( unsigned int index,const Property& property,char c ); - virtual bool addCharacter( unsigned int index,const Property& property,wchar_t c ); - virtual bool addString( unsigned int index,const Property& property,const wchar_t* s , unsigned int len); - virtual bool addBytes( unsigned int index,const Property& property,const char* s , unsigned int len); - virtual bool addShort( unsigned int index,const Property& property,short s ); - virtual bool addInteger( unsigned int index,const Property& property,long i ); - virtual bool addLong( unsigned int index,const Property& property,int64_t l ); - virtual bool addFloat( unsigned int index,const Property& property,float f ); - virtual bool addDouble( unsigned int index,const Property& property,long double d ); - virtual bool addDate( unsigned int index,const Property& property,const SDODate t ); - virtual bool addDataObject(unsigned int index,const Property& property,DataObjectPtr d ); - - - /////////////////////////////////////////////////////////////////////////// - // removes the entry at the given entry index. - // @param index the index of the entry - /////////////////////////////////////////////////////////////////////////// - virtual void remove(unsigned int index); - virtual void removeAll(const Property& p); - - /////////////////////////////////////////////////////////////////////////// - // pushes a new entry without setting the property. - // @param index the index of the entry - /////////////////////////////////////////////////////////////////////////// - virtual void push(const Property& p, unsigned int index); - - /////////////////////////////////////////////////////////////////////////// - // Moves the entry at fromIndex to toIndex. - // @param toIndex the index of the entry destination. - // @param fromIndex the index of the entry to move. - /////////////////////////////////////////////////////////////////////////// - virtual void move(unsigned int toIndex, unsigned int fromIndex); - - /////////////////////////////////////////////////////////////////////////// - // adds a new Setting with the SDO text Property - // to the end of the Settings. - // @param text value of the Setting. - /////////////////////////////////////////////////////////////////////////// - virtual bool addText(const char* text); - - /////////////////////////////////////////////////////////////////////////// - // adds a new Setting with the SDO text Property - // to the Settings. - // @param index the index at which to add the entry. - // @param text value of the Setting. - /////////////////////////////////////////////////////////////////////////// - virtual bool addText(unsigned int index, const char* text); - - /////////////////////////////////////////////////////////////////////////// - // sets a text Property - // @param index the index at which to set the entry. - // @param text value of the Setting. - /////////////////////////////////////////////////////////////////////////// - bool setText(unsigned int index, const char* text); - - /////////////////////////////////////////////////////////////////////////// - // Checks if an entry is text or a setting. - /////////////////////////////////////////////////////////////////////////// - virtual bool isText(unsigned int index); - - SequenceImpl(DataObject* the_do); - SequenceImpl(SequenceImpl* s); - - private: - - SequenceImpl(); - - DataObjectImpl* the_do; - - class seq_item { - public: - seq_item(const Property* p, unsigned int i): - the_prop(p) - { - index = i; - text = 0; - } - seq_item(const char* t) - { - text = new char[strlen(t) + 1]; - strcpy(text,t); - the_prop = 0; - } - - ~seq_item() - { - if (text) { - delete text; - } - } - - seq_item(const seq_item& sin) - { - the_prop = sin.the_prop; - index = sin.index; - if (sin.text) { - text = new char[strlen(sin.text) +1]; - strcpy(text, sin.text); - } - else - { - text =0; - } - } - - const Property* getProp() {return the_prop;} - unsigned int getIndex() { return index;} - char* getText() { return text;} - void setProp(Property* p) { the_prop = p;} - void setText(const char* intext) - { - if (intext != 0) - { - if (text != 0) - { - delete text; - } - text = new char[strlen(intext) +1]; - strcpy(text,intext); - } - } - void setIndex(unsigned int i) - { - index = i; - } - private: - const Property* the_prop; - unsigned int index; - char* text; - }; - - typedef std::list SEQUENCE_ITEM_LIST; - - SEQUENCE_ITEM_LIST the_list; - -}; -}; -}; - -#endif //_SEQUENCE_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.cpp deleted file mode 100644 index 6aa8dab8b6..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.cpp +++ /dev/null @@ -1,303 +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:15 $ */ - -#include "commonj/sdo/Setting.h" -#include "commonj/sdo/TypeImpl.h" - -namespace commonj{ -namespace sdo { - - Setting::Setting(bool set, bool nul, void* invalue, unsigned int len, const Property& p, unsigned int inindex) - : bisSet(set), bisNull(nul) , value(invalue),theProp(&p) - { - index = inindex; - length = len; - strbuf = 0; - } - - void Setting::copy(const Setting& s) - { - bisSet = s.isSet(); - bisNull = s.isNull(); - index = s.getIndex(); - length = s.getLength(); - theProp = &(s.getProperty()); - strbuf = 0; - switch (theProp->getTypeEnum()) - { - case Type::BooleanType: - value = new long; - *(long*)value = (long)s.getBooleanValue(); - break; - case Type::ByteType: - value = new long; - *(long*)value = (long)s.getByteValue(); - break; - case Type::CharacterType: - value = new long; - *(long*)value = (long)s.getCharacterValue(); - break; - case Type::IntegerType: - value = new long; - *(long*)value = (long)s.getIntegerValue(); - break; - case Type::ShortType: - value = new long; - *(long*)value = (long)s.getShortValue(); - break; - case Type::DoubleType: - value = new long double; - *(long double*)value = s.getDoubleValue(); - break; - case Type::FloatType: - value = new float; - *(float*)value = s.getFloatValue(); - break; - case Type::LongType: - value = new int64_t; - *(int64_t*)value = s.getLongValue(); - break; - case Type::DateType: - value = new long; - *(long*)value = long(s.getDateValue().getTime()); - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::StringType: - case Type::UriType: - value = new wchar_t[length]; - s.getStringValue((wchar_t*)value,length); - break; - case Type::BytesType: - value = new char[length]; - s.getBytesValue((char*)value,length); - break; - case Type::OtherTypes: - case Type::DataObjectType: - case Type::ChangeSummaryType: - value = s.getDataObjectValue(); - default: - break; - } - } - - Setting& Setting::operator=(const Setting& s) - { - if (this == &s) return *this; - copy(s); - return *this; - } - - Setting::Setting(const Setting& s) - { - copy(s); - } - - Setting::~Setting() - { - // The value has been allocated for everything except data objects - - switch (theProp->getTypeEnum()) - { - case Type::BooleanType: - case Type::ByteType: - case Type::CharacterType: - case Type::IntegerType: - case Type::ShortType: - delete (long*)value; - break; - case Type::DoubleType: - delete (long double*)value; - break; - case Type::FloatType: - delete (float*)value; - break; - case Type::LongType: - delete (int64_t*)value; - break; - case Type::DateType: - delete (long*)value; - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::StringType: - case Type::UriType: - delete (wchar_t*)value; - break; - case Type::BytesType: - delete (char*)value; - break; - case Type::OtherTypes: - case Type::DataObjectType: - case Type::ChangeSummaryType: - default: - break; - } - if (strbuf != 0) delete strbuf; - } - - const Property& Setting::getProperty() const - { - return *theProp; - } - - const Type& Setting::getType() const - { - return theProp->getType(); - } - - bool Setting::getBooleanValue() const - { - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToBoolean(value, length); - //if (value == 0) return false; - //if (*(long*)value != 0) { - // return true; - //} - //return false; - } - - char Setting::getByteValue() const - { - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToByte(value, length); - //if (value == 0) return 0; - //return (char)*(long*)value; - } - - wchar_t Setting::getCharacterValue() const - { - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToCharacter(value, length); - //if (value == 0) return 0; - //return (wchar_t)*(long*)value; - } - - unsigned int Setting::getBytesValue(char* buffer, unsigned int max) const - { - if (buffer == 0 && max == 0) return length; - - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToBytes(value, buffer,length, max); - //int i; - //char* c = (char*)value; - //for (i=0;i < max && i < length;i++) - //{ - // buffer[i] = (char)*c; - // c++; - //} - //return i; - } - - unsigned int Setting::getStringValue(wchar_t* buffer, unsigned int max) const - { - if (buffer == 0 && max == 0) return length; - - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToString(value, buffer,length, max); - //int i; - //wchar_t* c = (wchar_t*)value; - //for (i=0;i < max && i < length;i++) - //{ - // buffer[i] = (wchar_t)*c; - // c++; - //} - //return i; - } - - short Setting::getShortValue() const - { - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToShort(value,length); - //return (short)*(long*)value; - } - - long Setting::getIntegerValue() const - { - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToInteger(value, length); - //return *(long*)value; - } - - - int64_t Setting::getLongValue() const - { - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToLong(value, length); - //return (int64_t)*(int64_t*)value; - } - - float Setting::getFloatValue() const - { - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToFloat(value, length); - //return (float)*(float*)value; - } - - const SDODate Setting::getDateValue() const - { - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToDate(value, length); - } - - - long double Setting::getDoubleValue() const - { - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToDouble(value, length); - //return (long double)*(long double*)value; - } - - const char* Setting::getCStringValue() - { - TypeImpl* t = (TypeImpl*)&(getType()); - return t->convertToCString(value, &strbuf, length); - //return (const char*)value; - } - - RefCountingPointer Setting::getDataObjectValue() const - { - DataObject *dob = (DataObject*)value; - return RefCountingPointer(dob); - } - - - unsigned int Setting::getLength() const - { - return length; - } - - unsigned int Setting::getIndex() const - { - return index; - } - - bool Setting::isSet() const - { - return bisSet; - } - - bool Setting::isNull() const - { - return bisNull; - } - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.h deleted file mode 100644 index 37de243716..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Setting.h +++ /dev/null @@ -1,149 +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:15 $ */ - -#ifndef SETTING_H -#define SETTING_H - -#include "commonj/sdo/export.h" - -#include "commonj/sdo/Type.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/SDODate.h" - -namespace commonj{ -namespace sdo { - - class Property; - - /** - * A Setting encapsulates a property and a corresponding single value of - * the property's type. - */ - - class Setting - { - public: - - Setting(bool set, bool nul, void* invalue, unsigned int len, const Property& p, - unsigned int inindex); - - Setting(const Setting& s); - - void copy(const Setting& s); - - Setting& operator=(const Setting& s); - - - virtual ~Setting(); - - - /** getProperty returns the property set. - * - * Returns the property of the Setting. - * @return the Setting property. - */ - - SDO_API const Property& getProperty() const; - - /** getType returns the type of the property - * - * Returns the type of this property. This is the same as - * getProperty().getType() - */ - - SDO_API const Type& getType() const; - - /** getTypeEnum returns the type enumerator - * - * Returns the enum for the type of this property - */ - - SDO_API Type::Types getTypeEnum() const; - - - /** get methods get the right type of value from the setting - * - * - * Returns the value of the Setting. This must be of the right type for - * Setting value. - */ - - SDO_API bool getBooleanValue() const; - SDO_API char getByteValue() const; - SDO_API wchar_t getCharacterValue() const; - SDO_API unsigned int getBytesValue(char* buffer, unsigned int max) const; - SDO_API unsigned int getStringValue(wchar_t* buffer, unsigned int max) const; - SDO_API short getShortValue() const; - SDO_API long getIntegerValue() const; - SDO_API int64_t getLongValue() const; - SDO_API float getFloatValue() const; - SDO_API long double getDoubleValue() const; - SDO_API const SDODate getDateValue() const; - SDO_API const char* getCStringValue() ; - SDO_API DataObjectPtr getDataObjectValue() const; - - - - /** getIndex returns the index in a many-valued property - * - * Returns the index of the Setting, if this is many valued - */ - - SDO_API unsigned int getIndex() const; - - - /** getLength gives the length of a string or bytes - * - * Returns the length of the setting, if this is a String or - * Bytes type - */ - - SDO_API unsigned int getLength() const ; - - /** isSet returns whether the property WAS set. - * - * Returns whether or not the property is set. This value comes from the - * setting, and tells us whether the property was set before the change - * occurred. - */ - - SDO_API bool isSet() const; - - /** isNull is true if the property value WAS null - * - * Returns whether or not the property was null beforfe the setting - * happened. - */ - - SDO_API bool isNull() const; - - private: - - bool bisSet; - bool bisNull; - void* value; - const Property* theProp; - unsigned int length; - unsigned int index; - char* strbuf; - }; -}; -}; - -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.cpp deleted file mode 100644 index f036d0e488..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.cpp +++ /dev/null @@ -1,113 +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: 2006/02/17 16:01:05 $ */ - -#include "commonj/sdo/SDORuntimeException.h" - -#include "commonj/sdo/SettingList.h" -#include "commonj/sdo/Logger.h" -#include "commonj/sdo/Setting.h" - -namespace commonj{ -namespace sdo { - - -//SettingList::SettingList(SETTING_VECTOR p) : slist (p) -//{ -//} - -/*SettingList::SettingList(const SettingList &pin) -{ - Logger::log("SettingList copy constructor\n"); - slist = std::vector(pin.getVec()); -} -*/ - -SettingList::SettingList() -{ -} - -SettingList::~SettingList() -{ - while (slist.size() > 0) - { - Setting* s = slist[0]; - slist.erase(slist.begin()); - delete s; - } - -} - - -Setting& SettingList::operator[] (int pos) const -{ - validateIndex(pos); - return (*slist[pos]); -} - -Setting* SettingList::get(int pos) -{ - validateIndex(pos); - return (slist[pos]); -} - -int SettingList::size () const -{ - return slist.size(); -} - -//SETTING_VECTOR SettingList::getVec() const -//{ -// return slist; -//} - -void SettingList::insert (unsigned int index, Setting* d) -{ - slist.insert(slist.begin()+index, d); -} - -void SettingList::append ( Setting* d) -{ - slist.insert(slist.end(),d); -} - -void SettingList::remove(unsigned int index) -{ - validateIndex(index); - const Setting* s = slist[index]; - slist.erase(slist.begin()+index); - delete s; - return; -} - -void SettingList::validateIndex(int index) const -{ - if ((index < 0) || (index > size())) - { - string msg("Index out of range:"); - msg += index; - SDO_THROW_EXCEPTION("ValidateIndex", SDOIndexOutOfRangeException, - msg.c_str()); - - } - -} - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.h deleted file mode 100644 index 63089a1b70..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/SettingList.h +++ /dev/null @@ -1,75 +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: 2006/02/17 16:01:05 $ */ - -#ifndef SETTINGLIST_H -#define SETTINGLIST_H - - - -#include -#include "commonj/sdo/Setting.h" - -namespace commonj{ -namespace sdo{ - -typedef std::vector< Setting*> SETTING_VECTOR; - -/** SettingList is a list of settings returned by a change summary - */ - -class SettingList -{ - -public: - //SettingList(SETTING_VECTOR sl); - SettingList(); - - virtual ~SettingList(); - - /** [] is the index operator - * - * This gives access to elements of the list - */ - - SDO_API virtual Setting& operator[] (int pos) const; - - /** size() returns the number of settings - * - * This method returns the size of the list os settings found. - * These may be creations, deletions or changes. - */ - - SDO_API virtual int size () const; - - virtual void insert (unsigned int index, Setting* d); - virtual void append ( Setting* d); - virtual void remove (unsigned int index); - virtual Setting* get (int pos); - - -private: - SETTING_VECTOR slist; - - void validateIndex(int index) const; -}; - -}; -}; - -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.cpp deleted file mode 100644 index 1ac094869d..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.cpp +++ /dev/null @@ -1,36 +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:15 $ */ - -#include "commonj/sdo/Type.h" - -namespace commonj{ -namespace sdo{ - - - Type::~Type() - { - } - - const char* Type::SDOTypeNamespaceURI = "commonj.sdo"; - -}; -}; -// end - namespace sdo - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.h deleted file mode 100644 index 8d13fe662b..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/Type.h +++ /dev/null @@ -1,226 +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: 2006/02/02 16:41:30 $ */ - -#ifndef _SDO_TYPE_H_ -#define _SDO_TYPE_H_ - - -#include "commonj/sdo/export.h" - -#include "commonj/sdo/PropertyList.h" - -namespace commonj{ -namespace sdo{ - - - - -class Property; - - /** - * - * Type is a representation of the type of a property of a data object. - */ - -class Type -{ - -public: - - -/** \enum Types - * - * This is the enumerator for all DataType types. All DataObjectType types - * appear as a Type::Types of DataObjectType. - * otherTypes, ChangeSumamryType and TextType are not used by client code. - */ - - - SDO_API enum Types - { - // Zero is a value for 'unknown type; - all data objects' - OtherTypes = 0, - BigDecimalType, - BigIntegerType, - BooleanType, - ByteType, - BytesType, - CharacterType, - DateType, - DoubleType, - FloatType, - IntegerType, - LongType, - ShortType, - StringType, - UriType, - DataObjectType, - ChangeSummaryType, - TextType, - UndefinedOpenPropertyType, - num_types - }; - - virtual SDO_API ~Type(); - - /** getName returns the name of the type - * - * This method returns a const char* name of the type. - */ - - virtual SDO_API const char* getName() const = 0; - - /** getAlias returns the n'th alias - * - * This method returns a const char* corresponding to the - * alias at index n of the list of aliases. Use getAliasCount to - * discover the size of the list. - */ - - virtual SDO_API const char* getAlias(unsigned int index = 0) const = 0; - - /** getAliasCount returns the number of aliases - * - * This method returns the number of aliases for this type - */ - - virtual SDO_API unsigned int getAliasCount() const = 0; - - /** getBaseType returns the base if there is one - * - * This method returns a const Type* corresponding to the - * base Type for this type. The base type is the one which - * this type inherits from. - */ - - virtual SDO_API const Type* getBaseType() const = 0; - - /** getURI returns the URI for this type - * - * This method returns the URI for this type. The URI may be - * null. - */ - - virtual SDO_API const char* getURI() const = 0; - - - - /** getProperties returns a list of properties for this type - * - * This method returns the list of properties for this type. - * Instances of open types may have more properties than appear - * in this list. - * See the propertylist API. - */ - - virtual SDO_API PropertyList getProperties() const = 0; - - - /** getProperty returns a property for this type - * - * This method returns a property, by index or by name - */ - - virtual SDO_API const Property& getProperty(const char* propertyName) const = 0; - virtual SDO_API const Property& getProperty(unsigned int index) const = 0; - - /** getPropertyIndex returns an index - * - * This method returns a property index for a named property - */ - - virtual SDO_API unsigned int getPropertyIndex(const char* propertyName) const = 0; - - /** isDataObjectType true if not a DataType - * - * This method returns true if the type is not a DataType, and is therefore - * a DataObjectType with properties. - */ - - virtual SDO_API bool isDataObjectType() const = 0; - - - /** isSequencedType true if the type is sequenced - * - * This method returns true if the type is sequenced, and is therefore - * objects of this type can be manipulate via their sequence interface. - */ - - virtual SDO_API bool isSequencedType() const = 0; - - - /** isOpenType true if the type is open - * - * Normal types have a predefined list of properties. Trying to set - * properties which do not exist will cause an exception to be thrown. - * Open types, on the other hand, may have properties added to their - * instances runtime. These properties get added silently when setting a - * property value for a property which does not exist. - * Different instances of these objects may have different lists of - * open properties. - */ - - virtual SDO_API bool isOpenType() const = 0; - - /** isAbstractType true if the type is not instantiable. - * - * An abstract type may not be instantiated. It is useful only as - * a base type to some other non-abstract type. - */ - - virtual SDO_API bool isAbstractType() const = 0; - - /** isDataType true if the type is not an object. - * - * A DataType is anything which is not a DataObjectType. This method - * is the opposite of isDataObjectType(). - */ - - virtual SDO_API bool isDataType() const = 0; - - - /** isChangeSummaryType true if the type is a change summary. - * - * There is only one type called ChangeSummary. This method serves - * no purpose in the C++ implementation. - */ - - virtual SDO_API bool isChangeSummaryType() const = 0; - - /** getTypeEnum gets the enum for this type. - * - * Each DataType has a defined value in the list of Types. - */ - - virtual SDO_API Type::Types getTypeEnum() const = 0; - - /** equals compares uri and name. - * - * The types are equal if the URI and Name are equal. - */ - - virtual SDO_API bool equals(const Type& tother) const = 0; - - static SDO_API const char* SDOTypeNamespaceURI; -}; - -}; -}; -#endif //_SDO_TYPE_H_ - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.cpp deleted file mode 100644 index 0e2587e3d5..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.cpp +++ /dev/null @@ -1,42 +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:15 $ */ - -#include "commonj/sdo/TypeDefinition.h" -namespace commonj -{ - namespace sdo - { - TypeDefinition::TypeDefinition() - : dataType(false), - isOpen(false), - isSequenced(false), - isMany(false), - isQName(false), - isAbstract(false), - groupElementCount(0), - isExtendedPrimitive(false) - { - } - - TypeDefinition::~TypeDefinition() - { - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.h deleted file mode 100644 index 598e66c254..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinition.h +++ /dev/null @@ -1,77 +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:15 $ */ - -#ifndef _TYPEDEFINITION_H_ -#define _TYPEDEFINITION_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/PropertyDefinition.h" -#include "list" - - -namespace commonj -{ - namespace sdo - { - - typedef std::list XmlDasPropertyDefs; - -/** - * TypeDefinition holds information gathered from parsing the - * XSD and used for creating Types - */ - class TypeDefinition - { - - public: - TypeDefinition(); - virtual ~TypeDefinition(); - - - SDOXMLString uri; - SDOXMLString name; - SDOXMLString localname; - - SDOXMLString aliases; - - SDOXMLString parentTypeUri; - SDOXMLString parentTypeName; - - SDOXMLString IDPropertyName; - - bool dataType; - XmlDasPropertyDefs properties; - - bool isOpen; - bool isSequenced; - bool isAbstract; - - bool isExtendedPrimitive; - - bool isMany; - int groupElementCount; - - bool isQName; - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_TYPEDEFINITION_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.cpp deleted file mode 100644 index 731c6921d9..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.cpp +++ /dev/null @@ -1,39 +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:15 $ */ - -#include "commonj/sdo/TypeDefinitions.h" -namespace commonj -{ - namespace sdo - { - TypeDefinitions::TypeDefinitions() - { - } - - TypeDefinitions::~TypeDefinitions() - { - } - - SDOXMLString TypeDefinitions::getTypeQName(const SDOXMLString& typeUri, const SDOXMLString& typeName) - { - return typeUri + "#" + typeName; - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.h deleted file mode 100644 index 2e77886166..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeDefinitions.h +++ /dev/null @@ -1,53 +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:15 $ */ - -#ifndef _TYPEDEFINITIONS_H_ -#define _TYPEDEFINITIONS_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/TypeDefinition.h" -#include "map" - -namespace commonj -{ - namespace sdo - { - typedef std::map XMLDAS_TypeDefs; - -/** - * TypeDefinitions holds a list information gathered from parsing the - * XSD and used for creating Types - */ - class TypeDefinitions - { - - public: - TypeDefinitions(); - virtual ~TypeDefinitions(); - static SDOXMLString getTypeQName(const SDOXMLString& typeUri, const SDOXMLString& typeName); - - XMLDAS_TypeDefs types; - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_TYPEDEFINITIONS_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp deleted file mode 100644 index b44f306ddb..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp +++ /dev/null @@ -1,3125 +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: 2006/01/25 15:51:00 $ */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "commonj/sdo/Logger.h" - -#include "commonj/sdo/PropertyImpl.h" -#include "commonj/sdo/TypeImpl.h" - -#include -#include -#include -using namespace std; - -#include -#include - -#include "commonj/sdo/SDORuntimeException.h" - -namespace commonj{ -namespace sdo{ - - - - char* TypeImpl::types[num_types] = { - "Other Types", - "BigDecimal", - "BigInteger", - "Boolean" , - "Byte", - "Bytes", - "Character", - "Date" , - "Double" , - "Float" , - "Integer" , - "Long" , - "Short" , - "String" , - "URI" , - "DataObject", - "ChangeSummary", - "Text" - }; - - - /////////////////////////////////////////////////////////////////////////// - // - /////////////////////////////////////////////////////////////////////////// - - void TypeImpl::addChangeSummary(void) - { - changeSummaryType = true; - } - - bool TypeImpl::isChangeSummaryType() const - { - return changeSummaryType; - } - - /////////////////////////////////////////////////////////////////////////// - // - /////////////////////////////////////////////////////////////////////////// - - bool TypeImpl::isDataType(void) const - { - return isPrimitive; - } - - /////////////////////////////////////////////////////////////////////////// - // - /////////////////////////////////////////////////////////////////////////// - - TypeImpl::TypeImpl(const TypeImpl& t) - { - isResolving = false; - isResolved = false; - } - - TypeImpl::TypeImpl(const Type* base, const char* uri, - const char* inname, - bool isSeq, - bool isOp, - bool isAbs, - bool isData) - { - init(uri,inname,isSeq,isOp, isAbs, isData); - baseType = (TypeImpl*)base; - } - - TypeImpl::TypeImpl(const char* uri, const char* inname, - bool isSeq, - bool isOp, - bool isAbs, - bool isData) - - { - init(uri,inname,isSeq,isOp,isAbs, isData); - baseType = 0; - } - - void TypeImpl::init(const char* uri, const char* inname, - bool isSeq, - bool isOp, - bool isAbs, - bool isData) - { - isResolving = false; - isResolved = false; - localPropsSize = 0; - changeSummaryType = false; - isSequenced = isSeq; - isOpen = isOp; - isAbstract = isAbs; - isPrimitive = isData; - name = new char[strlen(inname)+1]; - strcpy(name,inname); - - if (uri == 0) - { - typeURI = new char[1]; - typeURI[0] = 0; - typeEnum = DataObjectType; - return; - } - - typeURI = new char[strlen(uri)+1]; - strcpy(typeURI,uri); - - if (!strcmp(uri,Type::SDOTypeNamespaceURI)) { - for (int i = 0; i < num_types ; i++) { - if (!strcmp(inname,types[i])) { - typeEnum = (Types)i; - if (i <= UriType) isPrimitive = true; - // Note - you could create Text, but it would - // not be recognised as primitive. - return; - } - } - } - - // All other types are data object types - for now - typeEnum = DataObjectType; - } - - - /////////////////////////////////////////////////////////////////////////// - // - /////////////////////////////////////////////////////////////////////////// - TypeImpl::TypeImpl() - { - } - - /////////////////////////////////////////////////////////////////////////// - // - /////////////////////////////////////////////////////////////////////////// - - TypeImpl::~TypeImpl() - { - // Types free their corresponding properties, but not the types - // of those properties - // Need to free only those we allocated - unsigned int count = 0, start = props.size() - localPropsSize; - std::list::iterator i; - for (i= props.begin(); i != props.end() ; ++i) - { - if (count >= start) { - delete(*i); - } - count++; - } - if (name != 0)delete name; - if (typeURI != 0) delete typeURI; - for (int j = 0; j < aliases.size();j++) - { - delete aliases[j]; - } - } - - /////////////////////////////////////////////////////////////////////////// - // Sets a data type as sequenced. - /////////////////////////////////////////////////////////////////////////// - - void TypeImpl::setSequenced(bool set) - { - isSequenced = set; - } - - /////////////////////////////////////////////////////////////////////////// - // Sets a data type as open. - /////////////////////////////////////////////////////////////////////////// - - void TypeImpl::setOpen(bool set) - { - isOpen = set; - } - - /////////////////////////////////////////////////////////////////////////// - // Sets a data type as open. - /////////////////////////////////////////////////////////////////////////// - - void TypeImpl::setBaseType(const Type* bt) - { - baseType = (TypeImpl*)bt; - - // DataType and Sequenced must be the same as the base Type - isPrimitive = baseType->isPrimitive; - if (isPrimitive) - { - typeEnum = baseType->typeEnum; - } - - if (isSequenced && !baseType->isSequenced) - { - // Its an error to be sequenced and inherit from a - // non-sequenced type - string msg("Cannot be sequenced and inherit from a non-sequenced base type:"); - msg += getURI(); - msg += " "; - msg += getName(); - SDO_THROW_EXCEPTION("setBaseType", - SDOUnsupportedOperationException, - msg.c_str()); - } - - isSequenced = baseType->isSequenced; - // if the base is open then this type must be open too. - - if (baseType->isOpenType()) - { - isOpen = true; - } - } - - bool TypeImpl::equals(const Type& tother) const - { - if (strcmp(typeURI,tother.getURI())) return false; - // TODO - aliases - if (strcmp(name, tother.getName())) return false; - return true; - } - - - const Type* TypeImpl::getBaseType() const - { - return (Type*)baseType; - } - - /////////////////////////////////////////////////////////////////////////// - // Returns the name of the type. - /////////////////////////////////////////////////////////////////////////// - - const char* TypeImpl::getName() const - { - return name; - } - - void TypeImpl::setAlias(const char* alias) - { - char* tmp = new char[strlen(alias)+1]; - strcpy(tmp,alias); - aliases.push_back(tmp); - } - - - - - const char* TypeImpl::getAlias(unsigned int index) const - { - if (index < aliases.size()) - { - return aliases[index]; - } - return name; - } - - unsigned int TypeImpl::getAliasCount() const - { - return aliases.size(); - } - /////////////////////////////////////////////////////////////////////////// - // Returns the namespace URI of the type. - /////////////////////////////////////////////////////////////////////////// - const char* TypeImpl::getURI() const - { - return typeURI; - } - - void TypeImpl::throwIfNestedChangeSummary() const - { - PROPERTY_LIST::const_iterator i; - for (i = props.begin(); i != props.end(); ++i) - { - - const TypeImpl *t = ((*i)->getTypeImpl()); - if (t != 0) - { - if (t->isDataObjectType()) - { - if (t->isChangeSummaryType()) - { - string msg(" Nested change summary type:"); - msg += t->getURI(); - msg += " "; - msg += t->getName(); - SDO_THROW_EXCEPTION("resolve", - SDOUnsupportedOperationException, - msg.c_str()); - } - t->throwIfNestedChangeSummary(); - } - } - } - } - - void TypeImpl::validateChangeSummary() - { - if (!isChangeSummaryType()) return; - throwIfNestedChangeSummary(); - } - - PROPERTY_LIST TypeImpl::getCompoundProperties() - { - return props; - } - - void TypeImpl::initCompoundProperties() - { - // We have already met this type in the resolution heirarchy - if (isResolving) - { - string msg(" circular type dependency on:"); - msg += getURI(); - msg += " "; - msg += getName(); - - SDO_THROW_EXCEPTION("initCompoundProperties", - SDOUnsupportedOperationException, - msg.c_str()); - } - - if (isResolved) - { - return; - } - - isResolving = true; - - - if (baseType != 0) - { - baseType->initCompoundProperties(); - PROPERTY_LIST pl = baseType->getCompoundProperties(); - localPropsSize = props.size(); - props.insert(props.begin(),pl.begin(), pl.end()); - isPrimitive = !(baseType->isDataObjectType()); - } - if (isPrimitive && (props.size() > 0)) - { - string msg("Add property to data type:"); - msg += getURI(); - msg += " "; - msg += getName(); - SDO_THROW_EXCEPTION("initCompoundProperties", - SDOUnsupportedOperationException, - msg.c_str()); - } - isResolved = true; - isResolving = false; - return; - } - - - /////////////////////////////////////////////////////////////////////////// - // Returns the list of the properties of this type. - /////////////////////////////////////////////////////////////////////////// - PropertyList TypeImpl::getProperties() const - { - return props; - } - - unsigned int TypeImpl::getPropertiesSize() const - { - return props.size(); - } - - /////////////////////////////////////////////////////////////////////////// - // Returns the property with the specified name. - /////////////////////////////////////////////////////////////////////////// - const Property& TypeImpl::getProperty(const char* propertyName) const - { - PropertyImpl* pi = getPropertyImpl(propertyName); - if (pi == 0) - { - string msg("Property not found:"); - msg += propertyName; - SDO_THROW_EXCEPTION("getProperty", - SDOPropertyNotFoundException, msg.c_str()); - } - return (Property&)*pi; - } - - - /////////////////////////////////////////////////////////////////////////// - // Substitute Support - get the real underlying type - /////////////////////////////////////////////////////////////////////////// - - const Type& TypeImpl::getRealPropertyType(const char* propertyName) const - { - const TypeImpl* ti = getRealPropertyTypeImpl(propertyName); - if (ti != 0)return (Type&)*ti; - - string msg("Property not found:"); - msg += propertyName; - SDO_THROW_EXCEPTION("getProperty", - SDOPropertyNotFoundException, msg.c_str()); - - } - - - const TypeImpl* TypeImpl::getRealPropertyTypeImpl(const char* propertyName) const - { - - std::list::const_iterator i; - for (i = props.begin(); i != props.end(); ++i) - { - if (!strcmp(propertyName,(*i)->getName())) - { - return ((*i)->getTypeImpl()); - } - for (int k=0;k < (*i)->getAliasCount(); k++) - { - if (!strcmp(propertyName,(*i)->getAlias(k))) - { - return ((*i)->getTypeImpl()); - } - } - for (int j=0;j < (*i)->getSubstitutionCount(); j++) - { - if (!strcmp(propertyName,(*i)->getSubstitutionName(j))) - { - return (TypeImpl*)(*i)->getSubstitutionType(j); - } - } - } - return 0; - } - - /////////////////////////////////////////////////////////////////////////// - // Returns the property with the specified name. - /////////////////////////////////////////////////////////////////////////// - PropertyImpl* TypeImpl::getPropertyImpl(const char* propertyName) const - { - - // Extension - find the property from an xpath - // not very elegant, but it will do. - // you should not be able to have "." and "[" before a "/" - this is assumed. - - if (propertyName == 0 || strlen(propertyName) == 0) return 0; - - char* tokenend = strchr(propertyName,'/'); - char * bracket = strchr(propertyName,'['); - char* dot = strchr(propertyName,'.'); - char* copy; - - - int len = strlen(propertyName); - if (tokenend != 0) - { - len = tokenend - propertyName; - if (bracket != 0 && bracket < tokenend) len = bracket - propertyName; - if (dot != 0 && dot < tokenend) len = dot - propertyName; - } - else - { - if (bracket != 0) len = bracket - propertyName; - if (dot != 0) len = dot - propertyName; - } - if (len != 0) - { - copy = new char[len+1]; - strncpy(copy, propertyName,len); - copy[len] = 0; - } - else - { - copy = new char[strlen(propertyName)+1]; - strcpy(copy,propertyName); - } - - std::list::const_iterator i; - for (i = props.begin(); i != props.end(); ++i) - { - if (!strcmp(copy,(*i)->getName())) - { - delete copy; - if (tokenend && strlen(tokenend) > 1) - { - const TypeImpl* ti = (*i)->getTypeImpl(); - if (ti != 0) - { - PropertyImpl* p = ti-> - getPropertyImpl((const char *)(tokenend+1)); - return p; - } - else - { - return (PropertyImpl*)(*i); - } - } - else { - return (PropertyImpl*)(*i); - } - } - for (int j=0;j < (*i)->getSubstitutionCount(); j++) - { - if (!strcmp(copy,(*i)->getSubstitutionName(j))) - { - delete copy; - if (tokenend && strlen(tokenend) > 1) - { - const TypeImpl* ti = (*i)->getTypeImpl(); - if (ti != 0) - { - PropertyImpl* p = ti-> - getPropertyImpl((const char *)(tokenend+1)); - return p; - } - else - { - return (PropertyImpl*)(*i); - } - } - else { - return (PropertyImpl*)(*i); - } - } - } - for (int k=0;k < (*i)->getAliasCount(); k++) - { - if (!strcmp(copy,(*i)->getAlias(k))) - { - delete copy; - if (tokenend && strlen(tokenend) > 1) - { - const TypeImpl* ti = (*i)->getTypeImpl(); - if (ti != 0) - { - PropertyImpl* p = ti-> - getPropertyImpl((const char *)(tokenend+1)); - return p; - } - else - { - return (PropertyImpl*)(*i); - } - } - else { - return (PropertyImpl*)(*i); - } - } - } - } - return 0; - } - - - /////////////////////////////////////////////////////////////////////////// - // Returns the property with the specified name. - /////////////////////////////////////////////////////////////////////////// - PropertyImpl* TypeImpl::getPropertyImplPure(const char* propertyName) const - { - - - std::list::const_iterator i; - for (i = props.begin(); i != props.end(); ++i) - { - if (!strcmp(propertyName,(*i)->getName())) - { - return (PropertyImpl*)(*i); - } - for (int k=0;k < (*i)->getAliasCount(); k++) - { - if (!strcmp(propertyName,(*i)->getAlias(k))) - { - return (PropertyImpl*)(*i); - } - } - } - return 0; - } - - - /////////////////////////////////////////////////////////////////////////// - // Returns the property index with the specified name. - /////////////////////////////////////////////////////////////////////////// - unsigned int TypeImpl::getPropertyIndex(const char* propertyName) const - { - std::list::const_iterator i; - int j = 0; - for (i = props.begin(); i != props.end(); ++i) - { - if (!strcmp(propertyName,(*i)->getName())) - { - return j; - } - j++; - } - string msg("Property not found:"); - msg += propertyName; - SDO_THROW_EXCEPTION("getPropertyIndex", - SDOPropertyNotFoundException, msg.c_str()); - } - /////////////////////////////////////////////////////////////////////////// - // Returns the property with the specified name. - /////////////////////////////////////////////////////////////////////////// - const Property& TypeImpl::getProperty(unsigned int index) const - { - PropertyImpl* pi = getPropertyImpl(index); - if (pi == 0) - { - string msg("Property not found for index:"); - msg += index; - SDO_THROW_EXCEPTION("getProperty" , - SDOPropertyNotFoundException, msg.c_str()); - } - return (Property&)*pi; - } - - /////////////////////////////////////////////////////////////////////////// - // Returns the property with the specified index. - /////////////////////////////////////////////////////////////////////////// - PropertyImpl* TypeImpl::getPropertyImpl(unsigned int index) const - { - std::list::const_iterator i; - int count = 0; - for (i = props.begin() ; i != props.end() ; ++i) - { - if (count == index)return (PropertyImpl*)(*i); - count++; - } - return 0; - } - - - /////////////////////////////////////////////////////////////////////////// - // Returns the property with the specified name. - /////////////////////////////////////////////////////////////////////////// - void TypeImpl::addProperty(const char* propname, - const TypeImpl& t, - bool many, bool rdonly, bool cont) - { - - props.insert(props.end(),new PropertyImpl(*this, - propname, t, many,rdonly, cont)); - localPropsSize++; - - } - - /////////////////////////////////////////////////////////////////////////// - // Indicates if this Type specifies DataObjects.. - /////////////////////////////////////////////////////////////////////////// - bool TypeImpl::isDataObjectType() const - { - return !isPrimitive; - } - - /////////////////////////////////////////////////////////////////////////// - // Indicates if this Type specifies Sequenced DataObjects. - /////////////////////////////////////////////////////////////////////////// - bool TypeImpl::isSequencedType() const - { - return isSequenced; - } - - /////////////////////////////////////////////////////////////////////////// - // Indicates if this Type allows any form of open content. - /////////////////////////////////////////////////////////////////////////// - bool TypeImpl::isOpenType() const - { - /* TODO - handle open types */ - return isOpen; - } - - /////////////////////////////////////////////////////////////////////////// - // Indicates if this type may not be instantiated. - /////////////////////////////////////////////////////////////////////////// - bool TypeImpl::isAbstractType() const - { - return isAbstract; - } - - void TypeImpl::setAbstract(bool set) - { - isAbstract = set; - } - - /////////////////////////////////////////////////////////////////////////// - // TODO - override ==. - /////////////////////////////////////////////////////////////////////////// - bool TypeImpl::equals(const Type& t) - { - return ( strcmp(getName(),t.getName()) == 0 - && strcmp(getURI (),t.getURI ()) == 0 ); - } - - /////////////////////////////////////////////////////////////////////////// - // getTypeEnum. - /////////////////////////////////////////////////////////////////////////// - Type::Types TypeImpl::getTypeEnum(void) const - { - return typeEnum; - } - - - /////////////////////////////////////////////////////////////////////////// - // Conversions. - // convert is used in the process of setting a value. The input is the - // result of a setXXX, so in the first case setBoolean. The typeEnum is the - // type of the value being set and governs the expected final result in - // the value* buffer. - /////////////////////////////////////////////////////////////////////////// - - unsigned int TypeImpl::convert(void** value,const bool b) const - { - switch (typeEnum) - { - case BooleanType: - case ByteType: - case CharacterType: - case IntegerType: - case ShortType: - if (*value != 0)delete (char*)(*value); - *value = new char[sizeof(long)]; - *(long*)*value = (long)b; - return sizeof(long); - - case LongType: - if (*value != 0)delete (char*)(*value); - *value = new char[sizeof(int64_t)]; - *(int64_t*)*value = (int64_t)b; - return sizeof(int64_t); - - case BigDecimalType: - case BigIntegerType: - case StringType: - case UriType: - if (*value != 0)delete (char*)(*value); - // spec change - types - *value = new wchar_t[6]; - if (b) - { - ((wchar_t*)(*value))[0] = (wchar_t)'t'; - ((wchar_t*)(*value))[1] = (wchar_t)'r'; - ((wchar_t*)(*value))[2] = (wchar_t)'u'; - ((wchar_t*)(*value))[3] = (wchar_t)'e'; - ((wchar_t*)(*value))[4] = 0; - return 4; - } - else - { - ((wchar_t*)(*value))[0] = (wchar_t)'f'; - ((wchar_t*)(*value))[1] = (wchar_t)'a'; - ((wchar_t*)(*value))[2] = (wchar_t)'l'; - ((wchar_t*)(*value))[3] = (wchar_t)'s'; - ((wchar_t*)(*value))[4] = (wchar_t)'e'; - ((wchar_t*)(*value))[5] = 0; - return 5; - } - break; - - - case BytesType: - { - if (*value != 0)delete (char*)(*value); - // spec change - types - *value = new char[6]; - if (b) - { - strcpy((char*)*value, "true"); - return 4; - } - else - { - strcpy((char*)*value, "false"); - return 5; - } - break; - - } - - case DoubleType: - case FloatType: - case DateType: - case OtherTypes: - case DataObjectType: - case ChangeSummaryType: - default: - { - string msg("Cannot set Boolean on object of type:"); - msg += getName(); - SDO_THROW_EXCEPTION("setBoolean" , - SDOInvalidConversionException, msg.c_str()); - break; - } - } - return 0; - } - - unsigned int TypeImpl::convert(void** value,const char c) const - { - return convert(value,(long)c); - } - - unsigned int TypeImpl::convert(void** value,const wchar_t c) const - { - return convert(value,(long)c); - } - - // This is set CString... - unsigned int TypeImpl::convert(void** value,const char* c) const - { - - switch (typeEnum) - { - case BooleanType: - if (*value != 0)delete ((char*)*value); - *value = new char[sizeof(long)]; - if ((c == 0) || strcmp(c,"true")) - { - *(long*)*value = 0; - } - else - { - *(long*)*value = 1; - } - return sizeof(long); - - case ByteType: - case CharacterType: - case IntegerType: - case ShortType: - if (*value != 0) delete ((char*)*value); - *value = new char[sizeof(long)]; - *(long*)*value = atoi(c); - return sizeof(long); - - case DoubleType: - if (*value != 0) delete ((char*)*value); - *value = new char[sizeof(long double)]; - // TODO - atof not suitable here - *(long double*)*value = (long double)atof(c); - return sizeof(long double); - - case FloatType: - if (*value != 0) delete ((char*)*value); - *value = new char[sizeof(float)]; - *(float*)*value = (float)atof(c); - return sizeof(float); - - case LongType: - if (*value != 0) delete ((char*)*value); - *value = new char[sizeof(int64_t)]; -#if defined(WIN32) || defined (_WINDOWS) - *(int64_t*)*value = (int64_t)_atoi64(c); -#else - *(int64_t*)*value = (int64_t)strtoll(c, NULL, 0); -#endif - return sizeof(int64_t); - - case DateType: - if (*value != 0) delete ((char*)*value); - *value = new char[sizeof(time_t)]; - *(time_t*)*value = (time_t)atoi(c); - return sizeof(time_t); - - case BigDecimalType: - case BigIntegerType: - case StringType: - case UriType: - { - if (*value != 0) delete ((wchar_t*)*value); - wchar_t* vw = new wchar_t[strlen(c)+1]; - for (int i=0;i< strlen(c);i++) - { - vw[i] = (wchar_t)c[i]; - } - vw[strlen(c)] = 0; - *value = (void*)vw; - return strlen(c); - } - break; - case BytesType: - { - if (*value != 0) delete ((char*)*value); - char* vc = new char[strlen(c)+1]; - for (int i=0;i< strlen(c);i++) - { - vc[i] = (char)c[i]; - } - vc[strlen(c)] = 0; - *value = (void*)vc; - return strlen(c); - } - break; - - case OtherTypes: - case DataObjectType: - case ChangeSummaryType: - default: - { - string msg("Cannot set CString on object of type:"); - msg += getName(); - SDO_THROW_EXCEPTION("setString" , - SDOInvalidConversionException, msg.c_str()); - break; - } - } - return 0; - } - - // setString - unsigned int TypeImpl::convert(void** value,const wchar_t* b, unsigned int len) const - { - int i; - switch (typeEnum) - { - case BigDecimalType: - case BigIntegerType: - case UriType: - case StringType: - { - if (*value != 0) delete ((wchar_t*)*value); - wchar_t* vw = new wchar_t[len+1]; - for (i=0;i 4) - { - *(long*)*value = 0; - } - else - { - if (b[0] == (wchar_t)'t' && - b[1] == (wchar_t)'r' && - b[2] == (wchar_t)'u' && - b[3] == (wchar_t)'e' ) - *(long*)*value = 1; - else *(long*)*value = 0; - } - return sizeof(long); - - case CharacterType: - case ByteType: - if (*value != 0)delete ((char*)*value); - *value = new char[sizeof(long)]; - if (len > 0) - { - *(long*)*value = (long)b[0]; - } - else - { - *(long*)*value = (long)0; - } - return sizeof(long); - - case ShortType: - case IntegerType: - { - if (*value != 0)delete ((char*)*value); - *value = new char[sizeof(long)]; - int val = 0; - for (int j=0;j 4) - { - *(long*)*value = 0; - } - else - { - if (b[0] == (char)'t' && - b[1] == (char)'r' && - b[2] == (char)'u' && - b[3] == (char)'e' ) - *(long*)*value = 1; - else *(long*)*value = 0; - } - return sizeof(long); - - case ByteType: - case CharacterType: - if (*value != 0)delete ((char*)*value); - *value = new char[sizeof(long)]; - if (len > 0) - { - *(long*)*value = (long)b[0]; - } - else - { - *(long*)*value = (long)0; - } - return sizeof(long); - - case IntegerType: - case ShortType: - { - if (*value != 0)delete ((char*)*value); - *value = new char[sizeof(long)]; - int val = 0; - for (int j=0;jmax?max:len; - } - case BytesType: - { - if (value == 0) return 0; - char* tmp = (char*)value; - for (i=0;(i < len) && (i < max);i++) - { - outval[i] = (wchar_t)(tmp[i]); - } - return len>max?max:len; - } - - case BooleanType: - { - if (max < 4) return 0; - if (value == 0 || *(long*)value == 0) { - if (max < 5) return 0; - outval[0] = (wchar_t)'f'; - outval[1] = (wchar_t)'a'; - outval[2] = (wchar_t)'l'; - outval[3] = (wchar_t)'s'; - outval[4] = (wchar_t)'e'; - return 5; - } - else - { - outval[0] = (wchar_t)'t'; - outval[1] = (wchar_t)'r'; - outval[2] = (wchar_t)'u'; - outval[3] = (wchar_t)'e'; - return 4; - } - } - - case ByteType: - { - if (value == 0) return 0; - long tmp = *(long*)value; - outval[0] = (wchar_t)(tmp&0xFF); - return 1; - } - - case CharacterType: - { - if (value == 0) return 0; - long tmp = *(long*)value; - outval[0] = (wchar_t)(tmp & 0xFFFF); - return 1; - } - - case ShortType: - case IntegerType: - { - if (value == 0) return 0; - long tmp = *(long*)value; -#if defined(WIN32) || defined (_WINDOWS) - wchar_t* tmpstr = new wchar_t[MAX_LONG_SIZE]; - _ltow(tmp,tmpstr,10); - if (wcslen(tmpstr) > max) return 0; - _ltow(tmp,outval,10); - return wcslen(outval); -#else - sprintf(tmpstr, "%ld", tmp); - if (strlen(tmpstr) > max) return 0; - for (j=0; j< strlen(tmpstr); j++) - { - outval[j] = (wchar_t)tmpstr[j]; - } - delete tmpstr; - return j; -#endif - } - - - case LongType: - { - if (value == 0) return 0; - int64_t tmp = *(int64_t*)value; -#if defined(WIN32) || defined (_WINDOWS) - wchar_t* tmpstr = new wchar_t[MAX_LONG_SIZE]; - _i64tow(tmp,tmpstr,10); - if (wcslen(tmpstr) > max) - { - delete tmpstr; - return 0; - } - _i64tow(tmp,outval,10); - return wcslen(outval); -#else - sprintf(tmpstr, "%lld", tmp); - if (strlen(tmpstr) > max) return 0; - for (j=0; j< strlen(tmpstr); j++) - { - outval[j] = (wchar_t)tmpstr[j]; - } - delete tmpstr; - return j; -#endif - } - - case DateType: - { - - if (value == 0) return 0; - string msg("Conversion to string not implemented from type:"); - msg += getName(); - SDO_THROW_EXCEPTION("getString" , - SDOInvalidConversionException, msg.c_str()); - break; - } - - case DoubleType: - { - if (value == 0) return 0; - if (max < MAX_DOUBLE_SIZE) return 0; - wchar_t* fmt = new wchar_t[5]; - fmt[0] = (wchar_t)'%'; - fmt[1] = (wchar_t)'.'; - fmt[2] = (wchar_t)'3'; - fmt[3] = (wchar_t)'e'; - fmt[4] = (wchar_t)0; -#if defined(WIN32) || defined (_WINDOWS) - swprintf((wchar_t*)outval,fmt,*(long double*)value); -#else -#if defined(NO_SWPRINTF) - { - int k; - char *tmpbuf = new char[50]; - wchar_t *tmpw = (wchar_t*)outval; - sprintf(tmpbuf,"%.3e",*(long double*)value); - for (k=0;kmax?max:len; - } - - case BigDecimalType: - case BigIntegerType: - case UriType: - case StringType: - { - if (value == 0) return 0; - wchar_t* tmp = (wchar_t*)value; - for (i=0;(i < max) && (i < len);i++) - { - outval[i] = (char)(tmp[i]); - } - return len>max?max:len; - } - - case BooleanType: - { - if (value == 0 || *(long*)value == 0) { - if (max < 5) return 0; - outval[0] = 'f'; - outval[1] = 'a'; - outval[2] = 'l'; - outval[3] = 's'; - outval[4] = 'e'; - return 5; - } - else { - if (max < 4) return 0; - outval[0] = 't'; - outval[1] = 'r'; - outval[2] = 'u'; - outval[3] = 'e'; - return 4; - } - return 0; - } - - case CharacterType: - case ByteType: - { - if (value == 0) return 0; - long tmp = *(long*)value; - outval[0] = (char)(tmp&0xFF); - return 1; - } - - case ShortType: - case IntegerType: - { - if (value == 0) return 0; - long tmp = *(long*)value; - char* tmpstr = new char[MAX_LONG_SIZE]; - sprintf(tmpstr, "%ld", tmp); - if (strlen(tmpstr) > max) - { - delete tmpstr; - return 0; - } - delete tmpstr; - sprintf(outval, "%ld", tmp); - return strlen(outval); - } - - - case LongType: - { - if (value == 0) return 0; - int64_t tmp = *(int64_t*)value; - char * tmpstr = new char[MAX_LONG_SIZE]; - sprintf(tmpstr, "%lld", tmp); - if (strlen(tmpstr) > max) - { - delete tmpstr; - return 0; - } - delete tmpstr; - sprintf(outval, "%lld", tmp); - return strlen(outval); - } - case DateType: - { - if (value == 0) return 0; - string msg("Conversion to string not implemented from type:"); - msg += getName(); - SDO_THROW_EXCEPTION("getBytes" , - SDOInvalidConversionException, msg.c_str()); - break; - } - - case DoubleType: - if (value == 0) return 0; - if (max < MAX_DOUBLE_SIZE) return 0; - sprintf(outval,"%.3e",*(long double*)value); - return strlen(outval); - - case FloatType: - if (value == 0) return 0; - if (max < MAX_FLOAT_SIZE) return 0; - sprintf(outval,"%.3e",*(float*)value); - return strlen(outval); - - case OtherTypes: - case DataObjectType: - default: - { - if (max < 9) return 0; - sprintf(outval,"%08x",value); - //string msg("Cannot get Bytes from object of type:"); - //msg += getName(); - //SDO_THROW_EXCEPTION("getBytes" , - // SDOInvalidConversionException, msg.c_str()); - return strlen(outval); - } - } - return 0; - } - - - const char* TypeImpl::convertToCString(void* value, char** asstringbuf, unsigned int len) const - { - int i; - - switch (typeEnum) - { - case BooleanType: - if (value == 0 || *(long*)value == 0) { - *asstringbuf = new char[6]; - strcpy(*asstringbuf,"false"); - } - else { - *asstringbuf = new char[5]; - strcpy(*asstringbuf,"true"); - } - return *asstringbuf; - - case ByteType: - *asstringbuf = new char[MAX_LONG_SIZE]; - if (value == 0){ - sprintf(*asstringbuf,"%ld",0); - } - else { - sprintf(*asstringbuf,"%ld",*(long*)value); - } - return *asstringbuf; - - case CharacterType: - *asstringbuf = new char[MAX_LONG_SIZE]; - if (value == 0){ - sprintf(*asstringbuf,"%ld",0); - } - else { - sprintf(*asstringbuf,"%ld", *(long*)value); - } - return *asstringbuf; - - case IntegerType: - *asstringbuf = new char[MAX_LONG_SIZE]; - if (value == 0){ - sprintf(*asstringbuf,"%ld",0); - } - else { - sprintf(*asstringbuf,"%ld", *(long*)value); - } - return *asstringbuf; - - case ShortType: - *asstringbuf = new char[MAX_LONG_SIZE]; - if (value == 0){ - sprintf(*asstringbuf,"%ld",0); - } - else { - sprintf(*asstringbuf,"%ld", *(long*)value); - } - return *asstringbuf; - - case DoubleType: - *asstringbuf = new char[MAX_DOUBLE_SIZE]; - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - (*asstringbuf)[0] = 0; - return *asstringbuf; - } - sprintf(*asstringbuf,"%.3e",*(long double*)value); - return *asstringbuf; - - case FloatType: - *asstringbuf = new char[MAX_FLOAT_SIZE]; - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - (*asstringbuf)[0] = 0; - return *asstringbuf; - } - sprintf(*asstringbuf,"%.3e", *(float*)value); - return *asstringbuf; - - case LongType: - { - *asstringbuf = new char[MAX_LONG_SIZE]; - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - (*asstringbuf)[0] = 0; - return *asstringbuf; - } - int64_t temp = *(int64_t*)value; -#if defined(WIN32) || defined (_WINDOWS) - sprintf(*asstringbuf,"%I64d", temp); -#else - sprintf(*asstringbuf,"%lld", temp); -#endif - return *asstringbuf; - } - case DateType: - *asstringbuf = new char[MAX_LONG_SIZE]; - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - (*asstringbuf)[0] = 0; - return *asstringbuf; - } - sprintf(*asstringbuf,"%ld", *(time_t*)value); - return *asstringbuf; - - case BigDecimalType: - case BigIntegerType: - case StringType: - case UriType: - { - if (value == 0 || len == 0) - { - *asstringbuf = new char[1]; - (*asstringbuf)[0] = 0; - return *asstringbuf; - } - *asstringbuf = new char[len + 1]; - wchar_t* tmp = (wchar_t*)value; - for (i=0;i< len;i++) - { - (*asstringbuf)[i] = tmp[i] & 0xFF; - } - (*asstringbuf)[i] = 0; - return *asstringbuf; - } - - case BytesType: - { - if (value == 0 || len == 0) - { - *asstringbuf = new char[1]; - (*asstringbuf)[0] = 0; - return *asstringbuf; - } - *asstringbuf = new char[len + 1]; - char* tmp = (char*)value; - for (i=0;i< len ;i++) - { - (*asstringbuf)[i] = (char)(tmp[i]); - } - (*asstringbuf)[i] = 0; - return *asstringbuf; - } - - - case OtherTypes: - case DataObjectType: - default: - { - *asstringbuf = new char[9]; - sprintf(*asstringbuf,"%08x",value); - //string msg("Cannot get CString from object of type:"); - //msg += getName(); - //SDO_THROW_EXCEPTION("getCString" , - // SDOInvalidConversionException, msg.c_str()); - return *asstringbuf; - } - } - return 0; - } - - const bool TypeImpl::convertToBoolean(void* value, unsigned int len) const - { - switch (typeEnum) - { - case BooleanType: - case ByteType: - case CharacterType: - case IntegerType: - case ShortType: - if (value == 0) return false; - if (*(long*)value != 0) return true; - return false; - - case DoubleType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return false; - } - if (*(long double*)value != 0.0) return true; - return false; - - case FloatType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return false; - } - if (*(float*)value != 0.0) return true; - return false; - - case LongType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return false; - } - if (*(int64_t*)value != 0)return true; - return false; - - case DateType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return false; - } - if (*(time_t*)value != 0)return true; - return false; - - case BigDecimalType: - case BigIntegerType: - case StringType: - case UriType: - if (value == 0 || len < 4) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return false; - } - if ( ((wchar_t*)value)[0] == (wchar_t)'t' && - ((wchar_t*)value)[1] == (wchar_t)'r' && - ((wchar_t*)value)[2] == (wchar_t)'u' && - ((wchar_t*)value)[3] == (wchar_t)'e' ) - return true; - - return false; - - case BytesType: - if (value == 0 || len < 4) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return false; - } - if (!strncmp((char*)value,"true", 4)) return true; - return false; - - case OtherTypes: - case DataObjectType: - default: - { - string msg("Cannot get Boolean from object of type:"); - msg += getName(); - SDO_THROW_EXCEPTION("getBoolean" , - SDOInvalidConversionException, msg.c_str()); - break; - } - } - - } - - const char TypeImpl::convertToByte(void* value , unsigned int len) const - { - switch (typeEnum) - { - case BooleanType: - case ByteType: - case CharacterType: - case IntegerType: - case ShortType: - if (value == 0) return 0; - return (char)(*(long*)value); - - case DoubleType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (char)(*(long double*)value); - - case FloatType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (char)(*(float*)value); - - case LongType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (char)(*(int64_t*)value); - - case DateType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - - return (char)(*(time_t*)value); - - case BigDecimalType: - case BigIntegerType: - case StringType: - case UriType: - { - if (value == 0) return 0; - return (char)*(wchar_t*)value; - } - - case BytesType: - { - if (value == 0) return 0; - return (char)*(char*)value; - } - - - case OtherTypes: - case DataObjectType: - default: - { - string msg("Cannot get Byte from object of type:"); - msg += getName(); - SDO_THROW_EXCEPTION("getByte" , - SDOInvalidConversionException, msg.c_str()); - break; - } - } - } - - const wchar_t TypeImpl::convertToCharacter(void* value, unsigned int len) const - { - switch (typeEnum) - { - case BooleanType: - case ByteType: - case CharacterType: - case IntegerType: - case ShortType: - if (value == 0) return 0; - return (wchar_t)(*(long*)value); - - case DoubleType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (wchar_t)(*(long double*)value); - - case FloatType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (wchar_t)(*(float*)value); - - case LongType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (wchar_t)(*(int64_t*)value); - - case DateType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (wchar_t)(*(time_t*)value); - - case BigDecimalType: - case BigIntegerType: - case StringType: - case UriType: - { - if (value == 0) return 0; - return *(wchar_t*)value; - } - - case BytesType: - { - if (value == 0) return 0; - return (wchar_t)*(char*)value; - } - - case OtherTypes: - case DataObjectType: - default: - { - string msg("Cannot get Character from object of type:"); - msg += getName(); - SDO_THROW_EXCEPTION("getCharacter" , - SDOInvalidConversionException, msg.c_str()); - break; - } - } - } - const short TypeImpl::convertToShort(void* value, unsigned int len) const - { -#if ! defined(WIN32) && !defined (_WINDOWS) - char* tmpstr = new char[len+1]; - short s = 0; -#endif - switch (typeEnum) - { - case BooleanType: - case ByteType: - case CharacterType: - case IntegerType: - case ShortType: - if (value == 0) return 0; - return (short)(*(long*)value); - - case DoubleType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (short)(*(long double*)value); - - case FloatType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (short)(*(float*)value); - - case LongType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (short)(*(int64_t*)value); - - case DateType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (short)(*(time_t*)value); - - case BigDecimalType: - case BigIntegerType: - case StringType: - case UriType: - if (value == 0 || len == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } -#if defined(WIN32) || defined (_WINDOWS) - return (short)_wtoi((wchar_t*)value); -#else - for (int j=0;j< len;j++) - { - tmpstr[j] = (char)((char *)value)[j]; - } - tmpstr[len] = 0; - s = (short) atoi(tmpstr); - delete tmpstr; - return s; -#endif - - - case BytesType: - case OtherTypes: - case DataObjectType: - default: - { - string msg("Cannot get Short from object of type:"); - msg += getName(); - SDO_THROW_EXCEPTION("getShort" , - SDOInvalidConversionException, msg.c_str()); - break; - } - } - } - - -/* const int TypeImpl::convertToInt(void* value, unsigned int len) const - { - switch (typeEnum) - { - case BooleanType: - case ByteType: - case CharacterType: - case IntegerType: - case ShortType: - if (value == 0) return 0; - return (int)(*(long*)value); - - case DoubleType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (int)(*(long double*)value); - - case FloatType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (int)(*(float*)value); - - case LongType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (int)(*(int64_t*)value); - - case DateType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } - return (int)(*(time_t*)value); - - case BigDecimalType: - case BigIntegerType: - case StringType: - case UriType: - if (value == 0) - { - // Conversions might set from a zero value, as they are used - // by the default Setting code as well - return 0; - } -#if defined(WIN32) || defined (_WINDOWS) - return (int)_wtoi((wchar_t*)value); -#else - char* tmp = new char[len+1]; - int j = 0;; - for (j=0;j -#include -#include -#include "commonj/sdo/DASType.h" -#include "commonj/sdo/PropertyImpl.h" -#include "commonj/sdo/SDODate.h" - - -#define MAX_LONG_SIZE 20 -#define MAX_FLOAT_SIZE 32 -#define MAX_DOUBLE_SIZE 32 -#define BOOL_SIZE 5 -#define CHAR_SIZE 1 -#define BYTE_SIZE 1 - -using namespace std; - -namespace commonj{ -namespace sdo{ - -class DataObject; -class PropertyList; -class MetadataGraph; - - -#ifndef PROPERTY_LIST - typedef std::list PROPERTY_LIST; -#endif - -/** - * TypeImpl implements the abstract class Type. - * A representation of the type of property of a data object. - */ - - -class TypeImpl : public DASType -{ - -public: - - - virtual ~TypeImpl(); - - /** convert - converts between types - * - * When a DataObject is queried for the value of one of its - * properties, the method to call varies according to the - * type of the property. - * If the wrong API is called (E.g getBoolean() called on - * an Integer value), then a conversion is attempted. - * Many conversions will succeed and return the value, - * others will throw an InvalidConversionException - */ - - unsigned int convertDate( void ** value, const SDODate i) const; - unsigned int convert( void ** value,const char* s) const; - unsigned int convert( void ** value,const wchar_t* s, unsigned int len) const; - unsigned int convert( void ** value,const char* s, unsigned int len) const; - unsigned int convert( void ** value,const bool b) const; - unsigned int convert( void ** value,const char c) const; - unsigned int convert( void ** value,const wchar_t c) const; - unsigned int convert( void ** value,const short s) const; - unsigned int convert( void ** value,const long i) const; - unsigned int convert( void ** value,const int64_t l) const; - unsigned int convert( void ** value,const float f) const; - unsigned int convert( void ** value,const long double d) const; - unsigned int convert( void ** value,DataObject* dob) const; - - const char* convertToCString( void* value , char** inbuf, unsigned int len) const; - const bool convertToBoolean( void* value, unsigned int len) const; - const char convertToByte( void* value,unsigned int len ) const; - unsigned int convertToString( void* value , wchar_t* val, unsigned int len, - unsigned int max) const; - unsigned int convertToBytes( void* value , char* val, unsigned int len, - unsigned int max) const; - const wchar_t convertToCharacter( void* value ,unsigned int len) const; - const short convertToShort( void* value ,unsigned int len) const; - const long convertToInteger( void* value ,unsigned int len) const; - const int64_t convertToLong( void* value ,unsigned int len) const; - const float convertToFloat( void* value ,unsigned int len) const; - const long double convertToDouble(void* value ,unsigned int len) const; - DataObject* convertToDataObject(void* value ,unsigned int len) const; - const SDODate convertToDate (void* value ,unsigned int len) const; - - /** equals - compares - * - * equals returns true if the name and uri are the same - */ - - bool equals(const Type& t); - - /////////////////////////////////////////////////////////////////////////// - // Returns the name of the type. - /////////////////////////////////////////////////////////////////////////// - const char* getName() const; - - /////////////////////////////////////////////////////////////////////////// - // Alias support. - // @return nth alias - /////////////////////////////////////////////////////////////////////////// - virtual const char* getAlias(unsigned int index = 0) const ; - virtual unsigned int getAliasCount() const ; - virtual void setAlias(const char* alias); - - - - /////////////////////////////////////////////////////////////////////////// - // Returns the namespace URI of the type. - /////////////////////////////////////////////////////////////////////////// - const char* getURI() const; - - /////////////////////////////////////////////////////////////////////////// - // Returns the list of the properties of this type. - /////////////////////////////////////////////////////////////////////////// - PropertyList getProperties() const; - - /////////////////////////////////////////////////////////////////////////// - // add a property to a Type whilst building - this is for DAS - /////////////////////////////////////////////////////////////////////////// - void addProperty(const char* name, - const TypeImpl& t, bool many, bool rdonly, bool cont); - - /////////////////////////////////////////////////////////////////////////// - // Returns the property with the specified name. - /////////////////////////////////////////////////////////////////////////// - const Property& getProperty(const char* propertyName) const ; - const Property& getProperty(unsigned int index) const ; - - PropertyImpl* getPropertyImpl(const char* propertyName) const ; - PropertyImpl* getPropertyImpl(unsigned int index) const ; - - - /////////////////////////////////////////////////////////////////////////// - // Substitute support - /////////////////////////////////////////////////////////////////////////// - // get the property with no substitute possible. - PropertyImpl* getPropertyImplPure(const char* propertyName) const ; - - // get the type of the property even if its a substitute - const Type& getRealPropertyType(const char* propertyName) const ; - const TypeImpl* getRealPropertyTypeImpl(const char* propertyName) const ; - - - - unsigned int getPropertyIndex(const char* propertyName) const ; - - unsigned int getPropertiesSize() const; - /////////////////////////////////////////////////////////////////////////// - // Indicates if this Type specifies DataObjects. - /////////////////////////////////////////////////////////////////////////// - bool isDataObjectType() const; - - /////////////////////////////////////////////////////////////////////////// - // Indicates if this Type specifies Sequenced DataObjects. - /////////////////////////////////////////////////////////////////////////// - bool isSequencedType() const; - void setSequenced(bool set); - - /////////////////////////////////////////////////////////////////////////// - // Indicates if this Type allows any form of open content. If false, - // dataObject.getInstanceProperties() must be the same as - // DataObject.getType().getProperties(). - /////////////////////////////////////////////////////////////////////////// - bool isOpenType() const; - void setOpen(bool set); - - /////////////////////////////////////////////////////////////////////////// - // Indicates if this type may not be instantiated. - /////////////////////////////////////////////////////////////////////////// - bool isAbstractType() const; - void setAbstract(bool set); - - /////////////////////////////////////////////////////////////////////////// - // Set the base type for inherited types - /////////////////////////////////////////////////////////////////////////// - void setBaseType(const Type* tb); - const Type* getBaseType() const; - - - /////////////////////////////////////////////////////////////////////////// - // Indicates a non-object type - /////////////////////////////////////////////////////////////////////////// - bool isDataType() const; - - /////////////////////////////////////////////////////////////////////////// - // Indicates a non-object type - /////////////////////////////////////////////////////////////////////////// - Type::Types getTypeEnum() const; - - /////////////////////////////////////////////////////////////////////////// - // set this type as a change summary holder - /////////////////////////////////////////////////////////////////////////// - void addChangeSummary(); - - /////////////////////////////////////////////////////////////////////////// - // Say if this type is allowed to have a summary - /////////////////////////////////////////////////////////////////////////// - bool isChangeSummaryType() const; - - /////////////////////////////////////////////////////////////////////////// - // Used by the DAS to resolve the base type properties list - /////////////////////////////////////////////////////////////////////////// - void initCompoundProperties(); - - /////////////////////////////////////////////////////////////////////////// - // Used by the DAS to chack for nested change summaries - /////////////////////////////////////////////////////////////////////////// - void validateChangeSummary(); - - virtual bool equals(const Type& tother) const; - -private: - friend class DataFactoryImpl; - - bool changeSummaryType; - - void* newValue(void* v, int size) const; - - PROPERTY_LIST getCompoundProperties(); - - void throwIfNestedChangeSummary() const; - - TypeImpl(const char* uri,const char* name, - bool isSeq= false, - bool isOp = false, - bool isAbs = false, - bool isData = false); - - TypeImpl(const Type* base, const char* uri,const char* name, - bool isSeq = false, - bool isOp = false, - bool isAbs = false, - bool isData = false); - - void init(const char* uri, const char* inname, - bool isSeq, - bool isOp, - bool isAbs, - bool isData); - - - - TypeImpl(); - TypeImpl(const TypeImpl& t); - - - char* name; - char* typeURI; - - - bool isPrimitive; - bool isSequenced; - bool isOpen; - bool isAbstract; - - // baseType properties included - bool isResolved; - // check for circular dependency - bool isResolving; - - Types typeEnum; - - static char* types[num_types]; - - // alias support - - std::vector aliases; - - - PROPERTY_LIST props; - - - // type inheritance - TypeImpl* baseType; - // says how many of the props are really in this data object type. - unsigned int localPropsSize; - -}; - -}; -}; - -#endif //_TYPEIMPL_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.cpp deleted file mode 100644 index 59c4083e75..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.cpp +++ /dev/null @@ -1,84 +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:15 $ */ - -#ifndef SDO_EXPORTS - #define SDO_EXPORTS -#endif - -#include "commonj/sdo/export.h" -#include -#include "commonj/sdo/Property.h" -#include "commonj/sdo/Type.h" -#include "commonj/sdo/TypeList.h" -#include "commonj/sdo/Logger.h" - -using namespace std; - -namespace commonj{ -namespace sdo { - - -/** TypeList provides access to a list of Types. - * - * The data factory can return a list of types available. This - * class wraps that list and provides access to Types by - * iteration - */ - -SDO_API TypeList::TypeList(std::vector p) : plist (p) -{ -} - -SDO_API TypeList::TypeList(const TypeList &pin) -{ - plist = std::vector(pin.getVec()); -} - -SDO_API TypeList::TypeList() -{ -} - -SDO_API TypeList::~TypeList() -{ -} - - -SDO_API const Type& TypeList::operator[] (int pos) const -{ - return *plist[pos]; -} - -SDO_API int TypeList::size () const -{ - return plist.size(); -} - -std::vector TypeList::getVec() const -{ - return plist; -} - -SDO_API void TypeList::insert (const Type* t) -{ - plist.insert(plist.end(),t); -} - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.h deleted file mode 100644 index bdc20cbfe3..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/TypeList.h +++ /dev/null @@ -1,56 +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:15 $ */ - -#ifndef _TYPELIST_H_ -#define _TYPELIST_H_ -#include "commonj/sdo/export.h" - -#include -#include "commonj/sdo/Type.h" - -namespace commonj{ -namespace sdo -{ -class Type; - -/** TypeList - provides access to a list of Types - * - * The data factory can return a list of types available. This - * class wraps that list and provides access to Types by - * iteration - */ - -class TypeList -{ -private: - std::vector plist; - std::vector getVec() const; -public: - SDO_API TypeList(const TypeList &pin); - SDO_API TypeList(std::vector p); - SDO_API TypeList(); - virtual SDO_API ~TypeList(); - SDO_API const Type& operator[] (int pos) const; - SDO_API int size () const; - SDO_API void insert (const Type* t); -}; -}; -}; - -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.cpp deleted file mode 100644 index b16b2eedff..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.cpp +++ /dev/null @@ -1,31 +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:15 $ */ - -#include "commonj/sdo/XMLDocument.h" -namespace commonj -{ - namespace sdo - { - - XMLDocument::~XMLDocument() - { - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.h deleted file mode 100644 index 4737fa9d03..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocument.h +++ /dev/null @@ -1,145 +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:15 $ */ - -#ifndef _XMLDOCUMENT_H_ -#define _XMLDOCUMENT_H_ - - -#include "commonj/sdo/export.h" - -#include "commonj/sdo/DataObject.h" - -namespace commonj -{ - namespace sdo - { - /** XMLDocument - place for holding a graph - * - * The XMLDocument class provides a place to hold a loaded - * graph of data. The root element name is maintained here so that - * the graph can be serialized to the same name later. - */ - - - class XMLDocument : public RefCountingObject - { - - public: - - SDO_API virtual ~XMLDocument(); - - /** getRootDataObject- return the topmost data object - * - * When XML data is loaded, there is one base element which becomes - * the root data object. As this data object is not a property of any - * other data object, it has no name - * The XMLDocument stores the name which was in the XML file. - * This root data object has a URI and a Name only within this - * XMLDocument - */ - - SDO_API virtual DataObjectPtr getRootDataObject() const = 0; - - /** getRootElementName- return the topmost data objects name - * - * When XML data is loaded, there is one base element which becomes - * the root data object. As this data object is not a property of any - * other data object, it has no name - * The XMLDocument stores the name/uri which was in the XML file. - */ - SDO_API virtual const char* getRootElementURI() const = 0; - - /** getRootElementURI- return the topmost data objects uri - * - * When XML data is loaded, there is one base element which becomes - * the root data object. As this data object is not a property of any - * other data object, it has no name - * The XMLDocument stores the name/uri which was in the XML file. - */ - SDO_API virtual const char* getRootElementName() const = 0; - - /** getEncoding- return the encoding for this document - * - * NOT IMPLEMENTED - * This returns the encoding specified in the original XML. - */ - SDO_API virtual const char* getEncoding() const = 0; - - /** setEncoding- set the encoding to save this document - * - * This sets the encoding to save this data to XML. - */ - SDO_API virtual void setEncoding(const char* encoding) = 0; - - /** getXMLDeclaration - * - * NOT IMPLEMENTED - */ - SDO_API virtual bool getXMLDeclaration() const = 0; - - /** setXMLDeclaration - * - * Sets the XMLDeclaration - */ - SDO_API virtual void setXMLDeclaration(bool xmlDeclaration) = 0; - - /** getXMLVersion- return the xml version for this document - * - * NOT IMPLEMENTED - */ - SDO_API virtual const char* getXMLVersion() const = 0; - - /** setXMLVersion- sets the version for this document - * - * NOT IMPLEMENTED - */ - SDO_API virtual void setXMLVersion(const char* xmlVersion) = 0; - - /** getSchemaLocation- return the schema location - * - * NOT IMPLEMENTED - */ - SDO_API virtual const char* getSchemaLocation() const = 0; - - /** setSchemaLocation - * - * Sets the XML Schema location. - */ - SDO_API virtual void setSchemaLocation(const char* schemaLocation) = 0; - - /** getNoNamespaceSchemaLocation - * - * NOT IMPLEMENTED - */ - SDO_API virtual const char* getNoNamespaceSchemaLocation() const = 0; - - /** setNoNamespaceSchemaLocation - * - * Sets the nonamespace schema location - */ - SDO_API virtual void setNoNamespaceSchemaLocation(const char* noNamespaceSchemaLocation) = 0; - - SDO_API friend std::istream& operator>>(std::istream& input, XMLDocument& doc); - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_XMLDOCUMENT_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.cpp deleted file mode 100644 index 88e93ad480..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.cpp +++ /dev/null @@ -1,69 +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:15 $ */ - -#include "commonj/sdo/XMLDocumentImpl.h" - -namespace commonj -{ - namespace sdo - { - XMLDocumentImpl::XMLDocumentImpl( - DataObjectPtr dob, - const char* rootURI, - const char* rootName) - : dataObject(dob), - rootElementURI(rootURI), - rootElementName(rootName), - xmlDeclaration(true), - encoding("UTF-8"), - xmlVersion("1.0") - { - } - - XMLDocumentImpl::~XMLDocumentImpl() - { - } - - void XMLDocumentImpl::setEncoding(const char* enc) - { - encoding = enc; - } - - void XMLDocumentImpl::setXMLDeclaration(bool xmlDecl) - { - xmlDeclaration = xmlDecl; - } - - void XMLDocumentImpl::setXMLVersion(const char* xmlVer) - { - xmlVersion = xmlVer; - } - - void XMLDocumentImpl::setSchemaLocation(const char* schemaLoc) - { - schemaLocation = schemaLoc; - } - - void XMLDocumentImpl::setNoNamespaceSchemaLocation(const char* noNamespaceSchemaLoc) - { - noNamespaceSchemaLocation = noNamespaceSchemaLoc; - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h deleted file mode 100644 index 0b39a3c12a..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h +++ /dev/null @@ -1,95 +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:15 $ */ - -#ifndef _XMLDocumentImpl_H_ -#define _XMLDocumentImpl_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/XMLDocument.h" -#include "commonj/sdo/DataObject.h" -#include "commonj/sdo/SDOXMLString.h" - - -namespace commonj -{ - namespace sdo - { - -/** XMLDocumentImpl place for holding a graph - * - * The XMLDocumentImpl class implements the abstract XMLDocument. - * Provides a place to hold a loaded - * graph of data. The root element name is maintained here so that - * the graph can be serialized to the same name later. - */ - - class XMLDocumentImpl : public XMLDocument - { - - public: - XMLDocumentImpl(); - - XMLDocumentImpl( - DataObjectPtr dataObject); - - XMLDocumentImpl( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName); - - virtual ~XMLDocumentImpl(); - - virtual DataObjectPtr getRootDataObject() const {return dataObject;} - virtual const char* getRootElementURI() const {return rootElementURI;} - virtual const char* getRootElementName() const {return rootElementName;} - virtual const char* getEncoding() const {return encoding;} - virtual void setEncoding(const char* enc); - - virtual bool getXMLDeclaration() const {return xmlDeclaration;} - virtual void setXMLDeclaration(bool xmlDecl); - - virtual const char* getXMLVersion() const {return xmlVersion;} - virtual void setXMLVersion(const char* xmlVer); - - virtual const char* getSchemaLocation() const {return schemaLocation;} - virtual void setSchemaLocation(const char* schemaLoc); - - virtual const char* getNoNamespaceSchemaLocation() const { return noNamespaceSchemaLocation;} - virtual void setNoNamespaceSchemaLocation(const char* noNamespaceSchemaLoc); - - - friend std::istream& operator>>(std::istream& input, XMLDocumentImpl& doc); - private: - DataObjectPtr dataObject; - SDOXMLString rootElementURI; - SDOXMLString rootElementName; - SDOXMLString encoding; - bool xmlDeclaration; - SDOXMLString xmlVersion; - SDOXMLString schemaLocation; - SDOXMLString noNamespaceSchemaLocation; - - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_XMLDocumentImpl_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.cpp deleted file mode 100644 index 3b0648ce10..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.cpp +++ /dev/null @@ -1,34 +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: 2006/01/16 15:41:28 $ */ - - -#include "commonj/sdo/XMLHelper.h" -namespace commonj -{ - namespace sdo - { - ////////////////////////////////////////////////////////////////////// - // Construction/Destruction - ////////////////////////////////////////////////////////////////////// - XMLHelper::~XMLHelper() - { - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.h deleted file mode 100644 index f9e280583e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelper.h +++ /dev/null @@ -1,142 +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: 2006/02/01 16:24:13 $ */ - -#ifndef _XMLHELPER_H_ -#define _XMLHELPER_H_ - - -#include "commonj/sdo/export.h" -#include "commonj/sdo/XMLDocument.h" -#include "commonj/sdo/RefCountingObject.h" - -namespace commonj -{ - namespace sdo - { - /** - * - * XMLHelper provides the ability to load XML data into - * a data object graph, according to a schema - */ - - class XMLHelper : public RefCountingObject - { - public: - - /** load/loadFile - loads xml data - * - * De-serializes the specified XML file building a graph of DataObjects. - * Returns a pointer to the root data object - */ - - SDO_API virtual XMLDocumentPtr createDocument( - const char* elementname = 0, - const char* rootElementURI=0) = 0; - - SDO_API virtual XMLDocumentPtr loadFile( - const char* xmlFile, - const char* targetNamespaceURI=0) = 0; - SDO_API virtual XMLDocumentPtr load( - std::istream& inXml, - const char* targetNamespaceURI=0) = 0; - SDO_API virtual XMLDocumentPtr load( - const char* inXml, - const char* targetNamespaceURI=0) = 0; - - /** save saves the graph to XML - * - * save - Serializes the datagraph to the XML file - */ - - SDO_API virtual void save(XMLDocumentPtr doc, const char* xmlFile, - int indent = -1) = 0; - SDO_API virtual void save( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName, - const char* xmlFile, - int indent = -1) = 0; - - - /** save saves the graph to XML - * - * save - Serializes the datagraph to the XML stream - */ - - SDO_API virtual void save(XMLDocumentPtr doc, std::ostream& outXml, - int indent = -1) = 0; - SDO_API virtual void save( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName, - std::ostream& outXml, - int indent = -1) = 0; - - /** save saves the graph to XML - * - * save - Serializes the datagraph to a string - */ - - SDO_API virtual char* save(XMLDocumentPtr doc, int indent = -1) = 0; - SDO_API virtual char* save( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName, - int indent = -1) = 0; - - /** createDocument creates an XMLDocument - * - * An XMLDocument holds a root data object and all its - * tree of children. This provides the means of storing the - * name to be applied to the root element when serializing - */ - - SDO_API virtual XMLDocumentPtr createDocument( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName) = 0; - - /***********************************/ - /* Destructor */ - /***********************************/ - SDO_API virtual ~XMLHelper(); - - /** getErrorCount gets number of parse errors - * - * Parser error count - the parse may have - * succeeded or partially succeeded or failed. There - * may be errors to report or handle. - */ - - virtual int getErrorCount() const = 0; - - /** getErrorMessage gets the nth error message - * - * Each error has a message, usually giving the line and file - * in which the parser error occurred. - */ - - virtual const char* getErrorMessage(int errnum) const = 0; - - - }; - } // End - namespace sdo -} // End - namespace commonj - -#endif //_XMLHELPER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp deleted file mode 100644 index f4755c54bd..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp +++ /dev/null @@ -1,303 +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: 2006/02/01 16:24:13 $ */ - -#include "commonj/sdo/SDOXMLFileWriter.h" // Include first to avoid libxml compile problems! -#include "commonj/sdo/SDOXMLStreamWriter.h" // Include first to avoid libxml compile problems! -#include "commonj/sdo/SDOXMLBufferWriter.h" // Include first to avoid libxml compile problems! -#include "commonj/sdo/XMLHelperImpl.h" -#include "commonj/sdo/XMLDocumentImpl.h" -#include -#include -#include -#include "commonj/sdo/SDOSAX2Parser.h" -#include "commonj/sdo/XSDPropertyInfo.h" -#include "commonj/sdo/XSDTypeInfo.h" -#include "commonj/sdo/SDORuntimeException.h" -#include "commonj/sdo/DataFactoryImpl.h" - - -namespace commonj -{ - namespace sdo - { - - - ////////////////////////////////////////////////////////////////////// - // Construction/Destruction - ////////////////////////////////////////////////////////////////////// - - XMLHelperImpl::XMLHelperImpl(DataFactoryPtr df) - { - dataFactory = (DataFactory*)df; - } - - XMLHelperImpl::~XMLHelperImpl() - { - clearErrors(); - } - - DataFactoryPtr XMLHelperImpl::getDataFactory() - { - if (!dataFactory) - { - dataFactory = DataFactory::getDataFactory(); - } - return dataFactory; - } - - XMLDocumentPtr XMLHelperImpl::createDocument(DataObjectPtr dataObject) - { - - SDOXMLString rootElementName = ""; - SDOXMLString rootElementURI = ""; - if (dataObject) - { - // Set the root element name to the name of the containment property - // or null if there is no container - try - { - DataObjectPtr cont = dataObject->getContainer(); - if (cont != 0) - { - const Property& containmentProp = dataObject->getContainmentProperty(); - rootElementName = containmentProp.getName(); - rootElementURI = cont->getType().getURI(); - } - else - { - DataFactory* df = dataFactory; - rootElementURI = dataObject->getType().getURI(); - rootElementName = ((DataFactoryImpl*)df)->getRootElementName(); - } - } - catch (SDOPropertyNotFoundException&) - {} - } - - return new XMLDocumentImpl(dataObject, rootElementURI, rootElementName); - } - - - XMLDocumentPtr XMLHelperImpl::createDocument(const char* elementname, - const char* rootElementURI) - { - DataFactory* dp = (DataFactory*)getDataFactory(); - if (dp != 0) - { - const TypeImpl* rType = NULL; - if (rootElementURI != 0) - { - rType = ((DataFactoryImpl*)dp)->findTypeImpl - (rootElementURI, "RootType"); - } - else - { - const TypeList& tl = dp->getTypes(); - for (int i=0;ifindTypeImpl - (tl[i].getURI(), "RootType"); - break; - } - } - } - if (rType) - { - if (elementname && strlen(elementname) != 0) - { - PropertyImpl* pl = rType->getPropertyImpl(elementname); - if (pl != 0) - { - const Type& tp = pl->getType(); - DataObjectPtr dob = dp->create(tp); - return new XMLDocumentImpl(dob, - tp.getURI(), /*tp.getName()*/ elementname); - } - else - { - string msg("createDocument - cannot find element "); - msg += elementname; - SDO_THROW_EXCEPTION("createDocument", SDOUnsupportedOperationException, - msg.c_str()); - } - } - else - { - const Property& pl = rType->getProperty((unsigned int)0); - const Type& tp = pl.getType(); - DataObjectPtr dob = dp->create(tp); - return new XMLDocumentImpl(dob, - tp.getURI(), /*tp.getName()*/ pl.getName()); - } - } - else - { - string msg("createDocument - unable to find root type in namespace "); - if (rootElementURI != 0) - msg += rootElementURI; - else - msg += " NULL"; - - SDO_THROW_EXCEPTION("createDocument", SDOUnsupportedOperationException, - msg.c_str()); - } - } - return 0; - } - - XMLDocumentPtr XMLHelperImpl::createDocument( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName) - { - return new XMLDocumentImpl(dataObject, rootElementURI, rootElementName); - } - - XMLDocumentPtr XMLHelperImpl::loadFile( - const char* xmlFile, - const char* targetNamespaceURI) - { - DataObjectPtr rootDataObject; - clearErrors(); - SDOSAX2Parser sdoParser(getDataFactory(), targetNamespaceURI, rootDataObject, - this); - if (sdoParser.parse(xmlFile) == 0) - { - return createDocument(rootDataObject); - } - return 0; - } - - - XMLDocumentPtr XMLHelperImpl::load( - istream& inXml, - const char* targetNamespaceURI) - { - DataObjectPtr rootDataObject; - SDOSAX2Parser sdoParser(getDataFactory(), targetNamespaceURI, rootDataObject, - this); - clearErrors(); - inXml>>sdoParser; - return createDocument(rootDataObject); - } - - XMLDocumentPtr XMLHelperImpl::load( - const char* inXml, - const char* targetNamespaceURI) - { - istringstream str(inXml); - return load(str, targetNamespaceURI); - } - - void XMLHelperImpl::save(XMLDocumentPtr doc, const char* xmlFile, int indent) - { - SDOXMLFileWriter writer(xmlFile, dataFactory); - writer.write(doc, indent); - } - - void XMLHelperImpl::save( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName, - const char* xmlFile, - int indent) - { - save(createDocument(dataObject,rootElementURI, rootElementName), xmlFile, - indent); - } - - - // Serializes the datagraph to a stream - void XMLHelperImpl::save(XMLDocumentPtr doc, std::ostream& outXml, - int indent) - { - SDOXMLStreamWriter writer(outXml, dataFactory); - writer.write(doc, indent); - } - void XMLHelperImpl::save( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName, - std::ostream& outXml, - int indent ) - { - save(createDocument(dataObject,rootElementURI, rootElementName), outXml, indent); - } - - // Serializes the datagraph to a string - char* XMLHelperImpl::save(XMLDocumentPtr doc, - int indent) - { - SDOXMLBufferWriter writer(dataFactory); - writer.write(doc, indent); - SDOXMLString ret = writer.getBuffer(); - char* retString = new char[strlen(ret) +1]; - strcpy(retString, ret); - return retString; - } - char* XMLHelperImpl::save( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName, - int indent) - { - return save(createDocument(dataObject,rootElementURI, rootElementName), - indent); - } - - int XMLHelperImpl::getErrorCount() const - { - return parseErrors.size(); - } - - - const char* XMLHelperImpl::getErrorMessage(int errnum) const - { - if (errnum >= 0 && errnum < parseErrors.size()) - { - return parseErrors[errnum]; - } - return 0; - } - - void XMLHelperImpl::setError(const char* message) - { - if (message == 0) return; - char * m = new char[strlen(message) + 1]; - strcpy(m,message); - m[strlen(message)] = 0; - parseErrors.push_back(m); - } - - void XMLHelperImpl::clearErrors() - { - while (!parseErrors.empty()) - { - if (*parseErrors.begin() != 0) - { - delete (char*)(*parseErrors.begin()); - } - parseErrors.erase(parseErrors.begin()); - } - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.h deleted file mode 100644 index e818193509..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.h +++ /dev/null @@ -1,140 +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: 2006/02/01 16:24:13 $ */ - -#ifndef _XMLHELPERIMPL_H_ -#define _XMLHELPERIMPL_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/XMLHelper.h" -#include "commonj/sdo/export.h" -#include "commonj/sdo/SDOXMLString.h" -#include "commonj/sdo/SAX2Namespaces.h" -#include "commonj/sdo/SchemaInfo.h" -#include "commonj/sdo/TypeDefinitions.h" -#include "commonj/sdo/ParserErrorSetter.h" - -namespace commonj -{ - namespace sdo - { - - /** - * - * XMLHelperImpl is the implementation of the abstract class - * XMLHelper. - * Provides the ability to load XML data into - * a data object graph, according to a schema - */ - - class XMLHelperImpl : public XMLHelper, ParserErrorSetter - { - public: - // Constructor - XMLHelperImpl(DataFactoryPtr dataFactory); - - // Destructor - virtual ~XMLHelperImpl(); - - virtual int getErrorCount() const; - virtual const char* getErrorMessage(int errnum) const; - virtual void setError(const char* error); - - - /** load/loadFile - loads xml data - * - * De-serializes the specified XML file building a graph of DataObjects. - * Returns a pointer to the root data object - */ - - virtual XMLDocumentPtr createDocument( - const char* elementname= 0, - const char* rootElementURI=0); - - virtual XMLDocumentPtr loadFile( - const char* xmlFile, - const char* targetNamespaceURI = 0); - virtual XMLDocumentPtr load( - istream& inXml, - const char* targetNamespaceURI = 0); - virtual XMLDocumentPtr load( - const char* inXml, - const char* targetNamespaceURI = 0); - - virtual XMLDocumentPtr createDocument( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName); - - /** save saves the graph to XML - * - * save - Serializes the datagraph to the XML file - */ - - void save(XMLDocumentPtr doc, const char* xmlFile, int indent = -1); - void save( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName, - const char* xmlFile, int indent = -1); - - /** save saves the graph to XML - * - * save - Serializes the datagraph to a stream - */ - - void save(XMLDocumentPtr doc, std::ostream& outXml, - int indent = -1); - void save( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName, - std::ostream& outXml, - int indent = -1); - - /** save saves the graph to XML - * - * save - Serializes the datagraph to a string - */ - char* save(XMLDocumentPtr doc,int indent = -1); - char* save( - DataObjectPtr dataObject, - const char* rootElementURI, - const char* rootElementName, - int indent = -1); - - private: - int parse(const char* source); - void clearErrors(); - - std::vector parseErrors; - - // Instance variables - DataFactoryPtr dataFactory; - SDOXMLString targetNamespaceURI; - - XMLDocumentPtr createDocument(DataObjectPtr dataObject); - - DataFactoryPtr getDataFactory(); - }; - - } // End - namespace sdo -} // End - namespace commonj - -#endif // _XMLHELPERIMPL_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.cpp deleted file mode 100644 index de03d3affb..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.cpp +++ /dev/null @@ -1,84 +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:15 $ */ - -#include "commonj/sdo/XMLQName.h" -namespace commonj -{ - namespace sdo - { - - - XMLQName::XMLQName() - { - } - - XMLQName::XMLQName(const SDOXMLString& sdouri) - { - int index = sdouri.lastIndexOf('#'); - if (index < 0) - { - localName = sdouri; - } - else - { - uri = sdouri.substring(0, index); - localName = sdouri.substring(index+1); - } - } - - XMLQName::XMLQName( - const SDOXMLString& qname, - const SAX2Namespaces& globalNamespaces, - const SAX2Namespaces& localNamespaces) - { - SDOXMLString prefix; - - int index = qname.firstIndexOf(':'); - if (index < 0) - { - localName = qname; - } - else - { - prefix = qname.substring(0, index); - localName = qname.substring(index+1); - } - - const SDOXMLString* namespaceURI = localNamespaces.find(prefix); - if (namespaceURI == 0) - { - namespaceURI = globalNamespaces.find(prefix); - } - if (namespaceURI != 0) - { - uri = *namespaceURI; - } - - } - - XMLQName::~XMLQName() - { - } - - SDOXMLString XMLQName::getSDOName() const - { - return uri + "#" + localName; - } - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.h deleted file mode 100644 index 9548a737d0..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XMLQName.h +++ /dev/null @@ -1,66 +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:15 $ */ - -#ifndef _XMLQName_H_ -#define _XMLQName_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/SAX2Namespaces.h" -#include "commonj/sdo/SDOXMLString.h" -#include "commonj/sdo/DataObject.h" - -namespace commonj -{ - namespace sdo - { - -/** XMLQname wraps a qualified name - * - * This class holds a QName and provides access to its - * members - */ - - class XMLQName - { - - public: - XMLQName(); - XMLQName(const SDOXMLString& sdoUri); - XMLQName( - const SDOXMLString& qname, - const SAX2Namespaces& globalNamespaces, - const SAX2Namespaces& localNamespaces = SAX2Namespaces()); - - SDOXMLString getSDOName() const ; - const SDOXMLString& getURI() const {return uri;} - const SDOXMLString& getLocalName() const {return localName;} - virtual ~XMLQName(); - - private: - SDOXMLString uri; - SDOXMLString localName; - - - }; - } // End - namespace sdo -} // End - namespace commonj - - -#endif //_XMLQName_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.cpp deleted file mode 100644 index 0642fe8406..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.cpp +++ /dev/null @@ -1,33 +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:15 $ */ - -#include "commonj/sdo/XSDHelper.h" - -namespace commonj -{ - namespace sdo - { - - - XSDHelper::~XSDHelper() - { - } - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.h deleted file mode 100644 index 37b0b1cc2a..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelper.h +++ /dev/null @@ -1,120 +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: 2006/02/01 16:24:13 $ */ - -#ifndef _XSDHELPER_H_ -#define _XSDHELPER_H_ - - -#include "commonj/sdo/export.h" -#include "commonj/sdo/RefCountingObject.h" -#include "commonj/sdo/DataFactory.h" - -namespace commonj -{ - namespace sdo - { - - /** - * - * XSDHelper provides the means of loading and saving XSD information - * from/to the metadata (Types and properties) - */ - - class XSDHelper : public RefCountingObject - { - public: - - /** define builds types/properties from file or stream - * - * define/defineFile - * - * Populates the data factory with Types and Properties from the schema - * Loads from file, stream or char* buffer. - * The return value is the URI of the root Type - * - */ - - SDO_API virtual const char* defineFile(const char* schemaFile) = 0; - SDO_API virtual const char* define(std::istream& schema) = 0; - SDO_API virtual const char* define(const char* schema) = 0; - - - /** generate buildsXSD from types/properties - * - * generate/generateFile - * - * Saves the types/properties to an XSD stream or file - * - */ - - SDO_API virtual char* generate( - const TypeList& types, - const char* targetNamespaceURI = "", - int indent = -1) = 0; - SDO_API virtual void generate( - const TypeList& types, - std::ostream& outXsd, - const char* targetNamespaceURI = "", - int indent = -1) = 0; - SDO_API virtual void generateFile( - const TypeList& types, - const char* fileName, - const char* targetNamespaceURI = "", - int indent = -1) = 0; - - /***********************************/ - /* Destructor */ - /***********************************/ - SDO_API virtual ~XSDHelper(); - - /** getDataFactory() - * - * Return the DataFactory - */ - - SDO_API virtual DataFactoryPtr getDataFactory() = 0; - - /** getRootTypeURI - * - * Return the URI for the root Type - */ - - SDO_API virtual const char* getRootTypeURI() = 0; - - /** getErrorCount gets number of parse errors - * - * Parser error count - the parse may have - * succeeded or partially succeeded or failed. There - * may be errors to report or handle. - */ - - virtual int getErrorCount() const = 0; - - /** getErrorMessage gets the nth error message - * - * Each error has a message, usually giving the line and file - * in which the parser error occurred. - */ - - virtual const char* getErrorMessage(int errnum) const = 0; - }; - }//End - namespace sdo -} // End - namespace commonj - -#endif //_XSDHELPER_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp deleted file mode 100644 index 9dde020cd3..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp +++ /dev/null @@ -1,601 +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: 2006/02/01 16:24:13 $ */ - -#include "commonj/sdo/SDOXMLFileWriter.h" // Include first to avoid libxml compile problems! -#include "commonj/sdo/SDOXMLStreamWriter.h" // Include first to avoid libxml compile problems! -#include "commonj/sdo/SDOXMLBufferWriter.h" // Include first to avoid libxml compile problems! -#include "commonj/sdo/SDOXSDFileWriter.h" -#include "commonj/sdo/SDOXSDStreamWriter.h" -#include "commonj/sdo/SDOXSDBufferWriter.h" -#include "commonj/sdo/XSDHelperImpl.h" -#include "commonj/sdo/XMLDocumentImpl.h" -#include -#include -#include -#include "commonj/sdo/SDOSchemaSAX2Parser.h" -#include "commonj/sdo/SDOSAX2Parser.h" -#include "commonj/sdo/XSDPropertyInfo.h" -#include "commonj/sdo/XSDTypeInfo.h" - -#include "commonj/sdo/SDORuntimeException.h" -#include "commonj/sdo/DASProperty.h" -#include "commonj/sdo/Logging.h" -#include "commonj/sdo/Type.h" - -namespace commonj -{ - namespace sdo - { - - /** XSDHelperImpl - * - * XSDHelperImpl is the implementation of the abstract class - * XSDHelper. - * Provides the means of loading and saving XSD information - * from/to the metadata (Types and properties) - */ - - XSDHelperImpl::XSDHelperImpl(DataFactoryPtr df) - { - dataFactory = (DataFactory*)df; - } - - XSDHelperImpl::~XSDHelperImpl() - { - clearErrors(); - } - - /** define builds types/properties from file or stream - * - * define/defineFile - * - * Populates the data factory with Types and Properties from the schema - * Loads from file, stream or char* buffer. - * The return value is the URI of the root Type - * - */ - - const char* XSDHelperImpl::defineFile(const char* schema) - { - - SDOSchemaSAX2Parser schemaParser(schemaInfo, this); - clearErrors(); - if (schemaParser.parse(schema) == 0) - { - defineTypes(schemaParser.getTypeDefinitions()); - return schemaInfo.getTargetNamespaceURI(); - } - return 0; - } - - const char* XSDHelperImpl::define(std::istream& schema) - { - SDOSchemaSAX2Parser schemaParser(schemaInfo, this); - clearErrors(); - schema >> schemaParser; - defineTypes(schemaParser.getTypeDefinitions()); - return schemaInfo.getTargetNamespaceURI(); - } - - const char* XSDHelperImpl::define(const char* schema) - { - istringstream str(schema); - return define(str); - } - - void XSDHelperImpl::newSubstitute(const char* entryName, - PropertyDefinition& prop) - { - try - { - const char* typeUri = prop.substituteUri.isNull() ? - prop.typeUri : prop.substituteUri; - const Type& rootType = dataFactory->getType(typeUri, entryName); - PropertyList pl = rootType.getProperties(); - for (int j = 0; j < pl.size(); j++) - { - if (!pl[j].getType().isDataType() - && strcmp(pl[j].getType().getURI(),Type::SDOTypeNamespaceURI)) - { - // recurse the tree.. - newSubstitute(pl[j].getType().getName(), - prop); - - if (!strcmp(pl[j].getName(),prop.substituteName)) - { - dataFactory->setPropertySubstitute(rootType.getURI(), - rootType.getName(), - pl[j].getName(), - prop.name, - typeUri, - prop.typeName); - XSDPropertyInfo* pi = (XSDPropertyInfo*) - ((DASProperty*)&pl[j])->getDASValue("XMLDAS::PropertyInfo"); - if (pi) - { - PropertyDefinition& propdef = (PropertyDefinition&)pi->getPropertyDefinition(); - propdef.substituteNames.push_back(prop.name); - propdef.substituteLocalNames.push_back(prop.localname); - } - - } - - } - } - } - catch (const SDORuntimeException&) - { - } - } - - void XSDHelperImpl::addSubstitutes(PropertyDefinition& prop, - TypeDefinition& ty) - { - try - { - const char* typeUri = prop.substituteUri.isNull() ? - ty.uri : prop.substituteUri; - DataFactoryImpl* df = (DataFactoryImpl*)(DataFactory*)dataFactory; - const Type* rootType = df->findType(typeUri,"RootType"); - if (rootType == 0) return; - PropertyList pl = rootType->getProperties(); - for (int j = 0; j < pl.size(); j++) - { - XSDPropertyInfo* pi = (XSDPropertyInfo*) - ((DASProperty*)&pl[j])->getDASValue("XMLDAS::PropertyInfo"); - if (pi) - { - PropertyDefinition& propdef = (PropertyDefinition&)pi->getPropertyDefinition(); - if (propdef.isSubstitute && propdef.substituteName.equals(prop.name)) - { - - LOGINFO_1(INFO,"XSDHelper adding substitute for property %s", (const char*)prop.name); - - dataFactory->setPropertySubstitute(typeUri,ty.name, - prop.name, propdef.name, - pl[j].getType().getURI(), - pl[j].getType().getName()); - prop.substituteNames.push_back(propdef.name); - prop.substituteLocalNames.push_back(propdef.localname); - } - } - } - } - catch (const SDORuntimeException&) - { - } - } - - /** defineTypes - * - * This method works through all the data gathered during parsing - * and defines all the types using the data factory. - */ - - void XSDHelperImpl::defineTypes(TypeDefinitions& typedefs) - { - if (!dataFactory) - { - dataFactory = DataFactory::getDataFactory(); - } - - XMLDAS_TypeDefs types = typedefs.types; - XMLDAS_TypeDefs::iterator iter; - - - for (iter=types.begin(); iter != types.end(); iter++) - { - TypeDefinition& ty = iter->second; - try - { - /* - string isSeqCode = "false"; - if (ty.isSequenced) - isSeqCode = "true"; - string isOpenCode = "false"; - if (ty.isOpen) - isOpenCode = "true"; - string isAbstractCode = "false"; - if (ty.isAbstract) - isAbstractCode = "true"; - string uriCode = "0"; - if (!ty.uri.isNull()) - { - uriCode = "\"" + string(ty.uri) + "\""; - } - - string addTypeCode = "dataFactory->addType(\n" - + uriCode + ", \"" + string(ty.name) + "\", \n" - + isSeqCode + ", " + isOpenCode + ", " + isAbstractCode +");"; - cout << addTypeCode.c_str() <addType(ty.uri, ty.name, ty.isSequenced, - ty.isOpen, ty.isAbstract); - dataFactory->setDASValue( - ty.uri, ty.name, - "XMLDAS::TypeInfo", - new XSDTypeInfo(ty)); - - // add aliases - if (!ty.aliases.isNull()) - { - SDOXMLString al = ty.aliases; - SDOXMLString al1 = ""; - int index; - while (!al.isNull() && !al.equals("")) - { - index = al.lastIndexOf(' '); - if (index < 0) - { - al1 = al; - al = ""; - } - else - { - al1 = al.substring(index + 1); - al = al.substring(0,index); - } - if (!al1.isNull() && !al1.equals("")) - { - dataFactory->setAlias( - ty.uri, - ty.name, - (const char*)al1); - } - } - } - - } - catch (SDORuntimeException& e) - { - SDO_RETHROW_EXCEPTION("defineTypes", e); - } - } - for (iter=types.begin(); iter != types.end(); iter++) - { - TypeDefinition& ty = iter->second; - if (!ty.parentTypeName.isNull()) - { - try - { - /* - string uriCode = "0"; - if (!ty.uri.isNull()) - { - uriCode = "\"" + string(ty.uri) + "\""; - } - string parentUriCode = "0"; - if (!ty.uri.isNull()) - { - parentUriCode = "\"" + string(ty.parentTypeUri) + "\""; - } - - string addTypeCode = "dataFactory->setBaseType(\n" - + uriCode + ", \"" + string(ty.name) + "\", \n" - + parentUriCode + ", \"" + string(ty.parentTypeName) + "\");"; - - cout << addTypeCode.c_str() <setBaseType( - ty.uri, - ty.name, - ty.parentTypeUri, - ty.parentTypeName); - } - catch (SDORuntimeException& e) - { - SDO_RETHROW_EXCEPTION("defineTypes", e); - } - } - - XmlDasPropertyDefs::iterator propsIter; - for (propsIter = ty.properties.begin(); propsIter != ty.properties.end(); propsIter++) - { - PropertyDefinition& prop = *propsIter; - - // For a refence we need to determine the type from the - // global element declaration - if(prop.isReference) - { - - bool refFound = false; - - if (prop.name.isNull()) - prop.name = prop.typeName; - - - XMLDAS_TypeDefs::iterator refTypeIter = - types.find(TypeDefinitions::getTypeQName(prop.typeUri, "RootType")); - if(refTypeIter != types.end()) - { - - TypeDefinition rootTy = refTypeIter->second; - - // find the property on the root type - XmlDasPropertyDefs::iterator refPropsIter; - for (refPropsIter = rootTy.properties.begin(); refPropsIter != rootTy.properties.end(); refPropsIter++) - { - - if (refPropsIter->localname.equals(prop.typeName)) - { - prop.typeUri = refPropsIter->typeUri; - prop.typeName = refPropsIter->typeName; - refFound = true; - } - } - } - if (!refFound) - { - - // Check if this type is already defined to the data factory - try - { - const Type& rootType = dataFactory->getType(prop.typeUri, "RootType"); - PropertyList pl = rootType.getProperties(); - - for (int j = 0; j < pl.size(); j++) - { - - XSDPropertyInfo* pi = (XSDPropertyInfo*) - ((DASProperty*)&pl[j])->getDASValue("XMLDAS::PropertyInfo"); - - - - if (prop.typeName.equals(pl[j].getName()) - || (pi && prop.typeName.equals(pi->getPropertyDefinition().localname))) - { - const PropertyDefinition& propdef = pi->getPropertyDefinition(); - if (propdef.localname.equals(prop.typeName)) - { - prop.typeUri = pl[j].getType().getURI(); - prop.typeName = pl[j].getType().getName(); - refFound = true; - break; - } - } - } - } - catch (const SDORuntimeException&) - { - } - } - // If we haven't been able to resolve this reference we should ignore it - if (!refFound) - { - LOGINFO_1(INFO,"XsdHelper:no matching reference for %s", - (const char *)prop.name); - continue; - } - } - - if (prop.name.isNull()) - { - continue; - } - XMLDAS_TypeDefs::iterator propTypeIter = - types.find(TypeDefinitions::getTypeQName(prop.typeUri, prop.typeName)); - if(propTypeIter != types.end()) - { - prop.typeName = propTypeIter->second.name; - } - - try - { - /* - string isManyCode = "false"; - if (prop.isMany) - isManyCode = "true"; - string isReadOnlyCode = "false"; - if (prop.isReadOnly) - isReadOnlyCode = "true"; - string isContainmentCode = "false"; - if (prop.isContainment) - isContainmentCode = "true"; - string uriCode = "0"; - if (!ty.uri.isNull()) - { - uriCode = "\"" + string(ty.uri) + "\""; - } - string propUriCode = "0"; - if (!ty.uri.isNull()) - { - propUriCode = "\"" + string(prop.typeUri) + "\""; - } - - string addTypeCode = "dataFactory->addPropertyToType(\n" - + uriCode + ", \"" + string(ty.name) + "\", \n" - + "\"" + string(prop.name) + "\", \n" - + propUriCode + ", \"" + string(prop.typeName) + "\", \n" - + isManyCode + ", " + isReadOnlyCode + ", " + isContainmentCode +");"; - cout << prop.isQName << addTypeCode.c_str() << endl; - */ - - dataFactory->addPropertyToType(ty.uri, ty.name, - prop.name, - prop.typeUri, - prop.typeName, - prop.isMany, - prop.isReadOnly, - prop.isContainment); - - LOGINFO_1(INFO,"XSDHelper adds property %s",(const char*)(prop.name)); - - if (!prop.aliases.isNull()) - { - SDOXMLString al = prop.aliases; - SDOXMLString al1 = ""; - int index; - while (!al.isNull() && !al.equals("")) - { - index = al.lastIndexOf(' '); - if (index < 0) - { - al1 = al; - al = ""; - } - else - { - al1 = al.substring(index + 1); - al = al.substring(0,index); - } - if (!al1.isNull() && !al1.equals("")) - { - dataFactory->setAlias( - (const char*)ty.uri, - (const char*)ty.name, - (const char*)prop.name, - (const char*)al1); - } - } - } - if (prop.isSubstitute) - { - // we have a new substitute - so will check the existing graph for - // substitutions to insert - - LOGINFO_1(INFO,"XSDHelper: Found new substitute %s",(const char*)(prop.name)); - - newSubstitute( "RootType",prop); - } - else - { - addSubstitutes(prop,ty); - } - - // Do not add DASValue to ChangeSummary - if (!(prop.typeUri.equals(Type::SDOTypeNamespaceURI) - && prop.typeName.equals("ChangeSummary"))) - { - dataFactory->setDASValue( - ty.uri, ty.name, - prop.name, - "XMLDAS::PropertyInfo", - new XSDPropertyInfo(prop)); - } - } - catch (SDORuntimeException& e) - { - SDO_RETHROW_EXCEPTION("defineTypes", e); - } - } - - } - } // End - defineTypes - - /** getDataFactory returns the factory - * - */ - - DataFactoryPtr XSDHelperImpl::getDataFactory() - { - return dataFactory; - } - - - /** generate buildsXSD from types/properties - * - * generate/generateFile - * - * Saves the types/properties to an XSD stream or file - * - */ - - void XSDHelperImpl::generateFile( - const TypeList& types, - const char* fileName, - const char* targetNamespaceURI, - int indent - ) - { - SDOXSDFileWriter writer(fileName); - DataFactory* fac = dataFactory; - writer.write(types, targetNamespaceURI, - ((DataFactoryImpl*)fac)->getOpenProperties(), indent); - } - - void XSDHelperImpl::generate( - const TypeList& types, - std::ostream& outXml, - const char* targetNamespaceURI, - int indent - ) - { - SDOXSDStreamWriter writer(outXml); - DataFactory* fac = dataFactory; - writer.write(types, targetNamespaceURI, - ((DataFactoryImpl*)fac)->getOpenProperties(), indent); - } - - char* XSDHelperImpl::generate( - const TypeList& types, - const char* targetNamespaceURI, - int indent - ) - { - SDOXSDBufferWriter writer; - DataFactory* fac = dataFactory; - writer.write(types, targetNamespaceURI, - ((DataFactoryImpl*)fac)->getOpenProperties(), indent); - SDOXMLString ret = writer.getBuffer(); - char* retString = new char[strlen(ret) +1]; - strcpy(retString, ret); - return retString; - } - - int XSDHelperImpl::getErrorCount() const - { - return parseErrors.size(); - } - - - const char* XSDHelperImpl::getErrorMessage(int errnum) const - { - if (errnum >= 0 && errnum < parseErrors.size()) - { - return parseErrors[errnum]; - } - return 0; - } - - void XSDHelperImpl::setError(const char* message) - { - if (message == 0) return; - char * m = new char[strlen(message) + 1]; - strcpy(m,message); - m[strlen(message)] = 0; - parseErrors.push_back(m); - } - - void XSDHelperImpl::clearErrors() - { - while (!parseErrors.empty()) - { - if (*parseErrors.begin() != 0) - { - delete (char*)(*parseErrors.begin()); - } - parseErrors.erase(parseErrors.begin()); - } - } - - - } // End - namespace sdo -} // End - namespace commonj diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.h deleted file mode 100644 index c1832f9ceb..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.h +++ /dev/null @@ -1,143 +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: 2006/02/01 16:24:13 $ */ - -#ifndef _XSDHELPERIMPL_H_ -#define _XSDHELPERIMPL_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/XSDHelper.h" -#include "commonj/sdo/export.h" -#include "commonj/sdo/SDOXMLString.h" -#include "commonj/sdo/SAX2Namespaces.h" -#include "commonj/sdo/SchemaInfo.h" -#include "commonj/sdo/TypeDefinitions.h" -#include "commonj/sdo/ParserErrorSetter.h" - -namespace commonj -{ - namespace sdo - { - - /** - * - * XSDHelperImpl is the implementation of the abstract class - * XSDHelper. - * Provides the means of loading and saving XSD information - * from/to the metadata (Types and properties) - */ - - class XSDHelperImpl : public XSDHelper, ParserErrorSetter - { - public: - - // Constructor - XSDHelperImpl(DataFactoryPtr dataFactory); - - // Destructor - virtual ~XSDHelperImpl(); - - /** define builds types/properties from file or stream - * - * define/defineFile - * - * Populates the data factory with Types and Properties from the schema - * Loads from file, stream or char* buffer. - * The return value is the URI of the root Type - * - */ - virtual const char* defineFile(const char* schemaFile); - virtual const char* define(std::istream& schema); - virtual const char* define(const char* schema); - - /** getErrorCount gets number of parse errors - * - * Parser error count - the parse may have - * succeeded or partially succeeded or failed. There - * may be errors to report or handle. - */ - - virtual int getErrorCount() const; - - /** getErrorMessage gets the nth error message - * - * Each error has a message, usually giving the line and file - * in which the parser error occurred. - */ - - virtual const char* getErrorMessage(int errnum) const; - virtual void setError(const char* error); - - /** generate buildsXSD from types/properties - * - * generate/generateFile - * - * Saves the types/properties to an XSD stream or file - * - */ - - virtual char* generate( - const TypeList& types, - const char* targetNamespaceURI = "", - int indent = -1 - ); - void generate( - const TypeList& types, - std::ostream& outXsd, - const char* targetNamespaceURI = "", - int indent = -1 - ); - virtual void generateFile( - const TypeList& types, - const char* fileName, - const char* targetNamespaceURI = "", - int indent = -1); - - virtual DataFactoryPtr getDataFactory(); - - // Return the URI for the root Type - virtual const char* getRootTypeURI() - { - return schemaInfo.getTargetNamespaceURI(); - } - - private: - virtual void clearErrors(); - - void newSubstitute(const char* entryName, - PropertyDefinition& prop); - - void addSubstitutes(PropertyDefinition& prop, - TypeDefinition& ty); - - void defineTypes(TypeDefinitions& types); - int parse(const char* source); - - // Instance variables - DataFactoryPtr dataFactory; // metadata - SchemaInfo schemaInfo; - - std::vector parseErrors; - - }; - - } // End - namespace sdo -} // End - namespace commonj - -#endif // _XSDHELPERIMPL_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.cpp deleted file mode 100644 index 0bb05737e9..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.cpp +++ /dev/null @@ -1,53 +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:15 $ */ - -#include "commonj/sdo/XSDPropertyInfo.h" - -namespace commonj -{ - namespace sdo - { - - /** - * - * This holds a property definition during the parsing process - * when all properties need to be read and stored prior to creation - * within the data facttory. - */ - - XSDPropertyInfo::XSDPropertyInfo() - { - } - - XSDPropertyInfo::XSDPropertyInfo(const PropertyDefinition& prop) - : property(prop) - { - } - - - XSDPropertyInfo::~XSDPropertyInfo() - { - } - - - } -} -// end - namespace sdo - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.h deleted file mode 100644 index 724a33c8f4..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDPropertyInfo.h +++ /dev/null @@ -1,59 +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:15 $ */ - -#ifndef _XSDPropertyInfo_H_ -#define _XSDPropertyInfo_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/DASValue.h" -#include "commonj/sdo/PropertyDefinition.h" -#include "commonj/sdo/SDOXMLString.h" - -namespace commonj -{ - namespace sdo - { - - /** - * - * This holds a property definition during the parsing process. - * This holds a property definition during the parsing process - * when all properties need to be read and stored prior to creation - * within the data facttory. - */ - - class XSDPropertyInfo : public DASValue - { - public: - - XSDPropertyInfo(); - XSDPropertyInfo(const PropertyDefinition& prop); - - virtual ~XSDPropertyInfo(); - - const PropertyDefinition& getPropertyDefinition() {return property;} - - - private: - PropertyDefinition property; - }; - } -} -#endif //_XSDPropertyInfo_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.cpp deleted file mode 100644 index b95996045c..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.cpp +++ /dev/null @@ -1,52 +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:15 $ */ - -#include "commonj/sdo/XSDTypeInfo.h" - -namespace commonj -{ - namespace sdo - { - - /** XSDTypeInfo - * - * This holds a type definition during the parsing process - * when all types need to be read and stored prior to creation - * within the data facttory. - */ - - XSDTypeInfo::XSDTypeInfo() - { - } - - XSDTypeInfo::XSDTypeInfo(const TypeDefinition& typeDef) - : typeDefinition(typeDef) - { - } - - - XSDTypeInfo::~XSDTypeInfo() - { - - } - } -} -// end - namespace sdo - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.h deleted file mode 100644 index 283f096b3d..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XSDTypeInfo.h +++ /dev/null @@ -1,52 +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:15 $ */ - -#ifndef _XSDTypeInfo_H_ -#define _XSDTypeInfo_H_ - -#include "commonj/sdo/disable_warn.h" - -#include "commonj/sdo/DASValue.h" -#include "commonj/sdo/TypeDefinition.h" - -namespace commonj -{ - namespace sdo - { - /** - * - * This holds a type definition during the parsing process - * when all types need to be read and stored prior to creation - * within the data factory. - */ - - class XSDTypeInfo : public DASValue - { - public: - XSDTypeInfo(); - XSDTypeInfo(const TypeDefinition& typeDef); - virtual ~XSDTypeInfo(); - const TypeDefinition& getTypeDefinition() {return typeDefinition;} - - private: - TypeDefinition typeDefinition; - }; - } -} -#endif //_XSDTypeInfo_H_ diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.cpp deleted file mode 100644 index c53c577c2d..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.cpp +++ /dev/null @@ -1,50 +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:15 $ */ - -#include "commonj/sdo/XpathHelper.h" - -#include - -namespace commonj{ -namespace sdo{ - -/** - * - * will provide utilities to help with xpath parsing - */ - -/** isIndexed - true if [] or . - * - * Returns true if the path has an index, indicating a many valued - * property at the end of the path. - */ - - -const bool XpathHelper::isIndexed(const char* path) -{ - const char * c = strrchr(path,'/'); - if (c == 0)c = path; - if (strchr(c,'[')) return true; - if (strchr(c,'.')) return true; - return false; -} - -}; -}; - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.h deleted file mode 100644 index 862c89d307..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/XpathHelper.h +++ /dev/null @@ -1,53 +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:15 $ */ - -#ifndef XPATH_HELPER_H -#define XPATH_HELPER_H - -#include "commonj/sdo/export.h" - -namespace commonj{ -namespace sdo{ - -/** - * - * XpathHelper provides utilities to help with xpath parsing - */ - -class XpathHelper -{ - public: - - virtual ~XpathHelper(); - - /** isIndexed - true if [] or . - * - * Returns true if the path has an index, indicating a many valued - * property at the end of the path. - */ - - static SDO_API const bool isIndexed(const char * path); - -}; -}; -}; - - -#endif - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/disable_warn.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/disable_warn.h deleted file mode 100644 index 7743ab55de..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/disable_warn.h +++ /dev/null @@ -1,27 +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:15 $ */ - -#ifndef _DISABLE_WARN_H_ -#define _DISABLE_WARN_H_ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#endif diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/export.h b/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/export.h deleted file mode 100644 index 51470a585b..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/src/commonj/sdo/export.h +++ /dev/null @@ -1,47 +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:15 $ */ - -#define SDO4CPP_VERSION 20051202 - -#if defined(WIN32) || defined (_WINDOWS) - -#define int64_t __int64 - -#ifdef SDO_EXPORTS -#include "commonj/sdo/disable_warn.h" -# define SDO_API __declspec(dllexport) -# define SDO_SPI __declspec(dllexport) -# define EXPIMP -#else -# define SDO_API __declspec(dllimport) -# define SDO_SPI __declspec(dllimport) -# define EXPIMP extern -#endif - -#else -#include -#include -#include -#include -#include -# define SDO_API -# define SDO_SPI -# define EXPIMP -#endif - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtbuild b/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtbuild deleted file mode 100644 index 17ebd43324..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtbuild +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtproject b/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtproject deleted file mode 100644 index 48a12e6664..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/.cdtproject +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/.project b/tags/cpp-stable-20060304/sdo/runtime/core/test/.project deleted file mode 100644 index 32920ef4cf..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/.project +++ /dev/null @@ -1,19 +0,0 @@ - - - tuscany_sdo_test - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.ccnature - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tags/cpp-stable-20060304/sdo/runtime/core/test/.settings/org.eclipse.cdt.managedbuilder.core.prefs deleted file mode 100644 index 0c77f0af0f..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ /dev/null @@ -1,9 +0,0 @@ -#Wed Feb 15 16:37:24 GMT 2006 -eclipse.preferences.version=1 -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.debug.1698024418=\n\n\n\n\n -environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.release.1720042110=\n\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.debug.1698024418=\n\n\n\n -environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.release.1720042110=\n\n\n\n -environment/project=\n\n -environment/project/cdt.managedbuild.config.gnu.exe.debug.1698024418=\n\n\n\n -environment/project/cdt.managedbuild.config.gnu.exe.release.1720042110=\n\n\n\n diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xml b/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xml deleted file mode 100644 index 66b2d3dbca..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xml +++ /dev/null @@ -1,2 +0,0 @@ - -1A Partridge in a Pear Tree1.99012Turtle Doves2.99013French Hens3.99014Calling Birds4.99015Golden Rings5.99016Geese a-laying6.99017Swans a-swimming7.99018Maids a-milking8.99019Ladies dancing9.990110Lords a-leaping10.990111Pipers piping11.990112Drummers drumming12.9901 diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xsd deleted file mode 100644 index 53fb9bdc0c..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Catalog.xsd +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Customer.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Customer.xsd deleted file mode 100644 index 9f09b17244..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Customer.xsd +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Order.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Order.xsd deleted file mode 100644 index 59d48398a8..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/47293Order.xsd +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/Catalog.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/Catalog.xsd deleted file mode 100644 index 6eebebdd70..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/Catalog.xsd +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/Customer.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/Customer.xsd deleted file mode 100644 index b3cd832bce..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/Customer.xsd +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/Makefile.am b/tags/cpp-stable-20060304/sdo/runtime/core/test/Makefile.am deleted file mode 100644 index 42e672a25e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/Makefile.am +++ /dev/null @@ -1,11 +0,0 @@ -prgbindir=$(prefix)/bin/test -prgbin_PROGRAMS = tuscany_sdo_test -SUBDIRS = -AM_CPPFLAGS = $(CPPFLAGS) -tuscany_sdo_test_SOURCES = sdotest.cpp sdotest2.cpp - -tuscany_sdo_test_LDADD = -ltuscany_sdo \ - -L$(top_builddir)/runtime/core/src/commonj/sdo -lxml2 -lstdc++ - -INCLUDES = -I$(top_builddir)/runtime/core/test \ - -I$(top_builddir)/runtime/core/src diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/Order.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/Order.xsd deleted file mode 100644 index 1ece31ac0b..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/Order.xsd +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/StockQuoteService.wsdl b/tags/cpp-stable-20060304/sdo/runtime/core/test/StockQuoteService.wsdl deleted file mode 100644 index 4917cde583..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/StockQuoteService.wsdl +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/axis.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/axis.xsd deleted file mode 100644 index eca2f0cf22..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/axis.xsd +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xml b/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xml deleted file mode 100644 index 823ef80944..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xsd deleted file mode 100644 index 7f8e155406..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/b46617b.xsd +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/b46693.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/b46693.xsd deleted file mode 100644 index 11eb2e964a..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/b46693.xsd +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/company.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/company.xsd deleted file mode 100644 index 8c5ea4a7c1..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/company.xsd +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xml b/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xml deleted file mode 100644 index cc6e93e4bb..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - -Jane Doe - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xsd deleted file mode 100644 index 3738da590f..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/company_with_nillable_SN.xsd +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/companyabs.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/companyabs.xsd deleted file mode 100644 index bc47867904..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/companyabs.xsd +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/companyref.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/companyref.xsd deleted file mode 100644 index 0d4b1240c0..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/companyref.xsd +++ /dev/null @@ -1,47 +0,0 @@ - - - elementFormDefault="qualified"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/companysubs.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/companysubs.xsd deleted file mode 100644 index 2ffb626e90..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/companysubs.xsd +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xml b/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xml deleted file mode 100644 index 1397087013..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xsd deleted file mode 100644 index ca3583f6df..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/doctest.xsd +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xml b/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xml deleted file mode 100644 index cc6e93e4bb..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - -Jane Doe - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xsd deleted file mode 100644 index 6cc581de35..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/error1.xsd +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/g3.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/g3.xsd deleted file mode 100644 index 77a586f516..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/g3.xsd +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/graham1.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/graham1.xsd deleted file mode 100644 index c68f1d5b68..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/graham1.xsd +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/graham2.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/graham2.xsd deleted file mode 100644 index 6b4e0dcbb1..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/graham2.xsd +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/graham3.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/graham3.xsd deleted file mode 100644 index 61c72577d0..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/graham3.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/include.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/include.xsd deleted file mode 100644 index 67f3cb5501..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/include.xsd +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/include1.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/include1.xsd deleted file mode 100644 index 98705f6418..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/include1.xsd +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/include2.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/include2.xsd deleted file mode 100644 index 66dfca00a8..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/include2.xsd +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/includeother3.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/includeother3.xsd deleted file mode 100644 index a74c94e318..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/includeother3.xsd +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xml b/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xml deleted file mode 100644 index 72a073cd11..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - -#/departments.0/employees.0 - - - -Three member -Open bytes -List is complete - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xsd deleted file mode 100644 index a40b21a0da..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/many.xsd +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/my-core.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/my-core.xsd deleted file mode 100644 index 2d1a84f9fb..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/my-core.xsd +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/my-implementation-local-java.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/my-implementation-local-java.xsd deleted file mode 100644 index 7501eafd25..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/my-implementation-local-java.xsd +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/my.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/my.xsd deleted file mode 100644 index da66b397bf..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/my.xsd +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xml b/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xml deleted file mode 100644 index 9af06a8b02..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - -#/departments.0/employees.0 - - - -45 - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xsd deleted file mode 100644 index 98a12eb8c6..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS.xsd +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xml b/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xml deleted file mode 100644 index 100ff60176..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - -#/departments.0/employees.0 - - - -45 - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xsd deleted file mode 100644 index f62ea912b7..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/openloadNS2.xsd +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/partial.xml b/tags/cpp-stable-20060304/sdo/runtime/core/test/partial.xml deleted file mode 100644 index 49563ecbeb..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/partial.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - -#/departments.0/employees.0 - - - -45 - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-sca.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-sca.xsd deleted file mode 100644 index 2097cff917..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-sca.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-webservice.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-webservice.xsd deleted file mode 100644 index 39196c48f8..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-webservice.xsd +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-ws.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-ws.xsd deleted file mode 100644 index fd528710c1..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-binding-ws.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-core.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-core.xsd deleted file mode 100644 index b3c90210ed..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-core.xsd +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-dll.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-dll.xsd deleted file mode 100644 index da4392b9e7..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-dll.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-java.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-java.xsd deleted file mode 100644 index 5adb548ad4..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-java.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-local-java.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-local-java.xsd deleted file mode 100644 index 13286d728e..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-implementation-local-java.xsd +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-cpp.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-cpp.xsd deleted file mode 100644 index 8ea5b09cd0..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-cpp.xsd +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-java.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-java.xsd deleted file mode 100644 index 160d84f74a..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-java.xsd +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-wsdl.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-wsdl.xsd deleted file mode 100644 index 5c84b9a674..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-interface-wsdl.xsd +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-java.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-java.xsd deleted file mode 100644 index 21acbeaab6..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-java.xsd +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-xsd.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-xsd.xsd deleted file mode 100644 index 24b9d00e07..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca-property-xsd.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/sca.xsd deleted file mode 100644 index a0d61568e2..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sca.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.cpp deleted file mode 100644 index d5e0c0d5c3..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.cpp +++ /dev/null @@ -1,4028 +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:31 $ */ - -#include - -#pragma warning(disable:4786) - -#include -using namespace std; - -// #include "TypeImpl.h" - -#include "sdotest.h" - - - -using namespace commonj::sdo; - -// very basic print of a data graph - -typedef struct { - //zend_object zo; /* The standard zend_object */ - DataObjectPtr dop; /* The Hydra DataObject */ - //zend_object *df; /* The Data Factory */ -} sdo_doimpl_object; - - -void sdotest::rcptest() -{ - DataFactoryPtr mdg; - sdo_doimpl_object* ptr; - - cout << "RCPtest" << endl; - - mdg = DataFactory::getDataFactory(); - mdg = 0; - mdg = DataFactory::getDataFactory(); - mdg = NULL; - mdg = DataFactory::getDataFactory(); - - cout << "RCPtest 2" << endl; - - mdg->addType("myspace","Root"); - - mdg->addType("myspace","Company"); - - mdg->addPropertyToType("myspace","Company","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Company","id", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Root","companies", - "myspace","Company", true, false, true); - - const Type& tcc = mdg->getType("myspace","Root"); - - - ptr = new sdo_doimpl_object; - - - ptr->dop = mdg->create((Type&)tcc); - - - //delete ptr->dop; - - - ptr->dop = 0; // null ; - -} - - - -void printDataStructure(DataFactory* dd) -{ - TypeList tt = dd->getTypes(); - cout << "Printing Types\n"; - for (int i = 0; i < tt.size(); ++i) - { - cout << "Type " << tt[i].getName() << "\n"; - PropertyList pl = tt[i].getProperties(); - for (int j = 0; j < pl.size() ; j++) - { - cout << "Has Property " << pl[j].getName() << - " of type "; - cout << pl[j].getType().getName() << "\n"; - } - } -} - - -void sdotest::changesummarytest() -{ - scenario5(); - scenario1(); - scenario2(); - scenario3(); - scenario4(); - -} - - - - -void sdotest::printOldValues(ChangeSummaryPtr cs, DataObjectPtr dol) -{ - cout << "===== Old Property Values Begin=====================================" << endl; - SettingList& sl = cs->getOldValues(dol); - if (sl.size() == 0) - { - cout << "No Settings found" << endl; - } - else - { - for (int j=0;j< sl.size(); j++) - { - cout << "Property " << sl[j].getProperty().getName(); - // this could be a many-valued property, and could be one which is - // a data object or a data type... - if (sl[j].getProperty().isMany()) - { - cout << "[" << sl[j].getIndex() << "]" ; - } - if (!sl[j].isSet()) - { - cout << "(UNSET)"; - } - if (sl[j].isNull()) - { - cout << "(ISNULL)"; - } - - cout << " of type " ; - switch (sl[j].getProperty().getTypeEnum()) - { - case Type::BooleanType: - cout << "Boolean:" << sl[j].getBooleanValue(); - break; - case Type::ByteType: - cout << "Byte:" << sl[j].getByteValue(); - break; - case Type::CharacterType: - cout << "Character:" << sl[j].getCharacterValue(); - break; - case Type::IntegerType: - cout << "Integer:" << sl[j].getIntegerValue(); - break; - case Type::ShortType: - cout << "Short:" << sl[j].getShortValue(); - break; - case Type::DoubleType: - cout << "Double:" << sl[j].getDoubleValue(); - break; - case Type::FloatType: - cout << "Float:" << sl[j].getFloatValue(); - break; - case Type::LongType: - cout << "Long:" << sl[j].getIntegerValue(); - break; - case Type::DateType: - cout << "Date:" << sl[j].getDateValue().getTime(); - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::StringType: - case Type::UriType: - cout << "String:" << sl[j].getCStringValue(); - break; - case Type::BytesType: - cout << "Bytes:" << sl[j].getCStringValue(); - break; - case Type::OtherTypes: - case Type::DataObjectType: - case Type::ChangeSummaryType: - { - cout << "DataObject " ; - DataObjectPtr dob = sl[j].getDataObjectValue(); - if (!dob) - { - cout << " - object null or unset" ; - } - else - { - DataObjectPtr mydo = sl[j].getDataObjectValue(); - if (cs->isDeleted(mydo)) - { - cout << " - object deleted " << endl; - printOldValues(cs,mydo); - } - else - { - cout << " object still exists " << endl; - //printDataObject(mydo); - } - } - } - break; - default: - { - cout << "Unknown object type"; - } - break; - } - cout << endl; - } - } - cout << "===== Old Property Values End ======================================" << endl; -} - - -void sdotest::printValue(DataObjectPtr dp, const Property& p) -{ - switch (p.getTypeEnum()) - { - case Type::BooleanType: - cout << "boolean:" << dp->getBoolean(p); - break; - case Type::ByteType: - cout << "Byte:" << dp->getByte(p); - break; - case Type::CharacterType: - cout << "character:" << dp->getCharacter(p); - break; - case Type::IntegerType: - cout << "integer:" << dp->getInteger(p); - break; - case Type::ShortType: - cout << "short:" << dp->getShort(p); - break; - case Type::DoubleType: - cout << "double:" << dp->getDouble(p); - break; - case Type::FloatType: - cout << "float:" << dp->getFloat(p); - break; - case Type::LongType: - cout << "long:" << "cheat" << dp->getInteger(p); - break; - case Type::DateType: - cout << "date:" << dp->getDate(p).getTime(); - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::StringType: - case Type::UriType: - cout << "string:" << dp->getCString(p); - break; - case Type::BytesType: - cout << "bytes:" << dp->getCString(p); - break; - case Type::DataObjectType: - { - cout << "dataObject" ; - DataObjectPtr dob = dp->getDataObject(p); - if (!dob) - { - cout << " - null or unset" ; - } - else - { - cout << endl; - printDataObject(dob); - } - } - break; - case Type::OtherTypes: - case Type::ChangeSummaryType: - default: - { - cout << "Unknown object type"; - } - break; - } - cout << endl; -} - -void sdotest::printList(DataObjectPtr dp, const Property& p) -{ - DataObjectList& dobl = dp->getList(p); - cout << " list "; - - if (dobl.size() ==0) { - cout << "(empty)" << endl; - return; - } - - for (int i=0;igetInstanceProperties(); - - for (int j=0;j< pl.size(); j++) - { - cout << "Property " << pl[j].getName() << " of type "; - // this could be a many-valued property, and could be one which is - // a data object or a data type... - if (pl[j].isMany()) - { - printList(dol,pl[j]); - } - else { - printValue(dol,pl[j]); - } - } - cout << "End DataObject Current Values ======================================" << endl; -} - - -void sdotest::dumpchangesummary(ChangeSummaryPtr cs) -{ - ChangedDataObjectList& cdol = cs->getChangedDataObjects(); - - // the changed data object list contains only the objects whose properties have - // been changed. - // a changed and subsequently deleted object will not appear, but necessarily its - // container will appear, so we can rebuild it. - - for (int i=0;i< cdol.size();i++) - { - if (cs->isCreated(cdol[i])) - { - cout << "Created object in changed list: " << cdol[i] << endl; - // So its in the created list, it must exist in the tree... - cout << "The object is " << cdol[i]->getType().getURI() - << "#" << cdol[i]->getType().getName() << endl; - } - if (cs->isModified(cdol[i])) - { - cout <<"===== Modified Object Starts " << cdol[i] << " ==============================" <objectToXPath() << endl; - // end hack - - if (cs->isDeleted(cdol[i])) - { - cout << "PROBLEM: DELETED OBJECT IN CHANGED LIST: " << cdol[i] << endl; - // As the item is in the deleted list - its still present.. - cout << "The type is " << cdol[i]->getType().getURI() - << "#" << cdol[i]->getType().getName() << endl; - } - else { - cout << "The modified objects type is " << cdol[i]->getType().getURI() - << "#" << cdol[i]->getType().getName() << endl; - - printOldValues(cs, cdol[i]); - //printDataObject(cdol[i]); - } - cout <<"=====Modified Object Ends " << cdol[i] << " =================================" <isDeleted(cdol[i])) - { - cout <<"=====Deleted Object Starts " << cdol[i] << " =================================" <addType("myspace","RootOfAllEvil"); - mdg->addPropertyToType("myspace","RootOfAllEvil","whatever", - "commonj.sdo","ChangeSummary", false, false, false); - - mdg->addType("myspace","Company"); - - mdg->addPropertyToType("myspace","Company","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Company","id", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","RootOfAllEvil","companies", - "myspace","Company", true, false, true); - - const Type& tcc = mdg->getType("myspace","RootOfAllEvil"); - DataObjectPtr dor = mdg->create((Type&)tcc); - - ChangeSummaryPtr cs = dor->getChangeSummary(); - cs->beginLogging(); - - DataObjectPtr com = dor->createDataObject("companies"); - com->setCString("name","acme"); - com->setCString("id","123"); - - dumpchangesummary(cs); - - cs->endLogging(); - - //expect cdo: - //root - isChanged - //comp - isCreated - - -} - - -void sdotest::testui() -{ - - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("companyNS","MainType"); - - - /* Now add the properties to the types...*/ - - - const Type& tmain = mdg->getType("companyNS","MainType"); - const Type& tshort = mdg->getType("commonj.sdo","Short"); - const Type& tint = mdg->getType("commonj.sdo","Integer"); - - - mdg->addPropertyToType(tmain,"short",tshort,true); - mdg->addPropertyToType(tmain,"int",tint, true); - - DataObjectPtr main = mdg->create((Type&)tmain); - - DataObjectList& dol1 = main->getList("short"); - DataObjectList& dol2 = main->getList("int"); - DataObjectList& dol3 = main->getList((unsigned int)0); - DataObjectList& dol4 = main->getList(1); - } - - catch (SDORuntimeException e) - { - cout << "Unsigned int failed" << endl << e << endl; - } -} - - - -void sdotest::scenario5() -{ - // scenario 1 - // create root type - root has cs - // create a company type. and containment ref from root, many valued. - // props on comp id, name both strings single v. - // create root object - // begin logging - // create a company obj. name=acme id=123 - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","RootOfAllEvil"); - mdg->addPropertyToType("myspace","RootOfAllEvil","whatever", - "commonj.sdo","ChangeSummary", false, false, false); - - mdg->addType("myspace","Company"); - mdg->addType("myspace","Employee"); - mdg->addPropertyToType("myspace","Employee","name", - "commonj.sdo","String", false, false, false); - - - mdg->addPropertyToType("myspace","Company","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Company","id", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Company","eotm", - "myspace","Employee", false, false, false); - - mdg->addPropertyToType("myspace","Company","employees", - "myspace","Employee", true, false, true); - - mdg->addPropertyToType("myspace","RootOfAllEvil","companies", - "myspace","Company", true, false, true); - - const Type& tcc = mdg->getType("myspace","RootOfAllEvil"); - DataObjectPtr dor = mdg->create((Type&)tcc); - - ChangeSummaryPtr cs = dor->getChangeSummary(); - - DataObjectPtr com = dor->createDataObject("companies"); - com->setCString("name","acme"); - com->setCString("id","123"); - - const Type& te = mdg->getType("myspace","Employee"); - - DataObjectPtr emp = mdg->create(te); - emp->setCString("name", "Mr Expendible"); - - DataObjectList& emps = com->getList("employees"); - - emps.append(emp); - - com->setDataObject("eotm",emp); - - cs->beginLogging(); - - com->unset("eotm"); - - dumpchangesummary(cs); - - cs->endLogging(); - - //expect com to have change record, nothing for eotm: - -} - -void sdotest::scenario2() -{ - // create root type - root has cs - // create a company type. and containment ref from root, many valued. - // 2 props on comp id, name both strings single v. - // create root object - // create a company obj. name=acme id=123 - // begin logging() - // name="megacorp" - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","RootOfAllEvil"); - mdg->addPropertyToType("myspace","RootOfAllEvil","whatever", - "commonj.sdo","ChangeSummary", false, false, false); - - mdg->addType("myspace","Company"); - - mdg->addPropertyToType("myspace","Company","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Company","id", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","RootOfAllEvil","companies", - "myspace","Company", true, false, true); - - const Type& tcc = mdg->getType("myspace","RootOfAllEvil"); - DataObjectPtr dor = mdg->create((Type&)tcc); - - DataObjectPtr com = dor->createDataObject("companies"); - com->setCString("name","acme"); - com->setCString("id","123"); - - ChangeSummaryPtr cs = dor->getChangeSummary(); - cs->beginLogging(); - - com->setCString("name","megacorp"); - - dumpchangesummary(cs); - - cs->endLogging(); - - //expect cdo: - //root- nothing - // company- isChanged - //setting prop=name, value="acme" - -} - -void sdotest::scenario3() -{ - - //create root type - root has cs - //create a company type. and containment ref from root, many valued. - //2 props on comp id, name both strings single v. - //create root object - //create a company obj. name=acme id=123 - //begin logging() - //delete company - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","RootOfAllEvil"); - mdg->addPropertyToType("myspace","RootOfAllEvil","whatever", - "commonj.sdo","ChangeSummary", false, false, false); - - mdg->addType("myspace","Company"); - - mdg->addPropertyToType("myspace","Company","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Company","id", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","RootOfAllEvil","companies", - "myspace","Company", true, false, true); - - const Type& tcc = mdg->getType("myspace","RootOfAllEvil"); - DataObjectPtr dor = mdg->create((Type&)tcc); - - DataObjectPtr com = dor->createDataObject("companies"); - com->setCString("name","acme"); - com->setCString("id","123"); - - ChangeSummaryPtr cs = dor->getChangeSummary(); - cs->beginLogging(); - - com->detach(); - - dumpchangesummary(cs); - - cs->endLogging(); - - // expect cdo - // root - changed - // company - deleted - -} - -void sdotest::scenario4() -{ - //create root type - root has cs - //create a company type. and containment ref from root, many valued. - //create a dept type. and containment ref from comp, many valued. - //create a emp type. and containment ref from dept, many valued. - // give name and id properties to comp,dept, emp - - //create root object - //create a company obj. name=acme id=123 - //create a company obj. name=megacorp id=124 - // give each company 2 depts - // give each dept 2 employees - - // begin logging() - // add new employee to first dept of acme - // delete employee from second dept of acme - - // change name of first employee of first dept megacorp. - // delete first dept of megacorp. - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","RootOfAllEvil"); - mdg->addPropertyToType("myspace","RootOfAllEvil","whatever", - "commonj.sdo","ChangeSummary", false, false, false); - - mdg->addType("myspace","Company"); - mdg->addPropertyToType("myspace","Company","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Company","id", - "commonj.sdo","String", false, false, false); - - mdg->addType("myspace","Department"); - mdg->addPropertyToType("myspace","Department","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Department","id", - "commonj.sdo","String", false, false, false); - - mdg->addType("myspace","Employee"); - mdg->addPropertyToType("myspace","Employee","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Employee","id", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","RootOfAllEvil","companies", - "myspace","Company", true, false, true); - - mdg->addPropertyToType("myspace","Company","departments", - "myspace","Department", true, false, true); - - mdg->addPropertyToType("myspace","Department","employees", - "myspace","Employee", true, false, true); - - const Type& tcc = mdg->getType("myspace","RootOfAllEvil"); - DataObjectPtr dor = mdg->create((Type&)tcc); - - DataObjectPtr com = dor->createDataObject("companies"); - com->setCString("name","acme"); - com->setCString("id","123"); - - DataObjectPtr dep = com->createDataObject("departments"); - dep->setCString("name","widgets"); - dep->setCString("id","1"); - - DataObjectPtr emp = dep->createDataObject("employees"); - emp->setCString("name","John O'Watt"); - emp->setCString("id","1"); - - emp = dep->createDataObject("employees"); - emp->setCString("name","Ida Know"); - emp->setCString("id","2"); - - - dep = com->createDataObject("departments"); - dep->setCString("name","gadgets"); - dep->setCString("id","2"); - - emp = dep->createDataObject("employees"); - emp->setCString("name","Ed Memoire"); - emp->setCString("id","1"); - - emp = dep->createDataObject("employees"); - emp->setCString("name","Phyllis Tyne"); - emp->setCString("id","2"); - - - DataObjectPtr com2 = dor->createDataObject("companies"); - com2->setCString("name","megacorp"); - com2->setCString("id","124"); - - dep = com2->createDataObject("departments"); - dep->setCString("name","windows"); - dep->setCString("id","1"); - - emp = dep->createDataObject("employees"); - emp->setCString("name","Ivor Payne"); - emp->setCString("id","1"); - - emp = dep->createDataObject("employees"); - emp->setCString("name","Colin Poisson"); - emp->setCString("id","2"); - - dep = com2->createDataObject("departments"); - dep->setCString("name","portholes"); - dep->setCString("id","2"); - - emp = dep->createDataObject("employees"); - emp->setCString("name","Graham Angreeneggs"); - emp->setCString("id","1"); - - emp = dep->createDataObject("employees"); - emp->setCString("name","Helen Highwater"); - emp->setCString("id","2"); - - cout << "-----------------------------------" << endl; - cout << com->getCString("name") << endl; - DataObjectList& deps = com->getList("departments"); - cout << "Depts[0]:" << deps[0]->getCString("name") << endl; - DataObjectList& emps = deps[0]->getList("employees"); - cout << "Emps[0]:" << emps[0]->getCString("name") << endl; - cout << "Emps[1]:" << emps[1]->getCString("name") << endl; - cout << "Depts[1]:" << deps[1]->getCString("name") << endl; - DataObjectList& emps2 = deps[1]->getList("employees"); - cout << "Emps[0]:" << emps2[0]->getCString("name") << endl; - cout << "Emps[1]:" << emps2[1]->getCString("name") << endl; - cout << "-----------------------------------" << endl; - cout << com2->getCString("name") << endl; - DataObjectList& deps2 = com2->getList("departments"); - cout << "Depts[0]:" << deps2[0]->getCString("name") << endl; - DataObjectList& emps3 = deps2[0]->getList("employees"); - cout << "Emps[0]:" << emps3[0]->getCString("name") << endl; - cout << "Emps[1]:" << emps3[1]->getCString("name") << endl; - cout << "Depts[1]:" << deps2[1]->getCString("name") << endl; - DataObjectList& emps4 = deps2[1]->getList("employees"); - cout << "Emps[0]:" << emps4[0]->getCString("name") << endl; - cout << "Emps[1]:" << emps4[1]->getCString("name") << endl; - cout << "-----------------------------------" << endl; - - // should be able to get the change summary property, but it - // should be zero. - // should be able to find out if the type is a change summary type - - if (dor->getType().isChangeSummaryType()) - { - cout << "The root object has a change summary" << endl; - } - else { - cout << "The root object DOESNT HAVE a change summary !!!" << endl; - } - - try { - DataObjectPtr csptr = dor->getDataObject("whatever"); - - if (!csptr) { - cout << "CS property was zero - should be invisible!!!!" << endl; - } - else { - cout << "CS property was NOT zero !!" << endl; - } - } - catch (SDOPropertyNotFoundException e) - { - cout << "No property shows - this is correct" << endl; - } - - - if (com->getType().isChangeSummaryType()) - { - cout << "The company object has a change summary !!!!" << endl; - } - else { - cout << "The company object is OK" << endl; - } - - - - - ChangeSummaryPtr cs = dor->getChangeSummary(); - cs->beginLogging(); - - DataObjectList& depsout = com->getList("departments"); - - emp = depsout[0]->createDataObject("employees"); - emp->setCString("name","Irma Newby"); - emp->setCString("id","3"); - - DataObjectList& empsout = depsout[1]->getList("employees"); - empsout.remove(0); - - DataObjectList& depsout2 = com2->getList("departments"); - DataObjectList& empsout2 = depsout2[0]->getList("employees"); - empsout2[0]->setCString("name","Ive had my name changed"); - - depsout2[0]->detach(); - - dumpchangesummary(cs); - - cs->endLogging(); - - // expect: - // company acme, department widgets changed. - // employee 3 of dept widgets of acme (Irma Newby) created. - // employee 1 of dept gadgets or acme deleted - // no change record for employee 1 of company megacorp, dept windows - // deletion for dept windows of megacorp - // deletion for emp 1 of windows - showing original value for name (Ivor Payne) - // deletion for emp 2 of windows. - - -} - -void sdotest::seqtest() -{ - DataFactoryPtr mdg = DataFactory::getDataFactory(); - // company is sequenced. - mdg->addType("myspace","Company",true,false); - - mdg->addType("myspace","Department",true,false); - // string is many - - mdg->addPropertyToType("myspace","Company","string","commonj.sdo","String", - true); - - mdg->addPropertyToType("myspace","Company","departments","myspace","Department", - true); - - mdg->addPropertyToType("myspace","Department","name","commonj.sdo","String"); - - - const Type& tcc = mdg->getType("myspace","Company"); - - DataObjectPtr dor = mdg->create(tcc); - const Property& sprop = dor->getType().getProperty("string"); - SequencePtr sptr = dor->getSequence(); - - printseq(sptr); - - sptr->addCString(sprop,"I am Item 1 of string"); - - printseq(sptr); - - sptr->addText("I am the first free text"); - - printseq(sptr); - - sptr->addCString(sprop,"I am Item 2 of string"); - - printseq(sptr); - - sptr->setCStringValue(1,"I am free text which has been modified"); - - DataObjectPtr dep1 = dor->createDataObject("departments"); - - printseq(sptr); - - dep1->setCString("name","department1"); - - printseq(sptr); - - DataObjectList& dol = dor->getList("departments"); - - const Type& tcd = mdg->getType("myspace","Department"); - DataObjectPtr dep2 = mdg->create(tcd); - - printseq(sptr); - - dep2->setCString("name","department2"); - - printseq(sptr); - - dol.append(dep2); - - printseq(sptr); - -} - -void sdotest::printseq(SequencePtr sptr) -{ - cout << "======================================" <size();i++) - { - try { - if (!sptr->isText(i)) - { - const Property& prp = sptr->getProperty(i); - if (!strcmp(prp.getType().getName(),"Department")) - { - DataObjectPtr pdep = sptr->getDataObjectValue(i); - if (pdep != 0) - { - const char * cs = pdep->getCString("name"); - if (cs != 0) - { - cout << cs << endl; - } - else - { - cout << " is empty " << endl; - } - } - } - else - { - const char* stx = sptr->getCStringValue(i); - if (stx != 0) - { - cout << stx << endl; - } - else - { - cout << " is empty " << endl; - } - } - } - else - { - const char* st = sptr->getCStringValue(i); - if (st != 0) - { - cout << st << endl; - } - else - { - cout << " is empty " << endl; - } - } - } - catch (SDOPropertyNotSetException) - { - cout << "WRONG - got a property not set exception!!!" << endl; - continue; - } - } - cout << "======================================" << endl; -} - -void sdotest::boolbug() -{ - DataFactoryPtr mdg = DataFactory::getDataFactory(); - mdg->addType("myspace","Company"); - mdg->addPropertyToType("myspace","Company","bool","commonj.sdo","Boolean"); - const Type& tcc = mdg->getType("myspace","Company"); - DataObjectPtr dor = mdg->create((Type&)tcc); - try { - bool b = dor->getBoolean("bool"); - cout << "bool:" << b << endl; - } - catch (SDOPropertyNotSetException) - { - cout << "WRONG not set exception" << endl; - } -} - -void sdotest::scope1() -{ - cout << "SCOPE1 - Data Factory" << endl; - - DataFactoryPtr mdg = DataFactory::getDataFactory(); -} - -void sdotest::scope2() -{ - cout << "SCOPE2 - Create Data Object" << endl; - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - mdg->addType("myspace","Company"); - mdg->addPropertyToType("myspace","Company","csumm","commonj.sdo","ChangeSummary"); - const Type& tcc = mdg->getType("myspace","Company"); - DataObjectPtr dor = mdg->create((Type&)tcc); -} - -void sdotest::scope3() -{ - cout << "SCOPE3 - Lists" << endl; - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - mdg->addType("myspace","Main"); - mdg->addType("myspace","Subs"); - mdg->addPropertyToType("myspace","Main","name","commonj.sdo","String"); - mdg->addPropertyToType("myspace","Main","subs","myspace","Subs", true); - mdg->addPropertyToType("myspace","Subs","name","commonj.sdo","String"); - - const Type& tcc = mdg->getType("myspace","Main"); - DataObjectPtr dor = mdg->create((Type&)tcc); - - DataObjectPtr sub = dor->createDataObject("subs"); - sub->setCString("name", "sub1"); - - sub = dor->createDataObject("subs"); - sub->setCString("name", "sub2"); - - -} - -void sdotest::testGetters(DataObjectPtr dor) -{ - testGetter(dor,"boolean"); - testGetter(dor,"byte"); - testGetter(dor,"character"); - testGetter(dor,"short"); - testGetter(dor,"integer"); - testGetter(dor,"long"); - testGetter(dor,"double"); - testGetter(dor,"float"); - testGetter(dor,"date"); - testGetter(dor,"string"); - testGetter(dor,"bytes"); - testGetter(dor,"dataobject"); -} - -void sdotest::testGetter(DataObjectPtr dor, char* str) -{ - - try { - cout << "Boolean from " << str; - bool b = dor->getBoolean(str); - cout << " was " << b << endl; - } - catch (SDOPropertyNotSetException pe) - { - cout << "WRONG unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - - try { - cout << "Byte from " << str; - char by = dor->getByte(str); - cout << " was " << by <getCharacter(str); - cout << " was " << cy << endl; - } - catch (SDOPropertyNotSetException pe) - { - cout << "WRONG unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - - try { - cout << "Short from " << str; - short s = dor->getShort(str); - cout << " was " << s << endl; - } - catch (SDOPropertyNotSetException pe) - { - cout << "WRONG unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - - try { - cout << "Int from " << str; - int i = dor->getInteger(str); - cout << " was " << i << endl; - } - catch (SDOPropertyNotSetException pe) - { - cout << "WRONG unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - - try { - cout << "Long from " << str; - long l = dor->getLong(str); - cout << " was " << l << endl; - } - catch (SDOPropertyNotSetException pe) - { - cout << "WRONG unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - - try { - cout << "LongLong from " << str; - int64_t ll = dor->getLong(str); - cout << " was got OK" << endl; - } - catch (SDOPropertyNotSetException pe) - { - cout << "WRONG unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - - try { - cout << "Float from " << str; - float f = dor->getFloat(str); - cout << " was " << f << endl; - } - catch (SDOPropertyNotSetException pe) - { - cout << "WRONG unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - - try { - cout << "Double from " << str; - long double d = dor->getDouble(str); - cout << " was " << d << endl; - } - catch (SDOPropertyNotSetException pe) - { - cout << "WRONG unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - - unsigned int len; - - try { - cout << "Length of " << str; - len = dor->getLength(str); - cout << " was " << len << endl; - } - catch (SDOPropertyNotSetException pe) - { - cout << "WRONG unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - - if (len > 0) { - try { - cout << "String from " << str; - wchar_t * buf = new wchar_t[len]; - unsigned int gotlen = dor->getString(str,buf,len); - cout << " size "; - cout << gotlen << endl; - for (int jj=0;jjgetBytes(str,cbuf,len); - cout << " size " << gotlen << endl; - for (int jj=0;jjgetDate(str); - cout << " was " << t.getTime() << endl; - } - catch (SDOPropertyNotSetException pe) - { - cout << " WRONG unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - - try { - cout << "CString from " << str; - const char * string = dor->getCString(str); - if ( string != 0) cout << " was " << string << endl; - else cout << " was empty " << endl; - } - catch (SDOPropertyNotSetException pe) - { - cout << "WRONG - unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - - try { - cout << "DataObject from " << str; - DataObjectPtr dob = dor->getDataObject(str); - if (dob != 0) - { - cout << " was " << dob << endl; - } - else - { - cout << " was empty" << endl; - } - } - catch (SDOPropertyNotSetException pe) - { - cout << "WRONG unset and undefaulted" << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << endl; - } - -} - -void sdotest::conversiontest() -{ - cout << "Conversion tests" << endl; - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - mdg->addType("myspace","Container"); - mdg->addType("myspace","Contained"); - mdg->addPropertyToType("myspace","Container","boolean","commonj.sdo","Boolean"); - mdg->addPropertyToType("myspace","Container","byte","commonj.sdo","Byte"); - mdg->addPropertyToType("myspace","Container","character","commonj.sdo","Character"); - mdg->addPropertyToType("myspace","Container","short","commonj.sdo","Short"); - mdg->addPropertyToType("myspace","Container","integer","commonj.sdo","Integer"); - mdg->addPropertyToType("myspace","Container","long","commonj.sdo","Long"); - mdg->addPropertyToType("myspace","Container","float","commonj.sdo","Float"); - mdg->addPropertyToType("myspace","Container","double","commonj.sdo","Double"); - mdg->addPropertyToType("myspace","Container","string","commonj.sdo","String"); - mdg->addPropertyToType("myspace","Container","bytes","commonj.sdo","Bytes"); - mdg->addPropertyToType("myspace","Container","dataobject","myspace","Contained"); - mdg->addPropertyToType("myspace","Container","date","commonj.sdo","Date"); - mdg->addPropertyToType("myspace","Container","bigint","commonj.sdo","BigInteger"); - mdg->addPropertyToType("myspace","Container","bigdec","commonj.sdo","BigDecimal"); - - - const Type& tcc = mdg->getType("myspace","Container"); - DataObjectPtr dor = mdg->create((Type&)tcc); - - // phase 1 - all unset....... - - cout << "+++++++++++++++PROPERTY VALUES UNSET ++++++++++++++++++" << endl; - - testGetters(dor); - - cout << "+++++++++++++++PROPERTY VALUES SET ++++++++++++++++++++" << endl; - - DataObjectPtr sub = dor->createDataObject("dataobject"); - dor->setBoolean("boolean", true); - dor->setByte("byte",20); - dor->setCharacter("character", 1000); - dor->setShort("short", (short)12345678); - dor->setInteger("integer", 87654321); - dor->setLong("long", 0xFFFFFFFFFFFF); - dor->setFloat("float", (float)12345.678); - dor->setDouble("double", 1234567.891); - dor->setDate("date", 37575); - wchar_t* chars = new wchar_t[50]; - for (int i=0;i<50;i++) {chars[i] = 0x7F20 + i ;} - dor->setString("string",chars, 50); - - char* tchars = new char[50]; - for (int ii=0;ii<50;ii++) {tchars[ii] = ii + 32;} - dor->setBytes("bytes",tchars, 50); - - - testGetters(dor); - - cout << "+++++++++++++++END OF TEST ++++++++++++++++++++++++++++" << endl; - - // phase 2 all set..... - -} - - -void sdotest::usertest() -{ - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Root"); - mdg->addType("myspace","UserTest"); - mdg->addType("myspace","AnObject"); - - const Type& tr = mdg->getType("myspace", "Root"); - const Type& tm = mdg->getType("myspace", "UserTest"); - const Type& to = mdg->getType("myspace", "AnObject"); - - mdg->addPropertyToType(tm,"boolean", "commonj.sdo","Boolean"); - mdg->addPropertyToType(tm,"unsetboolean", "commonj.sdo","Boolean"); - mdg->addPropertyToType(tm,"object", "myspace","AnObject"); - mdg->addPropertyToType(tm,"unsetobject","myspace","AnObject"); - - // many valued... - mdg->addPropertyToType(tm,"longs", "commonj.sdo","Integer", true); - mdg->addPropertyToType(tm,"objects", "myspace","AnObject", true); - - mdg->addPropertyToType(tr,"usertest", "myspace","UserTest"); - - DataObjectPtr root = mdg->create((Type&)tr); - DataObjectPtr test = root->createDataObject("usertest"); - DataObjectPtr do1 = test->createDataObject("object"); - DataObjectPtr do2 = test->createDataObject("objects"); - DataObjectPtr do3 = test->createDataObject("objects"); - - test->setBoolean("boolean", true); - - void* value = (void*)0xFACC0FF; - - test->setUserData(value); - - cout << "I wanted 0xFACC0FF " << test->getUserData() << endl; - - root->setUserData("usertest",value); - - cout << "I wanted 0xFACC0FF and got " << root->getUserData("usertest") << endl; - - root->setUserData((unsigned int)0,(void*)0x20); - - cout << "I wanted 0x20 and got " << root->getUserData((unsigned int)0) << endl; - - const Property& prop = root->getType().getProperty("usertest"); - root->setUserData(prop,(void*)0x40020); - - cout << "I wanted 0x40020 and got " << root->getUserData(prop) << endl; - - test->setUserData("boolean", (void*)0x120); - - cout << "I wanted (graceful)0 and got " << test->getUserData("boolean") << endl; - - test->setUserData("unsetboolean", (void*)0x340); - - cout << "I wanted (graceful)0 and got " << test->getUserData("boolean") << endl; - - test->setUserData("object", (void*)0x120); - - cout << "I wanted 120 and got " << test->getUserData("object") << endl; - - test->setUserData("unsetobject", (void*)0x540); - - cout << "I wanted (graceful)0 and got " << test->getUserData("unsetobject") << endl; - - test->setUserData("objects", (void*)0x640); - - // TODO might be dodgy - this allows setting of user data on a base of a list - cout << "I wanted 640 and got " << test->getUserData("objects") << endl; - - test->setUserData("objects[1]", (void*)0x740); - - cout << "I wanted 0x740 and got " << test->getUserData("objects[1]") << endl; - } - catch (SDORuntimeException e) - { - cout << "Exception in user test - unexpected" << endl; - } - -} - -void sdotest::versiontest() -{ - cout << "The SDO version is :" << SdoRuntime::getVersion() << endl; - cout << "The Major version is: " << SdoRuntime::getMajor() << endl; - cout << "The Minor version is: " << SdoRuntime::getMinor() << endl; - cout << "The Fix level is: " << SdoRuntime::getFix() << endl; -} - -void sdotest::noncontest() -{ - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Company"); - mdg->addType("myspace","Department"); - mdg->addType("myspace","Employee"); - - const Type& tr = mdg->getType("myspace", "Company"); - const Type& tm = mdg->getType("myspace", "Department"); - const Type& to = mdg->getType("myspace", "Employee"); - - // many... - mdg->addPropertyToType(tr,"departments","myspace", "Department", - true); - - //mdg->addPropertyToType(to,"name","commonj.sdo", "String"); - - mdg->addPropertyToType(tm,"employees","myspace", "Employee", true); - - // single, non containment - mdg->addPropertyToType(tr,"eom", "myspace","Employee", false - , false, false); - - DataObjectPtr comp = mdg->create((Type&)tr); - - { - DataObjectPtr dept = comp->createDataObject("departments"); - DataObjectPtr emp1 = dept->createDataObject("employees"); - //emp1->setCString("name", "Will"); - DataObjectPtr emp2 = dept->createDataObject("employees"); - //emp1->setCString("name", "Bill"); - DataObjectPtr emp3 = dept->createDataObject("employees"); - //emp1->setCString("name", "Gill"); - comp->setDataObject("eom", emp3); - } - - - -} - - - - -void sdotest::defaulttest() -{ - try{ - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","DefaultTest"); - mdg->addType("myspace","AnObject"); - - const Type& tm = mdg->getType("myspace", "DefaultTest"); - const Type& to = mdg->getType("myspace", "AnObject"); - - mdg->addPropertyToType(tm,"boolean", "commonj.sdo","Boolean"); - - mdg->setDefault("myspace","DefaultTest","boolean", true); - - mdg->addPropertyToType(tm,"byte", "commonj.sdo","Byte"); - - mdg->setDefault("myspace","DefaultTest","byte", (char)'d'); - - mdg->addPropertyToType(tm,"character", "commonj.sdo","Character"); - - mdg->setDefault("myspace","DefaultTest","character", (wchar_t)'e'); - - mdg->addPropertyToType(tm,"short", "commonj.sdo","Short"); - - mdg->setDefault("myspace","DefaultTest","short", (short)300); - - mdg->addPropertyToType(tm,"long", "commonj.sdo","Integer"); - - mdg->setDefault("myspace","DefaultTest","long", (long)400); - - mdg->addPropertyToType(tm,"longs", "commonj.sdo","Integer", true); - - mdg->setDefault("myspace","DefaultTest","longs", (long)800); - - mdg->addPropertyToType(tm,"longlong", "commonj.sdo","Long"); - - mdg->setDefault("myspace","DefaultTest","longlong", (int64_t)500); - - mdg->addPropertyToType(tm,"float", "commonj.sdo","Float"); - - mdg->setDefault("myspace","DefaultTest","float", (float)600.0); - - mdg->addPropertyToType(tm,"longdouble", "commonj.sdo","Double"); - - mdg->setDefault("myspace","DefaultTest","longdouble", (long double)700.0); - - mdg->addPropertyToType(tm,"date", "commonj.sdo","Date"); - - mdg->setDefault("myspace","DefaultTest","date", (long)900); - - mdg->addPropertyToType(tm,"string", "commonj.sdo","String"); - - wchar_t* help = new wchar_t[4]; - help[0] = 'H'; - help[1] = 'E'; - help[2] = 'L'; - help[3] = 'P'; - - mdg->setDefault("myspace","DefaultTest","string", help, 4); - - delete help; - - char* help2 = new char[4]; - help2[0] = 'H'; - help2[1] = 'E'; - help2[2] = 'L'; - help2[3] = 'P'; - - mdg->addPropertyToType(tm,"bytes", "commonj.sdo","Bytes"); - - mdg->setDefault("myspace","DefaultTest","bytes", help2, 4); - - delete help2; - - mdg->addPropertyToType(tm,"object", "myspace","AnObject"); - - DataObjectPtr test = mdg->create((Type&)tm); - - cout << "Boolean default is true: " << test->getBoolean("boolean") << endl; - - cout << "Byte default is d: " << test->getByte("byte") << endl; - - cout << "Character default is e: " << test->getCharacter("character") << endl; - - cout << "Short default is 300: " << test->getShort("short") << endl; - - cout << "Long default is 400: " << test->getInteger("long") << endl; - - try { - cout << "Longs default is 800: " << test->getInteger("longs[1]") << endl; - } - catch (SDOIndexOutOfRangeException ex) - { - cout << "Expected index out of range OK" << endl; - } - - cout << "Float default is 600: " << test->getFloat("float") << endl; - - cout << "LongDouble default is 700: " << test->getDouble("longdouble") << endl; - - cout << "String default is HELP: "; - unsigned int lenw = test->getLength("string"); - if (lenw > 0) { - char* tw = new char[lenw]; - test->getBytes("string",tw,lenw); - for (int i=0;igetLength("bytes"); - if (len > 0) { - char* tc = new char[len]; - test->getBytes("bytes",tc,len); - for (int i=0;i 0) - { - wchar_t * buf = new wchar_t[l+1]; - l = pstring.getStringDefault(buf,l); - cout << "String default length is" << l << endl; - for (int i=0;i 0) - { - char * buf = new char[l+1]; - l = pbytes.getBytesDefault(buf,l); - cout << "Bytes default length is" << l << endl; - for (int i=0;iaddType("myspace","DefaultTest"); - mdg->addType("myspace","AnObject"); - - const Type& tm = mdg->getType("myspace", "DefaultTest"); - const Type& to = mdg->getType("myspace", "AnObject"); - - mdg->addPropertyToType(tm,"boolean", "commonj.sdo","Boolean"); - mdg->addPropertyToType(tm,"byte", "commonj.sdo","Byte"); - mdg->addPropertyToType(tm,"character", "commonj.sdo","Character"); - mdg->addPropertyToType(tm,"short", "commonj.sdo","Short"); - mdg->addPropertyToType(tm,"long", "commonj.sdo","Integer"); - mdg->addPropertyToType(tm,"longs", "commonj.sdo","Integer", true); - mdg->addPropertyToType(tm,"longlong", "commonj.sdo","Long"); - mdg->addPropertyToType(tm,"float", "commonj.sdo","Float"); - mdg->addPropertyToType(tm,"longdouble", "commonj.sdo","Double"); - mdg->addPropertyToType(tm,"date", "commonj.sdo","Date"); - mdg->addPropertyToType(tm,"string", "commonj.sdo","String"); - mdg->addPropertyToType(tm,"bytes", "commonj.sdo","Bytes"); - mdg->addPropertyToType(tm,"object" , "myspace","AnObject"); - - cout << "Testing unset defaults....." << endl; - - showdefault(tm); - - - //now set all the defaults.... - - mdg->setDefault("myspace","DefaultTest","boolean", true); - mdg->setDefault("myspace","DefaultTest","byte", (char)'d'); - mdg->setDefault("myspace","DefaultTest","character", (wchar_t)'e'); - mdg->setDefault("myspace","DefaultTest","short", (short)300); - mdg->setDefault("myspace","DefaultTest","long", (long)400); - mdg->setDefault("myspace","DefaultTest","longs", (long)800); - mdg->setDefault("myspace","DefaultTest","longlong", (int64_t)500); - mdg->setDefault("myspace","DefaultTest","float", (float)600.0); - mdg->setDefault("myspace","DefaultTest","longdouble", (long double)700.0); - mdg->setDefault("myspace","DefaultTest","date", (long)900); - - - wchar_t* help = new wchar_t[4]; - help[0] = 'H'; - help[1] = 'E'; - help[2] = 'L'; - help[3] = 'P'; - - mdg->setDefault("myspace","DefaultTest","string", help, 4); - - delete help; - - char* help2 = new char[4]; - help2[0] = 'H'; - help2[1] = 'E'; - help2[2] = 'L'; - help2[3] = 'P'; - - - mdg->setDefault("myspace","DefaultTest","bytes", help2, 4); - - delete help2; - - // and have another go at getting them.... - - cout << "Testing set defaults....." << endl; - - showdefault(tm); - - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << " in "; - cout << e.getFileName() << " at line "; - cout << e.getLineNumber() << endl; - cout << e.getFunctionName() << " "; - cout << e.getMessageText() << endl; - } - -} - -void sdotest::nulltest() -{ - int i; - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","NullTest",true, false); // sequenced - mdg->addType("myspace","AnObject"); - - const Type& tm = mdg->getType("myspace", "NullTest"); - const Type& to = mdg->getType("myspace", "AnObject"); - - mdg->addPropertyToType(tm,"boolean", "commonj.sdo","Boolean"); - mdg->addPropertyToType(tm,"byte", "commonj.sdo","Byte"); - mdg->addPropertyToType(tm,"character", "commonj.sdo","Character"); - mdg->addPropertyToType(tm,"short", "commonj.sdo","Short"); - mdg->addPropertyToType(tm,"long", "commonj.sdo","Integer"); - mdg->addPropertyToType(tm,"longlong", "commonj.sdo","Long"); - mdg->addPropertyToType(tm,"float", "commonj.sdo","Float"); - mdg->addPropertyToType(tm,"longdouble", "commonj.sdo","Double"); - mdg->addPropertyToType(tm,"date", "commonj.sdo","Date"); - mdg->addPropertyToType(tm,"string", "commonj.sdo","String"); - mdg->addPropertyToType(tm,"bytes", "commonj.sdo","Bytes"); - mdg->addPropertyToType(tm,"object", "myspace","AnObject"); - - - mdg->addPropertyToType(tm,"cs", "commonj.sdo","ChangeSummary"); - - DataObjectPtr test = mdg->create((Type&)tm); - DataObjectPtr ob = mdg->create((Type&)to); - DataObjectPtr ob2 = mdg->create((Type&)to); - DataObjectPtr ob3 = mdg->create((Type&)to); - - // first check all props are unset - - ChangeSummaryPtr cs = test->getChangeSummary(); - - cs->beginLogging(); - - PropertyList pl = test->getInstanceProperties(); - - cout << "Initially - all properties unset, and default values..." << endl; - for (i=0;iisSet(pl[i]) << " value:"; - const char *xx = test->getCString(pl[i]); - if (xx != 0) - { - cout << xx << endl; - } - else - { - cout << " is empty " << endl; - } - } - else { - cout << pl[i].getName() << " set:" << test->isSet(pl[i]) << " value:"; - DataObjectPtr xy = test->getDataObject(pl[i]); - if (xy != 0) - { - cout << xy << endl; - } - else - { - cout << " is empty " << endl; - } - } - } - catch (SDOPropertyNotSetException) - { - cout << " WRONG - got not set exception!!!"; - continue; - } - } - test->setBoolean("boolean", false); - test->setByte("byte",0); - test->setCharacter("character",0); - test->setShort("short",0); - test->setInteger("long",0); - test->setLong("longlong",0 ); - test->setFloat("float",0); - test->setDouble("longdouble",0 ); - test->setDate("date",0 ); - test->setString("string",0,0); - test->setBytes("bytes","",0) ; - test->setDataObject("object",0) ; - - - - cout << "Should now have all properties set, and zero values..." << endl; - for (i=0;iisSet(pl[i]) << " value:" << test->getCString(pl[i]) << endl; - } - else { - cout << pl[i].getName() <<" set:" << test->isSet(pl[i]) << " value:" << test->getDataObject(pl[i]) << endl; - } - - } - - for (i=0;iunset(pl[i]); - } - cout << "Should be back to having properties unset, and default values..." << endl; - for (i=0;iisSet(pl[i]) << " value:"; - const char *xx = test->getCString(pl[i]); - if (xx != 0) - { - cout << xx << endl; - } - else - { - cout << " is empty " << endl; - } - } - else { - cout << pl[i].getName() << " set:" << test->isSet(pl[i]) << " value:"; - DataObjectPtr dp = test->getDataObject(pl[i]); - if (dp != 0) - { - cout << dp << endl; - } - else - { - cout << " is empty " << endl; - } - } - } - catch (SDOPropertyNotSetException) - { - cout << "WRONG - not set exception" << endl; - continue; - } - } - - SequencePtr s = test->getSequence(); - - s->addBoolean(test->getType().getProperty("boolean")/*"boolean"*/, false); - s->addByte(1/*"byte"*/,0); - s->addCharacter(2/*"character"*/,0); - s->addShort(3/*"short"*/,0); - s->addInteger(4/*"long"*/,0); - s->addLong(5/*"longlong"*/,0 ); - s->addFloat(6/*"float"*/,0); - s->addDouble(7/*"longdouble"*/,0 ); - // bug ...s->setDate(8/*"date"*/,0 ); - s->addString(9/*"string"*/,0,0); - s->addBytes(10/*"bytes"*/,"",0) ; - s->addDataObject(11/*"object"*/,0) ; - - for (i=0;iisSet(pl[i]) << " value:"; - const char* xx = test->getCString(pl[i]); - if ( xx != 0) - { - cout << xx << endl; - } - else - { - cout << " is empty " << endl; - } - } - else { - cout << pl[i].getName() << " set:" << test->isSet(pl[i]) << " value:"; - DataObjectPtr db = test->getDataObject(pl[i]); - if (db != 0) - { - cout << db << endl; - } - else - { - cout << " is empty " << endl; - } - } - } - catch (SDOPropertyNotSetException) - { - cout << "WRONG - not set exception " << endl; - continue; - } - } - ChangedDataObjectList& cl = cs->getChangedDataObjects(); - for ( i =0; i< cl.size() ; i++) - { - if (cs->isCreated(cl[i])) { - cout << "Created:" << cl[i] << endl; - } - if (cs->isDeleted(cl[i])) { - cout << "Deleted:" << cl[i] << endl; - } - if (cs->isModified(cl[i])) { - cout << "Modified:" << cl[i] << endl; - } - } - - // now unset all the properties... - for (i=0;iunset(pl[i]); - } - - for (i=0;isetNull(i); - } - } - - cout << "Should all be null, and default values..." << endl; - for (i=0;iisNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; - if (test->getCString(pl[i]) == 0) cout << endl; - else cout << test->getCString(pl[i]) << endl; - } - else { - cout << pl[i].getName() << "isNull:" << test->isNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; - if (test->getDataObject(pl[i]) == 0) cout << endl; - else cout << test->getDataObject(pl[i]) << endl; - } - } - - s->addBoolean(test->getType().getProperty("boolean")/*"boolean"*/, true); - s->addByte(1/*"byte"*/,1); - s->addCharacter(2/*"character"*/,1); - s->addShort(3/*"short"*/,1); - s->addInteger(4/*"long"*/,1); - s->addLong(5/*"longlong"*/,1 ); - s->addFloat(6/*"float"*/,1.0); - s->addDouble(7/*"longdouble"*/,1.0 ); - // bug ...s->setDate(8/*"date"*/,0 ); - wchar_t* chs = new wchar_t[5]; - chs[0] = 'h'; - chs[1] = 'e'; - chs[2] = 'l'; - chs[3] = 'l'; - chs[4] = 'o'; - s->addString(9/*"string"*/,chs,5); - delete chs; - s->addBytes(10/*"bytes"*/,"hello",5) ; - s->addDataObject(11/*"object"*/,ob) ; - - cout << "Should all have values, and not be null.." << endl; - for (i=0;iisNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; - if (test->getCString(pl[i]) == 0) cout << endl; - else cout << test->getCString(pl[i]) << endl; - - } - else { - cout << pl[i].getName() << "isNull:" << test->isNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; - if (test->getDataObject(pl[i]) == 0) cout << endl; - else cout << test->getDataObject(pl[i]) << endl; - } - } - - for (i=0;isetNull(pl[i]); - } - } - - cout << "Should all be null, and default values..." << endl; - for (i=0;iisNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; - if (test->getCString(pl[i]) == 0) cout << endl; - else cout << test->getCString(pl[i]) << endl; - - } - else { - cout << pl[i].getName() << "isNull:" << test->isNull(i) <<" set:" << test->isSet(pl[i]) << " value:"; - if (test->getDataObject(pl[i]) == 0) cout << endl; - else cout << test->getDataObject(pl[i]) << endl; - } - } - catch (SDOPropertyNotSetException) - { - cout << " WRONG - not set exception" << endl; - continue; - } - } - - cs->endLogging(); -} - -int sdotest::main(int argc, char** argv) -{ - - int i; - - printf("Test Program starting to create types ...\n"); - - /* First create a DataFactory , then add some types and props...*/ - - /* This is dms creation of metadata */ - - try { - - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Company"); - mdg->addType("myspace","Department"); - // manager is a sequenced type... - mdg->addType("myspace","Manager", true, false); - - mdg->addType("myspace","Employee"); - - // tests of base types - - // note - base type of a seq type must be seq... - mdg->addType("myspace","Person", true, false); - - mdg->addType("myspace","DerivedString"); - mdg->addType("myspace","SubDepartment"); - - /* Now add the properties to the types...*/ - - const Type& tc = mdg->getType("myspace","Company"); - const Type& ts = mdg->getType("commonj.sdo","String"); - const Type& ti = mdg->getType("commonj.sdo","Integer"); - const Type& tf = mdg->getType("commonj.sdo","Float"); - const Type& tm = mdg->getType("myspace","Manager"); - - cout << "Manager is sequenced?" << tm.isSequencedType() << endl; - - const Type& td = mdg->getType("myspace","Department"); - const Type& te = mdg->getType("myspace","Employee"); - const Type& tp = mdg->getType("myspace","Person"); - const Type& tds= mdg->getType("myspace","DerivedString"); - const Type& tsd= mdg->getType("myspace","SubDepartment"); - - cout << "Manager is sequenced?" << tm.isSequencedType() << endl; - - - - - - /* By type, with a type */ - mdg->addPropertyToType(tc,"name",ts); - - /* by name/uri with a type */ - mdg->addPropertyToType("myspace","Company","address",ts); - - /* by type with name/uri */ - mdg->addPropertyToType(tc,"departments", "myspace","Department", - true); - - - // add a reference to employee of the month - mdg->addPropertyToType(tc,"employee of the month", "myspace","Employee", - false, false, false); - - - - /* A list of floats */ - - mdg->addPropertyToType(tc,"floatlist", tf,true); - - mdg->addPropertyToType(tc,"pdg", tm); - - cout << "Manager is sequenced?" << tm.isSequencedType() << endl; - - mdg->addPropertyToType(td,"name", ts); - - mdg->addPropertyToType(td,"id", ti); - - mdg->addPropertyToType(td,"manager", tm); - - mdg->addPropertyToType(tm,"name", ts); - - - mdg->addPropertyToType(te,"name",ts); - mdg->addPropertyToType(td,"employees",te,true,false,true); - - - - // emps and managers are both people (in theory). - mdg->setBaseType(te,tp); - cout << "Manager is sequenced?" << tm.isSequencedType() << endl; - mdg->setBaseType(tm,tp); - cout << "Manager is sequenced?" << tm.isSequencedType() << endl; - mdg->addPropertyToType(tp,"haircolour", ts); - mdg->addPropertyToType(tp,"name", ts); - mdg->addPropertyToType(tm,"officeid", ts); - mdg->addPropertyToType(te,"cubelocation", ts); - - mdg->addPropertyToType(tc,"shareholder", tp); - - //derived string - derived from string - cannot have properties!!! - mdg->setBaseType(tds,ts); - - // subdept derived from dept - mdg->setBaseType(tsd,td); - mdg->addPropertyToType(tsd,"subname",ts); - - mdg->addPropertyToType(tc, "substring",tds); - - /* by type with name/uri */ - mdg->addPropertyToType(tc,"subdepartments", "myspace","SubDepartment", - true); - - /* This is the data structure */ - - - - /* company - ----shareholder (Person) - ----substring (DerivedString) - * ----name (String) - * ----pdg (Manager) - (inherits haircolour from person, - has name as duplicate property - should use person.name - has officeid) - * ----name(String) - ----haircolour(String) - ----officeid(String) - * - * ----depts[] (Department) - * ----name (String) - * ----id (Integer) - * ----manager (Manager). - * ----name(String) - ----haircolour(String) from Person - * ----employees[] (Employee) - * ----name(String) - ----haircolour(String) - from Person - ----cubelocation(String) - --subdepartments[] (SubDepartment) - ----name (String) from Department - ----id (String) from Department - ----manager (Manager) from Department - ----employees (from department) - */ - - /* Now add a primitive type test to the manager */ - mdg->addPropertyToType(tm,"string",ts); - - cout << "Manager is sequenced?" << tm.isSequencedType() << endl; - - mdg->addPropertyToType(tm,"boolean", "commonj.sdo","Boolean"); - mdg->addPropertyToType(tm,"byte", "commonj.sdo","Byte"); - mdg->addPropertyToType(tm,"character", "commonj.sdo","Character"); - mdg->addPropertyToType(tm,"short", "commonj.sdo","Short"); - mdg->addPropertyToType(tm,"long", "commonj.sdo","Integer"); - mdg->addPropertyToType(tm,"longlong", "commonj.sdo","Long"); - mdg->addPropertyToType(tm,"float", "commonj.sdo","Float"); - mdg->addPropertyToType(tm,"longdouble", "commonj.sdo","Double"); - mdg->addPropertyToType(tm,"date", "commonj.sdo","Date"); - // dead mdg->addPropertyToType(tm,"charptr", "commonj.sdo","Bytes"); - mdg->addPropertyToType(tm,"string", "commonj.sdo","String"); - mdg->addPropertyToType(tm,"bytes", "commonj.sdo","Bytes"); - - - cout << "Manager is sequenced?" << tm.isSequencedType() << endl; - - // create a few aliases - - mdg->setAlias("myspace","Company","TheFirm"); - mdg->setAlias("myspace","Company","departments","TheDepartments"); - mdg->setAlias("myspace","Company","TheBigFirm"); - mdg->setAlias("myspace","Company","TheLittleFirm"); - - const Type& tlf = mdg->getType("myspace","TheBigFirm"); - - cout << "I hope this says Company :" << tlf.getName() << endl; - - cout << "I hope this says 3 : " << tlf.getAliasCount() << endl; - - for (int ai = 0; ai < tlf.getAliasCount(); ai++) - { - cout << "AKA : " << tlf.getAlias(ai) << endl; - } - - // just for a laugh - how about finding the TheDepartments? - - - - - /* - * create an empty datagraph with a type system starting from - * company - */ - - /* - * - * start of dms getting datagraph - */ - - // Change summary test begins - mdg->addPropertyToType(tc,"csumm","commonj.sdo","ChangeSummary"); - // should log an error - but not fail - mdg->addPropertyToType(td,"csumm","commonj.sdo","ChangeSummary"); - - cout << "Manager is sequenced?" << tm.isSequencedType() << endl; - - cout << "BEFORE RESOLUTION" << endl; - printDataStructure(mdg); - - /* Now create some objects in the dg */ - -// DataObjectPtr dor; - - const Type& tcc = mdg->getType("myspace","Company"); - DataObjectPtr dor = mdg->create((Type&)tcc); - - cout << "AFTER RESOLUTION" << endl; - printDataStructure(mdg); - - cout << "Manager is sequenced?" << tm.isSequencedType() << endl; - - dor->setCString("substring","This is the sub string - its primitive, but not a string"); - - const char* subby = dor->getCString("substring"); - - cout << subby << endl; - - dor->setCString("name","acmecorp"); - const char* chnam = dor->getCString("name"); - cout << chnam << endl; - - dor->unset("name"); - - dor->setCString("name","acmecorp"); - - // Set up the two departments before logging starts - - DataObjectPtr dep1 = dor->createDataObject("departments"); - dep1->setCString("name","Developement"); - - DataObjectPtr dep2= dor->createDataObject("departments"); - dep2->setCString("name","Marketing"); - - // add a couple of floats to the floatlist - DataObjectList& dolist = dor->getList("floatlist"); - dolist.append((float)1.4); - dolist.append((float)1.5); - - //TODO - change summaries should live on the DataObject - // interface - can this be done? - - ChangeSummaryPtr cs = dor->getChangeSummary(); - cs->beginLogging(); - - const char* sname = dor->getCString("name"); - - cout << sname << endl; - - // This should put a created entry in the cs. - - // This should be equivalent to the alternative below......... - const Type& tcd = mdg->getType("myspace","Manager"); - DataObjectPtr pdg = mdg->create((Type&)tcd); - - // This set should put the entry into the change summary. - // both in the creations and in the changes. - dor->setDataObject("pdg",pdg); - - - // try getting the boolean as a string - should be defalted to false: - const char *bol; - try{ - bol = pdg->getCString("boolean"); - if (bol != 0) - { - cout << "Expected default boolean (false) : " << bol << endl; - } - else - { - cout << " is empty " << endl; - } - } - catch (SDOPropertyNotSetException) - { - cout << "WRONG handled notset exception " << endl; - } - - pdg->setBoolean("boolean", true); - bol = pdg->getCString("boolean"); - cout << "Expected boolean (true) : " << bol << endl; - - // and the widechars? - const char* wdc; - try { - wdc = pdg->getCString("string"); - if (wdc != 0) - { - cout << "Expected default string (0) : " << bol << endl; - } - else - { - cout << " is empty " << endl; - } - } - catch (SDOPropertyNotSetException) - { - cout << "WRONG handled notset exception" << endl; - } - - - // this should get a valid sequence.. - - SequencePtr sq = pdg->getSequence(); - - - // The alternative............................................. - // Here the create should put the entry into the change summary - //DataObject* pdg = dor->createDataObject("pdg"); - - // This should do nothing to the cs, as its in a created object - pdg->setCString("name","Jacques LePlace"); - - // This should modify the property, and add an item to the sequence. - sq->addCString("name", "Jacques LeWrongPlace"); - - - // The creation entry should be removed from the change summary - // The entry should no longer exist and the pointer is invalid - pdg->detach(); - - pdg = dor->getDataObject("pdg"); - - - cout << " A deleted data object should be zero: " << pdg << endl; - - pdg = mdg->create((Type&)tcd); - - // A new creation in the change summary - dor->setDataObject("pdg",pdg); - - // No modification as the object is created - pdg->setCString("name", "Mr Horace the snail"); - - sq = pdg->getSequence(); - - try { - // element 0 is the first setting - which we just deleted! - sq->setCStringValue(0,"Eric the half a bee"); - } - catch (SDOIndexOutOfRangeException) - { - // thats OK - sq->addCString("name","Eric the quarter bee"); - } - - - sq->addText(" - only a quarter was expected \r\n"); - - for (int ii=0;iisize();ii++) - { - cout << sq->getCStringValue(ii); - } - - try { - const char* n = pdg->getCString("name"); - cout << " Name from deleted item: " << n << endl; - } - catch (SDOPropertyNotFoundException e) - { - // thats ok - cout << "caught prop not found" << endl; - } - - - // This should put a change in the cs. - dor->setCString("name","mega-new-acmecorp"); - - - // At this point, we should know that pdg was empty and is now - // a created object. And that the old string for company name - // was "acmecorp" - - // cs->DebugPrint(); - - - /* Now set up the primitive type test on PDG */ - - pdg->setCString("string","Hello I am a string"); - pdg->setBoolean("boolean",true); - pdg->setByte("byte",23); - pdg->setCharacter("character",45); - pdg->setShort("short",34); - pdg->setLong("long", 56); - pdg->setDouble("longdouble",89.0); - pdg->setFloat("float",90.0); - pdg->setDate("date",(time_t)200); - - - pdg->setLong("longlong",0xFFFFFFFFFFFFFFFF); - - // try reading the longlong as a string - const char *lls = pdg->getCString("longlong"); - cout << "0xffffffffffffffff = : " << lls << endl; - - pdg->setLong("longlong",0x7FFFFFFFFFFFFFFF); - - lls = pdg->getCString("longlong"); - cout << "0x7fffffffffffffff = " << lls << endl; - - pdg->setLong("longlong",0x7FFFFFFF); - lls = pdg->getCString("longlong"); - cout << "0x7fffffff = " << lls << endl; - - pdg->setLong("longlong",0x80000000); - lls = pdg->getCString("longlong"); - cout << "0x80000000 = " << lls << endl; - - pdg->setLong("longlong",78); - - // pdg->setCharPtr("charptr","Hello I am a char star"); - - wchar_t* wide = new wchar_t[4]; - wide[0] = 'W'; - wide[1] = 'i'; - wide[2] = 'd'; - wide[3] = 'e'; - - pdg->setString("string",wide,4); - - // and as a string? - wdc = pdg->getCString("string"); - cout << " Expected Wide (fat chance) - got : " << wdc << endl; - - delete wide; - - char* thin = new char[4]; - thin[0] = 'T'; - thin[1] = 'h'; - thin[2] = 'i'; - thin[3] = 'n'; - - pdg->setBytes("bytes",thin,4); - - delete thin; - - - const char* ps = pdg->getCString("string"); - cout << "Expecting string, got " << ps << endl; - - bool pb = pdg->getBoolean("boolean"); - cout << "Expected bool true, got " << pb << endl; - - char pc = pdg->getByte("byte"); - cout << "Expected char 23, got " << pc << endl; - - wchar_t pw = pdg->getCharacter("character"); - cout << "expected wchar 45, got " << pw << endl; - - short pss = pdg->getShort("short"); - cout << "Expected short 34, got " << pss << endl; - - long pl = pdg->getLong("long"); - cout << "Expected long 56 , got " <getLong("longlong"); - cout << "Expected long long 78, got " << (long)pi << endl; - - long double ld = pdg->getDouble("longdouble"); - cout << "Expected long double 89, got " << ld << endl; - - float pf = pdg->getFloat("float"); - cout << "Expected float 90, got " << pf << endl; - - SDODate pt = pdg->getDate("date"); - cout << "Expected time_t 200, got " << pt.getTime() << endl; - - //const char * pcs = pdg->getCharPtr("charptr"); - //cout <<"Expected charptr, got " << pcs << endl; - - wchar_t* result; - // get the length to allocate: - unsigned int widelen = pdg->getString("string",0,0); - if (widelen > 0) { - result = new wchar_t[widelen]; - widelen = pdg->getString("string",result,widelen); - for ( i=0;i 0) { - thinresult = new char[thinlen]; - thinlen = pdg->getBytes("bytes",thinresult,thinlen); - for ( i=0;icreateDataObject("departments"); - dep3->setCString("name","Architecture"); - - // The second should do no logging in the change summary - - DataObjectPtr dep4= dor->createDataObject("departments"); - dep4->setCString("name","Pyrotechnics"); - - - // create another one using tha alias - DataObjectPtr dep5= dor->createDataObject("TheDepartments"); - dep5->setCString("name","WibbleSmodging"); - - DataObjectPtr emp1 = dep1->createDataObject("employees"); - emp1->setCString("name","Eric"); - - - DataObjectPtr emp2 = dep1->createDataObject("employees"); - emp2->setCString("name","Bill"); - - // now lets make eric employee of the month - dor->setDataObject("employee of the month",emp1); - - // no - actually it was bill - dor->setDataObject("employee of the month",emp2); - - - - // Now add to the list of floats, hopefully the two old - // values will get change summarised. - - dolist = dor->getList("floatlist"); - //float f = dolist[0]->getFloat(""); - float f = dolist.getFloat(0); - - cout << f; - - dolist.setFloat(0,(float)567.7); - - f = dolist.getFloat(0); - - cout << f; - - dolist.insert(0,(float)34.56); - - - - - // cs->DebugPrint(); - -// const char* ch = dor->getString("departments[1]/employees[2]/name"); - - DataObjectPtr ddd = dor->getDataObject("departments[1]/employees[2]"); - - const char* ch = ddd->getCString("name"); - - cout << "Are you Bill?:" << ch << endl; - - // just for a laugh - how about finding the TheDepartments? - - DataObjectPtr ddd2 = dor->getDataObject("TheDepartments[1]/employees[2]"); - - const char* ch2 = ddd2->getCString("name"); - - cout << "Are you still Bill?:" << ch2 << endl; - - - - DataObjectPtr dempofm = dor->getDataObject("employee of the month"); - - const char* chh = dempofm->getCString("name"); - - cout << "The employee of the month is " << chh << endl; - - // Suppose we delete bill - I wonder what happens? - - // doesnt work - why not??dor->unSet("departments[1]/employees[2]"); - DataObjectList& dlo = dor->getList("departments[1]/employees"); - DataObjectPtr fred = dlo.remove(1); - //delete fred; - - dempofm = dor->getDataObject("employee of the month"); - - cout << "Hopefully emp of month is now zero : " << dempofm << endl; - - /* "The client would create a data mediator and get graph which - would return the root data object " says colin*/ - - const char* boss = dor->getCString("pdg/name"); - - cout << boss << endl; - - DataObjectPtr mypdg = dor->getDataObject("pdg"); - - Type::Types t = mypdg->getTypeEnum(); - - if (t != Type::OtherTypes) { - cout << "MY pdg is not something!" << endl; - } - - const char* boss2 = mypdg->getCString("name"); - - cout << boss2 << endl; - - /* TODO1 ref or pointer to dol. - Manip done by methods of the - list, reflected directly in the dg - need methods to create /insert dataobjects in lists*/ - - - /* getPrimitiveArrayListVectorThingy() */ - - DataObjectList& deps = dor->getList("departments"); - - cout << "size of list " << deps.size() << endl; - - DataObjectPtr dout = deps[0]; - - dout->setCString("name","Research And Development"); - - const char* snew = dout->getCString("name"); - - cout << snew << endl; - - string snew2 = dor->getCString("departments[1 ] /name"); - - cout << snew2 << endl; - - for (int lx = 0; lx < deps.size(); lx++) - { - cout << "Department: " << deps[lx]->getCString("name") << endl; - } - - cs->endLogging(); - - - try { - // should fail - if localtype not setstd:: - dor->setCString("departments","department label"); - const char* slabel = dor->getCString("departments"); - cout << "String in list type:" << slabel << endl; - } - catch (SDORuntimeException e) - { - cout << "Normal expected exception in test case" << endl; - } - - try - { - // The exception for path is caught by the SDO library - perhaps we should - // pass it up? - const char* snew3 = dor->getCString(" ]awep50wi4,0qw9q]45]# q2345 -t -v3lt6o -56o 56=-o7nl ewv/;sdl f[vxddglh]px dfju/ g#k./jh#.k./"); - cout << snew3 << endl; - } - catch (SDOPropertyNotFoundException e) - { - cout << "Normal Invalid path exception" << endl; - } - - try - { - - // catch a and a property not found - const Property& pp = dor->getType().getProperty("notaproperty"); - } - catch (SDOPropertyNotFoundException e) - { - cout << "Normal SDOPropertyNotFound exception" << endl; - } - - } - - catch (SDORuntimeException e) - { - cout << e.getEClassName() << " in "; - cout << e.getFileName() << " at line "; - cout << e.getLineNumber() << endl; - cout << e.getFunctionName() << " "; - cout << e.getSeverity() << " "; - cout << e.getMessageText() << endl; - } - - - return 0; -} - -void sdotest::getproptest() -{ - // should be able to get a property by xpath... - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Company"); - mdg->addType("myspace","Department"); - // manager is a sequenced type... - mdg->addType("myspace","Manager", true, false); - mdg->addType("myspace","Employee"); - - - /* Now add the properties to the types...*/ - - const Type& tc = mdg->getType("myspace","Company"); - const Type& ts = mdg->getType("commonj.sdo","String"); - const Type& ti = mdg->getType("commonj.sdo","Integer"); - const Type& tf = mdg->getType("commonj.sdo","Float"); - const Type& tm = mdg->getType("myspace","Manager"); - const Type& td = mdg->getType("myspace","Department"); - const Type& te = mdg->getType("myspace","Employee"); - - mdg->addPropertyToType(tc,"name",ts); - - mdg->addPropertyToType(tc,"address",ts); - - mdg->addPropertyToType(tc,"departments", td,true); - - // add a reference to employee of the month - mdg->addPropertyToType(tc,"employee of the month", te, false, false, false); - - /* A list of floats */ - mdg->addPropertyToType(tc,"floatlist", tf,true); - mdg->addPropertyToType(tc,"director", tm); - - mdg->addPropertyToType(td,"name", ts); - mdg->addPropertyToType(td,"id", ti); - - mdg->addPropertyToType(td,"manager", tm); - mdg->addPropertyToType(tm,"name", ts); - - mdg->addPropertyToType(te,"name",ts); - mdg->addPropertyToType(td,"employees",te,true,false,true); - - //company/departments/employees. - // company - name, address, floatlist - // department name, id, manager - // employee name - - const Type& tcc = mdg->getType("myspace","Company"); - DataObjectPtr dor = mdg->create((Type&)tcc); - - try - { - - const Property& p = dor->getType().getProperty("name"); - cout << "Companys name property is:" << p.getName() << endl; - - const Property& p1 = dor->getType().getProperty("departments"); - cout << "Companys dept property is:" << p1.getName() << endl; - - // now try some xpaths... - - const Property& p2 = dor->getType().getProperty("departments/employees"); - cout << "Departments empl property is:" << p2.getName() << endl; - - const Property& p3 = dor->getType().getProperty("departments[456]/employees[123]"); - cout << "Departments empl property is:" << p3.getName() << endl; - - const Property& p4 = dor->getType().getProperty("departments.34/employees.123/name"); - cout << "Employees name property is:" << p4.getName() << endl; - - } - catch (SDORuntimeException e) - { - cout <<"Exceptions - xpath didnt work" << endl; - } - try { - cout << "before p5" << endl; - const Property& p5 = dor->getType().getProperty("departments.34/[]/name"); - cout << "after p5" << endl; - cout << "Employees name property is:" << p5.getName() << endl; - cout << "Expected error - didnt get one" << endl; - } - catch (SDORuntimeException e) - { - } - - try { - const Property& p6 = dor->getType().getProperty("deptartments"); - cout << "Deptartments property is:" << p6.getName() << endl; - cout << "Expected error - didnt get one" << endl; - } - catch (SDORuntimeException e) - { - } - - try { - const Property& p7 = dor->getType().getProperty("../company"); - cout << "Company property is:" << p7.getName() << endl; - cout << "Expected error - didnt get one" << endl; - } - catch (SDORuntimeException e) - { - } -} - -void sdotest::querytest() -{ - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Company"); - mdg->addType("myspace","Department"); - // manager is a sequenced type... - mdg->addType("myspace","Manager", true, false); - 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& tbyte= mdg->getType("commonj.sdo","Byte"); - const Type& tchar= mdg->getType("commonj.sdo","Character"); - const Type& tint= mdg->getType("commonj.sdo","Integer"); - const Type& tlong= mdg->getType("commonj.sdo","Long"); - const Type& tfloat= mdg->getType("commonj.sdo","Float"); - const Type& tbytes = mdg->getType("commonj.sdo","Bytes"); - const Type& tdouble= mdg->getType("commonj.sdo","Double"); - - const Type& tc = mdg->getType("myspace","Company"); - const Type& tm = mdg->getType("myspace","Manager"); - const Type& td = mdg->getType("myspace","Department"); - const Type& te = mdg->getType("myspace","Employee"); - - mdg->addPropertyToType(tc,"name",tstring); - - mdg->addPropertyToType(tc,"departments", td,true); - - // add a reference to employee of the month - mdg->addPropertyToType(tc,"employee of the month", te, false, false, false); - - mdg->addPropertyToType(tc,"director", tm); - - mdg->addPropertyToType(td,"name", tstring); - - mdg->addPropertyToType(td,"manager", tm); - - mdg->addPropertyToType(tm,"name", tstring); - - - mdg->addPropertyToType(td,"employees",te,true,false,true); - - mdg->addPropertyToType(te,"bool",tbool); - mdg->addPropertyToType(te,"byte",tbyte); - mdg->addPropertyToType(te,"char",tchar); - mdg->addPropertyToType(te,"int",tint); - mdg->addPropertyToType(te,"float",tfloat); - mdg->addPropertyToType(te,"long",tlong); - mdg->addPropertyToType(te,"double",tdouble); - mdg->addPropertyToType(te,"bytes",tbytes); - mdg->addPropertyToType(te,"string",tstring); - mdg->addPropertyToType(te,"name",tstring); - - //company/departments/employees. - // company - name, address, floatlist - // department name, id, manager - // employee name - - const Type& tcc = mdg->getType("myspace","Company"); - DataObjectPtr dor = mdg->create((Type&)tcc); - - DataObjectPtr dept = dor->createDataObject("departments"); - - DataObjectPtr emp1 = dept->createDataObject("employees"); - DataObjectPtr emp2 = dept->createDataObject("employees"); - DataObjectPtr emp3 = dept->createDataObject("employees"); - - emp1->setCString("name","Employee1"); - emp2->setCString("name","Employee2"); - emp3->setCString("name","Employee3"); - - - emp1->setBoolean("bool",true); - emp1->setByte("byte",'1'); - emp1->setCharacter("char",'1'); - emp1->setInteger("int",1); - emp1->setFloat("float",1.0); - emp1->setLong("long",1); - emp1->setDouble("double",1.0); - - char* bytes = new char[6]; - bytes[0] = 'h'; - bytes[1] = 'e'; - bytes[2] = 'l'; - bytes[3] = 'l'; - bytes[4] = 'o'; - - emp1->setBytes("bytes",bytes,5); - - wchar_t* mbytes = new wchar_t[6]; - mbytes[0] = 'h'; - mbytes[1] = 'e'; - mbytes[2] = 'l'; - mbytes[3] = 'l'; - mbytes[4] = 'o'; - - emp1->setString("string",mbytes,5); - - - emp2->setBoolean("bool",true); - emp2->setByte("byte",'2'); - emp2->setCharacter("char",'2'); - emp2->setInteger("int",200); - emp2->setFloat("float",200.0); - emp2->setLong("long",200); - emp2->setDouble("double",200.0); - - char* bytes2 = new char[6]; - bytes2[0] = 'h'; - bytes2[1] = 'e'; - bytes2[2] = 'l'; - bytes2[3] = 'p'; - bytes2[4] = '!'; - - emp2->setBytes("bytes",bytes2,5); - - wchar_t* mbytes2 = new wchar_t[6]; - mbytes2[0] = 'h'; - mbytes2[1] = 'e'; - mbytes2[2] = 'l'; - mbytes2[3] = 'p'; - mbytes2[4] = '!'; - - emp2->setString("string",mbytes2,5); - - emp3->setBoolean("bool",false); - emp3->setByte("byte",'4'); - emp3->setCharacter("char",'4'); - emp3->setInteger("int",400); - emp3->setFloat("float",400.0); - emp3->setLong("long",400); - emp3->setDouble("double",400.0); - - char* bytes3 = new char[6]; - bytes3[0] = 'w'; - bytes3[1] = 'o'; - bytes3[2] = 'm'; - bytes3[3] = 'p'; - bytes3[4] = '!'; - - emp3->setBytes("bytes",bytes3,5); - - wchar_t* mbytes3 = new wchar_t[6]; - mbytes3[0] = 'w'; - mbytes3[1] = 'o'; - mbytes3[2] = 'm'; - mbytes3[3] = 'p'; - mbytes3[4] = '!'; - - emp3->setString("string",mbytes3,5); - - try { - DataObjectPtr dob1 = dor->getDataObject("departments[1]/employees[bool=false]"); - cout << "Expected employee3: got " << dob1->getCString("name") << endl; - - DataObjectPtr dob2 = dor->getDataObject("departments[1]/employees[bool=true]"); - cout << "Expected employee1: got " << dob2->getCString("name") << endl; - - DataObjectPtr dob3 = dor->getDataObject("departments[1]/employees[byte=2]"); - cout << "Expected employee2: got " << dob3->getCString("name") << endl; - - DataObjectPtr dob4 = dor->getDataObject("departments[1]/employees[byte=1]"); - cout << "Expected employee1: got " << dob4->getCString("name") << endl; - - DataObjectPtr dob5 = dor->getDataObject("departments[1]/employees[bytes=hello]"); - cout << "Expected employee1: got " << dob5->getCString("name") << endl; - - DataObjectPtr dob5a = dor->getDataObject("departments[1]/employees[bytes=\"hello\"]"); - cout << "Expected employee1: got " << dob5a->getCString("name") << endl; - - DataObjectPtr dob5b = dor->getDataObject("departments[1]/employees[bytes='hello']"); - cout << "Expected employee1: got " << dob5b->getCString("name") << endl; - - DataObjectPtr dob6 = dor->getDataObject("departments[1]/employees[bytes=womp!]"); - cout << "Expected employee3: got " << dob6->getCString("name") << endl; - - DataObjectPtr dob7 = dor->getDataObject("departments[1]/employees[double=200.0]"); - cout << "Expected employee2: got " << dob7->getCString("name") << endl; - - DataObjectPtr dob8 = dor->getDataObject("departments[1]/employees[string=help!]"); - cout << "Expected employee2: got " << dob8->getCString("name") << endl; - - DataObjectPtr dob8a = dor->getDataObject("departments[1]/employees[string=\"help!\"]"); - cout << "Expected employee2: got " << dob8a->getCString("name") << endl; - - DataObjectPtr dob8b = dor->getDataObject("departments[1]/employees[string= 'help!']"); - cout << "Expected employee2: got " << dob8b->getCString("name") << endl; - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << " in "; - cout << e.getFileName() << " at line "; - cout << e.getLineNumber() << endl; - cout << e.getFunctionName() << " "; - cout << e.getMessageText() << endl; - } - try { - DataObjectPtr dob1 = dor->getDataObject("departments[1]/employees[bool=doughnut]"); - cout << "Expected to fail!" << endl; - } - catch (SDORuntimeException e) - { - } - - try { - DataObjectPtr dob1 = dor->getDataObject("departments[4]/employees[bool=true]"); - cout << "Expected to fail!" << endl; - } - catch (SDORuntimeException e) - { - } - - try { - DataObjectPtr dob1 = dor->getDataObject("departments[1]/employees[bytes=whoomp!]"); - cout << "Expected to fail!" << endl; - } - catch (SDORuntimeException e) - { - } - - try { - DataObjectPtr dob1 = dor->getDataObject("departments[1]/blmployees[bool=true]"); - cout << "Expected to fail!" << endl; - } - catch (SDORuntimeException e) - { - } - - try { - DataObjectPtr dob1 = dor->getDataObject("departments[teapot]/employees[bool=true]"); - cout << "Expected to fail!" << endl; - } - - catch (SDORuntimeException e) - { - } - - delete bytes; - delete bytes2; - delete bytes3; - delete mbytes; - delete mbytes2; - delete mbytes3; -} - -void sdotest::setmany() -{ - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","School"); - mdg->addType("myspace","Class"); - mdg->addType("myspace","Teacher"); - mdg->addType("myspace","Child"); - mdg->addType("myspace","Address"); - - /* Now add the properties to the types...*/ - - - const Type& tstring = mdg->getType("commonj.sdo","String"); - const Type& tint = mdg->getType("commonj.sdo","Integer"); - const Type& ts = mdg->getType("myspace","School"); - const Type& tc = mdg->getType("myspace","Class"); - const Type& tch = mdg->getType("myspace","Child"); - const Type& tt = mdg->getType("myspace","Teacher"); - const Type& ta = mdg->getType("myspace","Address"); - - mdg->addPropertyToType(tc,"name",tstring); - mdg->addPropertyToType(ts,"name",tstring); - mdg->addPropertyToType(tch,"name",tstring); - mdg->addPropertyToType(tt,"name",tstring); - - mdg->addPropertyToType(tc,"number",tint); - mdg->addPropertyToType(ts,"number",tint); - mdg->addPropertyToType(tch,"number",tint); - mdg->addPropertyToType(tt,"number",tint); - - mdg->addPropertyToType(ts,"classes", tc,true); - mdg->addPropertyToType(tc,"children", tch,true); - mdg->addPropertyToType(tc,"teacher", tt); - - mdg->addPropertyToType(tch,"address", ta); - mdg->addPropertyToType(ts,"address", ta); - mdg->addPropertyToType(tt,"address", ta); - - mdg->addPropertyToType(ta,"lines", tstring, true); - - DataObjectPtr school = mdg->create((Type&)ts); - - DataObjectPtr class1 = school->createDataObject("classes"); - DataObjectPtr class2 = school->createDataObject("classes"); - - DataObjectPtr teach1 = class1->createDataObject("teacher"); - - DataObjectPtr kid1 = class1->createDataObject("children"); - DataObjectPtr kid2 = class1->createDataObject("children"); - DataObjectPtr kid3 = class1->createDataObject("children"); - - DataObjectPtr teach2 = class2->createDataObject("teacher"); - - DataObjectPtr kid4 = class2->createDataObject("children"); - DataObjectPtr kid5 = class2->createDataObject("children"); - DataObjectPtr kid6 = class2->createDataObject("children"); - - school->setCString("name","King Norberts"); - school->createDataObject("address"); - school->setCString("address/lines.0","The Place"); - school->setCString("address/lines.1","1 The Avenue"); - school->setCString("address/lines.2","Murchester"); - school->setCString("address/lines.3","England"); - - class1->setCString("name","Primary"); - class2->setCString("name","Secondary"); - - class1->setCString("teacher/name","Mr Philbert Chloroform"); - class2->setCString("teacher/name","Mr Brian Onastick"); - - kid1->setCString("name", "Witherspoon Jnr"); - kid2->setCString("name", "Snape"); - kid3->setCString("name", "Thannet"); - kid4->setCString("name", "Grimbling"); - kid5->setCString("name", "Snagget Minor"); - kid6->setCString("name", "Van Den Bograt"); - - kid1->setInteger("number", 1); - kid2->setInteger("number", 2); - kid3->setInteger("number", 3); - kid4->setInteger("number", 4); - kid5->setInteger("number", 5); - kid6->setInteger("number", 6); - - cout <<" School :" << school->getCString("name") << endl; - - cout <<" Address1:" << school->getCString("address/lines.0") << endl; - cout <<" Address2:" << school->getCString("address/lines.1") << endl; - cout <<" Address3:" << school->getCString("address/lines.2") << endl; - cout <<" Address4:" << school->getCString("address/lines.3") << endl; - - cout <<" Class :" << class1->getCString("name") << endl; - cout <<" Teacher :" << class1->getCString("teacher/name") << endl; - cout <<" Pupil1 :" << class1->getCString("children.0/name") << endl; - cout <<" Pupil2 :" << class1->getCString("children[number=2]/name") << endl; - cout <<" Pupil3 :" << class1->getCString("children[3]/name") << endl; - - cout <<" Class :" << class2->getCString("name") << endl; - cout <<" Teacher :" << class2->getCString("teacher/name") << endl; - cout <<" Pupil1 :" << class2->getCString("children[1]/name") << endl; - cout <<" Pupil2 :" << class2->getCString("children.1/name") << endl; - cout <<" Pupil3 :" << class2->getCString("children[number=6]/name") << endl; - - try { - cout <<" Pupil3 :" << class2->getCString("children[4]/name") << endl; - cout << "That should have failed with a path not found" << endl; - } - catch (SDOPathNotFoundException e) - { - - } - if (XpathHelper::isIndexed("abc[2]")) { - cout << "Indexed as expected" << endl; - } - else { - cout << "Bad - not indexed" << endl; - } - - if (XpathHelper::isIndexed("wibble/[2]")) { - cout << "Indexed as expected" << endl; - } - else { - cout << "Bad - not indexed" << endl; - } - - if (XpathHelper::isIndexed("wibble/wobble[2]")) { - cout << "Indexed as expected" << endl; - } - else { - cout << "Bad - not indexed" << endl; - } - - if (XpathHelper::isIndexed("wibble/wobble.2")) { - cout << "Indexed as expected" << endl; - } - else { - cout << "Bad - not indexed" << endl; - } - - if (XpathHelper::isIndexed("wibble/wobble.2")) { - cout << "Indexed as expected" << endl; - } - else { - cout << "Bad - not indexed" << endl; - } - - try { - cout <<" Address5 :" << school->getCString("address/lines[5]") << endl; - cout << "Address5 should have failed with an index out of range" << endl; - } - catch (SDOIndexOutOfRangeException e) - { - - } - - try { - school->setCString("address/lines[6]","PostCode"); - cout << "Debatable behaviour - appended" << endl; - cout <<" Address4 :" << school->getCString("address/lines[5]") << endl; - } - catch (SDORuntimeException e) - { - cout <<"Unexpected exception"<< endl; - } - - -} - -void sdotest::carotest2() -{ - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","root"); - - mdg->addPropertyToType("myspace","root","cs", - "commonj.sdo","ChangeSummary", false, false, false); - - const Type& troot = mdg->getType("myspace","root"); - - DataObjectPtr root = mdg->create((Type&)troot); - -} - -void sdotest::adddeletetest() -{ - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","root"); - mdg->addType("myspace","bill"); - - mdg->addPropertyToType("myspace","root","cs", - "commonj.sdo","ChangeSummary", false, false, false); - - mdg->addPropertyToType("myspace","root","bill", - "myspace","bill"); - - const Type& troot = mdg->getType("myspace","root"); - - DataObjectPtr root = mdg->create((Type&)troot); - - ChangeSummaryPtr cs = root->getChangeSummary(); - cs->beginLogging(); - DataObjectPtr dob = root->createDataObject("bill"); - root->unset("bill"); - -} - -void sdotest::carotest() -{ - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","root"); - mdg->addType("myspace","company"); - mdg->addType("myspace","department"); - mdg->addType("myspace","employee"); - - mdg->addPropertyToType("myspace","root","cs", - "commonj.sdo","ChangeSummary", false, false, false); - - mdg->addPropertyToType("myspace","company","name", - "commonj.sdo","String", false, false, false); - - - mdg->addPropertyToType("myspace","department","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","employee","name", - "commonj.sdo","String", false, false, false); - - - mdg->addPropertyToType("myspace","root","companies", - "myspace","company", true, false, true); - - mdg->addPropertyToType("myspace","company","departments", - "myspace","department", true, false, true); - - mdg->addPropertyToType("myspace","company","eotm", - "myspace","employee", false, false, false); - - mdg->addPropertyToType("myspace","department","employees", - "myspace","employee", true, false, true); - - const Type& troot = mdg->getType("myspace","root"); - - - DataObjectPtr root = mdg->create((Type&)troot); - ChangeSummaryPtr cs = root->getChangeSummary(); - - cs->beginLogging(); - - DataObjectPtr comp = root->createDataObject("companies"); - - comp->setCString("name","Acme"); - - cout << "name of the company is " << comp->getCString("name") << endl; - try { - root->unset("companies[0]"); - } - catch (SDOUnsupportedOperationException e) - { - cout << "Normal unsupported operation for unset of many valued item" << endl; - } -} - - -void sdotest::bug2() -{ - - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","root"); - mdg->addType("myspace","company"); - - mdg->addPropertyToType("myspace","root","cs", - "commonj.sdo","ChangeSummary", false, false, false); - - mdg->addPropertyToType("myspace","company","name", - "commonj.sdo","String", false, false, false); - - - mdg->addPropertyToType("myspace","root","companies", - "myspace","company", true, false, true); - - - const Type& troot = mdg->getType("myspace","root"); - - - DataObjectPtr root = mdg->create((Type&)troot); - - ChangeSummaryPtr cs = root->getChangeSummary(); - - cs->beginLogging(); - - DataObjectPtr comp = root->createDataObject("companies"); - - comp->setCString("name","Acme"); - - dumpproperties(root); - - DataObjectList& dl = root->getList("companies"); - dl.remove(0); - - dumpproperties(root); - - - cout << "Change summary should have no entries..." << endl; - - dumpchangesummary(cs); - - dumpproperties(root); - - cout << "Change summary should have no entries..." << endl; - - dumpchangesummary(cs); - - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << " in "; - cout << e.getFileName() << " at line "; - cout << e.getLineNumber() << endl; - cout << e.getFunctionName() << " "; - cout << e.getMessageText() << endl; - } -} - - -void sdotest::dumpproperties(DataObjectPtr root) -{ - PropertyList pl = root->getInstanceProperties(); - for (int i=0;igetList(pl[i]); - if (pl[i].getType().isDataType()) - { - char buf[10]; - for (int j=0;jgetCString(pl[i]) << endl; - } - else - { - cout << "Object Property:" << pl[i].getName() << endl; - DataObjectPtr d = root->getDataObject(pl[i]); - if (d != 0) - { - dumpproperties(d); - } - else - { - cout << " Value was not set or null" << endl; - } - cout << "End of Object Property " << pl[i].getName() << endl; - } - } - } -} - - -void sdotest::datetest() -{ - - try { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","root"); - mdg->addType("myspace","company"); - - mdg->addPropertyToType("myspace","root","cs", - "commonj.sdo","ChangeSummary", false, false, false); - - mdg->addPropertyToType("myspace","company","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","company","startupdate", - "commonj.sdo","Date", false, false, false); - - mdg->addPropertyToType("myspace","company","reviewdates", - "commonj.sdo","Date", true, false, false); - - - mdg->addPropertyToType("myspace","root","company", - "myspace","company", false, false, true); - - - - const Type& troot = mdg->getType("myspace","root"); - - - DataObjectPtr root = mdg->create((Type&)troot); - ChangeSummaryPtr cs = root->getChangeSummary(); - - cs->beginLogging(); - - DataObjectPtr comp = root->createDataObject("company"); - - - comp->setCString("name","DateTest"); - - cout << "name of the company is " << comp->getCString("name") << endl; - - // cannot get undefaulted properties - //cout << "unset start of the company is " << comp->getDate("startupdate").getTime() << endl; - - comp->setDate("startupdate",SDODate( 1000 )); - - cout << "set start of the company is " << comp->getDate("startupdate").getTime() << endl; - - DataObjectList& dol = comp->getList("reviewdates"); - - - dol.append(SDODate(2000)); - dol.append(SDODate(4000)); - - for (int i=0;i < dol.size(); i++) - { - cout << "Review number:" << i << " was:" << dol.getDate(i).getTime() << endl; - cout << "Formatted:" << i << " was:" << dol.getDate(i).ascTime() << endl; - } - - cs->endLogging(); - } - - catch (SDORuntimeException e) - { - cout << e.getEClassName() << " in "; - cout << e.getFileName() << " at line "; - cout << e.getLineNumber() << endl; - cout << e.getFunctionName() << " "; - cout << e.getMessageText() << endl; - } - -} - -void sdotest::matttest1() -{ - - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","root"); - mdg->addType("myspace","company"); - mdg->addType("myspace","department"); - mdg->addType("myspace","employee"); - - mdg->addPropertyToType("myspace","root","cs", - "commonj.sdo","ChangeSummary", false, false, false); - - mdg->addPropertyToType("myspace","company","name", - "commonj.sdo","String", false, false, false); - - - mdg->addPropertyToType("myspace","department","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","employee","name", - "commonj.sdo","String", false, false, false); - - - mdg->addPropertyToType("myspace","root","companies", - "myspace","company", true, false, true); - - mdg->addPropertyToType("myspace","company","departments", - "myspace","department", true, false, true); - - mdg->addPropertyToType("myspace","company","eotm", - "myspace","employee", false, false, false); - - mdg->addPropertyToType("myspace","department","employees", - "myspace","employee", true, false, true); - - const Type& troot = mdg->getType("myspace","root"); - - - DataObjectPtr root = mdg->create((Type&)troot); - - DataObjectPtr comp = root->createDataObject("companies"); - - comp->setCString("name","Acme"); - - DataObjectPtr dept1 = comp->createDataObject("departments"); - - dept1->setCString("name","Shoe"); - - DataObjectPtr dept2 = comp->createDataObject("departments"); - - dept2->setCString("name","IT"); - - DataObjectPtr sue = dept1->createDataObject("employees"); - - sue->setCString("name","Sue"); - - DataObjectPtr billy = dept2->createDataObject("employees"); - - billy->setCString("name","Billy"); - - // Want to swap Sue and Billy so, while holding them in variables, should be - //able to unset from department then reinsert - - // method 1 - clear the lists... - dept1->unset("employees"); - dept2->unset("employees"); - - DataObjectPtr cont = billy->getContainer(); - - if (cont != 0) - { - cout << "Container of Billy should be zero, but is :" << cont->getCString("name") << endl; - } - else { - cout << "OK, - Billy is not contained." << endl; - } - - DataObjectList& li1 = dept1->getList("employees"); - DataObjectList& li2 = dept2->getList("employees"); - li1.append(billy); - li2.append(sue); - - DataObjectPtr cont2 = billy->getContainer(); - - if (cont2 != 0) - { - cout << "Container of Billy should be dept1, and is :" << cont2->getCString("name") << endl; - } - else { - cout << "Problem - Billy is not contained." << endl; - } - - li1.remove(0); - li2.remove(0); - - DataObjectPtr cont3 = billy->getContainer(); - - if (cont3 != 0) - { - cout << "Container of Billy should be zero, but is :" << cont3->getCString("name") << endl; - } - else { - cout << "OK, - Billy is not contained." << endl; - } - - - li1.append(sue); - li2.append(billy); - - DataObjectPtr cont4 = billy->getContainer(); - - if (cont4 != 0) - { - cout << "Container of Billy should be dept2, and is :" << cont4->getCString("name") << endl; - } - else { - cout << "Problem - Billy is not contained." << endl; - } - - } - catch (SDORuntimeException e) - { - cout << e.getEClassName() << " in "; - cout << e.getFileName() << " at line "; - cout << e.getLineNumber() << endl; - cout << e.getFunctionName() << " "; - cout << e.getMessageText() << endl; - } -} - -void sdotest::carotest3() -{ - // sequence new APIs - // data object list, new getLength(unsigned int) - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - // company is sequenced. - mdg->addType("myspace","Company",true,false); - - mdg->addType("myspace","Department",true,false); - // string is many - - mdg->addPropertyToType("myspace","Company","string","commonj.sdo","String", - true); - - mdg->addPropertyToType("myspace","Company","departments","myspace","Department", - true); - - mdg->addPropertyToType("myspace","Company","strings","commonj.sdo","String", - true); - - mdg->addPropertyToType("myspace","Company","integers","commonj.sdo","Integer", - true); - - - mdg->addPropertyToType("myspace","Department","name","commonj.sdo","String"); - - - const Type& tcc = mdg->getType("myspace","Company"); - - DataObjectPtr dor = mdg->create(tcc); - const Property& sprop = dor->getType().getProperty("string"); - - SequencePtr sptr = dor->getSequence(); - - printseq(sptr); - - sptr->addCString(sprop,"I am Item 1 of string"); - - printseq(sptr); - - sptr->addText("I am the first free text"); - - printseq(sptr); - - sptr->addCString(sprop,"I am Item 2 of string"); - - printseq(sptr); - - sptr->setText(1,"I am free text which has been modified"); - - printseq(sptr); - - DataObjectPtr dep1 = dor->createDataObject("departments"); - - printseq(sptr); - - dep1->setCString("name","department1"); - - printseq(sptr); - - DataObjectList& dol = dor->getList("departments"); - - unsigned int ii = dol.getLength(0); - - cout << "Length of a data object should be zero:" << ii << endl; - - DataObjectList& strl = dor->getList("strings"); - - wchar_t * buf = new wchar_t[5]; - buf[0] = 'a'; - buf[1] = 'b'; - buf[2] = 'c'; - buf[3] = 'd'; - buf[4] = 'e'; - - strl.append(buf,1); - strl.append(buf,2); - strl.append(buf,3); - strl.append(buf,4); - strl.append(buf,5); - - cout << "Element zero, length 1: " << strl.getLength(0) << endl; - cout << "Element one, length 2: " << strl.getLength(1) << endl; - cout << "Element two, length 3: " << strl.getLength(2) << endl; - cout << "Element three,length 4: " << strl.getLength(3) << endl; - cout << "Element four, length 5: " << strl.getLength(4) << endl; - - try { - cout << "Element five doesnt exist: " << strl.getLength(5); - } - catch (SDOIndexOutOfRangeException e) - { - cout << "Normal out of range exception in test" << endl; - } - - DataObjectList& numl = dor->getList("integers"); - - try { - cout << "On an empty list? " << numl.getLength(0); - } - catch (SDOIndexOutOfRangeException e) - { - cout << "Normal out of range exception in test" << endl; - } -} - - -int main (int argc, char** argv) -{ - Logger::setLogging(20); - - sdotest::b47293(); - - - sdotest::propdefaulttest(); - sdotest::graham5(); - sdotest::graham4(); - - sdotest::detachtest(); - sdotest::includetest(); - sdotest::testLoad(); - sdotest::leak(); - sdotest::twolists(); - sdotest::b46633(); - - sdotest::testUtil(); - - sdotest::clonetest(); - - sdotest::b46693(); - Logger::setLogging(0); -// sdotest::b46734(); - sdotest::notfound(); - sdotest::testErrors(); - - sdotest::b46634(); - sdotest::loadManyOpen(); - - sdotest::doctest(); - sdotest::b46617b(); - sdotest::b46617(); - sdotest::b46613(); - - sdotest::graham3(); - sdotest::graham1(); - sdotest::graham2(); - - - sdotest::merle1(); - sdotest::loadOpenNS(); - - sdotest::saveOpen(); - sdotest::loadOpen(); - sdotest::testui(); - sdotest::testOpen(); - sdotest::testSCA(); - sdotest::testabstract(); - - sdotest::testsubsload(); - sdotest::testsubs(); - sdotest::bug45933(); - sdotest::setnull(); - sdotest::bug2(); - sdotest::cssave2(); - sdotest::csload2(); - sdotest::cssave(); - sdotest::csload(); - sdotest::eqhelpertest(); - sdotest::cohelpertest(); - sdotest::datetest(); - sdotest::carotest3(); - sdotest::matttest1(); - sdotest::adddeletetest(); - sdotest::carotest2(); - sdotest::carotest(); - sdotest::setmany(); - sdotest::noncontest(); - sdotest::versiontest(); - sdotest::defaulttest(); - sdotest::nulltest(); - sdotest::usertest(); - sdotest::querytest(); - sdotest::getproptest(); - sdotest::rcptest(); - sdotest::seqtest(); - sdotest::changesummarytest(); - sdotest::conversiontest(); - sdotest::boolbug(); - sdotest::scope1(); - sdotest::scope2(); - sdotest::scope3(); - return sdotest::main(argc, argv); - /* All objects freed ? */ -return 0; -} - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.h b/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.h deleted file mode 100644 index 6f1b63de1b..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest.h +++ /dev/null @@ -1,123 +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:31 $ */ - -#include "commonj/sdo/SDO.h" -using namespace commonj::sdo; - -class sdotest { - public: - - - static void changeSummaryHeader(ChangeSummaryPtr cs); - static void changeSummaryFooter(); - static void changeSummaryChange(int level, ChangeSummaryPtr cs, DataObjectPtr dob); - static void changeSummaryDeletedObject(int indent, const char* name, ChangeSummaryPtr cs, DataObjectPtr dob); - static void changeSummaryElements(int indent, ChangeSummaryPtr cs, DataObjectPtr dob); - static void changeSummarySetting(Setting& s); - static bool changeSummaryAttributes(ChangeSummaryPtr cs, DataObjectPtr dol); - - static void b47293(); - static void propdefaulttest(); - static void showdefault(const Type& tm); - static void graham5(); - static void graham4(); - static void leak(); - static void twolists(); - static void printset(ChangeSummaryPtr cs); - static void detachtest(); - static void includetest(); - static void testLoad(); - static void b46633(); - static void clonetest(); - static void testUtil(); - static void testErrors(); - static void b46734(); - static void b46693(); - static void b46634(); - static void b46613(); - static void b46617(); - static void b46617b(); - static void doctest(); - static void notfound(); - - - static void serializeChangeSummary(ChangeSummaryPtr cs); - static void cssave(); - static void csload(); - static void cssave2(); - static void csload2(); - static void bug2(); - static void setnull(); - static void bug45933(); - static void testsubsload(); - static void testabstract(); - static void testsubs(); - static void testSCA(); - static void testOpen(); - static void saveOpen(); - static void loadOpen(); - static void testui(); - static void merle1(); - static void graham1(); - static void graham2(); - static void graham3(); - static void loadManyOpen(); - static void loadOpenNS(); - - - static void eqhelpertest(); - static void cohelpertest(); - static void datetest(); - static void matttest1(); - static void adddeletetest(); - static void carotest3(); - static void carotest2(); - static void carotest(); - static void setmany(); - static void noncontest(); - static void versiontest(); - static void defaulttest(); - static void querytest(); - static void getproptest(); - static void nulltest(); - static void usertest(); - static void rcptest(); - static void boolbug(); - static void scope1(); - static void scope2(); - static void scope3(); - static void conversiontest(); - static void changesummarytest(); - static void scenario1(); - static void scenario2(); - static void scenario3(); - static void scenario4(); - static void scenario5(); - static void printseq(SequencePtr sptr); - static void seqtest(); - static void printDataObject(DataObjectPtr dol); - static void printValue(DataObjectPtr dob, const Property& prop); - static void printList(DataObjectPtr dob, const Property& prop); - static void printOldValues(ChangeSummaryPtr cs, DataObjectPtr dob); - static void dumpchangesummary(ChangeSummaryPtr cs); - static void dumpproperties(DataObjectPtr root); - static void testGetters(DataObjectPtr dor); - static void testGetter(DataObjectPtr dor, char* str); - static int main(int argc, char** argv); -}; \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest2.cpp b/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest2.cpp deleted file mode 100644 index 9f547af4eb..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/sdotest2.cpp +++ /dev/null @@ -1,3937 +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:31 $ */ - -#include - -#pragma warning(disable:4786) - -#include -using namespace std; - -// #include "TypeImpl.h" - -#include "sdotest.h" - - - -using namespace commonj::sdo; - -void sdotest::eqhelpertest() -{ - - // copy and equality helpers - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Assembly"); - mdg->addType("myspace","SubAssembly"); - mdg->addType("myspace","Part"); - - /* Now add the properties to the types...*/ - - - const Type& tstring = mdg->getType("commonj.sdo","String"); - const Type& tint = mdg->getType("commonj.sdo","Integer"); - const Type& tassy = mdg->getType("myspace","Assembly"); - const Type& tsubassy = mdg->getType("myspace","SubAssembly"); - const Type& tpart = mdg->getType("myspace","Part"); - - - mdg->addPropertyToType(tassy,"name",tstring); - mdg->addPropertyToType(tsubassy,"name",tstring); - mdg->addPropertyToType(tpart,"name",tstring); - - mdg->addPropertyToType(tassy,"number",tint); - mdg->addPropertyToType(tsubassy,"number",tint); - mdg->addPropertyToType(tpart,"number",tint); - - mdg->addPropertyToType(tassy,"subassemblies", tsubassy,true); - mdg->addPropertyToType(tsubassy,"parts", tpart,true); - - - // assy 1 - - DataObjectPtr assy1 = mdg->create((Type&)tassy); - - DataObjectPtr subassy1 = assy1->createDataObject("subassemblies"); - DataObjectPtr subassy2 = assy1->createDataObject("subassemblies"); - - DataObjectPtr part1 = subassy1->createDataObject("parts"); - DataObjectPtr part2 = subassy1->createDataObject("parts"); - DataObjectPtr part3 = subassy1->createDataObject("parts"); - - DataObjectPtr part4 = subassy2->createDataObject("parts"); - DataObjectPtr part5 = subassy2->createDataObject("parts"); - DataObjectPtr part6 = subassy2->createDataObject("parts"); - - - assy1->setCString("name","MicroFrame"); - assy1->setInteger("number",32768); - - subassy1->setCString("name","Legs"); - subassy2->setCString("name","Body"); - subassy1->setInteger("number",1); - subassy2->setInteger("number",2); - - part1->setCString("name","Leg1"); - part2->setCString("name","Leg2"); - part3->setCString("name","Leg3"); - part1->setInteger("number",10001); - part2->setInteger("number",10002); - part3->setInteger("number",10003); - - - part4->setCString("name","MainStrut"); - part5->setCString("name","Brace1"); - part6->setCString("name","Brace2"); - part4->setInteger("number",20001); - part5->setInteger("number",20002); - part6->setInteger("number",20003); - - // assy2 - shallow equal to assy, but not deep equal - - DataObjectPtr assy2 = mdg->create((Type&)tassy); - - DataObjectPtr subassy3 = assy2->createDataObject("subassemblies"); - DataObjectPtr subassy4 = assy2->createDataObject("subassemblies"); - - DataObjectPtr part7 = subassy3->createDataObject("parts"); - DataObjectPtr part8 = subassy3->createDataObject("parts"); - DataObjectPtr part9 = subassy3->createDataObject("parts"); - - DataObjectPtr part10 = subassy4->createDataObject("parts"); - DataObjectPtr part11 = subassy4->createDataObject("parts"); - DataObjectPtr part12 = subassy4->createDataObject("parts"); - - - assy2->setCString("name","MicroFrame"); - assy2->setInteger("number",32768); - - subassy3->setCString("name","Legs"); - subassy4->setCString("name","Body"); - subassy3->setInteger("number",1); - subassy4->setInteger("number",2); - - part7->setCString("name","Leg1"); - part8->setCString("name","Leg2"); - part9->setCString("name","Leg3"); - part7->setInteger("number",10001); - part8->setInteger("number",10002); - part9->setInteger("number",10003); - - - part10->setCString("name","MainStrut"); - part11->setCString("name","Brace1"); - part12->setCString("name","OddBrace2"); - part10->setInteger("number",20001); - part11->setInteger("number",20002); - part12->setInteger("number",20003); - - if (!EqualityHelper::equalShallow(assy1, assy2)) - { - cout << "EQUALITY HELPER TEST - failure at first test" << endl; - } - else - { - cout << "Equality Helper test 1 passed" << endl; - } - if (EqualityHelper::equal(assy1, assy2)) - { - cout << "EQUALITY HELPER TEST - failure at second test" << endl; - } - else - { - cout << "Equality Helper test 2 passed" << endl; - } - - // Now alter assy2 to be deep equal... - - - part12->setCString("name","Brace2"); - - if (!EqualityHelper::equalShallow(assy1, assy2)) - { - cout << "EQUALITY HELPER TEST - failure at third test" << endl; - } - else - { - cout << "Equality Helper test 3 passed" << endl; - } - if (!EqualityHelper::equal(assy1, assy2)) - { - cout << "EQUALITY HELPER TEST - failure at fourth test" << endl; - } - else - { - cout << "Equality Helper test 4 passed" << endl; - } - - // now add a part, so its not deep equal again - DataObjectPtr part13 = subassy4->createDataObject("parts"); - - if (!EqualityHelper::equalShallow(assy1, assy2)) - { - cout << "EQUALITY HELPER TEST - failure at fifth test" << endl; - } - else - { - cout << "Equality Helper test 5 passed" << endl; - } - if (EqualityHelper::equal(assy1, assy2)) - { - cout << "EQUALITY HELPER TEST - failure at sixth test" << endl; - } - else - { - cout << "Equality Helper test 6 passed" << endl; - } - - // now remove that part again... - DataObjectList& dl = subassy4->getList("parts"); - dl.remove(3); - - // should be deep equal again... - - if (!EqualityHelper::equalShallow(assy1, assy2)) - { - cout << "EQUALITY HELPER TEST - failure at seventh test" << endl; - } - else - { - cout << "Equality Helper test 7 passed" << endl; - } - if (!EqualityHelper::equal(assy1, assy2)) - { - cout << "EQUALITY HELPER TEST - failure at eighth test" << endl; - } - else - { - cout << "Equality Helper test 8 passed" << endl; - } - // now make them not shallow equal - assy2->setInteger("number",32767); - - if (EqualityHelper::equalShallow(assy1, assy2)) - { - cout << "EQUALITY HELPER TEST - failure at nineth test" << endl; - } - else - { - cout << "Equality Helper test 9 passed" << endl; - } - if (EqualityHelper::equal(assy1, assy2)) - { - cout << "EQUALITY HELPER TEST - failure at tenth test" << endl; - } - else - { - cout << "Equality Helper test 10 passed" << endl; - } - -} - -void sdotest::cohelpertest() -{ - - // copy and equality helpers - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Assembly"); - mdg->addType("myspace","SubAssembly"); - mdg->addType("myspace","Part"); - - /* Now add the properties to the types...*/ - - - const Type& tstring = mdg->getType("commonj.sdo","String"); - const Type& tint = mdg->getType("commonj.sdo","Integer"); - const Type& tassy = mdg->getType("myspace","Assembly"); - const Type& tsubassy = mdg->getType("myspace","SubAssembly"); - const Type& tpart = mdg->getType("myspace","Part"); - - - mdg->addPropertyToType(tassy,"name",tstring); - mdg->addPropertyToType(tsubassy,"name",tstring); - mdg->addPropertyToType(tpart,"name",tstring); - - mdg->addPropertyToType(tassy,"number",tint); - mdg->addPropertyToType(tsubassy,"number",tint); - mdg->addPropertyToType(tpart,"number",tint); - - mdg->addPropertyToType(tassy,"subassemblies", tsubassy,true); - mdg->addPropertyToType(tsubassy,"parts", tpart,true); - - - // assy 1 - - DataObjectPtr assy1 = mdg->create((Type&)tassy); - - DataObjectPtr subassy1 = assy1->createDataObject("subassemblies"); - DataObjectPtr subassy2 = assy1->createDataObject("subassemblies"); - - DataObjectPtr part1 = subassy1->createDataObject("parts"); - DataObjectPtr part2 = subassy1->createDataObject("parts"); - DataObjectPtr part3 = subassy1->createDataObject("parts"); - - DataObjectPtr part4 = subassy2->createDataObject("parts"); - DataObjectPtr part5 = subassy2->createDataObject("parts"); - DataObjectPtr part6 = subassy2->createDataObject("parts"); - - - assy1->setCString("name","MicroFrame"); - assy1->setInteger("number",32768); - - subassy1->setCString("name","Legs"); - subassy2->setCString("name","Body"); - subassy1->setInteger("number",1); - subassy2->setInteger("number",2); - - part1->setCString("name","Leg1"); - part2->setCString("name","Leg2"); - part3->setCString("name","Leg3"); - part1->setInteger("number",10001); - part2->setInteger("number",10002); - part3->setInteger("number",10003); - - - part4->setCString("name","MainStrut"); - part5->setCString("name","Brace1"); - part6->setCString("name","Brace2"); - part4->setInteger("number",20001); - part5->setInteger("number",20002); - part6->setInteger("number",20003); - - // first lets shallow copy assy1: - - DataObjectPtr assy2 = CopyHelper::copyShallow(assy1); - - if (strcmp(assy2->getCString("name"),"MicroFrame")) - { - cout << "COPYHELPER shallow copy failed(1)" << endl; - } - else if (assy2->getInteger("number") != 32768) - { - cout << "COPYHELPER shallow copy 1 failed(2)" << endl; - } - else if (assy2->getList("subassemblies").size() != 0) - { - cout << "COPYHELPER shallow copy 1 failed(3)" << endl; - } - else if (assy2->getContainer() != 0) - { - cout << "COPYHELPER shallow copy failed(4)" << endl; - } - else - { - cout << "CopyHelper test1 passed" << endl; - } - - // now deep copy it - - DataObjectPtr assy3 = CopyHelper::copy(assy1); - - if (!EqualityHelper::equal(assy1, assy3)) - { - cout << "COPYHELPER deep copy failed(1)" << endl; - } - else if (assy3->getContainer() != 0) - { - cout << "COPYHELPER deep copy failed(2)" << endl; - } - else - { - cout << "CopyHelper test 2 passed" << endl; - } - -} - - -///////////////////////////////////////////////////////////////////////////// -///test code for serialization........... -///////////////////////////////////////////////////////////////////////////// -// -//bool sdotest::serializeOldSingleValues(int indent, ChangeSummaryPtr cs, DataObjectPtr dol) -//{ -// bool onlySingle = true; -// SettingList& sl = cs->getOldValues(dol); -// if (sl.size() == 0) -// { -// return onlySingle; -// } -// -// for (int k=0;kisDeleted(dob)) -// { -// cout << "\"" << cs->getOldXpath(dob) << "\""; -// } -// else -// { -// cout << "\"" << dob->objectToXPath() << "\""; -// } -// } -// } -// break; -// default: -// { -// } -// break; -// } -// } -// return onlySingle; -//} -// -// -// -// -//void sdotest::serializeOldManyValues(int indent, ChangeSummaryPtr cs, DataObjectPtr dol) -//{ -// SettingList& sl = cs->getOldValues(dol); -// if (sl.size() == 0) -// { -// return; -// } -// for (int j=0;j< sl.size(); j++) -// { -// if (!sl[j].getProperty().isMany()) continue; -// -// for (int k=0;kisDeleted(dob)) -// { -// // TODO -// cout << " sdo:ref=\"" << "deleted" << "\""; -// } -// else -// { -// cout << " sdo:ref=\"" << dob->objectToXPath() << "\""; -// } -// } -// } -// break; -// default: -// { -// } -// break; -// } // switch -// cout << "/>" << endl; -// } // for -//} -// -// -// -//void sdotest::serializechangesummary(ChangeSummaryPtr cs) -//{ -// changeSummaryHeader(cs); -// -// ChangedDataObjectList& cdol = cs->getChangedDataObjects(); -// -// for (i=0;i< cdol.size();i++) -// { -// if (cs->isModified(cdol[i])) -// { -// changeSummaryChange(cs,cdol[i]); -// } -// } -// -// changeSummaryFooter(); -// -//} -// -/////////////////////////////////////////////////////////////////////////////// -/////end code for serialization........... -/////////////////////////////////////////////////////////////////////////////// -// -// - - -bool sdotest::changeSummaryAttributes(ChangeSummaryPtr cs, DataObjectPtr dol) -{ - bool onlySingle = true; - SettingList& sl = cs->getOldValues(dol); - if (sl.size() == 0) - { - return onlySingle; - } - - for (int j=0;j< sl.size(); j++) - { - if (sl[j].getProperty().isMany()) - { - onlySingle = false; - continue; - } - - cout << " " << sl[j].getProperty().getName() << "=\""; - - if (sl[j].getProperty().getType().isDataType()) - { - changeSummarySetting(sl[j]); - } - else - { - DataObjectPtr dob = sl[j].getDataObjectValue(); - if (dob) - { - if (cs->isDeleted(dob)) - { - cout << cs->getOldXpath(dob); - } - else - { - cout << dob->objectToXPath(); - } - } - } - cout << "\" "; - } - return onlySingle; -} - - -void sdotest::changeSummarySetting(Setting& s) -{ - - switch (s.getProperty().getTypeEnum()) - { - case Type::BooleanType: - cout << s.getCStringValue(); - break; - case Type::ByteType: - cout << s.getByteValue(); - break; - case Type::CharacterType: - cout << s.getCharacterValue(); - break; - case Type::IntegerType: - cout << s.getIntegerValue(); - break; - case Type::ShortType: - cout << s.getShortValue(); - break; - case Type::DoubleType: - cout << s.getDoubleValue(); - break; - case Type::FloatType: - cout << s.getFloatValue(); - break; - case Type::LongType: - cout << s.getIntegerValue(); - break; - case Type::DateType: - cout << s.getDateValue().getTime(); - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::StringType: - case Type::UriType: - cout << s.getCStringValue(); - break; - case Type::BytesType: - cout << s.getCStringValue(); - break; - default: - break; - } // switch -} - - -void sdotest::changeSummaryElements(int indent, ChangeSummaryPtr cs, DataObjectPtr dob) -{ - SettingList& sl = cs->getOldValues(dob); - - if (sl.size() == 0) - { - // there are no setting for this element. - return; - } - - for (int j=0;j< sl.size(); j++) - { - // single values will have been covered by the attributes. - if (!sl[j].getProperty().isMany()) continue; - - if (sl[j].getProperty().getType().isDataType()) - { - - // indent the line - for (int k=0;k\""; - - changeSummarySetting(sl[j]); - - cout << "\"" << endl; - } // if datatype - else - { - DataObjectPtr dob2 = sl[j].getDataObjectValue(); - if (!dob2) - { - return; - } - if (cs->isDeleted(dob2)) - { - changeSummaryDeletedObject(indent,sl[j].getProperty().getName(), cs,dob2); - } - else - { - // indent the line - for (int k=0;kobjectToXPath() << "\"/>" << endl; - } - } - } // for -} - - - -void sdotest::changeSummaryDeletedObject(int indent, const char* name, ChangeSummaryPtr cs, DataObjectPtr dob) -{ - - bool elements = false; // are there any elements to process? - int ind; - - // indent the line - for (ind=0;indgetOldValues(dob); - - if (sl.size() == 0) - { - // there are no setting for this element. - cout << "/>"; - return; - } - - cout << " "; - - // print single valued datatypes as attributes - - for (int j=0;j< sl.size(); j++) - { - // single values will have been covered by the attributes. - if ( sl[j].getProperty().isMany()) - { - elements = true; - continue; - } - if (!sl[j].getProperty().getType().isDataType()) - { - elements = true; - continue; - } - - cout << sl[j].getProperty().getName() << "=\""; - - changeSummarySetting(sl[j]); - - cout << "\" "; - } // for attributes - - if (!elements) - { - cout << "/>" << endl; - return; - } - - // now we are onto the many-values, and dataobject single values. - for (int k=0;k< sl.size(); k++) - { - if ( !sl[k].getProperty().getType().isDataType()) - { - // its a dataobject type - DataObjectPtr dob2 = sl[k].getDataObjectValue(); - if (!dob2) continue; - if (!cs->isDeleted(dob2)) continue; - changeSummaryDeletedObject(indent+1,sl[k].getProperty().getName(),cs,dob2); - } - else - { - // could only be many valued data type - - for (ind=0;ind\""; - - changeSummarySetting(sl[k]); - - cout << "" << endl; - } - } // for attributes - - // indent the line - for (ind=0;ind" << endl; -} - - - -void sdotest::changeSummaryHeader(ChangeSummaryPtr cs) -{ - int i; - - ChangedDataObjectList& cdol = cs->getChangedDataObjects(); - - cout << "isLogging()) - { - cout << " logging=\"true\" "; - } - - cout << ">" << endl; - - - for (i=0;i< cdol.size();i++) - { - if (cs->isCreated(cdol[i]) && cdol.getType(i) == ChangedDataObjectList::Change) - { - cout << " "; - // TODO is there an IDREF for this created/deleted object? - DataObject* temp = cdol[i]; - cout << ((DataObject*)temp)->objectToXPath(); - cout << "" << endl; - } - if (cs->isDeleted(cdol[i]) && cdol.getType(i) == ChangedDataObjectList::Delete) - { - cout << " "; - // TODO is there an IDREF for this created/deleted object? - const char* path = cs->getOldXpath(cdol[i]); - if (path != 0) - { - cout << path; - } - cout << "" << endl; - } - } -} - -void sdotest::changeSummaryFooter() -{ - cout << "" << endl; -} - - -void sdotest::changeSummaryChange(int level, ChangeSummaryPtr cs, DataObjectPtr dob) -{ - DataObject* temp = dob; - - // indent by level. - for (int l=0;lgetContainmentProperty().getName(); - } - catch (SDORuntimeException e) - { - // the object which was changed has no name, - // so its the root object of a data object tree. - cout << "root"; - } - - cout << " "; - - try - { - cout << "sdo:ref=\"" << temp->objectToXPath() << "\" "; - } - catch (SDORuntimeException e) - { - // TODO there was no xpath - thats not good - } - - // returns true if there were only single values - attributes only. - if (changeSummaryAttributes(cs, temp)) - { - cout << "/>" << endl; - return; - } - - // there are some elements - cout << ">" << endl; - - - changeSummaryElements(level+1, cs, temp); - - - // indent by level. - - for (int m=0;mgetContainmentProperty().getName(); - } - catch (SDORuntimeException e) - { - // the object which was changed has no name, - // so its the root object of a data object tree. - cout << "root"; - } - - cout << ">" << endl; - -} - - - -void sdotest::serializeChangeSummary(ChangeSummaryPtr cs) -{ - changeSummaryHeader(cs); - - ChangedDataObjectList& cdol = cs->getChangedDataObjects(); - - for (int i=0;i< cdol.size();i++) - { - if (cs->isModified(cdol[i])) - { - changeSummaryChange(1, cs,cdol[i]); - } - } - - changeSummaryFooter(); -} - - -void sdotest::cssave() -{ - - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("company.xsd"); - - //mdg->addType("companyNS","CompanyType"); - //mdg->addType("companyNS","EmployeeType"); - //mdg->addType("companyNS","DepartmentType"); - - /* 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& 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"); - - - //mdg->addPropertyToType(tcomp,"name",tstring); - // not containment... - //mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp, false,false,false); - //mdg->addPropertyToType(tcomp,"departments",tdept, true); - //mdg->addPropertyToType(tcomp,"cs",tcs); - - //mdg->addPropertyToType(tdept,"name",tstring); - //mdg->addPropertyToType(tdept,"location",tstring); - //mdg->addPropertyToType(tdept,"number",tstring); - //mdg->addPropertyToType(tdept,"employees",temp,true); - - //mdg->addPropertyToType(temp, "name",tstring); - //mdg->addPropertyToType(temp, "SN", tstring); - //mdg->addPropertyToType(temp, "manager", tbool); - - - // create a graph, then save it - - 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); - - comp->setDataObject("employeeOfTheMonth",emp2); - - ChangeSummaryPtr cs = comp->getChangeSummary(); - - cs->beginLogging(); - - DataObjectPtr emp4 = mdg->create(temp); - emp4->setCString("name","Al Smith"); - emp4->setCString("SN","E0004"); - emp4->setBoolean("manager",true); - - // first change - create employee 4 - dol2.append(emp4); - - dol2.remove(1); // element 1 is Mary - - DataObjectPtr emp5 = mdg->create(temp); - emp5->setCString("name","Bill Withers"); - emp5->setCString("SN","E0005"); - - dol2.append(emp5); - - - comp->setCString("name","MegaCorp"); - comp->setDataObject("employeeOfTheMonth",emp4); - - // silly test - add mary back again - dol2.append(emp2); - - // and why not delete her again? - //dol2.remove(4); - - - - cs->endLogging(); - - //serializeChangeSummary(cs); - - XMLHelperPtr xmh = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr doc = xmh->createDocument(comp,"companyNS","company"); - xmh->save(doc,"cssave-output.xml"); - } - catch (SDORuntimeException e) - { - cout << "CSSAVE FAILED" << e << endl; - } -} - -void sdotest::cssave2() -{ - - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("company.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, then save it - - DataObjectPtr comp = mdg->create((Type&)tcomp); - comp->setCString("name","Eastleigh Borough Council"); - - DataObjectPtr dept = mdg->create((Type&)tdept); - DataObjectList& dol = comp->getList("departments"); - dol.append(dept); - - dept->setCString("name","Waste Disposal"); - dept->setCString("location","Botley"); - dept->setCString("number","123"); - - DataObjectPtr emp1 = mdg->create(temp); - DataObjectPtr emp2 = mdg->create(temp); - DataObjectPtr emp3 = mdg->create(temp); - DataObjectPtr emp4 = mdg->create(temp); - DataObjectPtr emp5 = mdg->create(temp); - - emp1->setCString("name","Alphonse Dodet"); - emp1->setCString("SN","E0001"); - - emp2->setCString("name","Bridget Jones"); - emp2->setCString("SN","E0002"); - emp2->setBoolean("manager",true); - - emp3->setCString("name","Colin Thorne"); - emp3->setCString("SN","E0003"); - - emp4->setCString("name","Donald Trump"); - emp4->setCString("SN","E0004"); - - emp5->setCString("name","Eddy the eagle"); - emp5->setCString("SN","E0005"); - - DataObjectList& dol2 = dept->getList("employees"); - dol2.append(emp1); - dol2.append(emp2); - dol2.append(emp3); - dol2.append(emp4); - dol2.append(emp5); - - //comp->setDataObject("employeeOfTheMonth",emp2); - - DataObjectPtr dept2 = mdg->create((Type&)tdept); - dol.append(dept2); - - dept2->setCString("name","Tax Collection"); - dept2->setCString("location","Winchester"); - dept2->setCString("number","666"); - - DataObjectPtr empb1 = mdg->create(temp); - DataObjectPtr empb2 = mdg->create(temp); - DataObjectPtr empb3 = mdg->create(temp); - DataObjectPtr empb4 = mdg->create(temp); - DataObjectPtr empb5 = mdg->create(temp); - - empb1->setCString("name","Arch Meanie"); - empb1->setCString("SN","D0001"); - - empb2->setCString("name","Boris the Spider"); - empb2->setCString("SN","D0002"); - empb2->setBoolean("manager",true); - - empb3->setCString("name","Cash Hoarder"); - empb3->setCString("SN","D0003"); - - empb4->setCString("name","Dean Giyatoss"); - empb4->setCString("SN","D0004"); - - empb5->setCString("name","Ebenezer Scrooge"); - empb5->setCString("SN","D0005"); - - DataObjectList& dol3 = dept2->getList("employees"); - dol3.append(empb1); - dol3.append(empb2); - dol3.append(empb3); - dol3.append(empb4); - dol3.append(empb5); - - ChangeSummaryPtr cs = comp->getChangeSummary(); - - cs->beginLogging(); - - // start by deleting a few employees from dept 1 - - dol2.remove(1); // B - dol2.remove(1); // C - dol2.remove(1); // D - - // Now delete the tax collectors as a whole - - dol.remove(1); - - // now perhaps add back one of the employees - - dol2.append(emp3); // C - - comp->setCString("name","MegaCorp"); - - try { - comp->setDataObject("employeeOfTheMonth",emp4); - cout << "THIS ISNT RIGHT - emp4 was nolt in the tree" << endl; - } - catch (SDORuntimeException e) - { - } - - comp->setDataObject("employeeOfTheMonth",emp5); - - cs->endLogging(); - - - XMLHelperPtr xmh = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr doc = xmh->createDocument(comp,"companyNS","company"); - xmh->save(doc,"cssave2-output.xml"); - } - catch (SDORuntimeException e) - { - cout << "CSSAVE FAILED" << e << endl; - } -} - -void sdotest::bug45933() -{ - - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - - mdg->addType("companyNS","CompanyType"); - mdg->addType("companyNS","WombatType"); - - /* 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& tcs = mdg->getType("commonj.sdo","ChangeSummary"); - const Type& tcomp = mdg->getType("companyNS","CompanyType"); - const Type& twom = mdg->getType("companyNS","WombatType"); - - - mdg->addPropertyToType(tcomp,"name",tstring); - mdg->addPropertyToType(tcomp,"bools",tbool, true); - mdg->addPropertyToType(tcomp,"woms",twom, true); - mdg->addPropertyToType(tcomp,"cs",tcs); - - - // create a graph, then save it - - DataObjectPtr comp = mdg->create((Type&)tcomp); - comp->setCString("name","Bug45933"); - - ChangeSummaryPtr cs = comp->getChangeSummary(); - - cs->beginLogging(); - - DataObjectList& dol = comp->getList("bools"); - dol.append(false); - dol.remove(0); - DataObjectPtr awom = mdg->create((Type&)twom); - DataObjectList& dol2 = comp->getList("woms"); - dol2.append(awom); - dol2.remove(0); - - cs->endLogging(); - - dumpchangesummary(cs); - - XMLHelperPtr xmh = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr doc = xmh->createDocument(comp,"companyNS","company"); - xmh->save(doc,"bug45933-output.xml"); - } - catch (SDORuntimeException e) - { - cout << "BUG45933 FAILED" << endl << e << endl; - } -} - -void sdotest::b46617() -{ - - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - //XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - //xsh->defineFile("b46617.xsd"); - mdg->addType("companyNS","CompanyType"); - mdg->addType("companyNS","DepartmentType"); - mdg->addType("companyNS","EmployeeType"); - - - - 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"); - - mdg->addPropertyToType(tcomp,"name",tstring); - mdg->addPropertyToType(tcomp,"departments",tdept,true,false,true); - mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp,false,false,false); - mdg->addPropertyToType(tcomp,"CEO",temp,false,false,true); - - mdg->addPropertyToType(tdept,"employees",temp,true,false,true); - mdg->addPropertyToType(tdept,"name",tstring,false,false,true); - mdg->addPropertyToType(tdept,"location",tstring,false,false,true); - mdg->addPropertyToType(tdept,"number",tstring,false,false,true); - - mdg->addPropertyToType(temp,"name",tstring,false,false,true); - mdg->addPropertyToType(temp,"SN",tstring,false,false,true); - mdg->addPropertyToType(temp,"manager",tbool,false,false,true); - - // create a graph, then save it - - DataObjectPtr comp = mdg->create((Type&)tcomp); - comp->setCString("name","Eastleigh Borough Council"); - - DataObjectPtr dept = mdg->create((Type&)tdept); - DataObjectList& dol = comp->getList("departments"); - dol.append(dept); - - dept->setCString("name","Waste Disposal"); - dept->setCString("location","Botley"); - dept->setCString("number","123"); - - DataObjectPtr emp1 = mdg->create(temp); - DataObjectPtr emp2 = mdg->create(temp); - DataObjectPtr emp3 = mdg->create(temp); - - emp1->setCString("name","Alphonse Dodet"); - emp1->setCString("SN","E0001"); - - emp2->setCString("name","Bridget Jones"); - emp2->setCString("SN","E0002"); - emp2->setBoolean("manager",true); - - emp3->setCString("name","Carl Marx"); - emp3->setCString("SN","E0003"); - - comp->setDataObject("CEO",emp2); - - DataObjectList& dol2 = dept->getList("employees"); - dol2.append(emp1); - //dol2.append(emp2); - dol2.append(emp3); - - comp->setDataObject("employeeOfTheMonth",emp2); - - XSDHelperPtr xmd = HelperProvider::getXSDHelper(mdg); - xmd->generateFile(mdg->getTypes(), - "b46617.xsd","companyNS"); - - - XMLHelperPtr xmh = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr doc = xmh->createDocument(comp,"companyNS","company"); - xmh->save(doc,"b46617.xml"); - - // now try loading the xml, using the same schema, and see if we get the - // same answer - - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("b46617.xml", "companyNS"); - DataObjectPtr newdob = myXMLDocument->getRootDataObject(); - - cout << "EOMS name is " - << newdob->getDataObject("employeeOfTheMonth")->getCString("name") - << endl; - - - } - catch (SDORuntimeException e) - { - cout << "b46617 failed" << e << endl; - } -} - -void sdotest::b46617b() -{ - - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("b46617b.xsd"); - - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("b46617b.xml", "companyNS"); - DataObjectPtr newdob = myXMLDocument->getRootDataObject(); - - cout << "EOMS name is " - << newdob->getDataObject("employeeOfTheMonth")->getCString("name") - << endl; - - - } - catch (SDORuntimeException e) - { - cout << "b46617b failed" << e << endl; - } -} - -void sdotest::notfound() -{ - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - try { - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("not_present.xsd"); - } - catch (SDOFileNotFoundException e) - { - cout << "NotFound threw correct exception " << endl; - } - - catch (SDORuntimeException e) - { - cout << "NOTFOUND THREW THE WRONG EXCEPTION" << e << endl; - } - - try { - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("not-present.xml", "companyNS"); - - } - catch (SDOFileNotFoundException ee) - { - cout << "NotFound threw the correct exception" << endl; - } - - catch (SDORuntimeException e) - { - cout << "NOTFOUND THREW THE WRONG EXCEPTION" << e << endl; - } -} - -void sdotest::csload() -{ - try - { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("company.xsd"); - - cout << "TYPES LOADED FROM COMPANY XSD" << endl; - - TypeList tl = mdg->getTypes(); - for (int i=0;i< tl.size(); i++) - { - cout << tl[i].getURI() << ":" << tl[i].getName() << endl; - } - - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("cssave-output.xml", "companyNS"); - //myXMLDocument->setRootElementName("company"); - //myXMLHelper->save(myXMLDocument,"csload-output.xml"); - myXMLHelper->save(myXMLDocument->getRootDataObject(), - 0, "company", "csload-output.xml"); - } - catch (SDORuntimeException e) - { - cout << "CSLOAD FAILED" << e << endl; - } - -} - -void sdotest::testsubsload() -{ - cout << "TEST: TestSubsLoad ==========================================" << endl; - try - { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("companysubs.xsd"); - - //cout << "TYPES LOADED FROM COMPANYSUBS XSD" << endl; - - //TypeList tl = mdg->getTypes(); - //for (int i=0;i< tl.size(); i++) - //{ - // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; - //} - - // so now we should be able to put book or a magazine into - // the publication under company... - - const Type& tstring = mdg->getType("commonj.sdo","String"); - const Type& tcomp = mdg->getType("companyNS","CompanyType"); - const Type& book = mdg->getType("companyNS","BookType"); - const Type& mag = mdg->getType("companyNS","MagazineType"); - const Type& pub = mdg->getType("companyNS","PublicationType"); - - - // create a graph, then save it - - DataObjectPtr comp = mdg->create((Type&)tcomp); - comp->setCString("name","Puflet Publishing"); - - - DataObjectPtr book1 = mdg->create(book); - book1->setCString("author","Mr P B Writer"); - // inherted from publication - book1->setCString("title","Nowhere Man"); - - DataObjectPtr mag1 = mdg->create(mag); - mag1->setCString("editor","Mr B Picky"); - // inherited from publication - mag1->setCString("title","Bionicle Weekly"); - - DataObjectPtr pub1 = mdg->create(pub); - pub1->setCString("title","Noddy In Toyland"); - - - // publication should accept any of them... - - comp->setDataObject("Publication",pub1); - const Type& tpub1 = comp->getDataObject("Publication")->getType(); - cout << "Publication is of type " << tpub1.getName() << endl; - - comp->setDataObject("Publication",book1); - const Type& tpub2 = comp->getDataObject("Publication")->getType(); - cout << "Publication is of type " << tpub2.getName() << endl; - - comp->setDataObject("Publication",mag1); - const Type& tpub3 = comp->getDataObject("Publication")->getType(); - cout << "Publication is of type " << tpub3.getName() << endl; - - // should be able to address publication as book or magazine - - comp->setDataObject("Book",book1); - const Type& tpub4 = comp->getDataObject("Book")->getType(); - cout << "Book is of type " << tpub4.getName() << endl; - - comp->setDataObject("Magazine",mag1); - const Type& tpub5 = comp->getDataObject("Magazine")->getType(); - cout << "Magazine is of type " << tpub5.getName() << endl; - - } - catch (SDORuntimeException e) - { - cout << "ERROR in TeseSubsLoad" << e << endl; - } - cout << "END TEST: TestSubsLoad ======================================" << endl; -} - -void sdotest::testSCA() -{ - cout << "TEST: TestSCA ==========================================" << endl; - try - { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("sca.xsd"); - - } - catch (SDORuntimeException e) - { - cout << "ERROR in TeseSCA" << e << endl; - } - cout << "END TEST: TestSCA ======================================" << endl; -} - -void sdotest::testabstract() -{ - cout << "TEST: TestAbstract ==========================================" << endl; - try - { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("companyabs.xsd"); - - //cout << "TYPES LOADED FROM COMPANYABS XSD" << endl; - - //TypeList tl = mdg->getTypes(); - //for (int i=0;i< tl.size(); i++) - //{ - // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; - //} - - // so now we should be able to put book or a magazine into - // the publication under company... - - const Type& tstring = mdg->getType("commonj.sdo","String"); - const Type& tcomp = mdg->getType("companyNS","CompanyType"); - const Type& book = mdg->getType("companyNS","BookType"); - const Type& mag = mdg->getType("companyNS","MagazineType"); - const Type& pub = mdg->getType("companyNS","PublicationType"); - - - // create a graph, then save it - - DataObjectPtr comp = mdg->create((Type&)tcomp); - comp->setCString("name","Puflet Publishing"); - - // should be allowed... - DataObjectPtr book1 = mdg->create(book); - book1->setCString("author","Mr P B Writer"); - // inherted from publication - book1->setCString("title","Nowhere Man"); - - DataObjectPtr mag1 = mdg->create(mag); - mag1->setCString("editor","Mr B Picky"); - // inherited from publication - mag1->setCString("title","Bionicle Weekly"); - - try { - DataObjectPtr pub1 = mdg->create(pub); - pub1->setCString("title","Noddy In Toyland"); - } - catch (SDOUnsupportedOperationException e) - { - cout << "Normal unsupportedoperation for creation of abstract type" << endl; - } - - - // publication should accept books and magazines... - - comp->setDataObject("Publication",book1); - const Type& tpub2 = comp->getDataObject("Publication")->getType(); - cout << "Publication is of type " << tpub2.getName() << endl; - - comp->setDataObject("Publication",mag1); - const Type& tpub3 = comp->getDataObject("Publication")->getType(); - cout << "Publication is of type " << tpub3.getName() << endl; - - // should be able to address publication as book or magazine - - comp->setDataObject("Book",book1); - const Type& tpub4 = comp->getDataObject("Book")->getType(); - cout << "Book is of type " << tpub4.getName() << endl; - - comp->setDataObject("Magazine",mag1); - const Type& tpub5 = comp->getDataObject("Magazine")->getType(); - cout << "Magazine is of type " << tpub5.getName() << endl; - - } - catch (SDORuntimeException e) - { - cout << "ERROR in TestAbstract" << e << endl; - } - cout << "END TEST: TestAbstract ======================================" << endl; -} - -void sdotest::testOpen() -{ - cout << "TEST: TestOpen ==========================================" << endl; - //try - //{ - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - - mdg->addType("companyNS","CompanyType"); - // employee will be an open type... - mdg->addType("companyNS","EmployeeType", /*seq*/false, - /*open*/true, - /*abs */ false, - /*data*/ false); - - mdg->addType("companyNS","DepartmentType"); - - /* 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& 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"); - - - mdg->addPropertyToType(tcomp,"name",tstring); - // not containment... - mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp, false,false,false); - mdg->addPropertyToType(tcomp,"departments",tdept, true); - mdg->addPropertyToType(tcomp,"cs",tcs); - - mdg->addPropertyToType(tdept,"name",tstring); - mdg->addPropertyToType(tdept,"location",tstring); - mdg->addPropertyToType(tdept,"number",tstring); - mdg->addPropertyToType(tdept,"employees",temp,true); - - mdg->addPropertyToType(temp, "name",tstring); - mdg->addPropertyToType(temp, "SN", tstring); - mdg->addPropertyToType(temp, "manager", tbool); - - - - 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","Albert"); - emp1->setCString("SN","E0001"); - - emp2->setCString("name","Boris"); - emp2->setCString("SN","E0002"); - emp2->setBoolean("manager",true); - - emp3->setCString("name","Carl"); - emp3->setCString("SN","E0003"); - - // now we should be able to add extra properties to employees, - // and get them back again... - - - emp1->setCString("openstring","Value Of Open String"); - emp1->setBoolean("openboolean",true); - - const char* c = emp1->getCString("openstring"); - - cout << "Open Type string value: " << c << endl; - - bool b = emp1->getBoolean("openboolean"); - - cout << "Open Type boolean value: " << b << endl; - - // unknown list type at present.. - DataObjectList& dl = emp1->getList("opentypelist"); - - int i = 45; - dl.append((short)i); // now the list must be primitive - - // we should now have instance properties - PropertyList pl = emp1->getType().getProperties(); - - for (i=0;igetInstanceProperties(); - - for (i=0;iunset("openstring"); - - PropertyList plk = emp1->getInstanceProperties(); - - for (i=0;iunset("openboolean"); - - dl.remove(0); // so is this list gone, or empty - I vote for still there. - - PropertyList pll = emp1->getInstanceProperties(); - for (i=0;iunset("opentypelist"); - - // now I vote for gone... - - PropertyList plm = emp1->getInstanceProperties(); - for (i=0;iaddType("companyNS","CompanyType"); - // employee will be an open type... - mdg->addType("companyNS","EmployeeType", /*seq*/false, - /*open*/true, - /*abs */ false, - /*data*/ false); - - mdg->addType("companyNS","DepartmentType"); - - mdg->addType("companyNS","OpenType"); - - /* 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& 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"); - const Type& topen = mdg->getType("companyNS","OpenType"); - - - mdg->addPropertyToType(tcomp,"name",tstring); - // not containment... - mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp, false,false,false); - mdg->addPropertyToType(tcomp,"departments",tdept, true); - mdg->addPropertyToType(tcomp,"cs",tcs); - - mdg->addPropertyToType(tdept,"name",tstring); - mdg->addPropertyToType(tdept,"location",tstring); - mdg->addPropertyToType(tdept,"number",tstring); - mdg->addPropertyToType(tdept,"employees",temp,true); - - mdg->addPropertyToType(temp, "name",tstring); - mdg->addPropertyToType(temp, "SN", tstring); - mdg->addPropertyToType(temp, "manager", tbool); - - mdg->setAlias("companyNS","CompanyType","TheFirm"); - mdg->setAlias("companyNS","CompanyType","departments","TheDepartments"); - mdg->setAlias("companyNS","CompanyType","departments","MYDepartments"); - mdg->setAlias("companyNS","CompanyType","TheBigFirm"); - - mdg->addPropertyToType(topen,"name",tstring); - - DataObjectPtr comp = mdg->create((Type&)tcomp); - comp->setCString("name","ACME"); - - DataObjectPtr dept = mdg->create((Type&)tdept); - DataObjectList& dol = comp->getList("departments"); - dol.append(dept); - - ChangeSummaryPtr cs = comp->getChangeSummary(); - - cs->beginLogging(); - - dept->setCString("name","Advanced Technologies"); - dept->setCString("location","NY"); - dept->setCString("number","123"); - - DataObjectList& emps = dept->getList("employees"); - - DataObjectPtr emp1 = mdg->create(temp); - DataObjectPtr emp2 = mdg->create(temp); - DataObjectPtr emp3 = mdg->create(temp); - - emps.append(emp1); - emps.append(emp2); - emps.append(emp3); - - emp1->setCString("name","Albert"); - emp1->setCString("SN","E0001"); - - emp2->setCString("name","Boris"); - emp2->setCString("SN","E0002"); - emp2->setBoolean("manager",true); - - emp3->setCString("name","Carl"); - emp3->setCString("SN","E0003"); - - // now we should be able to add extra properties to employees, - // and get them back again... - - - emp1->setCString("openstring","Value Of Open String"); - emp1->setBoolean("openboolean",true); - - const char* c = emp1->getCString("openstring"); - - cout << "Open Type string value: " << c << endl; - - bool b = emp1->getBoolean("openboolean"); - - cout << "Open Type boolean value: " << b << endl; - - // unknown list type at present.. - DataObjectList& dl = emp1->getList("openintlist"); - - int i = 45; - dl.append((short)i); // now the list must be primitive and short!! - - // unknown list type at present.. - DataObjectList& dl2 = emp1->getList("opendataobjectlist"); - - DataObjectPtr myopen = mdg->create("companyNS","OpenType"); - myopen->setCString("name","MyOpenName"); - dl2.append(myopen); // now the list must be of data objects - - - // now a single valued data object - should have an xsi:type - emp1->setDataObject("opendataobject", myopen); - - - cs->endLogging(); - - dumpchangesummary(cs); - - XSDHelperPtr xdh = HelperProvider::getXSDHelper(mdg); - - xdh->generateFile(mdg->getTypes(), - "saveopen-output.xsd","companyNS"); - - XMLHelperPtr xmh = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr doc = xmh->createDocument(comp,"companyNS","company"); - xmh->save(doc,"saveopen-output.xml"); - - } - catch (SDORuntimeException e) - { - cout << "ERROR in SaveOpen" << e << endl; - } - cout << "END TEST: SaveOpen ======================================" << endl; -} - -void sdotest::loadOpen() -{ - cout << "TEST: LoadOpen ==========================================" << endl; - try - { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("saveopen-output.xsd"); - - - //cout << "TYPES LOADED FROM COMPANY XSD" << endl; - //int i; - //TypeList tl = mdg->getTypes(); - //for (i=0;i< tl.size(); i++) - //{ - // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; - //} - - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - - - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("partial.xml", "companyNS"); - - - - // so, we now expect that the openboolean and openstring props will - // be of type boolean and Bytes, and the openlist will be a list of integers. - // The dataobjectlist an dataobject will be of the correct OpenType - - // we need a test for data objects, and that we are writing out xsi:type - // correctly. - DataObjectPtr comp = myXMLDocument->getRootDataObject(); - DataObjectList& dl = comp->getList("departments"); - DataObjectPtr dept = dl[0]; - DataObjectList& dl2 = dept->getList("employees"); - DataObjectPtr emp = dl2[0]; - - if (strcmp(emp->getProperty("openboolean").getType().getName(), - "Boolean")) - { - cout << "OpenLoad failure - bool property not boolean" << endl; - - } - if (emp->getBoolean("openboolean") != true) - { - cout << "OpenLoad failure - bool property not true" << endl; - } - - if (strcmp(emp->getProperty("openstring").getType().getName(), - "Bytes")) - { - cout << "OpenLoad failure - bytes property not bytes" << endl; - - } - if (strcmp(emp->getCString("openstring"),"Value Of Open String")) - { - cout << "OpenLoad failure - string value is" << - emp->getCString("openstring") << endl; - } - - - DataObjectList& dl3 = emp->getList("openintlist"); - - if (strcmp(emp->getProperty("openintlist").getType().getName(), - "Short")) - { - cout << "OpenLoad failure - IntegerList not Short " << - emp->getProperty("openintlist").getType().getName() << endl; - } - - if (dl3.getInteger(0) != 45) - { - cout << "OpenLoad failure - Integer value is" << - dl.getInteger(0) << endl; - } - - if (strcmp(emp->getProperty("opendataobjectlist").getType().getName(), - "OpenType")) - { - cout << "OpenLoad failure - OpenTypeList not OpenType" << endl; - } - - DataObjectList& dl4 = emp->getList("opendataobjectlist"); - - if (strcmp(dl4[0]->getCString("name"),"MyOpenName")) - { - cout << "OpenLoad failure - list element name is " << - dl4[0]->getCString("name") << endl; - } - - if (strcmp(emp->getProperty("opendataobject").getType().getName(), - "OpenType")) - { - cout << "OpenLoad failure - OpenType not OpenType" << endl; - } - - DataObjectPtr dob2 = emp->getDataObject("opendataobject"); - - if (strcmp(dob2->getCString("name"),"MyOpenName")) - { - cout << "OpenLoad failure - open value name is " << - dob2->getCString("name") << endl; - } - - - myXMLHelper->save(myXMLDocument->getRootDataObject(), - 0, "company", "loadload-output.xml"); - - - } - catch (SDORuntimeException e) - { - cout << "LoadOpen FAILED" << e << endl; - } - -} - -void sdotest::loadOpenNS() -{ - cout << "TEST: LoadOpenNS ==========================================" << endl; - try - { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("openloadNS.xsd"); - xsh->defineFile("openloadNS2.xsd"); - - - //cout << "TYPES LOADED FROM COMPANY XSD" << endl; - //int i; - //TypeList tl = mdg->getTypes(); - //for (i=0;i< tl.size(); i++) - //{ - // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; - //} - - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - - - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("openloadNS.xml", "companyNS"); - - - - // so, we now expect that the openboolean and openstring props will - // be of type boolean and Bytes, and the openlist will be a list of integers. - // The dataobjectlist an dataobject will be of the correct OpenType - - // we need a test for data objects, and that we are writing out xsi:type - // correctly. - DataObjectPtr comp = myXMLDocument->getRootDataObject(); - DataObjectList& dl = comp->getList("departments"); - DataObjectPtr dept = dl[0]; - DataObjectList& dl2 = dept->getList("employees"); - DataObjectPtr emp = dl2[0]; - - if (strcmp(emp->getProperty("openboolean").getType().getName(), - "Boolean")) - { - cout << "OpenLoadNS failure - bool property not boolean" << endl; - - } - if (emp->getBoolean("openboolean") != true) - { - cout << "OpenLoadNS failure - bool property not true" << endl; - } - - if (strcmp(emp->getProperty("openstring").getType().getName(), - "Bytes")) - { - cout << "OpenLoadNS failure - bytes property not bytes" << endl; - - } - if (strcmp(emp->getCString("openstring"),"Value Of Open String")) - { - cout << "OpenLoadNS failure - string value is" << - emp->getCString("openstring") << endl; - } - - - DataObjectList& dl3 = emp->getList("openintlist"); - - if (strcmp(emp->getProperty("openintlist").getType().getName(), - "Short")) - { - cout << "OpenLoadNS failure - IntegerList not Short " << - emp->getProperty("openintlist").getType().getName() << endl; - } - - if (dl3.getInteger(0) != 45) - { - cout << "OpenLoadNS failure - Integer value is" << - dl.getInteger(0) << endl; - } - - - - myXMLHelper->save(myXMLDocument->getRootDataObject(), - 0, "company", "openloadNSout.xml"); - - - // now try exactly the same, but with NS which doesnt exist - XMLDocumentPtr myXMLDocument2 = myXMLHelper->loadFile("openloadNS2.xml", "companyNS"); - - - - // so, we now expect that the openboolean and openstring props will - // be of type boolean and Bytes, and the openlist will be a list of integers. - // The dataobjectlist an dataobject will be of the correct OpenType - - // we need a test for data objects, and that we are writing out xsi:type - // correctly. - DataObjectPtr comp2 = myXMLDocument2->getRootDataObject(); - DataObjectList& dld = comp2->getList("departments"); - DataObjectPtr dept2 = dld[0]; - DataObjectList& dl22 = dept2->getList("employees"); - DataObjectPtr emp2 = dl22[0]; - - if (strcmp(emp2->getProperty("openboolean").getType().getName(), - "Bytes")) - { - cout << "OpenLoadNS2 failure - bool property not bytes" << endl; - - } - if (emp2->getBoolean("openboolean") != true) - { - cout << "OpenLoadNS2 failure - bool property not true" << endl; - } - - if (strcmp(emp2->getProperty("openstring").getType().getName(), - "Bytes")) - { - cout << "OpenLoadNS2 failure - bytes property not bytes" << endl; - - } - if (strcmp(emp2->getCString("openstring"),"Value Of Open String")) - { - cout << "OpenLoadNS failure - string value is" << - emp2->getCString("openstring") << endl; - } - - - DataObjectList& dl32 = emp2->getList("openintlist"); - - if (strcmp(emp2->getProperty("openintlist").getType().getName(), - "Bytes")) - { - cout << "OpenLoadNS2 failure - IntegerList not Bytes " << - emp2->getProperty("openintlist").getType().getName() << endl; - } - - if (dl32.getInteger(0) != 45) - { - cout << "OpenLoadNS2 failure - Integer value is" << - dl32.getInteger(0) << endl; - } - - - } - catch (SDORuntimeException e) - { - cout << "LoadOpenNS FAILED" << e << endl; - } - -} - -void sdotest::loadManyOpen() -{ - cout << "TEST: LoadManyOpen ==========================================" << endl; - try - { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("many.xsd"); - - - //cout << "TYPES LOADED FROM COMPANY XSD" << endl; - //int i; - //TypeList tl = mdg->getTypes(); - //for (i=0;i< tl.size(); i++) - //{ - // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; - //} - - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - - - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("many.xml", "companyNS"); - - - - // so, we now expect that the openboolean and openstring props will - // be of type boolean and Bytes, and the openlist will be a list of integers. - // The dataobjectlist an dataobject will be of the correct OpenType - - // we need a test for data objects, and that we are writing out xsi:type - // correctly. - DataObjectPtr comp = myXMLDocument->getRootDataObject(); - DataObjectList& dl = comp->getList("departments"); - DataObjectPtr dept = dl[0]; - DataObjectList& dl2 = dept->getList("employees"); - DataObjectPtr emp = dl2[0]; - - - DataObjectList& dl3 = emp->getList("openlist"); - - if (strcmp(emp->getProperty("openlist").getType().getName(), - "Bytes")) - { - cout << "OpenManyLoad failure - BytesList not Bytes " << - emp->getProperty("openlist").getType().getName() << endl; - } - - if (dl3.size() != 3) - { - cout << "OpenManyLoad failure - size is " << - dl3.size() << endl; - } - - for (int i=0;i< dl3.size();i++) - { - cout << "Value:" << - dl3.getCString(i) << endl; - } - - } - catch (SDORuntimeException e) - { - cout << "LoadOpen FAILED" << e << endl; - } - -} - -void sdotest::csload2() -{ - cout << "TEST: CSLoad2 ===============================================" << endl; - try - { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("company.xsd"); - - //cout << "TYPES LOADED FROM COMPANY XSD" << endl; - - //TypeList tl = mdg->getTypes(); - //for (int i=0;i< tl.size(); i++) - //{ - // cout << tl[i].getURI() << ":" << tl[i].getName() << endl; - //} - - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("cssave2-output.xml", "companyNS"); - myXMLHelper->save(myXMLDocument->getRootDataObject(), - 0, "company", "csload2-output.xml"); - XMLDocumentPtr myXMLDocument2 = myXMLHelper->loadFile("csload2-output.xml", "companyNS"); - myXMLHelper->save(myXMLDocument2->getRootDataObject(), - 0, "company", "csload3-output.xml"); - } - catch (SDORuntimeException e) - { - cout << "ERROR in CsLoad2" << e << endl; - } - cout << "END TEST: CSLoad2 ===========================================" << endl; - -} - - - -void sdotest::setnull() -{ - -// try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("NullNS","NullMainType"); - mdg->addType("NullNS","NullSubType"); - - /* Now add the properties to the types...*/ - - const Type& tstring = mdg->getType("commonj.sdo","String"); - const Type& tint = mdg->getType("commonj.sdo","Integer"); - const Type& tbool = mdg->getType("commonj.sdo","Boolean"); - const Type& tcs = mdg->getType("commonj.sdo","ChangeSummary"); - const Type& tmain = mdg->getType("NullNS","NullMainType"); - const Type& tsub = mdg->getType("NullNS","NullSubType"); - - - mdg->addPropertyToType(tmain,"name",tstring); - mdg->addPropertyToType(tmain,"subs",tsub, true); // many - mdg->addPropertyToType(tmain,"asub",tsub, false); // single - mdg->addPropertyToType(tmain,"bsub",tsub, false); // single - - mdg->addPropertyToType(tmain,"cs",tcs); // change summary - - mdg->addPropertyToType(tsub,"name",tstring); - mdg->addPropertyToType(tsub,"number",tint); - mdg->addPropertyToType(tsub,"bool",tbool); - - - // create a graph, then save it - - DataObjectPtr main1 = mdg->create((Type&)tmain); - main1->setCString("name","MainObject"); - - // asub is initially set - DataObjectPtr sub0 = main1->createDataObject("asub"); - // bsub is not set. - - DataObjectPtr sub1 = mdg->create((Type&)tsub); - DataObjectPtr sub2 = mdg->create((Type&)tsub); - DataObjectPtr sub3 = mdg->create((Type&)tsub); - - DataObjectList& dol = main1->getList("subs"); - - dol.append(sub1); - dol.append(sub2); - dol.append(sub3); - - // sub1 has all values set initially - - sub1->setCString("name","All Initially set"); - sub1->setInteger("number",100); - sub1->setBoolean("bool",false); - - // sub2 has no values set at all - - - // sub3 has all values set to null - sub3->setNull("name"); - sub3->setNull("number"); - sub3->setNull("bool"); - - - // report - - cout << "is ASUB null? (0 expected) " << - main1->isNull("asub") << endl; - - cout << "is ASUB set? (1 expected) " << - main1->isSet("asub") << endl; - - cout << "is BSUB null? (0 expected) " << - main1->isNull("bsub") << endl; - - cout << "is BSUB set? (0 expected) " << - main1->isSet("bsub") << endl; - -// dol0 is set, not null - - cout << "dol[0] name is null? (0 expected) " << - dol[0]->isNull("name") << endl; - - cout << "dol[0] number is null? (0 expected) " << - dol[0]->isNull("number") << endl; - - cout << "dol[0] bool is null? (0 expected) " << - dol[0]->isNull("bool") << endl; - - cout << "dol[0] name is set? (1 expected) " << - dol[0]->isSet("name") << endl; - - cout << "dol[0] number is set? (1 expected) " << - dol[0]->isSet("number") << endl; - - cout << "dol[0] bool is set? (1 expected) " << - dol[0]->isSet("bool") << endl; - -// dol1 is all unset , so no nulls - - cout << "dol[1] name is null? (0 expected) " << - dol[1]->isNull("name") << endl; - - cout << "dol[1] number is null? (0 expected) " << - dol[1]->isNull("number") << endl; - - cout << "dol[1] bool is null? (0 expected) " << - dol[1]->isNull("bool") << endl; - - cout << "dol[1] name is set? (0 expected) " << - dol[1]->isSet("name") << endl; - - cout << "dol[1] number is set? (0 expected) " << - dol[1]->isSet("number") << endl; - - cout << "dol[1] bool is set? (0 expected) " << - dol[1]->isSet("bool") << endl; - -// dol2 is all nulls, so all set - - cout << "dol[2] name is null? (1 expected) " << - dol[2]->isNull("name") << endl; - - cout << "dol[2] number is null? (1 expected) " << - dol[2]->isNull("number") << endl; - - cout << "dol[2] bool is null? (1 expected) " << - dol[2]->isNull("bool") << endl; - - cout << "dol[2] name is set? (1 expected) " << - dol[2]->isSet("name") << endl; - - cout << "dol[2] number is set? (1 expected) " << - dol[2]->isSet("number") << endl; - - cout << "dol[2] bool is set? (1 expected) " << - dol[2]->isSet("bool") << endl; - - ChangeSummaryPtr cs = main1->getChangeSummary(); - - cs->beginLogging(); - - main1->setNull("asub"); - main1->setNull("bsub"); - - dol[0]->setNull("name"); - dol[0]->setNull("number"); - dol[0]->setNull("bool"); - - dol[1]->setNull("bool"); - - dol[2]->setCString("name","NewName"); - dol[2]->setInteger("number",100); - dol[2]->setBoolean("bool",true); - - - cs->endLogging(); - - // what would we expect from the change summary? - - cout << "==============Expected in Change Summary=================" << endl; - cout << "change to main1 - object asub set to null, oldvalue asub (set)" << endl; - cout << "change to main1 - object bsub set to null, oldvalue null (unset)" << endl; - cout << "change to sub1 - name asub set to null, oldvalue \"All Initially Set\" (set)" << endl; - cout << "change to sub1 - number asub set to null, oldvalue 100 (set)" << endl; - cout << "change to sub1 - bool asub set to null, oldvalue false (set)" << endl; - cout << "change to sub2 - bool asub set to null, oldvalue false (unset)" << endl; - cout << "change to sub3 - name asub set to \"NewName\", oldvalue null, set" << endl; - cout << "change to sub3 - number asub set to 100, oldvalue null, set" << endl; - cout << "change to sub3 - bool asub set to true, oldvalue null, set" << endl; - cout << "==============End Expected in Change Summary=============" << endl; - - - dumpchangesummary(cs); - - // report - - cout << "is ASUB null? (1 expected) " << - main1->isNull("asub") << endl; - - cout << "is ASUB set? (1 expected) " << - main1->isSet("asub") << endl; - - cout << "is BSUB null? (1 expected) " << - main1->isNull("bsub") << endl; - - cout << "is BSUB set? (1 expected) " << - main1->isSet("bsub") << endl; - -// dol0 is set to null - - cout << "dol[0] name is null? (1 expected) " << - dol[0]->isNull("name") << endl; - - cout << "dol[0] number is null? (1 expected) " << - dol[0]->isNull("number") << endl; - - cout << "dol[0] bool is null? (1 expected) " << - dol[0]->isNull("bool") << endl; - - cout << "dol[0] name is set? (1 expected) " << - dol[0]->isSet("name") << endl; - - cout << "dol[0] number is set? (1 expected) " << - dol[0]->isSet("number") << endl; - - cout << "dol[0] bool is set? (1 expected) " << - dol[0]->isSet("bool") << endl; - -// dol1 is all unset except bool which is null - - cout << "dol[1] name is null? (0 expected) " << - dol[1]->isNull("name") << endl; - - cout << "dol[1] number is null? (0 expected) " << - dol[1]->isNull("number") << endl; - - cout << "dol[1] bool is null? (1 expected) " << - dol[1]->isNull("bool") << endl; - - cout << "dol[1] name is set? (0 expected) " << - dol[1]->isSet("name") << endl; - - cout << "dol[1] number is set? (0 expected) " << - dol[1]->isSet("number") << endl; - - cout << "dol[1] bool is set? (1 expected) " << - dol[1]->isSet("bool") << endl; - -// dol2 is all set non-null, so all set - - cout << "dol[2] name is null? (0 expected) " << - dol[2]->isNull("name") << endl; - - cout << "dol[2] number is null? (0 expected) " << - dol[2]->isNull("number") << endl; - - cout << "dol[2] bool is null? (0 expected) " << - dol[2]->isNull("bool") << endl; - - cout << "dol[2] name is set? (1 expected) " << - dol[2]->isSet("name") << endl; - - cout << "dol[2] number is set? (1 expected) " << - dol[2]->isSet("number") << endl; - - cout << "dol[2] bool is set? (1 expected) " << - dol[2]->isSet("bool") << endl; - - - // what would we expect from the change summary? -// } -// catch (SDORuntimeException e) -// { -// cout << "Exception in setnull" << endl; -// cout << e; -// } - -} - -void sdotest::testsubs() -{ - - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("companyNS","MainType"); - - mdg->addType("companyNS","SubType"); - mdg->addType("companyNS","SuperType"); - mdg->addType("companyNS","SubstituteType"); - mdg->addType("companyNS","UnrelatedType"); - - /* 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& tcs = mdg->getType("commonj.sdo","ChangeSummary"); - const Type& tmain = mdg->getType("companyNS","MainType"); - const Type& sub = mdg->getType("companyNS","SubType"); - const Type& super = mdg->getType("companyNS","SuperType"); - const Type& subst = mdg->getType("companyNS","SubstituteType"); - const Type& unrel = mdg->getType("companyNS","UnrelatedType"); - - - mdg->addPropertyToType(tmain,"name",tstring); - mdg->addPropertyToType(tmain,"sub",super, false); - mdg->addPropertyToType(tmain,"subs",super, true); - - - mdg->setPropertySubstitute(tmain, "sub","wilbur", subst); - mdg->setPropertySubstitute(tmain, "subs","wilburs", subst); - - mdg->setBaseType(sub,super); - - //now sub and subs should accept all the three types - - DataObjectPtr main = mdg->create((Type&)tmain); - main->setCString("name","SubstituteTest"); - - DataObjectList& dol = main->getList("subs"); - - DataObjectPtr sub1 = mdg->create(sub); - DataObjectPtr super1 = mdg->create(super); - DataObjectPtr subst1 = mdg->create(subst); - DataObjectPtr unrel1 = mdg->create(unrel); - - dol.append(sub1); - dol.append(super1); - dol.append(subst1); - try - { - dol.append(unrel1); - } - catch (SDOInvalidConversionException e) - { - cout << "Normal failure to append wrong type" << endl; - } - - dol.remove(0); - dol.remove(0); - dol.remove(0); - - DataObjectList& dol2 = main->getList("wilburs"); - - dol2.append(sub1); - dol2.append(super1); - dol2.append(subst1); - try - { - dol2.append(unrel1); - } - catch (SDOInvalidConversionException e) - { - cout << "Normal failure to append wrong type" << endl; - } - - main->setDataObject("sub",sub1); - main->setDataObject("sub",super1); - main->setDataObject("sub",subst1); - - main->setDataObject("wilbur",sub1); - main->setDataObject("wilbur",super1); - main->setDataObject("wilbur",subst1); - - try - { - main->setDataObject("sub", unrel1); - } - catch (SDOInvalidConversionException e) - { - cout << "Normal failure to set wrong type" << endl; - } - } - - catch (SDORuntimeException e) - { - cout << "Substitute test failed" << endl << e << endl; - } -} - - -void sdotest::merle1() -{ - - try { - - // Dynamic setup of the metadata - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("axis.xsd"); - - // or dynamically create, but that would get attributes for the strings, not elements - //mdg->addType("axis","ItemSearch",true); // sequenced - //mdg->addType("axis","ItemSearchRequest",true); // sequenced - - const Type& tstring = mdg->getType("commonj.sdo","String"); - const Type& tsearch = mdg->getType("axis","ItemSearch"); - const Type& treq = mdg->getType("axis","ItemSearchRequest"); - - //mdg->addPropertyToType(tsearch,"SubscriptionId",tstring); - //mdg->addPropertyToType(tsearch,"AssociateTag",tstring); - //mdg->addPropertyToType(tsearch,"XMLEscaping",tstring); - //mdg->addPropertyToType(tsearch,"Validate",tstring); - //mdg->addPropertyToType(tsearch,"Shared",treq, false, false, true); - //mdg->addPropertyToType(tsearch,"Request",treq, true, false, true); - - //mdg->addPropertyToType(treq,"Keywords",tstring); - //mdg->addPropertyToType(treq,"SearchIndex",tstring); - - // dynamic creation of the data - - DataObjectPtr search = mdg->create((Type&)tsearch); - - search->setCString("SubscriptionId","I am the subscription ID string"); - search->setCString("AssociateTag","I am the associate Tag string"); - search->setCString("XMLEscaping","I am the XML escaping string"); - search->setCString("Validate","I am the Validate string"); - - DataObjectPtr shared = search->createDataObject("Shared"); - shared->setCString("Keywords","SharedKeywordsString"); - shared->setCString("SearchIndex","SearchIndexString"); - - DataObjectList& requests = search->getList("Request"); - DataObjectPtr request1 = mdg->create(treq); - requests.append(request1); - request1->setCString("Keywords","RequestKeywords"); - request1->setCString("SearchIndex","RequestSearchIndex"); - - // Read the data and put it into XML: - - PropertyList properties = search->getInstanceProperties(); - - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - - for (int i=0;i" << - search->getCString(prop) << "" << endl; - break; - - case Type::DataObjectType: - if (prop.isMany()) - { - // many valued property, such as Requests , so get the list - DataObjectList& rq = search->getList(prop); - for (int j=0;jcreateDocument(dob, - "axis", prop.getName()); - doc->setXMLDeclaration(false); - char* dobXML = myXMLHelper->save(doc); - cout << "DataObject \"" << prop.getName() << - "\" as XML:" << endl; - cout << dobXML << endl; - } // if dob - } // for - } // if many - else - { - DataObjectPtr dob = search->getDataObject(prop); - if (dob != 0) - { - XMLDocumentPtr doc = myXMLHelper->createDocument(dob, - "axis", prop.getName()); - doc->setXMLDeclaration(false); - char* dobXML = myXMLHelper->save(doc); - cout << "DataObject \"" << prop.getName() << - "\" as XML:" << endl; - cout << dobXML << endl; - } // if - } // else - break; - - default: - break; - - } // switch - } // for - } // try - catch (SDORuntimeException e) - { - cout << "Merle 1 failed" << endl << e << endl; - } -} - - -void sdotest::graham3() -{ - //try { - - // Dynamic setup of the metadata - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("graham3.xsd"); - //} - //catch (SDORuntimeException e) - //{ -// cout << "Graham1 failed " << e << endl; -// } -} - -void sdotest::graham1() -{ - try { - - // Dynamic setup of the metadata - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("graham1.xsd"); - } - catch (SDORuntimeException e) - { - cout << "Graham1 failed " << e << endl; - } -} -void sdotest::graham2() -{ - try { - - // Dynamic setup of the metadata - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("graham2.xsd"); - } - catch (SDORuntimeException e) - { - cout << "Graham2 failed " << e << endl; - } -} - - -void sdotest::b46613() -{ - try { - - // Dynamic setup of the metadata - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->create("rubbish","MyObject"); - - } - catch (SDOTypeNotFoundException e) - { - cout << "b46613 gave the correct exception" << endl; - } -} - -void sdotest::doctest() -{ - try { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("doctest.xsd"); - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("doctest.xml", - "companyNS"); - cout << "RootURI=" << myXMLDocument->getRootElementURI(); - cout << "RootName=" << myXMLDocument->getRootElementName(); - } - catch (SDOTypeNotFoundException e) - { - cout << "doctest failed" << endl; - } - -} - - -void sdotest::b46634() -{ - try { - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("company_with_nillable_SN.xsd"); - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("company_with_nillable_SN.xml", - "companyNS"); - - DataObjectPtr dob = myXMLDocument->getRootDataObject(); - DataObjectList& dol = dob->getList("departments"); - DataObjectPtr dept = dol[0]; - DataObjectList& dol2 = dept->getList("employees"); - DataObjectPtr emp = dol2[0]; - - if (!emp->isSet("SN")) - { - cout << "B46634 WRONG - isSet should be true" << endl; - } - if (!emp->isNull("SN")) - { - cout << "B46634 WRONG - isNull should be true" << endl; - } - - // now write out the nill value and check its still nil - myXMLHelper->save(myXMLDocument->getRootDataObject(), - 0, "company", "b46634_out.xml"); - - } - catch (SDORuntimeException e) - { - cout << "b46634 failed" << endl; - } - -} - -void sdotest::testErrors() -{ - try { - - int i,j; - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->defineFile("error1.xsd"); - if ((i = xsh->getErrorCount()) > 0) - { - cout << "XSD reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("error1.xml", - "companyNS"); - - if ((i = myXMLHelper->getErrorCount()) > 0) - { - cout << "XML reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - - } - catch (SDORuntimeException e) - { - cout << "testErrors failed" << endl << e << endl; - } - -} - -void sdotest::b46734() -{ - try { - - int i,j; - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - - xsh->defineFile("wsdl.xsd"); - if ((i = xsh->getErrorCount()) > 0) - { - cout << "WSDL XSD reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - xsh->defineFile("wsdl-soap.xsd"); - if ((i = xsh->getErrorCount()) > 0) - { - cout << "WSDL SOAP XSD reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - xsh->defineFile("wsdl-http.xsd"); - if ((i = xsh->getErrorCount()) > 0) - { - cout << "WSDL HTTP XSD reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - // xsh->defineFile("StockQuoteService.wsdl"); - // if ((i = xsh->getErrorCount()) > 0) - // { - // cout << "SQ WSDL reported some errors:" << endl; - // for (j=0;jgetErrorMessage(j); - // if (m != 0) cout << m; - // cout << endl; - // } - // } - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("StockQuoteService.wsdl" - ); - //, "http://swanandmokashi.com"); - - if ((i = myXMLHelper->getErrorCount()) > 0) - { - cout << "XML reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0)cout << m; - cout << endl; - } - } - - } - catch (SDORuntimeException e) - { - cout << "b46734 failed" << endl << e << endl; - } - -} - -void sdotest::b46693() -{ - try { - - int i,j; - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - - xsh->defineFile("b46693.xsd"); - if ((i = xsh->getErrorCount()) > 0) - { - cout << "b46693 XSD reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0)cout << m; - cout << endl; - } - } - - // XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - // XMLDocumentPtr myXMLDocument = myXMLHelper->loadFile("b46693.xsd" - // ); - - // if ((i = myXMLHelper->getErrorCount()) > 0) - // { - // cout << "b46693 reported some errors:" << endl; - // for (j=0;jgetErrorMessage(j); - // if (m != 0)cout << m; - // cout << endl; - // } - // } - - } - catch (SDORuntimeException e) - { - cout << "b46693 failed" << endl << e << endl; - } - -} - -void sdotest::clonetest() -{ - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("companyNS","CompanyType"); - mdg->addType("companyNS","DepartmentType"); - mdg->addType("companyNS","EmployeeType"); - - - 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"); - - mdg->addPropertyToType(tcomp,"name",tstring); - mdg->addPropertyToType(tcomp,"departments",tdept,true,false,true); - mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp,false,false,false); - mdg->addPropertyToType(tcomp,"CEO",temp,false,false,true); - - mdg->addPropertyToType(tdept,"employees",temp,true,false,true); - mdg->addPropertyToType(tdept,"name",tstring,false,false,true); - mdg->addPropertyToType(tdept,"location",tstring,false,false,true); - mdg->addPropertyToType(tdept,"number",tstring,false,false,true); - - mdg->addPropertyToType(temp,"name",tstring,false,false,true); - mdg->addPropertyToType(temp,"SN",tstring,false,false,true); - mdg->addPropertyToType(temp,"manager",tbool,false,false,true); - - - DataObjectPtr comp = mdg->create((Type&)tcomp); - comp->setCString("name","The Company"); - - DataObjectPtr dept = mdg->create((Type&)tdept); - - DataObjectList& dol = comp->getList("departments"); - dol.append(dept); - - dept->setCString("name","The Department"); - dept->setCString("location","Botley"); - dept->setCString("number","123"); - - - // now clone the data factory, and add more types - - DataFactoryPtr df2 = mdg->clone(); - - df2->addType("otherNS","DataSet"); - - df2->addPropertyToType("companyNS","DepartmentType","dataset", - "otherNS","DataSet", false, false, true); - - const Type& tstring2 = df2->getType("commonj.sdo","String"); - const Type& tbool2 = df2->getType("commonj.sdo","Boolean"); - const Type& tcs2 = df2->getType("commonj.sdo","ChangeSummary"); - const Type& tcomp2 = df2->getType("companyNS","CompanyType"); - const Type& tdept2 = df2->getType("companyNS","DepartmentType"); - const Type& temp2 = df2->getType("companyNS","EmployeeType"); - - DataObjectPtr comp2 = df2->create((Type&)tcomp2); - comp->setCString("name","The Company"); - - DataObjectPtr dept2 = df2->create((Type&)tdept2); - - DataObjectList& dol2 = comp2->getList("departments"); - dol2.append(dept2); - - dept2->setCString("name","The Other Department"); - dept2->setCString("location","Not Botley"); - dept2->setCString("number","321"); - } - catch (SDORuntimeException e) - { - cout << "clone failed " << e << endl; - } - - -} - -void sdotest::testUtil() -{ - try { - - cout << "START TEST: UTILS ======================================" << endl; - - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - - mdg->addType("companyNS","CompanyType"); - // employee will be an open type... - mdg->addType("companyNS","EmployeeType", /*seq*/false, - /*open*/true, - /*abs */ false, - /*data*/ false); - - mdg->addType("companyNS","DepartmentType"); - - mdg->addType("companyNS","OpenType"); - - /* 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& 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"); - const Type& topen = mdg->getType("companyNS","OpenType"); - - - mdg->addPropertyToType(tcomp,"name",tstring); - // not containment... - mdg->addPropertyToType(tcomp,"employeeOfTheMonth",temp, false,false,false); - mdg->addPropertyToType(tcomp,"departments",tdept, true); - mdg->addPropertyToType(tcomp,"cs",tcs); - - mdg->addPropertyToType(tdept,"name",tstring); - mdg->addPropertyToType(tdept,"location",tstring); - mdg->addPropertyToType(tdept,"number",tstring); - mdg->addPropertyToType(tdept,"employees",temp,true); - - mdg->addPropertyToType(temp, "name",tstring); - mdg->addPropertyToType(temp, "SN", tstring); - mdg->addPropertyToType(temp, "manager", tbool); - - mdg->addPropertyToType(topen,"name",tstring); - - 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"); - - DataObjectList& emps = dept->getList("employees"); - - DataObjectPtr emp1 = mdg->create(temp); - DataObjectPtr emp2 = mdg->create(temp); - DataObjectPtr emp3 = mdg->create(temp); - - emps.append(emp1); - emps.append(emp2); - emps.append(emp3); - - emp1->setCString("name","Albert"); - emp1->setCString("SN","E0001"); - - emp2->setCString("name","Boris"); - emp2->setCString("SN","E0002"); - emp2->setBoolean("manager",true); - - emp3->setCString("name","Carl"); - emp3->setCString("SN","E0003"); - - emp1->setCString("openstring","Value Of Open String"); - emp1->setBoolean("openboolean",true); - - const char* c = emp1->getCString("openstring"); - - bool b = emp1->getBoolean("openboolean"); - - // unknown list type at present.. - DataObjectList& dl = emp1->getList("openintlist"); - - int i = 45; - dl.append((short)i); // now the list must be primitive and short!! - - // unknown list type at present.. - DataObjectList& dl2 = emp1->getList("opendataobjectlist"); - - DataObjectPtr myopen = mdg->create("companyNS","OpenType"); - myopen->setCString("name","MyOpenName"); - dl2.append(myopen); // now the list must be of data objects - - emp1->setDataObject("opendataobject", myopen); - - SDOUtils::printDataObject(comp); - - } - catch (SDORuntimeException e) - { - cout << "ERROR in UTILS test" << e << endl; - } - cout << "END TEST: UTILS ======================================" << endl; - -} - -void sdotest::printset(ChangeSummaryPtr cs) -{ - ChangedDataObjectList& cdl = cs->getChangedDataObjects(); - - // here there should be a creation of Ed, and a change to dept, which has a - // bool previously unset, and a int list previuously unset and an employees list - // previously unset - - for (int i=0;i< cdl.size();i++) - { - if (cs->isModified(cdl[i])) - { - - cout << "A modified of type " << cdl[i]->getType().getURI() - << "#" << cdl[i]->getType().getName() << endl; - - SettingList& sl = cs->getOldValues(cdl[i]); - if (sl.size() == 0) - { - cout << "No Settings found" << endl; - } - else - { - for (int j=0;j< sl.size(); j++) - { - cout << "Property " << sl[j].getProperty().getName(); - // this could be a many-valued property, and could be one which is - // a data object or a data type... - if (sl[j].getProperty().isMany()) - { - cout << "[" << sl[j].getIndex() << "]" ; - } - if (!sl[j].isSet()) - { - cout << " was unset before the change" << endl; - } - else - { - cout << " was set before the change !!" << endl; - } - } - } - } - } -} - - -void sdotest::b46633() -{ - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Root"); - mdg->addPropertyToType("myspace","Root","cs", - "commonj.sdo","ChangeSummary", false, false, false); - - mdg->addType("myspace","Company"); - mdg->addType("myspace","Department"); - mdg->addType("myspace","Manager"); - mdg->addType("myspace","Employee"); - - - mdg->addPropertyToType("myspace","Company","name", - "commonj.sdo","String", false, false, false); - - - mdg->addPropertyToType("myspace","Root","company", - "myspace","Company", false, false, true); - - mdg->addPropertyToType("myspace","Company","departments", - "myspace","Department", true, false, true); - - - mdg->addPropertyToType("myspace","Department","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Department","ints", - "commonj.sdo","Integer", true, false, false); - - - mdg->addPropertyToType("myspace","Department","bool", - "commonj.sdo","Boolean", false, false, false); - - mdg->addPropertyToType("myspace","Department","manager", - "myspace","Manager", false, false, true); - - mdg->addPropertyToType("myspace","Department","employees", - "myspace","Employee", true, false, true); - - mdg->addPropertyToType("myspace","Manager","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Employee","name", - "commonj.sdo","String", false, false, false); - - const Type& tcc = mdg->getType("myspace","Root"); - - DataObjectPtr dor = mdg->create((Type&)tcc); - - ChangeSummaryPtr cs = dor->getChangeSummary(); - - DataObjectPtr com = dor->createDataObject("company"); - com->setCString("name","IBM"); - - DataObjectPtr dept = com->createDataObject("departments"); - dept->setCString("name","JTC"); - - // employees initally unset - - cs->beginLogging(); - - DataObjectPtr emp = dept->createDataObject("employees"); - emp->setCString("name","Ed"); - - - - DataObjectList& dl = dept->getList("ints"); - dl.append((long)400); - - dept->setBoolean("bool", true); - - printset(cs); - - cs->endLogging(); - - // unset them all , restart logging, and get the same results - - dept->unset("bool"); - dept->unset("ints"); - dept->unset("employees"); - - cs->beginLogging(); - - DataObjectPtr emp2 = dept->createDataObject("employees"); - emp2->setCString("name","Ed2"); - - dl.append((long)600); - - dept->setBoolean("bool", true); - - printset(cs); - - cs->endLogging(); - - } - catch (SDORuntimeException e) - { - cout << "b46633 failed " << e << endl; - } - -} - - - -void sdotest::testLoad() -{ - try - { - int i,j; - DataFactoryPtr mdg = DataFactory::getDataFactory(); - FILE* f = fopen("company_with_nillable_SN.xsd","r+"); - char* buffer = new char[4000]; - j = 0; - while ((i = fgetc(f)) != EOF) - { - buffer[j++] = (char)i; - } - buffer[j] = 0; - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - xsh->define(buffer); - - if ((i = xsh->getErrorCount()) > 0) - { - cout << "XSD reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - - FILE* f2 = fopen("company_with_nillable_SN.xml","r+"); - j = 0; - while ((i = fgetc(f2)) != EOF) - { - buffer[j++] = (char)i; - } - buffer[j] = 0; - - XMLHelperPtr myXMLHelper = HelperProvider::getXMLHelper(mdg); - XMLDocumentPtr myXMLDocument = myXMLHelper->load(buffer); - - } - catch (SDORuntimeException e) - { - cout << "Exception in testDAS " << e << endl; - } -} - -void sdotest::includetest() -{ - try - { - int i,j; - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - - xsh->defineFile("include.xsd"); - if ((i = xsh->getErrorCount()) > 0) - { - cout << "INCLUDE XSD reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - - xsh->defineFile("../t2/includeother.xsd"); - if ((i = xsh->getErrorCount()) > 0) - { - cout << "INCLUDE XSD reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - } - catch (SDORuntimeException e) - { - cout << "Exception in include test" << e << endl; - } -} - -void sdotest::detachtest() -{ - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Root"); - - mdg->addType("myspace","Company"); - mdg->addType("myspace","Department"); - mdg->addType("myspace","Manager"); - mdg->addType("myspace","Employee"); - - - mdg->addPropertyToType("myspace","Company","name", - "commonj.sdo","String", false, false, false); - - - mdg->addPropertyToType("myspace","Root","company", - "myspace","Company", false, false, true); - - mdg->addPropertyToType("myspace","Company","departments", - "myspace","Department", true, false, true); - - - mdg->addPropertyToType("myspace","Department","name", - "commonj.sdo","String", false, false, false); - - - mdg->addPropertyToType("myspace","Department","manager", - "myspace","Manager", false, false, true); - - mdg->addPropertyToType("myspace","Department","employees", - "myspace","Employee", true, false, true); - - mdg->addPropertyToType("myspace","Manager","name", - "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Employee","name", - "commonj.sdo","String", false, false, false); - - const Type& tcc = mdg->getType("myspace","Root"); - - DataObjectPtr dor = mdg->create((Type&)tcc); - - DataObjectPtr com = dor->createDataObject("company"); - com->setCString("name","IBM"); - - DataObjectPtr dept = com->createDataObject("departments"); - - dept->setCString("name","JTC"); - - - DataObjectPtr emp = dept->createDataObject("employees"); - emp->setCString("name","Ed"); - - DataObjectPtr emp2 = dept->createDataObject("employees"); - emp2->setCString("name","Tom"); - - DataObjectList& dol = dept->getList("employees"); - - DataObjectPtr e = dol[0]; - e->detach(); - - DataObjectPtr cont = emp->getContainer(); - - if (cont != 0) - { - cout << "EMP STILL ATTACHED - problem" << endl; - } - - DataObjectPtr cont2 = dol[0]->getContainer(); - - if (cont2 == 0) - { - cout << "SECOND DETACHED - problem" << endl; - } - - } - catch (SDORuntimeException e) - { - cout << "detach failed " << e << endl; - } - -} - - -void sdotest::leak() -{ - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Root"); - - - mdg->addPropertyToType("myspace","Root","ints", - "commonj.sdo","Integer", true, false, false); - - - const Type& tcc = mdg->getType("myspace","Root"); - - DataObjectPtr dor = mdg->create((Type&)tcc); - - - cout << "List set should be false and is " << dor->isSet("ints") << endl; - - DataObjectList& dl = dor->getList("ints"); - - cout << "List set should be false and is " << dor->isSet("ints") << endl; - - dl.append((long)400); - - cout << "List set should be true and is " << dor->isSet("ints") << endl; - - dl.remove(0); - - cout << "List set should be false and is " << dor->isSet("ints") << endl; - - dl.append((long)400); - - cout << "List set should be true and is " << dor->isSet("ints") << endl; - - dor->unset("ints"); - - cout << "List set should be false and is " << dor->isSet("ints") << endl; - - dl.append((long)600); - - cout << "List set should be true and is " << dor->isSet("ints") << endl; - - - } - catch (SDORuntimeException e) - { - cout << "leak failed " << e << endl; - } - -} - -void sdotest::twolists() -{ - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Root"); - - //mdg->addType("myspace","Company"); - //mdg->addType("myspace","Department"); - //mdg->addType("myspace","Manager"); - //mdg->addType("myspace","Employee"); - - - //mdg->addPropertyToType("myspace","Company","name", - // "commonj.sdo","String", false, false, false); - - - //mdg->addPropertyToType("myspace","Root","company", - // "myspace","Company", false, false, true); - - //mdg->addPropertyToType("myspace","Company","departments", - // "myspace","Department", true, false, true); - - - //mdg->addPropertyToType("myspace","Department","name", - // "commonj.sdo","String", false, false, false); - - mdg->addPropertyToType("myspace","Root","ints", - "commonj.sdo","Integer", true, false, false); - - mdg->addPropertyToType("myspace","Root","ints2", - "commonj.sdo","Integer", true, false, false); - - //mdg->addPropertyToType("myspace","Department","bool", - // "commonj.sdo","Boolean", false, false, false); - - //mdg->addPropertyToType("myspace","Department","manager", - // "myspace","Manager", false, false, true); - - //mdg->addPropertyToType("myspace","Department","employees", - // "myspace","Employee", true, false, true); - - //mdg->addPropertyToType("myspace","Manager","name", - // "commonj.sdo","String", false, false, false); - - //mdg->addPropertyToType("myspace","Employee","name", - // "commonj.sdo","String", false, false, false); - - const Type& tcc = mdg->getType("myspace","Root"); - - DataObjectPtr dor = mdg->create((Type&)tcc); - - //ChangeSummaryPtr cs = dor->getChangeSummary(); - - //DataObjectPtr com = dor->createDataObject("company"); - //com->setCString("name","IBM"); - - //DataObjectPtr dept = com->createDataObject("departments"); - //dept->setCString("name","JTC"); - - // employees initally unset - - //cs->beginLogging(); - - //DataObjectPtr emp = dept->createDataObject("employees"); - //emp->setCString("name","Ed"); - - DataObjectList& dl2 = dor->getList("ints2"); - dl2.append((long)400); - - - DataObjectList& dl = dor->getList("ints"); - dl.append((long)400); - - //dept->setBoolean("bool", true); - - //printset(cs); - - //cs->endLogging(); - - // unset them all , restart logging, and get the same results - - //dept->unset("bool"); - //dept->unset("ints"); - //dept->unset("employees"); - - //cs->beginLogging(); - - //DataObjectPtr emp2 = dept->createDataObject("employees"); - //emp2->setCString("name","Ed2"); - - //dl.append((long)600); - - //dept->setBoolean("bool", true); - - // printset(cs); - - //cs->endLogging(); - - } - catch (SDORuntimeException e) - { - cout << "twolists failed " << e << endl; - } - -} - - -void sdotest::graham4() -{ - try { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - mdg->addType("myspace","Root"); - mdg->addType("myspace","ListItem"); - - - mdg->addPropertyToType("myspace","ListItem","name", - "commonj.sdo","String", false, false, false); - - - mdg->addPropertyToType("myspace","Root","ints", - "commonj.sdo","Integer", true, false, false); - - mdg->addPropertyToType("myspace","Root","items", - "myspace","ListItem", true, false, true); - - - const Type& tcc = mdg->getType("myspace","Root"); - - DataObjectPtr dor = mdg->create((Type&)tcc); - - - // first try with no elements in lists - - try { - DataObjectPtr pitem = dor->getDataObject("items[name=\"hello\"]"); - } - catch (SDOIndexOutOfRangeException e) - { - cout << "Normal exception in Graham4" << endl; - } - - try { - int inty = dor->getInteger("ints[1]"); - } - catch (SDOIndexOutOfRangeException e) - { - cout << "Normal exception in Graham4" << endl; - } - - // now populate them - - DataObjectPtr myitem = dor->createDataObject("items"); - myitem->setCString("name","not hello"); - - try { - DataObjectPtr pitem2 = dor->getDataObject("items[name=\"hello\"]"); - } - catch (SDOIndexOutOfRangeException e) - { - cout << "Normal exception in Graham4" << endl; - } - - DataObjectList& dl = dor->getList("ints"); - dl.append((long)100); - - try { - int inty2 = dor->getInteger("ints[2]"); - } - catch (SDOIndexOutOfRangeException e) - { - cout << "Normal exception in Graham4" << endl; - } - - try - { - DataObjectPtr pitem2 = dor->getDataObject("items[name=\"not hello\"]"); - cout << "item name is " << pitem2->getCString("name") << endl; - } - catch (SDORuntimeException e) - { - cout << "ABNORMAL exception in Graham4" << endl; - } - - try { - int inty2 = dor->getInteger("ints[1]"); - cout << "Integer is " << inty2 << endl; - } - catch (SDOIndexOutOfRangeException e) - { - cout << "Normal exception in Graham4" << endl; - } - - } - catch (SDORuntimeException e) - { - cout << "twolists failed " << e << endl; - } - -} - - -void sdotest::graham5() -{ - try - { - int i,j; - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - - xsh->defineFile("Order.xsd"); - if ((i = xsh->getErrorCount()) > 0) - { - cout << "INCLUDE XSD reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - } - catch (SDORuntimeException r) - { - cout << "Graham5 failed " << r << endl; - } -} - - - -void sdotest::b47293() -{ - int i,j,k; - try - { - DataFactoryPtr mdg = DataFactory::getDataFactory(); - - XSDHelperPtr xsh = HelperProvider::getXSDHelper(mdg); - - xsh->defineFile("47293Catalog.xsd"); - - if ((i = xsh->getErrorCount()) > 0) - { - cout << "47293 XSD reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - - TypeList tl = mdg->getTypes(); - for ( k=0;kgenerateFile(tl,"47293Catalog-out.xsd","catalogNS"); - - DataFactoryPtr mdg2 = DataFactory::getDataFactory(); - - XSDHelperPtr xsh2 = HelperProvider::getXSDHelper(mdg2); - - xsh2->defineFile("47293Catalog-out.xsd"); - - if ((i = xsh2->getErrorCount()) > 0) - { - cout << "47293-out XSD reported some errors:" << endl; - for (j=0;jgetErrorMessage(j); - if (m != 0) cout << m; - cout << endl; - } - } - - TypeList tl2 = mdg2->getTypes(); - for (k=0;kloadFile("47293Catalog.xml", "catalog"); - - //DataObjectPtr dob = doc->getRootDataObject(); - - //xmh->save(dob,"","catalog","47293Catalog-out.xml"); - - - } - catch (SDORuntimeException e) - { - cout << "B47137 failed " << e << endl; - } -} - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/include3.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/include3.xsd deleted file mode 100644 index a74c94e318..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/include3.xsd +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother.xsd deleted file mode 100644 index 7e42346471..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother.xsd +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother1.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother1.xsd deleted file mode 100644 index 98705f6418..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother1.xsd +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother2.xsd b/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother2.xsd deleted file mode 100644 index 66dfca00a8..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/t2/includeother2.xsd +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - diff --git a/tags/cpp-stable-20060304/sdo/runtime/core/test/testopen3.xml b/tags/cpp-stable-20060304/sdo/runtime/core/test/testopen3.xml deleted file mode 100644 index 4af489c53a..0000000000 --- a/tags/cpp-stable-20060304/sdo/runtime/core/test/testopen3.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/tags/cpp-stable-20060304/sdo/sdotest.sh b/tags/cpp-stable-20060304/sdo/sdotest.sh deleted file mode 100755 index 85919dd9f3..0000000000 --- a/tags/cpp-stable-20060304/sdo/sdotest.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# 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. - -APFULLDIR=`pwd` -export SDO4CPP_HOME="$APFULLDIR" -if [ x$SDO4CPP = x ]; then -export SDO4CPP="$SDO4CPP_HOME" -fi - -echo "Using SDO installed at $SDO4CPP" - -export LD_LIBRARY_PATH=$SDO4CPP/lib:$LD_LIBRARY_PATH -cd $SDO4CPP_HOME/runtime/core/test -./tuscany_sdo_test -- cgit v1.2.3