summaryrefslogtreecommitdiffstats
path: root/cpp/das/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/das/runtime')
-rw-r--r--cpp/das/runtime/core/build.xml147
-rw-r--r--cpp/das/runtime/core/include/apache/das/Command.h60
-rw-r--r--cpp/das/runtime/core/include/apache/das/CommandPtr.h34
-rw-r--r--cpp/das/runtime/core/include/apache/das/Config.h46
-rw-r--r--cpp/das/runtime/core/include/apache/das/DAS.h55
-rw-r--r--cpp/das/runtime/core/include/apache/das/DASCommandNotFoundException.h41
-rw-r--r--cpp/das/runtime/core/include/apache/das/DASFactory.h51
-rw-r--r--cpp/das/runtime/core/include/apache/das/DASInvalidPropertyNameException.h41
-rw-r--r--cpp/das/runtime/core/include/apache/das/DASInvalidTypeNameException.h41
-rw-r--r--cpp/das/runtime/core/include/apache/das/DASNullPointerException.h41
-rw-r--r--cpp/das/runtime/core/include/apache/das/DataGraphPrinter.h53
-rw-r--r--cpp/das/runtime/core/include/apache/das/RefCountingObject.h73
-rw-r--r--cpp/das/runtime/core/include/apache/das/RefCountingPointer.h103
-rw-r--r--cpp/das/runtime/core/include/apache/das/SDODataObjectWrapper.h45
-rw-r--r--cpp/das/runtime/core/include/apache/das/StringWrapper.h60
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/ApplyChanges.h82
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/Column.h79
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/ColumnData.h67
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/CommandImpl.h57
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/ConfigImpl.h89
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/Connection.h67
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/CreatedDataObject.h55
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DASColumnNotFoundException.h43
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DASDataObject.h81
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DASFactoryImpl.h49
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DASImpl.h79
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DASInvalidColumnNameException.h43
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DASInvalidRelationshipNameException.h43
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DASInvalidSDOTypeException.h43
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DASInvalidSQLTypeException.h43
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DASInvalidTableNameException.h43
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DASOptimisticConcurrencyControlException.h43
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DASPrimaryKeyNotFoundException.h43
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/DeletedDataObject.h49
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/GraphBuilder.h59
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/GraphBuilderMetaData.h67
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/KeyPair.h60
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/ModifiedDataObject.h62
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/ODBCTypeHelper.h51
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/PKObject.h77
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/PreparedStatement.h51
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/ReadCommandImpl.h52
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/Relationship.h73
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/RelationshipStatement.h72
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/RelationshipWrapper.h58
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/ResultSet.h101
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/ResultSetMetaData.h75
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/ResultSetPtr.h38
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/SQLException.h51
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/Statement.h72
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/StatementPtr.h36
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/Table.h84
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/TableData.h66
-rw-r--r--cpp/das/runtime/core/include/apache/das/rdb/das_constants.h23
-rw-r--r--cpp/das/runtime/core/src/apache/das/Command.cpp36
-rw-r--r--cpp/das/runtime/core/src/apache/das/Config.cpp43
-rw-r--r--cpp/das/runtime/core/src/apache/das/DAS.cpp38
-rw-r--r--cpp/das/runtime/core/src/apache/das/DASCommandNotFoundException.cpp30
-rw-r--r--cpp/das/runtime/core/src/apache/das/DASFactory.cpp42
-rw-r--r--cpp/das/runtime/core/src/apache/das/DASInvalidPropertyNameException.cpp30
-rw-r--r--cpp/das/runtime/core/src/apache/das/DASInvalidTypeNameException.cpp30
-rw-r--r--cpp/das/runtime/core/src/apache/das/DASNullPointerException.cpp30
-rw-r--r--cpp/das/runtime/core/src/apache/das/DataGraphPrinter.cpp171
-rw-r--r--cpp/das/runtime/core/src/apache/das/RefCountingObject.cpp234
-rw-r--r--cpp/das/runtime/core/src/apache/das/RefCountingPointer.cpp261
-rw-r--r--cpp/das/runtime/core/src/apache/das/SDODataObjectWrapper.cpp44
-rw-r--r--cpp/das/runtime/core/src/apache/das/StringWrapper.cpp148
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/ApplyChanges.cpp568
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/Column.cpp114
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/ColumnData.cpp849
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/CommandImpl.cpp67
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/ConfigImpl.cpp334
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/Connection.cpp214
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/CreatedDataObject.cpp107
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DASColumnNotFoundException.cpp32
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DASDataObject.cpp259
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DASFactoryImpl.cpp43
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DASImpl.cpp161
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DASInvalidColumnNameException.cpp32
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DASInvalidRelationshipNameException.cpp32
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DASInvalidSDOTypeException.cpp32
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DASInvalidSQLTypeException.cpp32
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DASInvalidTableNameException.cpp32
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DASOptimisticConcurrencyControlException.cpp32
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DASPrimaryKeyNotFoundException.cpp32
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/DeteledDataObject.cpp41
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/GraphBuilder.cpp213
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/GraphBuilderMetaData.cpp302
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/KeyPair.cpp72
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/ModifiedDataObject.cpp141
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/ODBCTypeHelper.cpp108
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/PKObject.cpp168
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/PreparedStatement.cpp42
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/ReadCommandImpl.cpp47
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/Relationship.cpp206
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/RelationshipStatement.cpp128
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/RelationshipWrapper.cpp117
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/ResultSet.cpp356
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/ResultSetMetaData.cpp216
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/SQLException.cpp40
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/Statement.cpp107
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/Table.cpp236
-rw-r--r--cpp/das/runtime/core/src/apache/das/rdb/TableData.cpp98
-rw-r--r--cpp/das/runtime/test/build.xml73
-rw-r--r--cpp/das/runtime/test/rsc/testCompositeRelationship.xml35
-rw-r--r--cpp/das/runtime/test/rsc/testCreateOperation.xml41
-rw-r--r--cpp/das/runtime/test/rsc/testDeleteOperation.xml41
-rw-r--r--cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship1.xml35
-rw-r--r--cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship2.xml34
-rw-r--r--cpp/das/runtime/test/rsc/testKeyPairColumnTypeNotEqual.xml37
-rw-r--r--cpp/das/runtime/test/rsc/testManyRelationship1.xml29
-rw-r--r--cpp/das/runtime/test/rsc/testManyRelationship2.xml29
-rw-r--r--cpp/das/runtime/test/rsc/testModifyOperation.xml41
-rw-r--r--cpp/das/runtime/test/rsc/testOCC1.xml43
-rw-r--r--cpp/das/runtime/test/rsc/testOCC2.xml43
-rw-r--r--cpp/das/runtime/test/src/main.cpp843
116 files changed, 0 insertions, 11288 deletions
diff --git a/cpp/das/runtime/core/build.xml b/cpp/das/runtime/core/build.xml
deleted file mode 100644
index ae448d0628..0000000000
--- a/cpp/das/runtime/core/build.xml
+++ /dev/null
@@ -1,147 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<project name="TuscanyDASNative_core" default="all" basedir="../..">
-
- <import file="${basedir}/antscripts/system.xml"/>
- <import file="${basedir}/antscripts/compile-targets.xml"/>
-
- <!--
- Notice that the basedir for this project is set to the TuscanyDAS root dir
- This makes path setting in system.xml much simpler, but we'll just have to
- set a property here to this directory.
- -->
- <property name="this.dir" location="${basedir}/runtime/core"/>
- <property name="das.base.dir" value="apache/das"/>
-
- <property name="das.dir" location="${this.dir}/src/${das.base.dir}"/>
- <property name="das.lib.dir" location="${das.dir}/.libs"/>
-
-<path id="all.src.path">
- <pathelement location="${das.base.dir}"/>
- <pathelement location="${das.base.dir}/rdb"/>
- </path>
- <property name="all.src.path" refid="all.src.path" />
-
-
- <property name="tuscany.das.lib" value="tuscany_das"/>
-
- <!--
- Public targets
- -->
- <target name="all" description="compile, link, and install all TuscanyDASNative source code">
- <antcall target="build.das"/>
- <antcall target="install.das"/>
- </target>
-
- <target name="build" description="compile and link all TuscanyDASNative source code">
- <antcall target="build.das"/>
- <antcall target="install.das"/>
- </target>
-
- <target name="install" description="Install TuscanyDASNative libraries and headers">
- <antcall target="install.das"/>
- </target>
-
- <target name="clean" description="Clean all TuscanyDASNative core compiled source code">
- <antcall target="clean.das"/>
- </target>
-
- <!--
- Internal targets
- They can still be called, they're just not described, so wont show up in "ant -p"
- -->
-
- <!-- build -->
-
- <target name="build.das" depends="check.sdo" if="enable_sdo">
- <cpp-build
- srcdir="${das.dir}"
- outdir="${das.lib.dir}"
- outtype="static"
- outfile="${tuscany.das.lib}">
- <custom-build-elements>
-
- <includepath path="${tuscany.das.home.dir}/include"/>
- <includepath path="${iconv.home.dir}/include"/>
- <includepath path="${tuscany.sdo.home.dir}/include"/>
- <includepath path="${libxml2.include.dir}"/>
- <includepath path="${this.dir}/include"/>
-
- <libset dir="${libxml2.lib.dir}" libs="libxml2"/>
- <libset dir="${tuscany.sdo.home.dir}/lib" libs="tuscany_sdo"/>
- <libset libs="odbc32"/>
-
- </custom-build-elements>
- </cpp-build>
- <cpp-build
- srcdir="${das.dir}"
- outdir="${das.lib.dir}"
- outfile="${tuscany.das.lib}">
- <custom-build-elements>
-
- <includepath path="${tuscany.das.home.dir}/include"/>
- <includepath path="${iconv.home.dir}/include"/>
- <includepath path="${tuscany.sdo.home.dir}/include"/>
- <includepath path="${libxml2.include.dir}"/>
- <includepath path="${this.dir}/include"/>
-
- <libset dir="${libxml2.lib.dir}" libs="libxml2"/>
- <libset dir="${tuscany.sdo.home.dir}/lib" libs="tuscany_sdo"/>
- <libset libs="odbc32"/>
-
- </custom-build-elements>
- </cpp-build>
-
-</target>
-
- <!-- install -->
-
- <target name="install.das" depends="check.sdo" if="enable_sdo">
- <cpp-install-lib
- lib="${tuscany.das.lib}"
- srcdir="${das.lib.dir}"
- destrootdir="${tuscanyDAS.install.dir}"/>
- <cpp-symlink
- linkdir="${tuscanyDAS.install.dir}/lib"
- link="${lib.prefix}${tuscany.das.lib}${lib.ext}"
- resource="${lib.prefix}${tuscany.das.lib}${lib.ext}${tuscanyDAS.library.version}"/>
- <cpp-install-files
- srcdir="${this.dir}/include/${das.base.dir}"
- files="**/*.h"
- destdir="${tuscanyDAS.install.dir}/include/${das.base.dir}"/>
- </target>
-
-
- <!-- clean -->
-
- <target name="clean.das">
- <cpp-clean-files
- dir="${tuscanyDAS.install.dir}/include/${das.base.dir}"
- rmdir="true"/>
- <cpp-clean-lib
- lib="${tuscany.das.lib}"
- librootdir="${tuscanyDAS.install.dir}"/>
- <cpp-clean-files
- dir="${das.lib.dir}"
- rmdir="true"/>
- </target>
-
-
-</project>
diff --git a/cpp/das/runtime/core/include/apache/das/Command.h b/cpp/das/runtime/core/include/apache/das/Command.h
deleted file mode 100644
index f7a6645826..0000000000
--- a/cpp/das/runtime/core/include/apache/das/Command.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef COMMAND_H
-#define COMMAND_H
-
-#include "apache/das/RefCountingObject.h"
-
-#include "commonj/sdo/DataObject.h"
-
-#include <string>
-
-namespace apache {
- namespace das {
-
-class Command;
-typedef RefCountingObject<Command> CommandObject;
-
-/**
- * A Command is used to execute a read or write to a database
- */
-class Command : public CommandObject {
-
- public:
- Command(void);
- virtual ~Command(void);
-
- /**
- * Performs the function defined by the command
- */
- //void execute(void);
-
- /**
- * Performs the function defined by the command and return the results in the root DataObject
- *
- * @return the root DataObject
- */
- virtual commonj::sdo::DataObjectPtr executeQuery(void);
-
-};
-
- };
-};
-
-#endif //COMMAND_H
diff --git a/cpp/das/runtime/core/include/apache/das/CommandPtr.h b/cpp/das/runtime/core/include/apache/das/CommandPtr.h
deleted file mode 100644
index 60d4082adb..0000000000
--- a/cpp/das/runtime/core/include/apache/das/CommandPtr.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef COMMAND_PTR_H
-#define COMMAND_PTR_H
-
-#include "apache/das/RefCountingPointer.h"
-
-namespace apache {
- namespace das {
-
- class Command;
- typedef RefCountingPointer<Command> CommandPtr;
-
- };
-};
-
-#endif //COMMAND_PTR_H
diff --git a/cpp/das/runtime/core/include/apache/das/Config.h b/cpp/das/runtime/core/include/apache/das/Config.h
deleted file mode 100644
index aab771c02c..0000000000
--- a/cpp/das/runtime/core/include/apache/das/Config.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef CONFIG_H
-#define CONFIG_H
-
-#include <string>
-
-namespace apache {
- namespace das {
-
-class Config {
-
- private:
- std::string uri;
-
- public:
- Config(void);
- Config(const Config& config);
- Config(std::string xmlFile);
- virtual ~Config(void);
-
- virtual std::string getURI(void) const;
- virtual void setURI(std::string uri);
-
-};
-
- };
-};
-
-#endif //CONFIG_H
diff --git a/cpp/das/runtime/core/include/apache/das/DAS.h b/cpp/das/runtime/core/include/apache/das/DAS.h
deleted file mode 100644
index ed5269a813..0000000000
--- a/cpp/das/runtime/core/include/apache/das/DAS.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef D_A_S_H
-#define D_A_S_H
-
-#include "apache/das/DASFactory.h"
-#include "apache/das/Command.h"
-#include "apache/das/CommandPtr.h"
-
-#include "commonj/sdo/DataObject.h"
-
-namespace apache {
- namespace das {
-
-class DASFactory;
-class Config;
-
-class DAS {
-
- private:
- static DASFactory* FACTORY;
-
- public:
- static DASFactory* getFACTORY(void);
-
- DAS(void);
- virtual ~DAS(void);
-
- virtual const Config& getConfig(void) const = 0;
- virtual CommandPtr getCommand(std::string commandName);
- virtual void applyChanges(commonj::sdo::DataObjectPtr root) = 0;
-
-};
-
- };
-};
-
-#endif //D_A_S_H
diff --git a/cpp/das/runtime/core/include/apache/das/DASCommandNotFoundException.h b/cpp/das/runtime/core/include/apache/das/DASCommandNotFoundException.h
deleted file mode 100644
index 055a157167..0000000000
--- a/cpp/das/runtime/core/include/apache/das/DASCommandNotFoundException.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_COMMAND_NOT_FOUND_EXCEPTION_H
-#define DAS_COMMAND_NOT_FOUND_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
-
-class DASCommandNotFoundException : public std::exception {
-
- public:
- DASCommandNotFoundException(std::string message = "");
- virtual ~DASCommandNotFoundException(void);
-
-};
-
- };
-};
-
-#endif //DAS_COMMAND_NOT_FOUND_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/DASFactory.h b/cpp/das/runtime/core/include/apache/das/DASFactory.h
deleted file mode 100644
index e326d3f171..0000000000
--- a/cpp/das/runtime/core/include/apache/das/DASFactory.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef D_A_S_FACTORY_H
-#define D_A_S_FACTORY_H
-
-#include <windows.h>
-#include <sql.h>
-#include <string>
-
-#include "apache/das/DAS.h"
-#include "apache/das/rdb/Connection.h"
-
-namespace apache {
- namespace das {
-
-class Config;
-
-class DAS;
-
-class DASFactory {
-
- public:
- DASFactory(void);
- virtual ~DASFactory(void);
- virtual DAS* createDAS(rdb::Connection& connection);
- virtual DAS* createDAS(const Config& config, rdb::Connection& connection);
- virtual DAS* createDAS(const Config& config);
-
-
-};
-
- };
-};
-
-#endif //D_A_S_FACTORY_H
diff --git a/cpp/das/runtime/core/include/apache/das/DASInvalidPropertyNameException.h b/cpp/das/runtime/core/include/apache/das/DASInvalidPropertyNameException.h
deleted file mode 100644
index 60490301ed..0000000000
--- a/cpp/das/runtime/core/include/apache/das/DASInvalidPropertyNameException.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_INVALID_PROPERTY_NAME_EXCEPTION_H
-#define DAS_INVALID_PROPERTY_NAME_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
-
-class DASInvalidPropertyNameException : public std::exception {
-
- public:
- DASInvalidPropertyNameException(std::string message = "");
- virtual ~DASInvalidPropertyNameException(void);
-
-};
-
- };
-};
-
-#endif //DAS_INVALID_PROPERTY_NAME_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/DASInvalidTypeNameException.h b/cpp/das/runtime/core/include/apache/das/DASInvalidTypeNameException.h
deleted file mode 100644
index 06aea94a09..0000000000
--- a/cpp/das/runtime/core/include/apache/das/DASInvalidTypeNameException.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_INVALID_TYPE_NAME_EXCEPTION_H
-#define DAS_INVALID_TYPE_NAME_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
-
-class DASInvalidTypeNameException : public std::exception {
-
- public:
- DASInvalidTypeNameException(std::string message = "");
- virtual ~DASInvalidTypeNameException(void);
-
-};
-
- };
-};
-
-#endif //DAS_INVALID_TYPE_NAME_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/DASNullPointerException.h b/cpp/das/runtime/core/include/apache/das/DASNullPointerException.h
deleted file mode 100644
index ab9b0a37ea..0000000000
--- a/cpp/das/runtime/core/include/apache/das/DASNullPointerException.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_NULL_POINTER_EXCEPTION_H
-#define DAS_NULL_POINTER_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
-
-class DASNullPointerException : public std::exception {
-
- public:
- DASNullPointerException(std::string message = "");
- virtual ~DASNullPointerException(void);
-
-};
-
- };
-};
-
-#endif //DAS_NULL_POINTER_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/DataGraphPrinter.h b/cpp/das/runtime/core/include/apache/das/DataGraphPrinter.h
deleted file mode 100644
index 2c1c63c4eb..0000000000
--- a/cpp/das/runtime/core/include/apache/das/DataGraphPrinter.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef DATA_GRAPH_PRINTER_H
-#define DATA_GRAPH_PRINTER_H
-
-#include <ostream>
-
-#include "apache/das/StringWrapper.h"
-
-#include "commonj/sdo/DataObject.h"
-
-namespace apache {
- namespace das {
-
-class DataGraphPrinter {
- private:
- commonj::sdo::DataObjectPtr root;
- unsigned int tabCount;
- std::ostream* out;
-
- std::string getTab(int count) const;
- void printDataGraph(commonj::sdo::DataObjectPtr dataObject, bool ref = false);
-
- public:
- DataGraphPrinter(commonj::sdo::DataObjectPtr root);
- virtual ~DataGraphPrinter(void);
-
- virtual void print(std::ostream& out);
- virtual void printMetaData(std::ostream& out);
-
-};
-
- };
-};
-
-#endif //DATA_GRAPH_PRINTER_H
diff --git a/cpp/das/runtime/core/include/apache/das/RefCountingObject.h b/cpp/das/runtime/core/include/apache/das/RefCountingObject.h
deleted file mode 100644
index c69bcf6e34..0000000000
--- a/cpp/das/runtime/core/include/apache/das/RefCountingObject.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef REF_COUNTING_OBJECT_H
-#define REF_COUNTING_OBJECT_H
-
-#include <iostream>
-#include <list>
-
-#include "apache/das/RefCountingPointer.h"
-
-namespace apache {
- namespace das {
-
-/**
- * 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.
- */
-template <class T>
- class RefCountingObject
- {
-
- public:
- RefCountingObject();
- RefCountingObject(const RefCountingObject<T>& rc);
- T& operator=(const T& rc);
- virtual ~RefCountingObject();
-/**
- * Add to the reference count - a new pointer has been created.
- */
- void addRef(RefCountingPointer<T>* refPtr);
-/**
- * Subtract from the the reference count - a reference has dropped.
- */
- virtual void releaseRef(RefCountingPointer<T>* refPtr);
-
-/**
- * Print contents to stream
- */
- virtual std::ostream& printSelf(std::ostream &os);
-
- protected:
- virtual void free(void);
-
- private:
- bool freed;
- unsigned int refCount;
- std::list<RefCountingPointer<T>*>* refPtrs;
-
- };
-
- };
-};
-
-
-#endif //REF_COUNTING_OBJECT_H
diff --git a/cpp/das/runtime/core/include/apache/das/RefCountingPointer.h b/cpp/das/runtime/core/include/apache/das/RefCountingPointer.h
deleted file mode 100644
index 22a2ef7f08..0000000000
--- a/cpp/das/runtime/core/include/apache/das/RefCountingPointer.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef REF_COUNTING_POINTER_H
-#define REF_COUNTING_POINTER_H
-
-#include <iostream>
-
-#include "apache/das/DASNullPointerException.h"
-
-namespace apache {
- namespace das {
-
- template <class T>
-class RefCountingPointer {
-
- public:
- /*SDO_API*/ RefCountingPointer(T* realPtr = 0, bool objectOwner = true);
- RefCountingPointer(const RefCountingPointer<T>& rhs, bool objectOwner = true);
- /*SDO_API*/ RefCountingPointer(T& rhs, bool objectOwner = true);
- /*SDO_API*/ virtual ~RefCountingPointer(void);
- /*SDO_API*/ RefCountingPointer& operator=(const RefCountingPointer<T>& rhs);
-
- /*SDO_API*/ bool operator==(RefCountingPointer<T>& test) const;
- /*SDO_API*/ T* operator->() const;
- /*SDO_API*/ T& operator*() const;
- /*SDO_API*/ bool operator!() const;
- bool isObjectOwner(void) 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<otherType>()
- {
- return RefCountingPointer<otherType>(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 <class otherType>
- operator RefCountingPointer<otherType>()
- {
- return RefCountingPointer<otherType>(pointee);
- }
-
- friend std::ostream& operator<< (std::ostream &os, const RefCountingPointer<T>& ptr)
- {
- if (!ptr)
- {
- os << "NULL" << std::endl;
- }
- else
- {
- ptr->printSelf(os);
- }
-
- return os;
- }
-
- private:
- T *pointee;
- bool objectOwner;
- void init();
-
-};
-
- };
-};
-
-#endif //REF_COUNTING_POINTER_H
diff --git a/cpp/das/runtime/core/include/apache/das/SDODataObjectWrapper.h b/cpp/das/runtime/core/include/apache/das/SDODataObjectWrapper.h
deleted file mode 100644
index e3653640a7..0000000000
--- a/cpp/das/runtime/core/include/apache/das/SDODataObjectWrapper.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef SDO_DATA_OBJECT_WRAPPER_H
-#define SDO_DATA_OBJECT_WRAPPER_H
-
-#include <string>
-
-#include "commonj/sdo/DataObject.h"
-
-namespace apache {
- namespace das {
-
-class SDODataObjectWrapper {
-
- private:
- commonj::sdo::DataObjectPtr dataObject;
-
- public:
- SDODataObjectWrapper(commonj::sdo::DataObjectPtr dataObject);
- virtual ~SDODataObjectWrapper(void);
-
- std::string getString(std::string propertyName) const;
-
-};
-
- };
-};
-
-#endif //SDO_DATA_OBJECT_WRAPPER_H
diff --git a/cpp/das/runtime/core/include/apache/das/StringWrapper.h b/cpp/das/runtime/core/include/apache/das/StringWrapper.h
deleted file mode 100644
index 626f2f81e5..0000000000
--- a/cpp/das/runtime/core/include/apache/das/StringWrapper.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef STRING_WRAPPER_H
-#define STRING_WRAPPER_H
-
-#include <string>
-#include <ctype.h>
-#include <sstream>
-
-#include "commonj/sdo/DataObject.h"
-
-namespace apache {
- namespace das {
-
-class StringWrapper {
-
- private:
- std::string str;
-
- public:
- static std::string toString(const int& t);
- static std::string toString(const double& t);
- static std::string toString(const long double& t);
- static std::string toString(const float& t);
- static std::string toString(const wchar_t& t);
- static std::string toString(const long& t);
- static std::string toString(const unsigned int& t);
- static std::string toString(const unsigned char& t);
-
- StringWrapper(std::string str);
- StringWrapper(commonj::sdo::DataObjectPtr dataObject, std::string propertyName);
-
- std::string toLower(void) const;
- std::string toUpper(void) const;
- bool isValidRDBName(void) const;
- std::string getString(void) const;
- void defineOnDataObject(commonj::sdo::DataObjectPtr dataObject, std::string propertyName) const;
-
-};
-
- };
-};
-
-#endif //STRING_WRAPPER_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/ApplyChanges.h b/cpp/das/runtime/core/include/apache/das/rdb/ApplyChanges.h
deleted file mode 100644
index 88b6195315..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/ApplyChanges.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef APPLY_CHANGES_H
-#define APPLY_CHANGES_H
-
-#include <list>
-#include <string>
-
-#include "apache/das/rdb/DASImpl.h"
-#include "apache/das/rdb/ConfigImpl.h"
-#include "apache/das/rdb/Relationship.h"
-#include "apache/das/rdb/KeyPair.h"
-#include "apache/das/rdb/ModifiedDataObject.h"
-#include "apache/das/rdb/DeletedDataObject.h"
-#include "apache/das/rdb/CreatedDataObject.h"
-#include "apache/das/rdb/DASPrimaryKeyNotFoundException.h"
-
-#include "commonj/sdo/DataObject.h"
-#include "commonj/sdo/ChangeSummary.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASDataObject;
-class CreatedDataObject;
-class DeletedDataObject;
-class ConfigImpl;
-class DASImpl;
-
-class ApplyChanges {
-
- private:
- commonj::sdo::DataObjectPtr root;
- const ConfigImpl* config;
- std::map<std::string, const Relationship*> relationships;
- std::map<std::string, const Table*> tables;
- std::map<std::string, std::list<DASDataObject*>*> dasDataObjects;
- std::list<DASDataObject*> stack;
- std::list<DASDataObject*> updateOrderList;
- commonj::sdo::ChangeSummaryPtr summary;
-
- void processRootDataObject(commonj::sdo::DataObjectPtr dataObject);
- DASDataObject& processDataObject(commonj::sdo::DataObjectPtr dataObject);
- DeletedDataObject& processDeletedDataObject(commonj::sdo::DataObjectPtr dataObject);
- CreatedDataObject& processCreatedDataObject(commonj::sdo::DataObjectPtr dataObject);
- ModifiedDataObject& processModifiedDataObject(commonj::sdo::DataObjectPtr dataObject);
- DASDataObject* getDASDataObject(commonj::sdo::DataObjectPtr dataObject) const;
- void addDataObject(DASDataObject& dataObject);
- void processMetadata(commonj::sdo::DataObjectPtr dataObject);
- bool isInStack(const DASDataObject& dasDataObject);
- const Table& getTable(commonj::sdo::DataObjectPtr dataObject);
- const Relationship& getRelationship(DASDataObject& parentDataObject, DASDataObject& dataObject) const;
-
- public:
- ApplyChanges(DASImpl& das, commonj::sdo::DataObjectPtr root);
- ~ApplyChanges(void);
-
-};
-
- };
- };
-};
-
-#endif //APPLY_CHANGES_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/Column.h b/cpp/das/runtime/core/include/apache/das/rdb/Column.h
deleted file mode 100644
index f162287f25..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/Column.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef COLUMN_H
-#define COLUMN_H
-
-#include <windows.h>
-#include <sql.h>
-#include <sqlext.h>
-#include <string>
-#include <list>
-
-#include "apache/das/rdb/Table.h"
-#include "apache/das/rdb/DASInvalidColumnNameException.h"
-#include "apache/das/DASInvalidPropertyNameException.h"
-#include "apache/das/StringWrapper.h"
-#include "apache/das/rdb/das_constants.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class Table;
-
-class Column {
-
- friend class Table;
-
- private:
- bool pk;
- std::string columnName;
- std::string propertyName;
- SQLSMALLINT sqlType;
- Table* containerTable;
- bool managed;
- bool collision;
-
- void setContainerTable(Table* containerTable);
-
- public:
- Column(const Column& column);
- Column(std::string columnName, SQLSMALLINT sqlType);
- virtual ~Column(void);
-
- void setPropertyName(std::string propertyName);
- void setPK(bool pk);
- void setCollision(bool collision);
- void setManaged(bool managed);
-
- bool isPK(void) const;
- std::string getPropertyName(void) const;
- SQLSMALLINT getSQLType(void) const;
- Table* getContainerTable(void) const;
- std::string getName(void) const;
- bool isCollision(void) const;
- bool isManaged(void) const;
-
-};
-
- };
- };
-};
-
-#endif //COLUMN_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/ColumnData.h b/cpp/das/runtime/core/include/apache/das/rdb/ColumnData.h
deleted file mode 100644
index 8b25e74c19..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/ColumnData.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef COLUMN_DATA_H
-#define COLUMN_DATA_H
-
-#include <windows.h>
-#include <sql.h>
-#include <sqlext.h>
-#include <string>
-
-#include "apache/das/StringWrapper.h"
-#include "apache/das/rdb/DASInvalidSQLTypeException.h"
-#include "apache/das/rdb/Column.h"
-#include "apache/das/rdb/TableData.h"
-
-#include "commonj/sdo/Setting.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class TableData;
-
-class ColumnData {
-
- private:
- const Column* column;
- void* data;
-
- public:
- ColumnData(const Column& column, ResultSetPtr resultSet);
- ColumnData(const Column& column, const commonj::sdo::Setting& setting);
- ColumnData(const Column& column, commonj::sdo::DataObjectPtr dataObject);
- virtual ~ColumnData(void);
-
- bool operator==(const ColumnData& columnData) const;
- bool operator!=(const ColumnData& columnData) const;
- bool operator<(const ColumnData& columnData) const;
- bool operator>(const ColumnData& columnData) const;
- const Column& getColumn(void) const;
- std::string toSQL(void) const;
-
- void populateDataGraph(TableData& tableData) const;
-
-};
-
- };
- };
-};
-
-#endif //COLUMN_DATA_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/CommandImpl.h b/cpp/das/runtime/core/include/apache/das/rdb/CommandImpl.h
deleted file mode 100644
index c96af3d939..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/CommandImpl.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef COMMAND_IMPL_H
-#define COMMAND_IMPL_H
-
-#include <string>
-
-#include "apache/das/Command.h"
-#include "apache/das/rdb/Connection.h"
-
-#include "commonj/sdo/DataObject.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASImpl;
-
-class CommandImpl : public Command {
-
- protected:
- DASImpl* das;
- std::string sql;
- StatementPtr statement;
-
- public:
- CommandImpl(DASImpl& das, std::string sqlString);
- virtual ~CommandImpl(void);
- virtual commonj::sdo::DataObjectPtr executeQuery(void);
- virtual DASImpl& getDAS(void);
- virtual void close(void);
-
-};
-
- };
- };
-};
-
-#endif //COMMAND_IMPL_H
-
-
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/ConfigImpl.h b/cpp/das/runtime/core/include/apache/das/rdb/ConfigImpl.h
deleted file mode 100644
index d0805b06f2..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/ConfigImpl.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef CONFIG_IMPL_H
-#define CONFIG_IMPL_H
-
-#include <list>
-#include <map>
-
-#include "commonj/sdo/DataFactory.h"
-#include "commonj/sdo/DataFactoryImpl.h"
-#include "commonj/sdo/XSDHelper.h"
-#include "commonj/sdo/XMLHelper.h"
-#include "commonj/sdo/HelperProvider.h"
-#include "commonj/sdo/DataObject.h"
-
-#include "apache/das/Config.h"
-#include "apache/das/SDODataObjectWrapper.h"
-#include "apache/das/DASCommandNotFoundException.h"
-#include "apache/das/DAS.h"
-#include "apache/das/rdb/Table.h"
-#include "apache/das/rdb/Column.h"
-#include "apache/das/rdb/Relationship.h"
-#include "apache/das/rdb/RelationshipWrapper.h"
-#include "apache/das/DataGraphPrinter.h"
-
-class Column;
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class Table;
-
-class ConfigImpl : public ::apache::das::Config {
-
- private:
- std::map<std::string, const Relationship*>* relationships;
- std::map<std::string, const Table*>* tables;
- bool convOverConfig;
- std::map<std::string, std::string>* commands;
-
- Table& newTable(Table& table);
- Relationship& newRelationship(Relationship& relationship);
-
- public:
- ConfigImpl(void);
- ConfigImpl(const Config& config);
- ConfigImpl(std::string xmlFile);
- virtual ~ConfigImpl(void);
-
- Table& addTable(std::string tableName);
- Table& addTable(const Table& table);
- Relationship& addRelationship(std::string pkTableName, std::string fkTableName, std::string name = "");
- Relationship& addRelationship(const Relationship& relationship);
-
- const std::map<std::string, Relationship*>& getRelationships(void) const;
- const std::map<std::string, Table*>& getTables(void) const;
- const Table* getTableByTypeName(std::string typeName) const;
- std::string getCommand(std::string commandName) const;
-
- DAS& getDAS(void) const;
- bool isConvOverConfig(void) const;
-
- const Table* getTable(std::string tableName) const;
- const Relationship* getRelationship(std::string pkTableName, std::string fkTableName) const;
-
-};
-
- };
- };
-};
-
-#endif //CONFIG_IMPL_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/Connection.h b/cpp/das/runtime/core/include/apache/das/rdb/Connection.h
deleted file mode 100644
index 6507c3786e..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/Connection.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef CONNECTION_H
-#define CONNECTION_H
-
-#include <windows.h>
-#include <sql.h>
-#include <sqlext.h>
-
-#include <string>
-#include <list>
-#include <iostream>
-#include <algorithm>
-
-#include "apache/das/rdb/StatementPtr.h"
-#include "apache/das/rdb/Statement.h"
-#include "apache/das/rdb/SQLException.h"
-
-using std::string;
-using std::exception;
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class Connection {
-
- private:
- SQLHDBC connection;
- SQLHENV environment;
- std::list<StatementPtr*> statements;
-
- void setAutoCommit(bool autoCommit);
-
- public:
- Connection(string dsn, string user, string password);
- Connection(string connectString);
- virtual ~Connection(void);
- SQLHDBC getODBCConnection(void) const;
- void commit(void);
- void rollback(void);
- StatementPtr createStatement(void);
- //PreparedStatement& prepareStatement(string sql);
-
-};
-
- };
- };
-};
-
-#endif //CONNECTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/CreatedDataObject.h b/cpp/das/runtime/core/include/apache/das/rdb/CreatedDataObject.h
deleted file mode 100644
index 54ef73b729..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/CreatedDataObject.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef CREATED_DATA_OBJECT_H
-#define CREATED_DATA_OBJECT_H
-
-#include "apache/das/rdb/DASDataObject.h"
-
-#include "commonj/sdo/DataObject.h"
-#include "commonj/sdo/SettingList.h"
-#include "commonj/sdo/ChangeSummary.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ModifiedDataObject;
-
-class CreatedDataObject : public DASDataObject {
-
- private:
- std::string statement;
-
- public:
- CreatedDataObject(const Table& table, commonj::sdo::DataObjectPtr dataObject,
- commonj::sdo::ChangeSummaryPtr changeSummary);
-
- ~CreatedDataObject(void);
-
- std::string getStatement(void) const;
- void printStmt(void);
-
-};
-
- };
- };
-};
-
-#endif //CREATED_DATA_OBJECT_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DASColumnNotFoundException.h b/cpp/das/runtime/core/include/apache/das/rdb/DASColumnNotFoundException.h
deleted file mode 100644
index 9ebaebc1b9..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DASColumnNotFoundException.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_COLUMN_NOT_FOUND_EXCEPTION_H
-#define DAS_COLUMN_NOT_FOUND_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASColumnNotFoundException : public std::exception {
-
- public:
- DASColumnNotFoundException(std::string message = "");
- virtual ~DASColumnNotFoundException(void);
-
-};
-
- };
- };
-};
-
-#endif //DAS_COLUMN_NOT_FOUND_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DASDataObject.h b/cpp/das/runtime/core/include/apache/das/rdb/DASDataObject.h
deleted file mode 100644
index 39a5248f67..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DASDataObject.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef DAS_DATA_OBJECT_H
-#define DAS_DATA_OBJECT_H
-
-#include "apache/das/rdb/PKObject.h"
-//#include "apache/das/rdb/Statement.h"
-#include "apache/das/rdb/RelationshipStatement.h"
-
-#include "commonj/sdo/DataObject.h"
-#include "commonj/sdo/SettingList.h"
-#include "commonj/sdo/ChangeSummary.h"
-#include "apache/das/rdb/DASOptimisticConcurrencyControlException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ColumnData;
-class Table;
-class RelationshipStatement;
-
-class DASDataObject : public PKObject {
-
- private:
- commonj::sdo::DataObjectPtr dataObject;
- commonj::sdo::ChangeSummaryPtr changeSummary;
- std::list<std::string> updateStatements;
- std::map<std::string, RelationshipStatement*> fks;
- std::list<RelationshipStatement*> dependencies;
- bool occChecked;
-
- public:
- DASDataObject(const Table& table, commonj::sdo::DataObjectPtr dataObject,
- commonj::sdo::ChangeSummaryPtr changeSummary);
-
- ~DASDataObject(void);
-
- const commonj::sdo::DataObjectPtr getDataObject(void) const;
- std::string getWhereStmt(void) const;
- RelationshipStatement& addFK(const Relationship& relationship, const KeyDataList* keyDataList);
-
- virtual std::string getStatement(void) const;
- virtual void addDependency(RelationshipStatement& relationshipStatement);
-
- virtual void execute(StatementPtr stmt);
- virtual void printStmt(void);
-
- virtual bool isOCCChecked(void) const;
- virtual void setOCCChecked(bool occChecked);
- virtual long getOldOCC(void) const;
- virtual long getNewOCC(void) const;
-
-};
-
- };
- };
-};
-
-#include "apache/das/rdb/Table.h"
-#include "apache/das/StringWrapper.h"
-#include "apache/das/rdb/ColumnData.h"
-
-#endif //DAS_DATA_OBJECT_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DASFactoryImpl.h b/cpp/das/runtime/core/include/apache/das/rdb/DASFactoryImpl.h
deleted file mode 100644
index bed088f246..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DASFactoryImpl.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef D_A_S_FACTORY_IMPL_H
-#define D_A_S_FACTORY_IMPL_H
-
-#include <windows.h>
-#include <sql.h>
-#include <sqlext.h>
-
-#include "apache/das/DAS.h"
-#include "apache/das/rdb/DASImpl.h"
-#include "apache/das/DASFactory.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASFactoryImpl : public DASFactory {
-
- public:
- DASFactoryImpl(void);
- virtual ~DASFactoryImpl(void);
- DAS* createDAS(Connection& connection);
- DAS* createDAS(const Config& config, rdb::Connection& connection);
- DAS* createDAS(const Config& config);
-
-};
-
- };
- };
-};
-
-#endif //D_A_S_FACTORY_IMPL_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DASImpl.h b/cpp/das/runtime/core/include/apache/das/rdb/DASImpl.h
deleted file mode 100644
index 36fac709e7..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DASImpl.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef D_A_S_IMPL_H
-#define D_A_S_IMPL_H
-
-#include <windows.h>
-#include <sql.h>
-#include <map>
-#include <string>
-#include <cctype>
-#include <list>
-
-#include "apache/das/rdb/ApplyChanges.h"
-#include "apache/das/rdb/ConfigImpl.h"
-#include "apache/das/DAS.h"
-#include "apache/das/rdb/Connection.h"
-#include "apache/das/rdb/DASFactoryImpl.h"
-#include "apache/das/rdb/ReadCommandImpl.h"
-#include "apache/das/CommandPtr.h"
-
-#include "commonj/sdo/DataFactory.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ConfigImpl;
-class CommandImpl;
-class ReadCommandImpl;
-
-class DASImpl : public DAS {
-
- private:
- static DASFactory* FACTORY;
-
- Connection* connection;
- std::list<CommandPtr*>* createdCommands;
- ConfigImpl* config;
-
- public:
- static DASFactory& getFACTORY(void);
-
- DASImpl(const Config& config, Connection& inConnection);
- DASImpl(Connection& inConnection);
- DASImpl(const Config& config);
- virtual ~DASImpl(void);
-
- Connection* getConnection(void);
- void setConnection(Connection* aConnection);
- const ::apache::das::Config& getConfig(void) const;
- void releaseResources(void);
- CommandPtr createCommand(std::string sql);
- void closeConnection(void);
- void applyChanges(commonj::sdo::DataObjectPtr root);
- CommandPtr getCommand(std::string commandName);
-
-};
-
- };
- };
-};
-
-#endif //D_A_S_IMPL_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidColumnNameException.h b/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidColumnNameException.h
deleted file mode 100644
index 2052a50c27..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidColumnNameException.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_INVALID_COLUMN_NAME_EXCEPTION_H
-#define DAS_INVALID_COLUMN_NAME_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASInvalidColumnNameException : public std::exception {
-
- public:
- DASInvalidColumnNameException(std::string message = "");
- virtual ~DASInvalidColumnNameException(void);
-
-};
-
- };
- };
-};
-
-#endif //DAS_INVALID_COLUMN_NAME_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidRelationshipNameException.h b/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidRelationshipNameException.h
deleted file mode 100644
index 58276365ff..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidRelationshipNameException.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_INVALID_RELATIONSHIP_NAME_EXCEPTION_H
-#define DAS_INVALID_RELATIONSHIP_NAME_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASInvalidRelationshipNameException : public std::exception {
-
- public:
- DASInvalidRelationshipNameException(std::string = "");
- virtual ~DASInvalidRelationshipNameException(void);
-
-};
-
- };
- };
-};
-
-#endif //DAS_INVALID_RELATIONSHIP_NAME_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidSDOTypeException.h b/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidSDOTypeException.h
deleted file mode 100644
index 245184d44a..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidSDOTypeException.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_INVALID_SDO_TYPE_EXCEPTION_H
-#define DAS_INVALID_SQL_TYPE_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASInvalidSDOTypeException : public std::exception {
-
- public:
- DASInvalidSDOTypeException(std::string message = "");
- virtual ~DASInvalidSDOTypeException(void);
-
-};
-
- };
- };
-};
-
-#endif //DAS_INVALID_SDO_TYPE_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidSQLTypeException.h b/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidSQLTypeException.h
deleted file mode 100644
index cf9735bb50..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidSQLTypeException.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_INVALID_SQL_TYPE_EXCEPTION_H
-#define DAS_INVALID_SQL_TYPE_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASInvalidSQLTypeException : public std::exception {
-
- public:
- DASInvalidSQLTypeException(std::string message = "");
- virtual ~DASInvalidSQLTypeException(void);
-
-};
-
- };
- };
-};
-
-#endif //DAS_INVALID_SQL_TYPE_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidTableNameException.h b/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidTableNameException.h
deleted file mode 100644
index 14e831d7be..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DASInvalidTableNameException.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_INVALID_TABLE_NAME_EXCEPTION_H
-#define DAS_INVALID_TABLE_NAME_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASInvalidTableNameException : public std::exception {
-
- public:
- DASInvalidTableNameException(std::string message = "");
- virtual ~DASInvalidTableNameException(void);
-
-};
-
- };
- };
-};
-
-#endif //DAS_INVALID_TABLE_NAME_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DASOptimisticConcurrencyControlException.h b/cpp/das/runtime/core/include/apache/das/rdb/DASOptimisticConcurrencyControlException.h
deleted file mode 100644
index ca183d819d..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DASOptimisticConcurrencyControlException.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_OPTIMISTIC_CONCURRENCY_CONTROL_EXCEPTION_H
-#define DAS_OPTIMISTIC_CONCURRENCY_CONTROL_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASOptimisticConcurrencyControlException : public std::exception {
-
- public:
- DASOptimisticConcurrencyControlException(std::string message = "");
- virtual ~DASOptimisticConcurrencyControlException(void);
-
-};
-
- };
- };
-};
-
-#endif //DAS_OPTIMISTIC_CONCURRENCY_CONTROL_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DASPrimaryKeyNotFoundException.h b/cpp/das/runtime/core/include/apache/das/rdb/DASPrimaryKeyNotFoundException.h
deleted file mode 100644
index 779d1ca2f0..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DASPrimaryKeyNotFoundException.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef DAS_PRIMARY_KEY_NOT_FOUND_EXCEPTION_H
-#define DAS_PRIMARY_KEY_NOT_FOUND_EXCEPTION_H
-
-#include <stdexcept>
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASPrimaryKeyNotFoundException : public std::exception {
-
- public:
- DASPrimaryKeyNotFoundException(std::string message = "");
- virtual ~DASPrimaryKeyNotFoundException(void);
-
-};
-
- };
- };
-};
-
-#endif //DAS_PRIMARY_KEY_NOT_FOUND_EXCEPTION_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/DeletedDataObject.h b/cpp/das/runtime/core/include/apache/das/rdb/DeletedDataObject.h
deleted file mode 100644
index dc18d68bbc..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/DeletedDataObject.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef DELETED_DATA_OBJECT_H
-#define DELETED_DATA_OBJECT_H
-
-#include "apache/das/rdb/DASDataObject.h"
-
-#include "commonj/sdo/DataObject.h"
-#include "commonj/sdo/SettingList.h"
-#include "commonj/sdo/ChangeSummary.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ColumnData;
-
-class DeletedDataObject : public DASDataObject {
-
- public:
- DeletedDataObject(const Table& table, commonj::sdo::DataObjectPtr dataObject, commonj::sdo::ChangeSummaryPtr changeSummary);
- ~DeletedDataObject(void);
-
- std::string getStatement(void) const;
-
-};
-
- };
- };
-};
-
-#endif //DELETED_DATA_OBJECT_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/GraphBuilder.h b/cpp/das/runtime/core/include/apache/das/rdb/GraphBuilder.h
deleted file mode 100644
index 4baaf838e2..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/GraphBuilder.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef GRAPH_BUILDER_H
-#define GRAPH_BUILDER_H
-
-#include "apache/das/rdb/ResultSet.h"
-#include "apache/das/rdb/ConfigImpl.h"
-#include "apache/das/rdb/TableData.h"
-#include "apache/das/rdb/das_constants.h"
-#include "apache/das/rdb/GraphBuilderMetaData.h"
-
-#include "commonj/sdo/DataFactory.h"
-#include "commonj/sdo/DataGraphImpl.h"
-#include "commonj/sdo/DataObject.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class TableData;
-class GraphBuilderMetaData;
-
-class GraphBuilder {
- private:
- ResultSet* resultSet;
- GraphBuilderMetaData* graphBuilderMetaData;
- commonj::sdo::DataObjectPtr root;
- std::map<std::string, std::list<TableData*>*> tablesData;
-
- public:
- GraphBuilder(const ConfigImpl& config, ResultSetPtr resultSet);
- virtual ~GraphBuilder(void);
-
- commonj::sdo::DataObjectPtr GraphBuilder::getRoot(void) const;
-
-
-};
-
- };
- };
-};
-
-#endif //GRAPH_BUILDER_META_DATA_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/GraphBuilderMetaData.h b/cpp/das/runtime/core/include/apache/das/rdb/GraphBuilderMetaData.h
deleted file mode 100644
index ecc287b302..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/GraphBuilderMetaData.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef GRAPH_BUILDER_META_DATA_H
-#define GRAPH_BUILDER_META_DATA_H
-
-#include <string>
-#include <map>
-#include <list>
-
-#include "apache/das/rdb/ResultSet.h"
-#include "apache/das/rdb/Table.h"
-#include "apache/das/rdb/ConfigImpl.h"
-#include "apache/das/rdb/Relationship.h"
-#include "apache/das/rdb/KeyPair.h"
-#include "apache/das/rdb/ResultSetMetaData.h"
-#include "apache/das/rdb/das_constants.h"
-
-#include "commonj/sdo/DataFactory.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ConfigImpl;
-
-class GraphBuilderMetaData {
-
- private:
- const ResultSetMetaData* resultSetMetaData;
- std::map<std::string, Table*>* graphTables;
- std::map<std::string, Relationship*>* relationships;
- const ConfigImpl* config;
-
- public:
- GraphBuilderMetaData(const ConfigImpl& config, const ResultSetMetaData& resultSet);
- virtual ~GraphBuilderMetaData(void);
-
- const ResultSetMetaData& getResultSetMetaData(void) const;
- std::map<std::string, Table*>& getTables(void) const;
- const ConfigImpl& getConfig(void) const;
- Table* getTable(std::string tableName) const;
- std::map<std::string, Relationship*>& getRelationships(void) const;
- commonj::sdo::DataFactoryPtr createGraph(void) const;
-
-};
-
- };
- };
-};
-
-#endif //GRAPH_BUILDER_META_DATA_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/KeyPair.h b/cpp/das/runtime/core/include/apache/das/rdb/KeyPair.h
deleted file mode 100644
index 67b4f0c252..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/KeyPair.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef KEY_PAIR_H
-#define KEY_PAIR_H
-
-#include <map>
-#include <string>
-
-#include "apache/das/StringWrapper.h"
-#include "apache/das/rdb/DASInvalidColumnNameException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class Relationship;
-
-class KeyPair {
-
- friend class Relationship;
-
- private:
- std::string pkColumnName;
- std::string fkColumnName;
- Relationship* relationship;
-
- void setRelationship(Relationship* relationship);
-
- public:
- KeyPair(const KeyPair& keyPair);
- KeyPair(std::string pkColumnName, std::string fkColumnName);
- virtual ~KeyPair(void);
-
- std::string getPKColumnName(void) const;
- std::string getFKColumnName(void) const;
- Relationship* getRelationship(void) const;
-
-};
-
- };
- };
-};
-
-#endif //KEY_PAIR_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/ModifiedDataObject.h b/cpp/das/runtime/core/include/apache/das/rdb/ModifiedDataObject.h
deleted file mode 100644
index ccdd69e3f5..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/ModifiedDataObject.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef MODIFIED_DATA_OBJECT_H
-#define MODIFIED_DATA_OBJECT_H
-
-#include "apache/das/rdb/DASDataObject.h"
-//#include "apache/das/rdb/RelationshipStatement.h"
-
-#include "commonj/sdo/DataObject.h"
-#include "commonj/sdo/SettingList.h"
-#include "commonj/sdo/ChangeSummary.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ColumnData;
-class Table;
-
-class ModifiedDataObject : public DASDataObject {
-
- private:
- std::string sets;
-
- public:
- ModifiedDataObject(const Table& table, commonj::sdo::DataObjectPtr dataObject,
- commonj::sdo::ChangeSummaryPtr changeSummary);
-
- ~ModifiedDataObject(void);
-
- std::string getStatement(void) const;
- //bool isPKModified(void) const;
-
-
-};
-
- };
- };
-};
-
-#include "apache/das/rdb/Table.h"
-#include "apache/das/StringWrapper.h"
-#include "apache/das/rdb/ColumnData.h"
-
-#endif //MODIFIED_DATA_OBJECT_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/ODBCTypeHelper.h b/cpp/das/runtime/core/include/apache/das/rdb/ODBCTypeHelper.h
deleted file mode 100644
index 0b9f29922d..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/ODBCTypeHelper.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef ODBC_TYPE_HELPER_H
-#define ODBC_TYPE_HELPER_H
-
-#include <windows.h>
-#include <sql.h>
-#include <sqlext.h>
-#include <string>
-
-#include "commonj/sdo/Type.h"
-
-#include "apache/das/StringWrapper.h"
-#include "apache/das/rdb/das_constants.h"
-#include "apache/das/rdb/DASInvalidSQLTypeException.h"
-#include "apache/das/rdb/DASInvalidSDOTypeException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ODBCTypeHelper {
-
- public:
- static const std::string getSDOType(SQLSMALLINT sqlType);
- static const SQLSMALLINT getSQLType(std::string sqlTypeName);
- static const SQLSMALLINT getSQLType(const commonj::sdo::Type& type);
-
-};
-
- };
- };
-};
-
-#endif //ODBC_TYPE_HELPER_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/PKObject.h b/cpp/das/runtime/core/include/apache/das/rdb/PKObject.h
deleted file mode 100644
index ef308bfdc2..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/PKObject.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef PK_OBJECT_H
-#define PK_OBJECT_H
-
-#include <list>
-#include <map>
-#include <string>
-#include <stdexcept>
-
-#include "commonj/sdo/DataObject.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ColumnData;
-class ResultSet;
-class GraphBuilder;
-class Table;
-
-typedef std::map<std::string, ColumnData*> KeyDataList;
-
-class PKObject {
-
- private:
- const Table* table;
- KeyDataList* primaryKeys;
-
- protected:
- void addPrimaryKey(std::string columnName, ColumnData& columnData);
-
- public:
- PKObject(const Table& table);
- virtual ~PKObject(void);
-
- const Table& getTable(void) const;
-
- bool operator==(const PKObject& pkObject) const;
- bool operator==(const KeyDataList* primaryKeyList) const;
- bool operator!=(const PKObject& pkObject) const;
- bool operator!=(const KeyDataList* primaryKeyList) const;
- bool operator<(const PKObject& pkObject) const;
- bool operator<(const KeyDataList* primaryKeyList) const;
-
- const KeyDataList& getPrimaryKeys(void) const;
- bool isPK(std::string columnName) const;
-
-};
-
-class KeyDataCmp {
- public:
- bool operator() (const KeyDataList* keyDataList1, const KeyDataList* keyDataList2 ) const;
-};
-
- };
- };
-};
-
-
-#endif //PK_OBJECT_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/PreparedStatement.h b/cpp/das/runtime/core/include/apache/das/rdb/PreparedStatement.h
deleted file mode 100644
index 57f9fc89bd..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/PreparedStatement.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef PREPARED_STATEMENT_H
-#define PREPARED_STATEMENT_H
-
-#include<vector>
-
-#include "apache/das/rdb/Statement.h"
-
-using std::vector;
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class PreparedStatement : Statement {
-
- private:
- string sql;
- vector<int> positions;
-
- public:
- PreparedStatement(Connection& connection, SQLHSTMT statementHandle, string sql);
- ~PreparedStatement(void);
-
- void setInt(int index, int elem);
-
-};
-
- };
- };
-};
-
-#endif //PREPARED_STATEMENT_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/ReadCommandImpl.h b/cpp/das/runtime/core/include/apache/das/rdb/ReadCommandImpl.h
deleted file mode 100644
index 9d16dcbca9..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/ReadCommandImpl.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef READ_COMMAND_IMPL_H
-#define READ_COMMAND_IMPL_H
-
-#include <list>
-
-#include "apache/das/rdb/GraphBuilder.h"
-#include "apache/das/rdb/CommandImpl.h"
-#include "apache/das/rdb/das_constants.h"
-
-#include "commonj/sdo/DataFactory.h"
-#include "commonj/sdo/DataObject.h"
-#include "commonj/sdo/ChangeSummary.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ReadCommandImpl : public CommandImpl {
-
- public:
- commonj::sdo::DataObjectPtr buildGraph(ResultSetPtr resultSet);
-
-
- ReadCommandImpl(DASImpl& das, std::string sqlString);
- ~ReadCommandImpl(void);
- commonj::sdo::DataObjectPtr executeQuery(void);
-
-};
-
- };
- };
-};
-
-#endif //READ_COMMAND_IMPL_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/Relationship.h b/cpp/das/runtime/core/include/apache/das/rdb/Relationship.h
deleted file mode 100644
index 8fb76a845f..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/Relationship.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef RELATIONSHIP_H
-#define RELATIONSHIP_H
-
-#include <string>
-#include <map>
-
-#include "apache/das/rdb/KeyPair.h"
-#include "apache/das/rdb/ConfigImpl.h"
-#include "apache/das/rdb/DASInvalidTableNameException.h"
-#include "apache/das/rdb/DASInvalidRelationshipNameException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class Relationship {
-
- friend class ConfigImpl;
-
- private:
- std::string relationshipName;
- std::string pkTableName;
- std::string fkTableName;
- bool many;
- std::map<std::string, const KeyPair*>* keyPairs;
-
- KeyPair& newKeyPair(KeyPair& keyPair);
-
-
- public:
- Relationship(const Relationship& relationship);
- Relationship(std::string pkTableName, std::string fkTableName, std::string relationshipName = "");
- virtual ~Relationship(void);
-
- KeyPair& addKeyPair(std::string pkColumnName, std::string fkColumnName);
- KeyPair& addKeyPair(const KeyPair& keyPair);
- void setMany(bool many);
-
- std::string getPKTableName(void) const;
- std::string getFKTableName(void) const;
- std::string getName(void) const;
- bool isMany(void) const;
-
- const std::map<std::string, const KeyPair*>& getKeyPairs(void) const;
- const KeyPair* getKeyPair(std::string pkColumnName, std::string fkColumnName) const;
- std::list<const KeyPair*>* getKeyPair(std::string columnName, bool pkColumn = true) const;
- bool containsColumn(std::string columnName, bool pkColumn = true) const;
-
-};
-
- };
- };
-};
-
-#endif //RELATIONSHIP_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/RelationshipStatement.h b/cpp/das/runtime/core/include/apache/das/rdb/RelationshipStatement.h
deleted file mode 100644
index 17ab918a4f..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/RelationshipStatement.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef RELATIONSHIP_STATEMENT_H
-#define RELATIONSHIP_STATEMENT_H
-
-#include <list>
-#include <string>
-
-//#include "apache/das/rdb/Table.h"
-//#include "apache/das/rdb/DASDataObject.h"
-//#include "apache/das/rdb/Relationship.h"
-#include "apache/das/rdb/StatementPtr.h"
-#include "apache/das/rdb/DASOptimisticConcurrencyControlException.h"
-#include "apache/das/rdb/PKObject.h"
-#include "apache/das/rdb/KeyPair.h"
-
-#include "commonj/sdo/DataObject.h"
-#include "commonj/sdo/ChangeSummary.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class DASDataObject;
-class Table;
-class Relationship;
-
-class RelationshipStatement {
-
- private:
- const Relationship* relationship;
- DASDataObject* dataObject;
- const KeyDataList* keyDataList;
- bool executed;
-
- public:
- RelationshipStatement(const Relationship& relationship, const KeyDataList* keyDataList = 0);
- ~RelationshipStatement(void);
-
- void setFKList(const KeyDataList* keyDataList);
- void setDASDataObject(DASDataObject& dataObject);
-
- void execute(StatementPtr stmt);
- bool isUnset(void) const;
- DASDataObject& getDASDataObject(void) const;
-
-};
-
-
-
- };
- };
-};
-
-#endif //RELATIONSHIP_STATEMENT_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/RelationshipWrapper.h b/cpp/das/runtime/core/include/apache/das/rdb/RelationshipWrapper.h
deleted file mode 100644
index d402ab3ae3..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/RelationshipWrapper.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef RELATIONSHIP_WRAPPER_H
-#define RELATIONSHIP_WRAPPER_H
-
-#include <string>
-#include <map>
-#include <list>
-
-#include "apache/das/rdb/Relationship.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class RelationshipWrapper {
-
- private:
- std::list<std::list<Relationship*>*> relationshipLists;
- const std::map<std::string, Relationship*>* relationships;
-
- public:
- RelationshipWrapper(void);
- ~RelationshipWrapper(void);
-
- std::list<Relationship*>& getRelationshipsByTableName(const std::map<std::string,
- Relationship*>& relationships, std::string tableName,
- bool pkTable = true);
-
- std::list<Relationship*>& getRelationshipsByTableName(const std::list<
- Relationship*>& relationships, std::string tableName,
- bool pkTable = true);
-
- void free(std::list<Relationship*>& relationshipList);
-
-};
-
- };
- };
-};
-
-#endif //RELATIONSHIP_WRAPPER_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/ResultSet.h b/cpp/das/runtime/core/include/apache/das/rdb/ResultSet.h
deleted file mode 100644
index 672a4797d5..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/ResultSet.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef RESULT_SET_H
-#define RESULT_SET_H
-
-#include <windows.h>
-#include <sql.h>
-#include <sqlext.h>
-#include <string>
-
-#include "apache/das/rdb/StatementPtr.h"
-#include "apache/das/RefCountingObject.h"
-#include "apache/das/rdb/ResultSetMetaData.h"
-#include "apache/das/rdb/DASInvalidSQLTypeException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class Statement;
-class ResultSetMetaData;
-class ResultSet;
-
-typedef RefCountingObject<ResultSet> ResultSetObject;
-
-class ResultSet : public ResultSetObject {
-
- private:
- ResultSetMetaData* metaData;
- StatementPtr stmt;
-
- std::string getSQLString(unsigned int columnIndex) const;
- std::wstring getSQLWString(unsigned int columnIndex) const;
-
- public:
- ResultSet(StatementPtr aStmt);
- virtual ~ResultSet(void);
-
- const ResultSetMetaData& getResultSetMetaData(void) const;
- StatementPtr getStatement(void) const;
-
- SQLCHAR getSQLChar(unsigned int columnIndex) const;
- SQLCHAR getSQLChar(std::string tableName, std::string columnName) const;
-
- std::string getSQLVarchar(unsigned int columnIndex) const;
- std::string getSQLVarchar(std::string tableName, std::string columnName) const;
-
- SQLWCHAR getSQLWChar(unsigned int columnIndex) const;
- SQLWCHAR getSQLWChar(std::string tableName, std::string columnName) const;
-
- std::wstring getSQLWVarchar(unsigned int columnIndex) const;
- std::wstring getSQLWVarchar(std::string tableName, std::string columnName) const;
-
- SQLREAL getSQLReal(unsigned int columnIndex) const;
- SQLREAL getSQLReal(std::string tableName, std::string columnName) const;
-
- SQLFLOAT getSQLFloat(unsigned int columnIndex) const;
- SQLFLOAT getSQLFloat(std::string tableName, std::string columnName) const;
-
- SQLDOUBLE getSQLDouble(unsigned int columnIndex) const;
- SQLDOUBLE getSQLDouble(std::string tableName, std::string columnName) const;
-
- std::string getSQLDecimal(unsigned int columnIndex) const;
- std::string getSQLDecimal(std::string tableName, std::string columnName) const;
-
- SQLINTEGER getSQLInteger(unsigned int columnIndex) const;
- SQLINTEGER getSQLInteger(std::string tableName, std::string columnName) const;
-
- SQLSMALLINT getSQLSmallInt(unsigned int columnIndex) const;
- SQLSMALLINT getSQLSmallInt(std::string tableName, std::string columnName) const;
-
- bool isNull(unsigned int columnIndex) const;
- bool isNull(std::string tableName, std::string columnName) const;
-
- unsigned int getRowCount(void) const;
-
- bool next(void);
-
-};
-
- };
- };
-};
-
-#endif //RESULT_SET_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/ResultSetMetaData.h b/cpp/das/runtime/core/include/apache/das/rdb/ResultSetMetaData.h
deleted file mode 100644
index 8275412caa..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/ResultSetMetaData.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef RESULT_SET_META_DATA_H
-#define RESULT_SET_META_DATA_H
-
-#include <string>
-#include <map>
-
-#include "apache/das/rdb/Statement.h"
-#include "apache/das/rdb/ResultSet.h"
-#include "apache/das/rdb/DASColumnNotFoundException.h"
-#include "apache/das/rdb/DASInvalidSQLTypeException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ResultSet;
-
-class ResultSetMetaData {
-
- private:
- const ResultSet* resultSet;
- std::map<std::string, unsigned int> columnsIndexes;
-
- static SQLSMALLINT getSQLCType(SQLSMALLINT sqlType);
-
- public:
- ResultSetMetaData(const ResultSet& aResultSet);
- virtual ~ResultSetMetaData(void);
-
- const ResultSet& getResultSet(void) const;
-
- std::string getSQLTypeName(unsigned int columnIndex) const;
- std::string getSQLTypeName(std::string tableName, std::string columnName) const;
-
- std::string getColumnName(unsigned int columnIndex) const;
- unsigned int getColumnIndex(std::string tableName, std::string columnName) const;
-
- std::string getTableName(unsigned int columnIndex) const;
- std::string getTableName(std::string tableName, std::string columnName) const;
-
- SQLSMALLINT getSQLType(unsigned int columnIndex) const;
- SQLSMALLINT getSQLType(std::string tableName, std::string columnName) const;
-
- SQLSMALLINT getSQLCType(unsigned int columnIndex) const;
- SQLSMALLINT getSQLCType(std::string tableName, std::string columnName) const;
-
- unsigned int getColumnCount(void) const;
-
- bool containsColumn(std::string tableName, std::string columnName) const;
-
-};
-
- };
- };
-};
-
-#endif //RESULT_SET_META_DATA_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/ResultSetPtr.h b/cpp/das/runtime/core/include/apache/das/rdb/ResultSetPtr.h
deleted file mode 100644
index fe62a59a94..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/ResultSetPtr.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 452786 $ $Date: 2006-10-04 08:57:36 +0100 (Wed, 04 Oct 2006) $ */
-
-#ifndef RESULT_SET_PTR_H
-#define RESULT_SET_PTR_H
-
-#include "apache/das/RefCountingPointer.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
- class ResultSet;
- typedef ::apache::das::RefCountingPointer<ResultSet> ResultSetPtr;
-
- };
- };
-};
-
-#endif //RESULT_SET_PTR_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/SQLException.h b/cpp/das/runtime/core/include/apache/das/rdb/SQLException.h
deleted file mode 100644
index 3ac52de7c0..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/SQLException.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef SQL_EXCEPTION_H
-#define SQL_EXCEPTION_H
-
-#include <string>
-#include <windows.h>
-#include <sql.h>
-
-using std::exception;
-using std::string;
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class SQLException : public exception {
-
- private:
- SQLRETURN returnCode;
-
- public:
- SQLException(SQLRETURN returnCode, std::string errorText);
- ~SQLException();
-
- virtual SQLRETURN getODBCReturnCode(void) const;
-
-};
-
- };
- };
-};
-
-#endif;
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/Statement.h b/cpp/das/runtime/core/include/apache/das/rdb/Statement.h
deleted file mode 100644
index 956f3e5d5c..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/Statement.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef STATEMENT_H
-#define STATEMENT_H
-
-#include <list>
-#include <windows.h>
-#include <sql.h>
-
-#include "apache/das/StringWrapper.h"
-#include "apache/das/rdb/ResultSetPtr.h"
-#include "apache/das/rdb/Connection.h"
-#include "apache/das/rdb/ResultSet.h"
-
-using std::string;
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ResultSet;
-class Statement;
-class Connection;
-
-typedef RefCountingObject<Statement> StatementObject;
-
-class Statement : public StatementObject {
-
- friend class ResultSet;
-
- private:
- SQLHSTMT statementHandle;
- ResultSetPtr resultSet;
- Connection* connection;
-
- protected:
- string queryString;
-
- ResultSetPtr createResultSet(void);
- std::string getError(void) const;
-
- public:
- Statement(Connection& connection, SQLHSTMT statementHandle);
- virtual ~Statement(void);
- virtual SQLHSTMT getODBCStatement(void) const;
- virtual ResultSetPtr executeQuery(string sql);
- virtual void close(void);
- virtual Connection& getConnection(void) const;
-
-};
-
- };
- };
-};
-
-#endif //STATEMENT_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/StatementPtr.h b/cpp/das/runtime/core/include/apache/das/rdb/StatementPtr.h
deleted file mode 100644
index 38980e0877..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/StatementPtr.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef STATEMENT_PTR_H
-#define STATEMENT_PTR_H
-
-#include "apache/das/RefCountingPointer.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
- class Statement;
- typedef ::apache::das::RefCountingPointer<Statement> StatementPtr;
-
- };
- };
-};
-
-#endif //STATEMENT_PTR_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/Table.h b/cpp/das/runtime/core/include/apache/das/rdb/Table.h
deleted file mode 100644
index 4847dc0d25..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/Table.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef TABLE_H
-#define TABLE_H
-
-#include <map>
-#include <list>
-#include <string>
-#include <stdexcept>
-#include <algorithm>
-
-#include "apache/das/rdb/das_constants.h"
-#include "apache/das/rdb/RelationshipWrapper.h"
-#include "apache/das/rdb/Relationship.h"
-#include "apache/das/rdb/KeyPair.h"
-#include "apache/das/rdb/ResultSet.h"
-#include "apache/das/rdb/Column.h"
-#include "apache/das/rdb/DASImpl.h"
-#include "apache/das/rdb/ODBCTypeHelper.h"
-#include "apache/das/DASInvalidTypeNameException.h"
-
-#include "commonj/sdo/DataFactory.h"
-#include "commonj/sdo/DataObject.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class Column;
-class GraphBuilderMetaData;
-
-class Table {
-
- private:
- std::map<std::string, const Column*>* columns;
- std::string tableName;
- std::string typeName;
-
- Column& newColumn(Column& column);
-
- public:
- Table(std::string tableName);
- Table(std::string tableName, std::string typeName);
- Table(const Table& table);
- virtual ~Table(void);
-
- Column& addColumn(std::string columnName, SQLSMALLINT sqlType);
- Column& addColumn(const Column& column);
- void setTypeName(std::string typeName);
-
- std::string getTypeName(void) const;
- std::string getTableName(void) const;
- const Column* getColumn(std::string columnName) const;
- Column* getColumn(std::string columnName);
- const Column* getColumnByProperty(std::string propertyName) const;
- const std::map<std::string, const Column*>& getColumns(void) const;
- unsigned int getPKColumnCount(void) const;
- const Column* getOCCColumn(void) const;
-
- void createGraph(const GraphBuilderMetaData& graphBuilderMetaData, commonj::sdo::DataFactoryPtr dataFactory) const;
-
-};
-
- };
- };
- };
-
-#endif //TABLE_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/TableData.h b/cpp/das/runtime/core/include/apache/das/rdb/TableData.h
deleted file mode 100644
index 12fdd73c74..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/TableData.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef TABLE_DATA_H
-#define TABLE_DATA_H
-
-#include <list>
-#include <map>
-#include <string>
-#include <stdexcept>
-
-#include "apache/das/rdb/PKObject.h"
-#include "apache/das/rdb/Table.h"
-
-#include "commonj/sdo/DataObject.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-class ColumnData;
-class ResultSet;
-class GraphBuilder;
-class Table;
-
-typedef std::map<std::string, ColumnData*> KeyDataList;
-
-class TableData : public PKObject {
-
- protected:
- commonj::sdo::DataObjectPtr dataObject;
- std::map<std::string, ColumnData*> columnsData;
-
- public:
- TableData(const Table& table, ResultSetPtr resultSet);
- virtual ~TableData(void);
-
- bool hasPK(void) const;
- commonj::sdo::DataObjectPtr getGraphObject(void) const;
-
- ColumnData* getColumnData(std::string columnName) const;
-
- void populateDataGraph(GraphBuilder& graphBuilder);
-
-};
-
- };
- };
-};
-
-#endif //TABLE_DATA_H
diff --git a/cpp/das/runtime/core/include/apache/das/rdb/das_constants.h b/cpp/das/runtime/core/include/apache/das/rdb/das_constants.h
deleted file mode 100644
index e85f6548c2..0000000000
--- a/cpp/das/runtime/core/include/apache/das/rdb/das_constants.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#define DAS_ROOT_NAME "DAS_ROOT"
-#define DAS_NAMESPACE "apache.das"
-#define SDO_NAMESPACE "commonj.sdo"
-#define SQL_NULL_VALUE "NULL"
diff --git a/cpp/das/runtime/core/src/apache/das/Command.cpp b/cpp/das/runtime/core/src/apache/das/Command.cpp
deleted file mode 100644
index 2301a59d32..0000000000
--- a/cpp/das/runtime/core/src/apache/das/Command.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/Command.h"
-
-namespace apache {
- namespace das {
-
-Command::Command(void) {}
-
-Command::~Command(void) {
- CommandObject::free();
-}
-
-commonj::sdo::DataObjectPtr Command::executeQuery(void) {
- return 0;
-};
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/Config.cpp b/cpp/das/runtime/core/src/apache/das/Config.cpp
deleted file mode 100644
index 73dd60779e..0000000000
--- a/cpp/das/runtime/core/src/apache/das/Config.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/Config.h"
-
-namespace apache {
- namespace das {
-
-Config::Config(void) {}
-
-Config::Config(const Config& config) {
- this->uri = config.uri;
-}
-
-Config::Config(std::string xmlFile) {}
-
-Config::~Config(void) {}
-
-std::string Config::getURI(void) const {
- return uri;
-}
-
-void Config::setURI(std::string uri) {
- this->uri = uri;
-}
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/DAS.cpp b/cpp/das/runtime/core/src/apache/das/DAS.cpp
deleted file mode 100644
index 662bca9974..0000000000
--- a/cpp/das/runtime/core/src/apache/das/DAS.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/DAS.h"
-#include "apache/das/rdb/DASFactoryImpl.h"
-
-namespace apache {
- namespace das {
-
-DASFactory* DAS::FACTORY = 0;
-
-DAS::DAS(void) {}
-
-DASFactory* DAS::getFACTORY(void) {
- return FACTORY;
-}
-
-DAS::~DAS(void) {}
-
-CommandPtr DAS::getCommand(std::string commandName) { return CommandPtr(0); }
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/DASCommandNotFoundException.cpp b/cpp/das/runtime/core/src/apache/das/DASCommandNotFoundException.cpp
deleted file mode 100644
index 66954e3ac0..0000000000
--- a/cpp/das/runtime/core/src/apache/das/DASCommandNotFoundException.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/DASCommandNotFoundException.h"
-
-namespace apache {
- namespace das {
-
-DASCommandNotFoundException::DASCommandNotFoundException(std::string message) : std::exception(message.c_str()) {}
-
-DASCommandNotFoundException::~DASCommandNotFoundException(void) {}
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/DASFactory.cpp b/cpp/das/runtime/core/src/apache/das/DASFactory.cpp
deleted file mode 100644
index d6f671181f..0000000000
--- a/cpp/das/runtime/core/src/apache/das/DASFactory.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/DASFactory.h"
-
-namespace apache {
- namespace das {
-
-DASFactory::DASFactory(void) {}
-
-DASFactory::~DASFactory(void) {}
-
-DAS* DASFactory::createDAS(rdb::Connection& connection) {
- return 0;
-}
-
-DAS* DASFactory::createDAS(const Config& config, rdb::Connection& connection) {
- return 0;
-}
-
-DAS* DASFactory::createDAS(const Config& config) {
- return 0;
-}
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/DASInvalidPropertyNameException.cpp b/cpp/das/runtime/core/src/apache/das/DASInvalidPropertyNameException.cpp
deleted file mode 100644
index dcb963ea4e..0000000000
--- a/cpp/das/runtime/core/src/apache/das/DASInvalidPropertyNameException.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/DASInvalidPropertyNameException.h"
-
-namespace apache {
- namespace das {
-
- DASInvalidPropertyNameException::DASInvalidPropertyNameException(std::string message) : std::exception(message.c_str()) {}
-
-DASInvalidPropertyNameException::~DASInvalidPropertyNameException(void) {}
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/DASInvalidTypeNameException.cpp b/cpp/das/runtime/core/src/apache/das/DASInvalidTypeNameException.cpp
deleted file mode 100644
index 5a4c0fcb2a..0000000000
--- a/cpp/das/runtime/core/src/apache/das/DASInvalidTypeNameException.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/DASInvalidTypeNameException.h"
-
-namespace apache {
- namespace das {
-
-DASInvalidTypeNameException::DASInvalidTypeNameException(std::string message) : std::exception(message.c_str()) {}
-
-DASInvalidTypeNameException::~DASInvalidTypeNameException(void) {}
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/DASNullPointerException.cpp b/cpp/das/runtime/core/src/apache/das/DASNullPointerException.cpp
deleted file mode 100644
index 35d05c9894..0000000000
--- a/cpp/das/runtime/core/src/apache/das/DASNullPointerException.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/DASNullPointerException.h"
-
-namespace apache {
- namespace das {
-
-DASNullPointerException::DASNullPointerException(std::string message) : std::exception(message.c_str()) {}
-
-DASNullPointerException::~DASNullPointerException(void) {}
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/DataGraphPrinter.cpp b/cpp/das/runtime/core/src/apache/das/DataGraphPrinter.cpp
deleted file mode 100644
index 46041731db..0000000000
--- a/cpp/das/runtime/core/src/apache/das/DataGraphPrinter.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/DataGraphPrinter.h"
-
-namespace apache {
- namespace das {
-
-DataGraphPrinter::DataGraphPrinter(commonj::sdo::DataObjectPtr root) {
- this->root = root;
-}
-
-DataGraphPrinter::~DataGraphPrinter(void) {}
-
-void DataGraphPrinter::printMetaData(std::ostream& out) {
- tabCount = 0;
- const commonj::sdo::TypeList& typeList = root->getDataFactory()->getTypes();
-
- for (unsigned int i = 0 ; i < typeList.size() ; i++) {
- out << std::endl << "[" << typeList[i].getName();
-
- const commonj::sdo::Type* base = typeList[i].getBaseType();
- /*out << "{";
- out << " baseType = " << ((base == 0) ? "NULL" : base->getName());
- out << " uri = " << typeList[i].getURI();
- out << " abstractType = " << typeList[i].isAbstractType();
- out << " changeSummaryType = " << typeList[i].isChangeSummaryType();
- out << " dataObjectType = " << typeList[i].isDataObjectType();
- out << " dataType = " << typeList[i].isDataType();
- out << " openType = " << typeList[i].isOpenType();
- out << " sequencedType = " << typeList[i].isSequencedType() << " } ";*/
- out << "]" << std::endl;
-
- commonj::sdo::PropertyList propertyList = typeList[i].getProperties();
-
- for (unsigned int j = 0 ; j < propertyList.size() ; j++) {
-
- out << propertyList[j].getName() << std::endl;
- /*out << "{";
- out << " type = " << propertyList[j].getType().getName();
- out << " alias = " << propertyList[j].getAlias();
- out << " aliasCount = " << propertyList[j].getAliasCount();
- out << " contaiment = " << propertyList[j].isContainment();
- out << " defaulted = " << propertyList[j].isDefaulted();
- out << " many = " << propertyList[j].isMany();
- out << " readOnly = " << propertyList[j].isReadOnly();
- out << " reference = " << propertyList[j].isReference();
- out << "}" << std::endl;*/
-
- }
-
- }
-
- out << std::endl;
-
-}
-
-void DataGraphPrinter::printDataGraph(commonj::sdo::DataObjectPtr dataObject, bool ref) {
- std::ostream& out = *this->out;
- commonj::sdo::PropertyList& propertyList = dataObject->getType().getProperties();
- out << getTab(tabCount) << "[" << dataObject->getType().getURI() << "." << dataObject->getType().getName() << "]";
- tabCount++;
-
- for (unsigned int i = 0 ; i < propertyList.size() ; i++) {
-
- if (propertyList[i].isMany()) {
- out << getTab(tabCount) << ((propertyList[i].isReference()) ? "-> " : "") << "[" << propertyList[i].getType().getName() << " LIST]";
- tabCount++;
- commonj::sdo::DataObjectList& objectList = dataObject->getList(propertyList[i]);
-
- for (unsigned int j = 0 ; j < objectList.size() ; j++) {
-
- if (objectList[j]->getType().isDataType()) {
- std::string typeName = objectList[j]->getType().getName();
-
- if (typeName == "String") {
- wchar_t* buf = new wchar_t[200];
- int copied = dataObject->getString((((std::string) propertyList[j].getName()) + "[" + StringWrapper::toString(j) + "]").c_str(), buf, 200);
- buf[copied] = 0;
- std::wstring wstr = buf;
- std::string str(wstr.begin(), wstr.end());
- str.assign(wstr.begin(), wstr.end());
-
-
- out << getTab(tabCount) << str << " : " << objectList[j]->getType().getName();
- delete [] buf;
- } else if (typeName == "Integer") {
- out << getTab(tabCount) << dataObject->getInt((((std::string) propertyList[j].getName()) + "[" + StringWrapper::toString(j) + "]").c_str()) << " : " << objectList[j]->getType().getName();
- }
-
- } else if (!ref) {
- printDataGraph(objectList[j], propertyList[i].isReference());
- }
-
- }
-
- if (objectList.size() == 0) {
- out << getTab(tabCount) << "--empty--";
- }
-
- tabCount--;
-
- } else {
- commonj::sdo::DataObjectPtr actual = dataObject->getDataObject(propertyList[i]);
- if (actual) {
- std::string typeName = actual->getType().getName();
- if (typeName == "String") {
- wchar_t* buf = new wchar_t[200];
- int copied = dataObject->getString(propertyList[i], buf, 200);
- buf[copied] = 0;
- std::wstring wstr = buf;
- std::string str(wstr.begin(), wstr.end());
- str.assign(wstr.begin(), wstr.end());
-
- out << getTab(tabCount) << ((propertyList[i].isReference()) ? "-> " : "") << str << " : " << actual->getType().getName();
- delete [] buf;
- } else if (typeName == "Int") {
- out << getTab(tabCount) << dataObject->getInt(propertyList[i]) << " : " << actual->getType().getName();
- } else if (typeName == "Boolean") {
- out << getTab(tabCount) << dataObject->getBoolean(propertyList[i]) << " : " << actual->getType().getName();
- }
-
- } else {
- out << getTab(tabCount) << "NULL : " << propertyList[i].getType().getName();
- }
-
- }
-
- if (propertyList.size() == 0) {
- out << getTab(tabCount) << "--empty--";
- }
-
- }
-
- tabCount--;
-
-}
-
-void DataGraphPrinter::print(std::ostream& out) {
- tabCount = 0;
- this->out = &out;
- printDataGraph(root);
- out << std::endl;
-
-}
-
-std::string DataGraphPrinter::getTab(int count) const {
- std::string ret;
- ret.append(count* 3, ' ');
- return "\n" + ret;
-
-}
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/RefCountingObject.cpp b/cpp/das/runtime/core/src/apache/das/RefCountingObject.cpp
deleted file mode 100644
index ae090d8383..0000000000
--- a/cpp/das/runtime/core/src/apache/das/RefCountingObject.cpp
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/RefCountingObject.h"
-#include "apache/das/rdb/Connection.h"
-#include "apache/das/rdb/Statement.h"
-#include "apache/das/rdb/ReadCommandImpl.h"
-#include "apache/das/Command.h"
-#include "apache/das/CommandPtr.h"
-
-namespace apache {
- namespace das {
-
-template <class T>
-RefCountingObject<T>::RefCountingObject()
-{
- refCount = 0;
- freed = false;
- refPtrs = new std::list<RefCountingPointer<T>*>();
-}
-
-template <class T>
-RefCountingObject<T>::RefCountingObject(const RefCountingObject<T>& rc)
-{
- refCount = 0;
- freed = false;
- refPtrs = new std::list<RefCountingPointer<T>*>();
-}
-template <class T>
-T& RefCountingObject<T>::operator=(const T& rc)
-{
- return *this;
-}
-template <class T>
-RefCountingObject<T>::~RefCountingObject()
-{
- if (!freed) {
- throw std::logic_error("Function RefCountingObjec<T>::free() must be invoked before deleting this object!");
- }
-
- delete refPtrs;
-
-}
-
-template <class T>
-void RefCountingObject<T>::free(void) {
- std::list<RefCountingPointer<T>*>::iterator it;
-
- while (!refPtrs->empty()) {
- RefCountingPointer<T>* aux = *refPtrs->begin();
- refPtrs->erase(refPtrs->begin());
- *aux = 0;
-
- }
-
- freed = true;
-
-}
-
-template <class T>
-void RefCountingObject<T>::addRef(RefCountingPointer<T>* refPtr)
-
-{
- if ((*refPtr).isObjectOwner()) {
- refCount++;
- }
-
- refPtrs->push_front(refPtr);
-
-}
-template <class T>
-void RefCountingObject<T>::releaseRef(RefCountingPointer<T>* refPtr)
-{
- std::list<RefCountingPointer<T>*>::iterator it;
- bool found = false;
-
- for (it = refPtrs->begin() ; it != refPtrs->end() ; it++) {
-
- if (refPtr == *it) {
- found = true;
- break;
-
- }
-
- }
-
- if (found) {
-
- if ((*it)->isObjectOwner()) {
- refCount--;
- }
-
- refPtrs->erase(it);
-
- if (refCount == 0) {
- delete this;
- }
-
- }
-
-}
-
-template <class T>
-std::ostream& RefCountingObject<T>::printSelf(std::ostream &os)
-{
- os << "RefCountingObject: reference count = " << refPtrs->size() << std::endl;
- return os;
-}
-
- // 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 */
-
- rdb::Connection conn("", "", "");
- /*rdb::Connection* conn1 = new rdb::Connection("", "", "");
- delete conn1;*/
- rdb::StatementObject* fptr = new rdb::StatementObject();
- rdb::StatementObject statement;
- rdb::Statement* s = new rdb::Statement(conn, 0);
- delete s;
- rdb::StatementObject* fptr2 = new rdb::StatementObject(statement);
- fptr->releaseRef(0);
- fptr->addRef(0);
- delete fptr;
-
- rdb::StatementPtr stmt = conn.createStatement();
- rdb::ResultSetObject* rs1 = new rdb::ResultSetObject();
- rdb::ResultSetObject rs2;
- delete rs1;
- rs2.releaseRef(0);
- rs2.addRef(0);
- {
- CommandPtr stmt = *(new CommandPtr(new rdb::ReadCommandImpl(*(new rdb::DASImpl(conn)), "")));
- CommandObject* rs1 = new CommandObject();
- CommandObject rs2;
- delete rs1;
- rs2.releaseRef(0);
- rs2.addRef(0);
- }
-
- ///* 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/cpp/das/runtime/core/src/apache/das/RefCountingPointer.cpp b/cpp/das/runtime/core/src/apache/das/RefCountingPointer.cpp
deleted file mode 100644
index 3a55bbab30..0000000000
--- a/cpp/das/runtime/core/src/apache/das/RefCountingPointer.cpp
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/RefCountingPointer.h"
-#include "apache/das/rdb/Statement.h"
-#include "apache/das/rdb/Connection.h"
-#include "apache/das/rdb/ReadCommandImpl.h"
-#include "apache/das/Command.h"
-#include "apache/das/CommandPtr.h"
-
-namespace apache {
- namespace das {
-
-template<class T>
-void RefCountingPointer<T>::init()
-{
- if (pointee == 0) return;
- pointee->addRef(this);
-}
-
-template<class T>
-/*SDO_API*/ RefCountingPointer<T>::RefCountingPointer(T* realPtr, bool objectOwner)
-:pointee(realPtr)
-{
- this->objectOwner = objectOwner;
- init();
-}
-
-template<class T>
-/*SDO_API*/ RefCountingPointer<T>::RefCountingPointer(T& realPtr, bool objectOwner)
-:pointee(&realPtr)
-{
- this->objectOwner = objectOwner;
- init();
-}
-
-template<class T>
-RefCountingPointer<T>::RefCountingPointer(const RefCountingPointer<T>& rhs, bool objectOwner)
-: pointee(rhs.pointee)
-{
- this->objectOwner = objectOwner;
- init();
-}
-
-template<class T>
-/*SDO_API*/ RefCountingPointer<T>::~RefCountingPointer(void)
-{
- if (pointee)pointee->releaseRef(this);
-}
-
-template<class T>
-/*SDO_API*/ RefCountingPointer<T>& RefCountingPointer<T>::operator=(const RefCountingPointer<T>& rhs)
-{
- if (pointee != rhs.pointee)
- {
- T *oldP = pointee;
- pointee = rhs.pointee;
- init();
- if (oldP) oldP->releaseRef(this);
- }
- return *this;
-}
-
-//RefCountingPointer& operator=(const RefCountingObject<T>& rhs)
-//{
-// if (pointee != &rhs)
-// {
-// T *oldP = pointee;
-// pointee = &pointee;
-// init();
-// if (oldP) oldP->releaseRef(this);
-// }
-// return *this;
-//}
-//
-//RefCountingPointer& operator=(const RefCountingObject<T>* rhs)
-//{
-// if (pointee != rhs)
-// {
-// T *oldP = pointee;
-// pointee = rhs;
-// init();
-// if (oldP) oldP->releaseRef(this);
-// }
-// return *this;
-//}
-
-template<class T>
-/*SDO_API*/ bool RefCountingPointer<T>::operator!() const
-{
- return (pointee == 0);
-}
-
-template<class T>
-/*SDO_API*/ bool RefCountingPointer<T>::operator==(RefCountingPointer<T>& test) const
-{
- return (pointee == test.pointee);
-}
-
-template<class T>
-/*SDO_API*/ T* RefCountingPointer<T>::operator->() const
-{
- if (pointee == 0)
- throw DASNullPointerException();
- return pointee;
-}
-
-template<class T>
-/*SDO_API*/ T& RefCountingPointer<T>::operator*() const
-{
- return *pointee;
-}
-
-template<class T>
-bool RefCountingPointer<T>::isObjectOwner(void) const {
- return objectOwner;
-}
-
-
- // officially, there is nothing here- but if I dont use the overrides in
- // the templates, then they dont get generated.
- void Test2()
- {
-
-#if defined(WIN32) || defined (_WINDOWS)
- {
- /* 1) construct */
- rdb::Connection* conn = new rdb::Connection("","","");
- rdb::StatementPtr fptr = conn->createStatement();
- rdb::StatementPtr a(new rdb::Statement(*conn, 0));
- rdb::Statement& st = *(new rdb::Statement(*conn, 0));
- rdb::StatementPtr* c = new rdb::StatementPtr(st);
- c->isObjectOwner();
-
- /* 2) use the & operator= */
- fptr = conn->createStatement();
-
- /* 3) copy */
- rdb::StatementPtr fptr2 = fptr;
-
- /* 4) use the == and ! */
- if (fptr2 == fptr || !fptr){}
-
- /* 5) Use the T* and * */
- rdb::Statement* dmsf = fptr;
- rdb::Statement& dmsr = *fptr;
-
- /* 1) construct */
- rdb::StatementPtr dfptr(fptr);
-
- /* 3) copy */
- rdb::StatementPtr dfptr2 = dfptr;
-
- /* 2) use the & operator= */
- dfptr = dfptr2;
-
- /* 4) use the == and ! */
- if (dfptr2 == dfptr || !dfptr){}
-
- /* 5) Use the T* and * */
- rdb::Statement* ddmsf = dfptr;
- rdb::Statement& ddmsr = *dfptr;
-
- /* 6) Use the -> */
- dfptr->close();
-
- /* and again to catch the = */
- fptr = conn->createStatement();
- delete fptr2;
-
- }
- {
- /* 1) construct */
- rdb::Connection* conn = new rdb::Connection("","","");
- rdb::StatementPtr fptr = conn->createStatement();
- rdb::ResultSetPtr a(new rdb::ResultSet(fptr));
- rdb::ResultSetPtr b(new rdb::ResultSet(fptr));
- rdb::ResultSet& st = *(new rdb::ResultSet(fptr));
- rdb::ResultSetPtr* c = new rdb::ResultSetPtr(st);
- c->isObjectOwner();
- /* 2) use the & operator= */
- a = b;
-
- /* 3) copy */
- rdb::ResultSetPtr d = a;
-
- a = new rdb::ResultSet(fptr);
- a = *(new rdb::ResultSet(fptr));
-
- /* 4) use the == and ! */
- if (a == b || !b){}
-
- /* 5) Use the T* and * */
- rdb::ResultSet* dmsf = a;
- rdb::ResultSet& dmsr = *b;
-
- /* 6) Use the -> */
- a->getStatement();
-
- /* and again to catch the = */
- delete c;
-
-
- }
-
- {
- /* 1) construct */
- rdb::Connection* conn = new rdb::Connection("","","");
- CommandPtr fptr = *(new CommandPtr());
- CommandPtr a(*(new rdb::ReadCommandImpl(*(new rdb::DASImpl(*conn)), "")));
- CommandPtr b(*(new rdb::ReadCommandImpl(*(new rdb::DASImpl(*conn)), "")));
- Command& st = *(new rdb::ReadCommandImpl(*(new rdb::DASImpl(*conn)), ""));
- CommandPtr* c = new CommandPtr(st);
- c->isObjectOwner();
- /* 2) use the & operator= */
- a = b;
-
- /* 3) copy */
- CommandPtr d = a;
-
- a = new rdb::ReadCommandImpl(*(new rdb::DASImpl(*conn)), "");
- a = *(new rdb::ReadCommandImpl(*(new rdb::DASImpl(*conn)), ""));
-
- /* 4) use the == and ! */
- if (a == b || !b){}
-
- /* 5) Use the T* and * */
- CommandObject* dmsf = a;
- CommandObject& dmsr = *b;
-
- /* 6) Use the -> */
- a->executeQuery();
-
- /* and again to catch the = */
- delete c;
-
-
- }
-
-#endif
-
- }
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/SDODataObjectWrapper.cpp b/cpp/das/runtime/core/src/apache/das/SDODataObjectWrapper.cpp
deleted file mode 100644
index 32c7183c2a..0000000000
--- a/cpp/das/runtime/core/src/apache/das/SDODataObjectWrapper.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/SDODataObjectWrapper.h"
-
-namespace apache {
- namespace das {
-
-SDODataObjectWrapper::SDODataObjectWrapper(commonj::sdo::DataObjectPtr dataObject) {
- this->dataObject = dataObject;
-}
-
-SDODataObjectWrapper::~SDODataObjectWrapper(void) {}
-
-std::string SDODataObjectWrapper::getString(std::string propertyName) const {
- wchar_t* buff = new wchar_t[dataObject->getLength(propertyName.c_str())];
- int copied = dataObject->getString(propertyName.c_str(), buff, 200);
- std::wstring wstr(buff, copied);
- std::string str(wstr.begin(), wstr.end());
- str.assign(wstr.begin(), wstr.end());
-
- delete [] buff;
-
- return str;
-
-}
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/StringWrapper.cpp b/cpp/das/runtime/core/src/apache/das/StringWrapper.cpp
deleted file mode 100644
index b3726f510b..0000000000
--- a/cpp/das/runtime/core/src/apache/das/StringWrapper.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/StringWrapper.h"
-
-namespace apache {
- namespace das {
-
-StringWrapper::StringWrapper(std::string str) : str(str) {}
-
-StringWrapper::StringWrapper(commonj::sdo::DataObjectPtr dataObject, std::string propertyName) {
- unsigned int length = dataObject->getLength(propertyName);
- wchar_t* buffer = new wchar_t[length];
- dataObject->getString(propertyName, buffer, length);
-
- std::wstring wstr(buffer, 0, length);
- this->str = std::string(wstr.begin(), wstr.end());
- delete buffer;
-
-}
-
-std::string StringWrapper::toLower(void) const {
- std::string str = this->str;
- unsigned int length = str.length();
-
- for(int i=0; i != length; i++) {
- str[i] = tolower(str[i]);
- }
-
- return str;
-
-}
-
-std::string StringWrapper::toUpper(void) const {
- std::string str = this->str;
- unsigned int length = str.length();
-
- for(int i=0; i != length; i++) {
- str[i] = toupper(str[i]);
- }
-
- return str;
-
-}
-
-bool StringWrapper::isValidRDBName(void) const {
-
- if (str.find(' ') != -1 || str.find('\t') != -1 || str.find('\n') != -1 || str.find('\r') != -1) {
- return false;
- } else {
- return true;
- }
-
-}
-
-std::string StringWrapper::toString(const double& t) {
- std::stringstream ss;
- ss << t;
-
- return ss.str();
-
-}
-
-std::string StringWrapper::toString(const float& t) {
- std::stringstream ss;
- ss << t;
-
- return ss.str();
-
-}
-
-std::string StringWrapper::toString(const long double& t) {
- std::stringstream ss;
- ss << t;
-
- return ss.str();
-
-}
-
-std::string StringWrapper::toString(const unsigned char& t) {
- std::stringstream ss;
- ss << t;
-
- return ss.str();
-
-}
-
-std::string StringWrapper::toString(const wchar_t& t) {
- std::stringstream ss;
- ss << t;
-
- return ss.str();
-
-}
-
-std::string StringWrapper::toString(const int& t) {
- std::stringstream ss;
- ss << t;
-
- return ss.str();
-
-}
-
-std::string StringWrapper::toString(const long& t) {
- std::stringstream ss;
- ss << t;
-
- return ss.str();
-
-}
-
-std::string StringWrapper::getString(void) const {
- return str;
-}
-
-
-std::string StringWrapper::toString(const unsigned int& t) {
- std::stringstream ss;
- ss << t;
-
- return ss.str();
-
-}
-
-void StringWrapper::defineOnDataObject(commonj::sdo::DataObjectPtr dataObject, std::string propertyName) const {
- std::wstring wstr(str.begin(), str.end());
- dataObject->setString(propertyName, wstr.c_str(), wstr.size());
-
-}
-
-
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/ApplyChanges.cpp b/cpp/das/runtime/core/src/apache/das/rdb/ApplyChanges.cpp
deleted file mode 100644
index eea9d81e35..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/ApplyChanges.cpp
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/ApplyChanges.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-ApplyChanges::ApplyChanges(DASImpl& das, commonj::sdo::DataObjectPtr root) : summary(root->getChangeSummary()) {
- this->config = (const ConfigImpl*) &das.getConfig();
- this->root = root;
- processRootDataObject(root);
- StatementPtr stmt = *das.getConnection()->createStatement();
-
- try {
-
- for (std::list<DASDataObject*>::iterator it = updateOrderList.begin() ;
- it != updateOrderList.end() ; it++) {
-
- (*it)->execute(stmt);
-
- }
-
- stmt->executeQuery("commit");
-
- } catch (...) {
- stmt->executeQuery("rollback");
- throw;
-
- }
-
-}
-
-ApplyChanges::~ApplyChanges(void) {
-
- for (std::map<std::string, const Relationship*>::iterator relationshipsIterator = relationships.begin() ;
- relationshipsIterator != relationships.end() ; relationshipsIterator++) {
-
- delete relationshipsIterator->second;
-
- }
-
- for (std::map<std::string, const Table*>::iterator tablesIterator = tables.begin() ;
- tablesIterator != tables.end() ; tablesIterator++) {
-
- delete tablesIterator->second;
-
- }
-
- for (std::map<std::string, std::list<DASDataObject*>*>::iterator dasDataObjectsIterator = dasDataObjects.begin() ;
- dasDataObjectsIterator != dasDataObjects.end() ; dasDataObjectsIterator++) {
-
- std::list<DASDataObject*>* list = dasDataObjectsIterator->second;
-
- for (std::list<DASDataObject*>::iterator listIterator = list->begin() ;
- listIterator != list->end() ; listIterator++) {
-
- delete *listIterator;
-
- }
-
- delete list;
-
- }
-
-}
-
-void ApplyChanges::processRootDataObject(commonj::sdo::DataObjectPtr dataObject) {
- commonj::sdo::ChangedDataObjectList& changedObjects = summary->getChangedDataObjects();
- std::list<commonj::sdo::DataObjectPtr> createdObjects;
- std::list<commonj::sdo::DataObjectPtr> deletedObjects;
- std::list<commonj::sdo::DataObjectPtr> modifiedObjects;
-
- for (unsigned int i = 0 ; i < changedObjects.size() ; i++) {
-
- if (changedObjects[i] == root) {
- continue;
- }
-
- processMetadata(changedObjects[i]);
-
- if (summary->isCreated(changedObjects[i])) {
- createdObjects.push_back(changedObjects[i]);
-
- } else if (summary->isDeleted(changedObjects[i])) {
- deletedObjects.push_back(changedObjects[i]);
-
- } else {
- modifiedObjects.push_back(changedObjects[i]);
- }
-
- //const commonj::sdo::SettingList& setting = summary->getOldValues(changedObjects[i]);
-
- }
-
- std::list<commonj::sdo::DataObjectPtr>::iterator deletedIterator;
- for (deletedIterator = deletedObjects.begin() ; deletedIterator != deletedObjects.end() ; deletedIterator++) {
- processDeletedDataObject(*deletedIterator);
- }
-
- std::list<commonj::sdo::DataObjectPtr>::iterator createdIterator;
- for (createdIterator = createdObjects.begin() ; createdIterator != createdObjects.end() ; createdIterator++) {
- processCreatedDataObject(*createdIterator);
- }
-
- std::list<commonj::sdo::DataObjectPtr>::iterator modifiedIterator;
- for (modifiedIterator = modifiedObjects.begin() ; modifiedIterator != modifiedObjects.end() ; modifiedIterator++) {
- processModifiedDataObject(*modifiedIterator);
- }
-
-}
-
-DASDataObject& ApplyChanges::processDataObject(commonj::sdo::DataObjectPtr dataObject) {
-
- if (summary->isCreated(dataObject)) {
- return processCreatedDataObject(dataObject);
- } else if (summary->isDeleted(dataObject)) {
- return processDeletedDataObject(dataObject);
- } else {
- return processModifiedDataObject(dataObject);
- }
-
-}
-
-void ApplyChanges::processMetadata(commonj::sdo::DataObjectPtr dataObject) {
- const commonj::sdo::Type& type = dataObject->getType();
- std::map<std::string, const Table*>::iterator it = tables.find((std::string) type.getName());
-
- if (it != tables.end()) {
- return;
- }
-
- const Table* configTable = config->getTableByTypeName((std::string) type.getName());
- commonj::sdo::PropertyList properties = type.getProperties();
- const std::map<std::string, const Column*>* configTableColumns;
- std::map<std::string, const Column*>* configTableColumnsByPropertyName = 0;
- Table* table;
- unsigned int pkColumnCount = 0;
- unsigned int pkFoundCount = 0;
-
- if (configTable != 0) {
- table = new Table(configTable->getTableName(), configTable->getTypeName());
- configTableColumns = &configTable->getColumns();
- configTableColumnsByPropertyName = new std::map<std::string, const Column*>();
- pkColumnCount = configTable->getPKColumnCount();
-
- for (std::map<std::string, const Column*>::const_iterator configTableColumnsIterator = configTableColumns->begin() ;
- configTableColumnsIterator != configTableColumns->end() ; configTableColumnsIterator++) {
-
- configTableColumnsByPropertyName->insert(
- std::make_pair(configTableColumnsIterator->second->getPropertyName(),
- configTableColumnsIterator->second));
-
- }
-
- } else {
- table = new Table((std::string) type.getName());
- }
-
- for (unsigned int j = 0 ; j < properties.size() ; j++) {
-
- if (properties[j].getType().isDataType()) {
-
- if (configTable != 0) {
- std::map<std::string, const Column*>::const_iterator configTableColumnsIterator =
- configTableColumnsByPropertyName->find(properties[j].getName());
-
- if (configTableColumnsIterator != configTableColumnsByPropertyName->end()) {
- const Column& column = *configTableColumnsIterator->second;
-
- if (column.isPK()) {
- pkFoundCount++;
- }
-
- table->addColumn(column);
-
- } else {
- table->addColumn(properties[j].getName(), ODBCTypeHelper::getSQLType(properties[j].getType()));
- }
-
- } else {
- table->addColumn(properties[j].getName(), ODBCTypeHelper::getSQLType(properties[j].getType()));
- }
-
- } else {
- const Table* fkTable = config->getTableByTypeName(properties[j].getType().getName());
- std::string fkTableName;
-
- if (fkTable == 0) {
- fkTableName = properties[j].getType().getName();
- } else {
- fkTableName = fkTable->getTableName();
- }
-
- const Relationship* relationship = config->getRelationship(table->getTableName(), fkTableName);
-
- if (relationship == 0) {
- Relationship* aux = new Relationship(table->getTableName(), fkTableName);
- aux->addKeyPair("ID", table->getTableName() + "_ID");
- relationships.insert(std::make_pair(table->getTableName() + "." + fkTableName, aux));
-
- } else {
- relationships.insert(std::make_pair(table->getTableName() + "." + fkTableName, new Relationship(*relationship)));
- }
-
- }
-
- }
-
- if (pkColumnCount == 0 || pkColumnCount > pkFoundCount) {
- Column* column = table->getColumn("ID");
-
- if (column == 0) {
- throw DASPrimaryKeyNotFoundException((std::string) "No PK found on Type " + type.getURI() + "." + type.getName());
- }
-
- column->setPK(true);
-
- }
-
- if (configTableColumnsByPropertyName != 0) {
- delete configTableColumnsByPropertyName;
- }
-
- tables.insert(std::make_pair(type.getName(), table));
-
-}
-
-bool ApplyChanges::isInStack(const DASDataObject& dasDataObject) {
-
- for (std::list<DASDataObject*>::const_iterator it = stack.begin() ; stack.end() != it ; it++) {
-
- if ((*it)->getDataObject() == dasDataObject.getDataObject()) {
- return true;
- }
-
- }
-
- return false;
-
-}
-
-const Table& ApplyChanges::getTable(commonj::sdo::DataObjectPtr dataObject) {
- std::string typeName = dataObject->getType().getName();
- std::map<std::string, const Table*>::const_iterator it = tables.find(typeName);
-
- if (it == tables.end()) {
- processMetadata(dataObject);
- }
-
- it = tables.find(typeName);
-
- return *it->second;
-
-}
-
-CreatedDataObject& ApplyChanges::processCreatedDataObject(commonj::sdo::DataObjectPtr dataObject) {
- DASDataObject* dasDB = getDASDataObject(dataObject);
- //dataObject->printSelf(std::cout);
-
- if (dasDB != 0) {
- return (CreatedDataObject&) *dasDB;
- }
-
- CreatedDataObject* createdDataObject = new CreatedDataObject(
- getTable(dataObject), dataObject, summary);
-
- updateOrderList.push_back(createdDataObject);
- addDataObject(*createdDataObject);
- commonj::sdo::PropertyList properties = dataObject->getInstanceProperties();
-
- for (unsigned int i = 0 ; i < properties.size() ; i++) {
-
- if (properties[i].getType().isDataObjectType()) {
-
- if (properties[i].isMany()) {
- commonj::sdo::DataObjectList& dataObjectList = dataObject->getList(properties[i]);
-
- for (unsigned int j = 0 ; j < dataObjectList.size() ; j++) {
- DASDataObject& dob = processDataObject(dataObjectList[j]);
- RelationshipStatement& rs = dob.addFK(getRelationship(*createdDataObject, dob), &createdDataObject->getPrimaryKeys());
- dob.addDependency(rs);
-
- }
-
- } else {
- commonj::sdo::DataObjectPtr dao = dataObject->getDataObject(properties[i]);
- DASDataObject& dob = processDataObject(dao);
- dob.addFK(getRelationship(*createdDataObject, dob), &createdDataObject->getPrimaryKeys());
- RelationshipStatement& rs = dob.addFK(getRelationship(*createdDataObject, dob), &createdDataObject->getPrimaryKeys());
- dob.addDependency(rs);
-
- }
-
- }
-
- }
-
- return *createdDataObject;
-
-}
-
-const Relationship& ApplyChanges::getRelationship(DASDataObject& parentDataObject, DASDataObject& dataObject) const {
- std::map<std::string, const Relationship*>::const_iterator relatIt = relationships.
- find(parentDataObject.getTable().getTableName() + "." + dataObject.getTable().getTableName());
-
- return *relatIt->second;
-
-}
-
-DeletedDataObject& ApplyChanges::processDeletedDataObject(commonj::sdo::DataObjectPtr dataObject) {
- DASDataObject* dasDB = getDASDataObject(dataObject);
- //dataObject->printSelf(std::cout);
-
- if (dasDB != 0) {
- return (DeletedDataObject&) *dasDB;
- }
-
- DeletedDataObject* deletedDataObject = new DeletedDataObject(
- getTable(dataObject), dataObject, summary);
-
- const commonj::sdo::SettingList& setting = summary->getOldValues(dataObject);
-
- for (int i = 0 ; i < setting.size() ; i++) {
-
- if (setting[i].isSet() && setting[i].getProperty().getType().isDataObjectType()) {
- commonj::sdo::DataObjectPtr containedDataObject = setting[i].getDataObjectValue();
-
- if (!summary->isDeleted(containedDataObject)) {
- DASDataObject& modDO = processDataObject(containedDataObject);
- RelationshipStatement& rs = modDO.addFK(getRelationship(*deletedDataObject, modDO), 0);
- deletedDataObject->addDependency(rs);
-
- }
-
- }
-
- }
-
- addDataObject(*deletedDataObject);
- updateOrderList.push_back(deletedDataObject);
-
- return *deletedDataObject;
-
-}
-
-DASDataObject* ApplyChanges::getDASDataObject(commonj::sdo::DataObjectPtr dataObject) const {
- std::map<std::string, std::list<DASDataObject*>*>::const_iterator it = dasDataObjects.find((std::string) dataObject->getType().getName());
-
- if (it != dasDataObjects.end()) {
- std::list<DASDataObject*>& list = *it->second;
- std::list<DASDataObject*>::iterator it2;
-
- for (it2 = list.begin() ; it2 != list.end() ; it2++) {
-
- if ((*it2)->getDataObject() == dataObject) {
- return *it2;
- }
-
- }
-
- }
-
- return 0;
-
-}
-
-ModifiedDataObject& ApplyChanges::processModifiedDataObject(commonj::sdo::DataObjectPtr dataObject) {
- DASDataObject* dasDB = getDASDataObject(dataObject);
- //dataObject->printSelf(std::cout);
-
- if (dasDB != 0) {
- return (ModifiedDataObject&) *dasDB;
- }
-
- ModifiedDataObject* modifiedDataObject = new ModifiedDataObject(
- getTable(dataObject), dataObject, summary);
-
- updateOrderList.push_back(modifiedDataObject);
- addDataObject(*modifiedDataObject);
-
- if (summary->isModified(dataObject)) {
- std::map<const commonj::sdo::Property*, std::list<commonj::sdo::DataObjectPtr>*> manyOldValuedProperties;
- std::map<const commonj::sdo::Property*, commonj::sdo::DataObjectPtr> singleOldValuedProperties;
- commonj::sdo::PropertyList props = dataObject->getInstanceProperties();
- const commonj::sdo::SettingList& setting = summary->getOldValues(dataObject);
-
- for (int i = 0 ; i < setting.size() ; i++) {
- const commonj::sdo::Property& prop = setting[i].getProperty();
-
- if (prop.getType().isDataObjectType()) {
-
- if (!setting[i].isNull() && setting[i].isSet()) {
- commonj::sdo::DataObjectPtr oldDO = setting[i].getDataObjectValue();
- //oldDO->printSelf(std::cout);
- //std::cout << std::endl;
-
- if (prop.isMany()) {
- std::map<const commonj::sdo::Property*, std::list<commonj::sdo::DataObjectPtr>*>::iterator manyIt =
- manyOldValuedProperties.find(&prop);
-
- std::list<commonj::sdo::DataObjectPtr>* list;
-
- if (manyIt == manyOldValuedProperties.end()) {
- list = new std::list<commonj::sdo::DataObjectPtr>();
- manyOldValuedProperties.insert(std::make_pair(&prop, list));
-
- } else {
- list = manyIt->second;
- }
-
- list->push_back(oldDO);
-
- } else {
- singleOldValuedProperties.insert(std::make_pair(&prop, oldDO));
- }
-
- }
-
- }
- }
-
- for (unsigned int i = 0 ; i < props.size() ; i++) {
-
- if (props[i].getType().isDataObjectType()) {
-
- if (props[i].isMany()) {
-
- if (!dataObject->isSet(props[i]) || !dataObject->isNull(props[i])) {
- commonj::sdo::DataObjectList& doList = dataObject->getList(props[i]);
-
- for (unsigned int j = 0 ; j < doList.size() ; j++) {
- commonj::sdo::DataObjectPtr dob = doList[j];
-
- if (summary->isCreated(dob)) {
- CreatedDataObject& createdDO = processCreatedDataObject(dob);
- RelationshipStatement& rs = createdDO.addFK(getRelationship(*modifiedDataObject, createdDO), &modifiedDataObject->getPrimaryKeys());
- modifiedDataObject->addDependency(rs);
-
- } else {
- std::map<const commonj::sdo::Property*, std::list<commonj::sdo::DataObjectPtr>*>::iterator manyIt =
- manyOldValuedProperties.find(&props[i]);
-
- bool existsOldDO = false;
-
- if (manyIt != manyOldValuedProperties.end()) {
- std::list<commonj::sdo::DataObjectPtr>& list = *manyIt->second;
-
- for (std::list<commonj::sdo::DataObjectPtr>::iterator listIt = list.begin() ;
- listIt != list.end() ; listIt++) {
-
- if (*listIt == dob) {
- existsOldDO = true;
- list.erase(listIt);
- break;
-
- }
-
- }
-
- }
-
- if (!existsOldDO) {
- ModifiedDataObject& modDO = processModifiedDataObject(dob);
- RelationshipStatement& rs = modDO.addFK(getRelationship(*modifiedDataObject, modDO), &modifiedDataObject->getPrimaryKeys());
- modifiedDataObject->addDependency(rs);
-
- }
-
- }
-
- }
-
- }
-
- } else {
-
- if (!dataObject->isSet(props[i]) || !dataObject->isNull(props[i])) {
- commonj::sdo::DataObjectPtr dob = dataObject->getDataObject(props[i]);
-
- if (summary->isCreated(dob)) {
- CreatedDataObject& createdDO = processCreatedDataObject(dob);
- RelationshipStatement& rs = createdDO.addFK(getRelationship(*modifiedDataObject, createdDO), &modifiedDataObject->getPrimaryKeys());
- modifiedDataObject->addDependency(rs);
-
- } else {
- std::map<const commonj::sdo::Property*, commonj::sdo::DataObjectPtr>::iterator singleIt =
- singleOldValuedProperties.find(&props[i]);
-
- if (singleIt == singleOldValuedProperties.end() || singleIt->second != dob) {
- ModifiedDataObject& modDO = processModifiedDataObject(dob);
- RelationshipStatement& rs = modDO.addFK(getRelationship(*modifiedDataObject, modDO), &modifiedDataObject->getPrimaryKeys());
- modifiedDataObject->addDependency(rs);
-
-
- }
-
- }
-
- }
-
- }
-
- }
-
- }
-
- for (std::map<const commonj::sdo::Property*, std::list<commonj::sdo::DataObjectPtr>*>::iterator manyIt = manyOldValuedProperties.begin() ;
- manyIt != manyOldValuedProperties.end() ; manyIt++) {
-
- std::list<commonj::sdo::DataObjectPtr>* list = manyIt->second;
-
- for (std::list<commonj::sdo::DataObjectPtr>::const_iterator listIt = list->begin() ;
- listIt != list->end() ; listIt++) {
-
- ModifiedDataObject& modDO = processModifiedDataObject(*listIt);
- RelationshipStatement& rs = modDO.addFK(getRelationship(*modifiedDataObject, modDO), 0);
- modDO.addDependency(rs);
-
- }
-
- delete list;
-
- }
-
- }
-
- return *modifiedDataObject;
-
-}
-
-void ApplyChanges::addDataObject(DASDataObject& dataObject) {
- std::list<DASDataObject*>* list;
- std::string typeName = dataObject.getDataObject()->getType().getName();
- std::map<std::string, std::list<DASDataObject*>*>::iterator it =
- dasDataObjects.find(typeName);
-
- if (it == dasDataObjects.end()) {
- list = new std::list<DASDataObject*>();
- dasDataObjects.insert(std::make_pair(typeName, list));
-
- } else {
- list = it->second;
- }
-
- list->push_back(&dataObject);
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/Column.cpp b/cpp/das/runtime/core/src/apache/das/rdb/Column.cpp
deleted file mode 100644
index 44b2a5dd99..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/Column.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/Column.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-Column::Column(const Column& column) {
- this->columnName = column.columnName;
- this->propertyName = column.propertyName;
- this->sqlType = column.sqlType;
- this->containerTable = column.containerTable;
- this->pk = column.pk;
- managed = column.managed;
- collision = column.collision;
-
-}
-
-Column::Column(std::string columnName, SQLSMALLINT sqlType) {
- StringWrapper columnNameWrapper(columnName);
- columnName = columnNameWrapper.toUpper();
- managed = true;
- collision = false;
-
- if (!columnNameWrapper.isValidRDBName()) {
- throw DASInvalidColumnNameException("Column name must not contain whitespace characters!");
- }
-
- this->columnName = columnName;
- this->propertyName = columnName;
- this->sqlType = sqlType;
- containerTable = 0;
- pk = false;
-
-}
-
-Column::~Column(void) {}
-
-void Column::setCollision(bool collision) {
- this->collision = collision;
-}
-
-void Column::setManaged(bool managed) {
- this->managed = managed;
-}
-
-bool Column::isCollision(void) const {
- return collision;
-}
-
-bool Column::isManaged(void) const {
- return managed;
-}
-
-void Column::setContainerTable(Table* containerTable) {
- this->containerTable = containerTable;
-}
-
-Table* Column::getContainerTable(void) const {
- return containerTable;
-}
-
-std::string Column::getName(void) const {
- return columnName;
-}
-
-SQLSMALLINT Column::getSQLType(void) const {
- return sqlType;
-}
-
-void Column::setPropertyName(std::string propertyName) {
- StringWrapper propertyNameWrapper(propertyName);
- propertyName = propertyNameWrapper.toUpper();
-
- if (!propertyNameWrapper.isValidRDBName()) {
- throw DASInvalidPropertyNameException("Property name must not contain whitespace characters!");
- }
-
- this->propertyName = propertyName;
-
-}
-
-std::string Column::getPropertyName(void) const {
- return propertyName;
-}
-
-void Column::setPK(bool pk) {
- this->pk = pk;
-}
-
-bool Column::isPK(void) const {
- return pk;
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/ColumnData.cpp b/cpp/das/runtime/core/src/apache/das/rdb/ColumnData.cpp
deleted file mode 100644
index 653119c367..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/ColumnData.cpp
+++ /dev/null
@@ -1,849 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/ColumnData.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-ColumnData::ColumnData(const Column& column, ResultSetPtr resultSet) {
- this->column = &column;
-
- if (column.getContainerTable() == 0) {
- throw std::invalid_argument("Column table not set");
- }
-
- /*if (resultSet->isNull(column.getContainerTable()->getTableName(), column.getName())) {
- data = 0;
-
- } else {*/
-
- switch (column.getSQLType()) {
-
- case SQL_INTEGER :
- {
- SQLINTEGER sqlInteger = resultSet->getSQLInteger(
- column.getContainerTable()->getTableName(), column.getName());
-
- data = new SQLINTEGER;
- SQLINTEGER* aux = (SQLINTEGER*) data;
- *aux = sqlInteger;
-
- }
-
- break;
-
- case SQL_SMALLINT :
- {
- SQLSMALLINT sqlSmallInt = resultSet->getSQLSmallInt(
- column.getContainerTable()->getTableName(), column.getName());
-
- data = new SQLSMALLINT;
- SQLSMALLINT* aux = (SQLSMALLINT*) data;
- *aux = sqlSmallInt;
-
- }
-
- break;
-
- /*case SQL_BIGINT :
- {
- SQL_BIGINT sqlInteger = resultSet->getSQLInteger(
- column.getContainerTable()->getTableName(), column.getName());
-
- data = new SQL_BIGINT;
- SQL_BIGINT* aux = (SQL_BIGINT*) data;
- *aux = sqlInteger;
-
- }
-
- break;*/
-
- case SQL_CHAR :
- {
- SQLCHAR sqlChar = resultSet->getSQLChar(column.getContainerTable()->getTableName(),
- column.getName());
-
- data = new SQLCHAR;
- SQLCHAR* aux = (SQLCHAR*) data;
- *aux= sqlChar;
- }
-
- break;
-
- case SQL_WCHAR :
- {
- SQLWCHAR sqlWChar = resultSet->getSQLWChar(column.getContainerTable()->getTableName(),
- column.getName());
-
- data = new SQLWCHAR;
- SQLWCHAR* aux = (SQLWCHAR*) data;
- *aux= sqlWChar;
- }
-
- break;
-
- case SQL_DOUBLE :
- {
- SQLDOUBLE sqlDouble = resultSet->getSQLDouble(column.getContainerTable()->getTableName(),
- column.getName());
-
- data = new SQLDOUBLE;
- SQLDOUBLE* aux = (SQLDOUBLE*) data;
- *aux = sqlDouble;
- }
-
- break;
-
- case SQL_FLOAT :
- {
- SQLFLOAT sqlFloat = resultSet->getSQLFloat(column.getContainerTable()->getTableName(),
- column.getName());
-
- data = new SQLFLOAT;
- SQLFLOAT* aux = (SQLFLOAT*) data;
- *aux = sqlFloat;
- }
-
- break;
-
- case SQL_REAL :
- {
- SQLREAL sqlReal = resultSet->getSQLReal(column.getContainerTable()->getTableName(),
- column.getName());
-
- data = new SQLREAL;
- SQLREAL* aux = (SQLREAL*) data;
- *aux = sqlReal;
- }
-
- break;
-
- case SQL_VARCHAR :
- {
- std::string varchar = resultSet->getSQLVarchar(column.getContainerTable()->getTableName(),
- column.getName());
-
- data = new std::string(varchar.begin(), varchar.end());
- std::string* aux = (std::string*) data;
- (*aux).assign(varchar.begin(), varchar.end());
- }
-
- break;
-
- case SQL_WVARCHAR :
- {
- std::wstring wvarchar = resultSet->getSQLWVarchar(column.getContainerTable()->getTableName(),
- column.getName());
-
- std::wstring* aux = new std::wstring();
- *aux = wvarchar;
- data = aux;
-
- }
-
- break;
-
- default :
- throw DASInvalidSQLTypeException();
-
- }
-
- //}
-
-}
-
-ColumnData::ColumnData(const Column& column, const commonj::sdo::Setting& setting) {
- this->column = &column;
-
- if (column.getContainerTable() == 0) {
- throw std::invalid_argument("Column table not set");
- }
-
- if (!setting.isSet() || setting.isNull()) {
- data = 0;
- } else {
-
- switch (column.getSQLType()) {
-
- case SQL_INTEGER :
- {
- SQLINTEGER sqlInteger = setting.getIntValue();
-
- data = new SQLINTEGER;
- SQLINTEGER* aux = (SQLINTEGER*) data;
- *aux = sqlInteger;
-
- }
-
- break;
-
- case SQL_SMALLINT :
- {
- SQLSMALLINT sqlSmallInt = setting.getIntValue();
-
- data = new SQLSMALLINT;
- SQLSMALLINT* aux = (SQLSMALLINT*) data;
- *aux = sqlSmallInt;
-
- }
-
- break;
-
- case SQL_CHAR :
- {
- SQLCHAR sqlChar = setting.getCharacterValue();
-
- data = new SQLCHAR;
- SQLCHAR* aux = (SQLCHAR*) data;
- *aux= sqlChar;
- }
-
- break;
-
- case SQL_WCHAR :
- {
- SQLWCHAR sqlWChar = setting.getCharacterValue();
-
- data = new SQLWCHAR;
- SQLWCHAR* aux = (SQLWCHAR*) data;
- *aux= sqlWChar;
- }
-
- break;
-
- case SQL_DOUBLE :
- {
- SQLDOUBLE sqlDouble = setting.getDoubleValue();
-
- data = new SQLDOUBLE;
- SQLDOUBLE* aux = (SQLDOUBLE*) data;
- *aux = sqlDouble;
- }
-
- break;
-
- case SQL_FLOAT :
- {
- SQLFLOAT sqlFloat = setting.getDoubleValue();
-
- data = new SQLFLOAT;
- SQLFLOAT* aux = (SQLFLOAT*) data;
- *aux = sqlFloat;
- }
-
- break;
-
- case SQL_REAL :
- {
- SQLREAL sqlReal = setting.getFloatValue();
-
- data = new SQLREAL;
- SQLREAL* aux = (SQLREAL*) data;
- *aux = sqlReal;
- }
-
- break;
-
- case SQL_VARCHAR :
- {
- unsigned int length = setting.getLength();
- wchar_t* buffer = new wchar_t[length];
- setting.getStringValue(buffer, length);
- //buffer[length] = 0;
-
- std::wstring wstr(buffer, 0, length);
- std::string* str = new std::string(wstr.begin(), wstr.end());
- str->assign(wstr.begin(), wstr.end());
-
- data = str;
-
- delete [] buffer;
-
- }
-
- break;
-
- case SQL_WVARCHAR :
- {
- unsigned int length = setting.getLength();
- wchar_t* buffer = new wchar_t[length];
- setting.getStringValue(buffer, length);
- //buffer[length] = 0;
-
- data = new std::wstring(buffer, 0, length);
-
- delete [] buffer;
-
- }
-
- break;
-
- default :
- throw DASInvalidSQLTypeException();
-
- }
-
- }
-
-}
-
-ColumnData::ColumnData(const Column& column, commonj::sdo::DataObjectPtr dataObject) {
- this->column = &column;
-
- if (column.getContainerTable() == 0) {
- throw std::invalid_argument("Column table not set");
- }
-
- if (!dataObject->isSet(column.getPropertyName().c_str()) || dataObject->isNull(column.getPropertyName().c_str())) {
- data = 0;
-
- } else {
-
- switch (column.getSQLType()) {
-
- case SQL_INTEGER :
- {
- SQLINTEGER sqlInteger = dataObject->getInt(column.getPropertyName().c_str());
-
- data = new SQLINTEGER;
- SQLINTEGER* aux = (SQLINTEGER*) data;
- *aux = sqlInteger;
-
- }
-
- break;
-
- case SQL_SMALLINT :
- {
- SQLSMALLINT sqlSmallInt = dataObject->getInt(column.getPropertyName().c_str());
-
- data = new SQLSMALLINT;
- SQLSMALLINT* aux = (SQLSMALLINT*) data;
- *aux = sqlSmallInt;
-
- }
-
- break;
-
- case SQL_CHAR :
- {
- SQLCHAR sqlChar = dataObject->getCharacter(column.getPropertyName().c_str());
-
- data = new SQLCHAR;
- SQLCHAR* aux = (SQLCHAR*) data;
- *aux= sqlChar;
- }
-
- break;
-
- case SQL_WCHAR :
- {
- SQLWCHAR sqlWChar = dataObject->getCharacter(column.getPropertyName().c_str());
-
- data = new SQLWCHAR;
- SQLWCHAR* aux = (SQLWCHAR*) data;
- *aux= sqlWChar;
- }
-
- break;
-
- case SQL_DOUBLE :
- {
- SQLDOUBLE sqlDouble = dataObject->getDouble(column.getPropertyName().c_str());
-
- data = new SQLDOUBLE;
- SQLDOUBLE* aux = (SQLDOUBLE*) data;
- *aux = sqlDouble;
- }
-
- break;
-
- case SQL_FLOAT :
- {
- SQLFLOAT sqlFloat = dataObject->getDouble(column.getPropertyName().c_str());
-
- data = new SQLFLOAT;
- SQLFLOAT* aux = (SQLFLOAT*) data;
- *aux = sqlFloat;
- }
-
- break;
-
- case SQL_REAL :
- {
- SQLREAL sqlReal = dataObject->getFloat(column.getPropertyName().c_str());
-
- data = new SQLREAL;
- SQLREAL* aux = (SQLREAL*) data;
- *aux = sqlReal;
- }
-
- break;
-
- case SQL_VARCHAR :
- {
- unsigned int length = dataObject->getLength(column.getPropertyName().c_str());
- wchar_t* buffer = new wchar_t[length];
- dataObject->getString(column.getPropertyName().c_str(), buffer, length);
-
- std::wstring wstr(buffer, 0, length);
- std::string* str = new std::string(wstr.begin(), wstr.end());
- str->assign(wstr.begin(), wstr.end());
-
- data = str;
-
- delete [] buffer;
-
- }
-
- break;
-
- case SQL_WVARCHAR :
- {
- unsigned int length = dataObject->getLength(column.getPropertyName().c_str());
- wchar_t* buffer = new wchar_t[length];
- dataObject->getString(column.getPropertyName().c_str(), buffer, length);
-
- data = new std::wstring(buffer, 0, length);
-
- delete [] buffer;
-
- }
-
- break;
-
- default :
- throw DASInvalidSQLTypeException();
-
- }
-
- }
-
-}
-
-ColumnData::~ColumnData(void) {
- delete data;
-}
-
-std::string ColumnData::toSQL(void) const {
-
- if (data == 0) {
- return "NULL";
- } else {
-
- switch (column->getSQLType()) {
-
- case SQL_INTEGER :
- return StringWrapper::toString(*((SQLINTEGER*) data));
-
- case SQL_SMALLINT :
- return StringWrapper::toString(*((SQLSMALLINT*) data));
-
- case SQL_CHAR :
- return '\'' + StringWrapper::toString(*((SQLCHAR*) data)) + '\'';
-
- case SQL_WCHAR :
- return '\'' + StringWrapper::toString(*((SQLWCHAR*) data)) + '\'';
-
- case SQL_DOUBLE :
- return StringWrapper::toString(*((SQLDOUBLE*) data));
-
- case SQL_FLOAT :
- return StringWrapper::toString(*((SQLFLOAT*) data));
-
- case SQL_REAL :
- return StringWrapper::toString(*((SQLREAL*) data));
-
- case SQL_VARCHAR :
- {
- std::string str = *((std::string*) data);
- return '\'' + str + '\'';
-
- }
-
- case SQL_WVARCHAR :
- {
- std::wstring wstr = *((std::wstring*) data);
- std::string str(wstr.begin(), wstr.end());
- str.assign(wstr.begin(), wstr.end());
- return '\'' + str + '\'';
-
- }
-
- default :
- throw DASInvalidSQLTypeException();
-
- }
-
- }
-
-}
-
-void ColumnData::populateDataGraph(TableData& tableData) const {
- try {
- tableData.getGraphObject()->getType().getPropertyIndex(column->getPropertyName().c_str());
-
- } catch (commonj::sdo::SDOPropertyNotFoundException&) {
- return;
- }
-
- if (data == 0) {
- tableData.getGraphObject()->setNull(column->getPropertyName().c_str());
-
- } else {
-
- switch (column->getSQLType()) {
-
- case SQL_INTEGER :
- tableData.getGraphObject()->setInt(column->getPropertyName().c_str(), (long) *((SQLINTEGER*) data));
-
- break;
-
- case SQL_SMALLINT :
- tableData.getGraphObject()->setInt(column->getPropertyName().c_str(), (long) *((SQLSMALLINT*) data));
-
- break;
-
- case SQL_CHAR :
- tableData.getGraphObject()->setCharacter(column->getPropertyName().c_str(), (wchar_t) *((SQLCHAR*) data));
-
- break;
-
- case SQL_WCHAR :
- tableData.getGraphObject()->setCharacter(column->getPropertyName().c_str(), (wchar_t) *((SQLWCHAR*) data));
-
- break;
-
- case SQL_FLOAT :
- tableData.getGraphObject()->setDouble(column->getPropertyName().c_str(), (long double) *((SQLFLOAT*) data));
-
- case SQL_DOUBLE :
- tableData.getGraphObject()->setDouble(column->getPropertyName().c_str(), (long double) *((SQLDOUBLE*) data));
-
- break;
-
- case SQL_REAL :
- tableData.getGraphObject()->setFloat(column->getPropertyName().c_str(), (float) *((SQLREAL*) data));
-
- break;
-
- case SQL_VARCHAR :
- {
- std::string* varchar = (std::string*) data;
- std::wstring wstr(varchar->begin(), varchar->end());
- wstr.assign(varchar->begin(), varchar->end());
-
- tableData.getGraphObject()->setString(column->getPropertyName().c_str(),
- wstr.c_str(), wstr.size());
- }
-
- break;
-
- case SQL_WVARCHAR :
- {
- std::wstring* wvarchar = (std::wstring*) data;
-
- tableData.getGraphObject()->setString(column->getPropertyName().c_str(),
- (*wvarchar).c_str(), (*wvarchar).size());
- }
-
- break;
-
- default :
- throw DASInvalidSQLTypeException();
-
- }
-
- }
-
-}
-
-bool ColumnData::operator==(const ColumnData& columnData) const {
-
- if (column->getSQLType() != columnData.column->getSQLType()) {
- throw DASInvalidSQLTypeException("Different sql types!");
- }
-
- if (data == 0) {
- return false;
- }
-
- switch (column->getSQLType()) {
-
- case SQL_INTEGER :
-
- if (*((SQLINTEGER*) columnData.data) == *((SQLINTEGER*) data)) {
- return true;
- }
-
- break;
-
- case SQL_SMALLINT :
-
- if (*((SQLSMALLINT*) columnData.data) == *((SQLSMALLINT*) data)) {
- return true;
- }
-
- break;
-
- case SQL_CHAR :
-
- if (*((SQLCHAR*) columnData.data) == *((SQLCHAR*) data)) {
- return true;
- }
-
- break;
-
- case SQL_WCHAR :
-
- if (*((SQLWCHAR*) columnData.data) == *((SQLWCHAR*) data)) {
- return true;
- }
-
- break;
-
- case SQL_DOUBLE :
- if (*((SQLDOUBLE*) columnData.data) == *((SQLDOUBLE*) data)) {
- return true;
- }
-
- case SQL_FLOAT :
- if (*((SQLFLOAT*) columnData.data) == *((SQLFLOAT*) data)) {
- return true;
- }
-
- break;
-
- case SQL_REAL :
-
- if (*((SQLREAL*) columnData.data) == *((SQLREAL*) data)) {
- return true;
- }
-
- break;
-
- case SQL_VARCHAR :
- if (*((std::string*) columnData.data) == *((std::string*) data)) {
- return true;
- }
-
- break;
-
- case SQL_WVARCHAR :
- if (*((std::wstring*) columnData.data) == *((std::wstring*) data)) {
- return true;
- }
-
- break;
-
- default :
- throw DASInvalidSQLTypeException();
-
- }
-
- return false;
-
-}
-
-bool ColumnData::operator!=(const ColumnData& columnData) const {
- return !(*this == columnData);
-}
-
-const Column& ColumnData::getColumn(void) const {
- return *column;
-}
-
-bool ColumnData::operator<(const ColumnData& columnData) const {
-
- if (column->getSQLType() != columnData.column->getSQLType()) {
- throw DASInvalidSQLTypeException("Different sql types!");
- }
-
- if (data == 0) {
- return false;
- }
-
- switch (column->getSQLType()) {
-
- case SQL_SMALLINT :
-
- if (*((SQLSMALLINT*) columnData.data) > *((SQLSMALLINT*) data)) {
- return true;
- }
-
- break;
-
- case SQL_INTEGER :
-
- if (*((SQLINTEGER*) columnData.data) > *((SQLINTEGER*) data)) {
- return true;
- }
-
- break;
-
- case SQL_CHAR :
-
- if (*((SQLCHAR*) columnData.data) > *((SQLCHAR*) data)) {
- return true;
- }
-
- break;
-
- case SQL_WCHAR :
-
- if (*((SQLWCHAR*) columnData.data) > *((SQLWCHAR*) data)) {
- return true;
- }
-
- break;
-
- case SQL_DOUBLE :
- if (*((SQLDOUBLE*) columnData.data) > *((SQLDOUBLE*) data)) {
- return true;
- }
-
- case SQL_FLOAT :
- if (*((SQLFLOAT*) columnData.data) > *((SQLFLOAT*) data)) {
- return true;
- }
-
- break;
-
- case SQL_REAL :
-
- if (*((SQLREAL*) columnData.data) > *((SQLREAL*) data)) {
- return true;
- }
-
- break;
-
- case SQL_VARCHAR :
- if (*((std::string*) columnData.data) > *((std::string*) data)) {
- return true;
- }
-
- break;
-
- case SQL_WVARCHAR :
- if (*((std::wstring*) columnData.data) > *((std::wstring*) data)) {
- return true;
- }
-
- break;
-
- default :
- throw DASInvalidSQLTypeException();
-
- }
-
- return false;
-
-}
-
-bool ColumnData::operator>(const ColumnData& columnData) const {
-
- if (column->getSQLType() != columnData.column->getSQLType()) {
- throw DASInvalidSQLTypeException("Different sql types!");
- }
-
- if (data == 0) {
- return false;
- }
-
- switch (column->getSQLType()) {
-
- case SQL_INTEGER :
-
- if (*((SQLINTEGER*) columnData.data) < *((SQLINTEGER*) data)) {
- return true;
- }
-
- break;
-
- case SQL_SMALLINT :
-
- if (*((SQLSMALLINT*) columnData.data) < *((SQLSMALLINT*) data)) {
- return true;
- }
-
- break;
-
- case SQL_CHAR :
-
- if (*((SQLCHAR*) columnData.data) < *((SQLCHAR*) data)) {
- return true;
- }
-
- break;
-
- case SQL_WCHAR :
-
- if (*((SQLWCHAR*) columnData.data) < *((SQLWCHAR*) data)) {
- return true;
- }
-
- break;
-
- case SQL_DOUBLE :
- if (*((SQLDOUBLE*) columnData.data) < *((SQLDOUBLE*) data)) {
- return true;
- }
-
- case SQL_FLOAT :
- if (*((SQLFLOAT*) columnData.data) < *((SQLFLOAT*) data)) {
- return true;
- }
-
- break;
-
- case SQL_REAL :
-
- if (*((SQLREAL*) columnData.data) < *((SQLREAL*) data)) {
- return true;
- }
-
- break;
-
- case SQL_VARCHAR :
- if (*((std::string*) columnData.data) < *((std::string*) data)) {
- return true;
- }
-
- break;
-
- case SQL_WVARCHAR :
- if (*((std::wstring*) columnData.data) < *((std::wstring*) data)) {
- return true;
- }
-
- break;
-
- default :
- throw DASInvalidSQLTypeException();
-
- }
-
- return false;
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/CommandImpl.cpp b/cpp/das/runtime/core/src/apache/das/rdb/CommandImpl.cpp
deleted file mode 100644
index 193d3e1108..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/CommandImpl.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/CommandImpl.h"
-#include "apache/das/rdb/DASImpl.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-CommandImpl::CommandImpl(DASImpl& das, std::string sqlString) {
- this->das = &das;
- statement = das.getConnection()->createStatement();
- sql = sqlString;
-
- //statement = new Statement();
-
- //try {
- /*URL url = getClass().getResource("/xml/sdoJava.xsd");
- if (url == null) {
- //throw new RuntimeException("Could not find resource: xml/sdoJava.xsd");
- }
-
- InputStream inputStream = url.openStream();
- XSDHelper.INSTANCE.define(inputStream, url.toString());
- inputStream.close();*/
- //} catch (IOException ex) {
- // throw new RuntimeException(ex);
- //}
-
-}
-
-CommandImpl::~CommandImpl() {}
-
-DASImpl& CommandImpl::getDAS(void) {
- return *das;
-}
-
-commonj::sdo::DataObjectPtr CommandImpl::executeQuery(void) {
- statement->executeQuery(sql);
-
- return commonj::sdo::DataObjectPtr(0);
-
-}
-
-void CommandImpl::close(void) {
- statement->close();
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/ConfigImpl.cpp b/cpp/das/runtime/core/src/apache/das/rdb/ConfigImpl.cpp
deleted file mode 100644
index 20c7871ba4..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/ConfigImpl.cpp
+++ /dev/null
@@ -1,334 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/ConfigImpl.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-ConfigImpl::ConfigImpl(void) {
- relationships = new std::map<std::string, const Relationship*>();
- tables = new std::map<std::string, const Table*>();
- commands = new std::map<std::string, std::string>();
-
- convOverConfig = false;
-
-}
-
-ConfigImpl::ConfigImpl(const Config& config) : Config(config) {
- ConfigImpl& thisConfig = (ConfigImpl&) config;
- tables = new std::map<std::string, const Table*>();
- relationships = new std::map<std::string, const Relationship*>();
- commands = new std::map<std::string, std::string>(*thisConfig.commands);
-
- std::map<std::string, const Table*>::iterator tableIterator;
- std::map<std::string, const Relationship*>::iterator relationshipIterator;
- std::map<std::string, std::string>::iterator commandIterator;
-
- this->convOverConfig = thisConfig.convOverConfig;
-
- for (tableIterator = thisConfig.tables->begin() ; tableIterator != thisConfig.tables->end() ;
- tableIterator++) {
-
- tables->insert(std::make_pair(tableIterator->first, new Table(*tableIterator->second)));
-
- }
-
- for (relationshipIterator = thisConfig.relationships->begin() ;
- relationshipIterator != thisConfig.relationships->end() ; relationshipIterator++) {
-
- relationships->insert(std::make_pair(relationshipIterator->first,
- new Relationship(*relationshipIterator->second)));
-
- }
-
-}
-
-ConfigImpl::ConfigImpl(std::string xmlFile) {
- relationships = new std::map<std::string, const Relationship*>();
- tables = new std::map<std::string, const Table*>();
- commands = new std::map<std::string, std::string>();
-
- convOverConfig = false;
-
- commonj::sdo::DataFactoryPtr dataFactory = commonj::sdo::DataFactory::getDataFactory();
- dataFactory->addType(DAS_NAMESPACE, "RootType");
- dataFactory->addType(DAS_NAMESPACE, "Table");
- dataFactory->addType(DAS_NAMESPACE, "Relationship");
- dataFactory->addType(DAS_NAMESPACE, "KeyPair");
- dataFactory->addType(DAS_NAMESPACE, "Column");
- dataFactory->addType(DAS_NAMESPACE, "Config");
- dataFactory->addType(DAS_NAMESPACE, "Command");
-
- const commonj::sdo::Type& rootType = dataFactory->getType(DAS_NAMESPACE, "RootType");
- const commonj::sdo::Type& table = dataFactory->getType(DAS_NAMESPACE, "Table");
- const commonj::sdo::Type& relationship = dataFactory->getType(DAS_NAMESPACE, "Relationship");
- const commonj::sdo::Type& keyPair = dataFactory->getType(DAS_NAMESPACE, "KeyPair");
- const commonj::sdo::Type& column = dataFactory->getType(DAS_NAMESPACE, "Column");
- const commonj::sdo::Type& config = dataFactory->getType(DAS_NAMESPACE, "Config");
- const commonj::sdo::Type& command = dataFactory->getType(DAS_NAMESPACE, "Command");
-
- dataFactory->addPropertyToType(rootType, "Config", config);
-
- dataFactory->addPropertyToType(table, "Column", column, true, false, true);
- dataFactory->addPropertyToType(table, "tableName", SDO_NAMESPACE, "String", false, false, true);
- dataFactory->addPropertyToType(table, "typeName", SDO_NAMESPACE, "String", false, false, true);
-
- dataFactory->addPropertyToType(config, "Table", table, true, false, true);
- dataFactory->addPropertyToType(config, "Relationship", relationship, true, false, true);
- dataFactory->addPropertyToType(config, "Command", command, true, false, true);
- dataFactory->addPropertyToType(config, "uri", SDO_NAMESPACE, "String", false, false, true);
- dataFactory->setDefault(SDO_NAMESPACE, "String", "uri", "");
-
- dataFactory->addPropertyToType(command, "name", SDO_NAMESPACE, "String", false, false, true);
- dataFactory->addPropertyToType(command, "SQL", SDO_NAMESPACE, "String", false, false, true);
-
- dataFactory->addPropertyToType(relationship, "KeyPair", keyPair, true, false, true);
- dataFactory->addPropertyToType(relationship, "name", SDO_NAMESPACE, "String", false, false, true);
- dataFactory->addPropertyToType(relationship, "primaryKeyTable", SDO_NAMESPACE, "String", false, false, true);
- dataFactory->addPropertyToType(relationship, "foreignKeyTable", SDO_NAMESPACE, "String", false, false, true);
- dataFactory->addPropertyToType(relationship, "many", SDO_NAMESPACE, "Boolean", false, false, true);
- dataFactory->setDefault(relationship, "many", true);
-
- dataFactory->addPropertyToType(keyPair, "primaryKeyColumn", SDO_NAMESPACE, "String", false, false, true);
- dataFactory->addPropertyToType(keyPair, "foreignKeyColumn", SDO_NAMESPACE, "String", false, false, true);
-
- dataFactory->addPropertyToType(column, "columnName", SDO_NAMESPACE, "String", false, false, true);
- dataFactory->addPropertyToType(column, "sqlType", SDO_NAMESPACE, "String", false, false, true);
- dataFactory->addPropertyToType(column, "propertyName", SDO_NAMESPACE, "String", false, false, true);
- dataFactory->addPropertyToType(column, "primaryKey", SDO_NAMESPACE, "Boolean", false, false, true);
- dataFactory->addPropertyToType(column, "primaryKey", SDO_NAMESPACE, "Boolean", false, false, true);
- dataFactory->addPropertyToType(column, "collision", SDO_NAMESPACE, "Boolean", false, false, true);
- dataFactory->addPropertyToType(column, "managed", SDO_NAMESPACE, "Boolean", false, false, true);
- dataFactory->setDefault(column, "primaryKey", false);
- dataFactory->setDefault(column, "collision", false);
- dataFactory->setDefault(column, "managed", true);
-
- dataFactory->resolve();
-
- commonj::sdo::XMLHelperPtr xmlh = commonj::sdo::HelperProvider::getXMLHelper(dataFactory);
- commonj::sdo::XMLDocumentPtr doc = xmlh->loadFile(xmlFile.c_str(), DAS_NAMESPACE);
- commonj::sdo::DataObjectPtr root = doc->getRootDataObject();
-
- commonj::sdo::DataObjectList& tableList = root->getList("Table");
-
- for (unsigned int i = 0 ; i < tableList.size() ; i++) {
- std::string tableName = SDODataObjectWrapper(tableList[i]).getString("tableName");
-
- if (tableName != "") {
- Table& table = addTable(tableName);
- std::string typeName = SDODataObjectWrapper(tableList[i]).getString("typeName");
-
- if (typeName != "") {
- table.setTypeName(typeName);
- }
-
- commonj::sdo::DataObjectList& columnList = tableList[i]->getList("Column");
-
- for (unsigned int j = 0 ; j < columnList.size() ; j++) {
- std::string columnName = SDODataObjectWrapper(columnList[j]).getString("columnName");
- std::string sqlType = SDODataObjectWrapper(columnList[j]).getString("sqlType");
-
- if (columnName != "" && sqlType != "") {
- Column& column = table.addColumn(columnName, ODBCTypeHelper::getSQLType(sqlType));
- std::string propertyName = SDODataObjectWrapper(columnList[j]).getString("propertyName");
-
- if (propertyName != "") {
- column.setPropertyName(propertyName);
- }
-
- column.setPK(columnList[j]->getBoolean("primaryKey"));
- column.setManaged(columnList[j]->getBoolean("managed"));
- column.setCollision(columnList[j]->getBoolean("collision"));
-
- }
-
-
- }
-
- }
-
- }
-
- commonj::sdo::DataObjectList& relationshipList = root->getList("Relationship");
-
- for (unsigned int i = 0 ; i < relationshipList.size() ; i++) {
- std::string primaryKeyTable = SDODataObjectWrapper(relationshipList[i]).getString("primaryKeyTable");
- std::string foreignKeyTable = SDODataObjectWrapper(relationshipList[i]).getString("foreignKeyTable");
- std::string name = SDODataObjectWrapper(relationshipList[i]).getString("name");;
-
- Relationship& relationship = addRelationship(primaryKeyTable, foreignKeyTable);
- relationship.setMany(relationshipList[i]->getBoolean("many"));
-
- commonj::sdo::DataObjectList& keyPairList = relationshipList[i]->getList("KeyPair");
-
- for (unsigned int i = 0 ; i < keyPairList.size() ; i++) {
- std::string primaryKeyColumn = SDODataObjectWrapper(keyPairList[i]).getString("primaryKeyColumn");
- std::string foreignKeyColumn = SDODataObjectWrapper(keyPairList[i]).getString("foreignKeyColumn");
- relationship.addKeyPair(primaryKeyColumn, foreignKeyColumn);
-
- }
-
- }
-
- commonj::sdo::DataObjectList& commandList = root->getList("Command");
-
- for (unsigned int i = 0 ; i < commandList.size() ; i++) {
- std::string name = SDODataObjectWrapper(commandList[i]).getString("name");
- std::string sql = SDODataObjectWrapper(commandList[i]).getString("SQL");
-
- commands->insert(std::make_pair(name, sql));
-
- }
-
- setURI(StringWrapper(root, "uri").getString());
-
-}
-
-ConfigImpl::~ConfigImpl(void) {
- std::map<std::string, const Table*>::const_iterator tableIterator;
- std::map<std::string, const Relationship*>::const_iterator relationshipIterator;
-
- tableIterator = tables->begin();
- for ( ; tableIterator != tables->end() ;
- tableIterator++) {
- delete tableIterator->second;
- }
-
- for (relationshipIterator = relationships->begin() ;
- relationshipIterator != relationships->end() ; relationshipIterator++) {
- delete relationshipIterator->second;
- }
-
- delete relationships;
- delete tables;
- delete commands;
-
-}
-
-std::string ConfigImpl::getCommand(std::string commandName) const {
- std::map<std::string, std::string>::const_iterator it = commands->find(commandName);
-
- if (it == commands->end()) {
- throw DASCommandNotFoundException();
- }
-
- return it->second;
-
-}
-
-const Table* ConfigImpl::getTableByTypeName(std::string typeName) const {
- std::map<std::string, const Table*>::const_iterator it;
-
- for (it = tables->begin() ;
- it != tables->end() ; it++) {
-
- if (it->second->getTypeName() == typeName) {
- return it->second;
- }
-
- }
-
- return 0;
-
-}
-
-Table& ConfigImpl::addTable(std::string tableName) {
- return newTable(*(new Table(tableName)));
-}
-
-Table& ConfigImpl::addTable(const Table& table) {
- return newTable(*(new Table(table)));
-}
-
-Table& ConfigImpl::newTable(Table& table) {
- std::string tableName = table.getTableName();
- std::map<std::string, const Table*>::iterator tableIterator = tables->find(tableName);
-
- if (tableIterator == tables->end()) {
- tables->insert(std::make_pair(tableName, &table));
-
- return table;
-
- }
-
- return (Table&) *tableIterator->second;
-
-}
-
-const std::map<std::string, Relationship*>& ConfigImpl::getRelationships(void) const {
- return (const std::map<std::string, Relationship*>&) *relationships;
-}
-
-Relationship& ConfigImpl::addRelationship(std::string pkTableName, std::string fkTableName, std::string name) {
- return newRelationship(*(new Relationship(pkTableName, fkTableName, name)));
-}
-
-Relationship& ConfigImpl::addRelationship(const Relationship& relationship) {
- return newRelationship(*(new Relationship(relationship)));
-}
-
-Relationship& ConfigImpl::newRelationship(Relationship& relationship) {
- std::string pkXfk = relationship.getPKTableName() + "." + relationship.getFKTableName();
- std::map<std::string, const Relationship*>::iterator it = relationships->find(pkXfk);
-
- if (it == relationships->end()) {
- relationships->insert(std::make_pair(pkXfk, &relationship));
-
- return relationship;
-
- }
-
- return (Relationship&) *it->second;
-
-}
-
-const Relationship* ConfigImpl::getRelationship(std::string pkTableName, std::string fkTableName) const {
- std::map<std::string, const Relationship*>::iterator it = relationships->find(pkTableName + "." + fkTableName);
-
- if (it == relationships->end()) {
- return 0;
- }
-
- return it->second;
-
-}
-
-const std::map<std::string, Table*>& ConfigImpl::getTables(void) const {
- return (const std::map<std::string, Table*>&) *tables;
-}
-
-bool ConfigImpl::isConvOverConfig(void) const {
- return convOverConfig;
-}
-
-const Table* ConfigImpl::getTable(std::string tableName) const {
- std::map<std::string, const Table*>::iterator tableIterator = tables->find(tableName);
-
- if (tableIterator == tables->end()) {
- return 0;
- }
-
- return tableIterator->second;
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/Connection.cpp b/cpp/das/runtime/core/src/apache/das/rdb/Connection.cpp
deleted file mode 100644
index 752f70f528..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/Connection.cpp
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/Connection.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-Connection::Connection(string dsn, string user, string password) {
- SQLRETURN result;
-
- SQLINTEGER error;
- SQLCHAR sqlStat;
- SQLCHAR * message = 0;
- SQLSMALLINT messageLength;
-
- //Alloc environment handle
- result = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&environment);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "Error to alloc the environment handle - SQLHENV");
-
- //Set the environment
- result = SQLSetEnvAttr(environment, SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3, 0);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)){
- SQLFreeHandle(SQL_HANDLE_ENV, environment);
- throw SQLException(result, "Error to set the environment handle - SQLHENV");
- }
-
- //Allocate connection handle
- result = SQLAllocHandle(SQL_HANDLE_DBC, environment, &connection);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)){
- SQLFreeHandle(SQL_HANDLE_ENV, environment);
- throw SQLException(result, "Error to alloc the connection handle - SQLHDBC");
- }
-
- setAutoCommit(false);
-
- //Connect to the datasource
- result = SQLConnect(connection, reinterpret_cast<SQLCHAR *>(const_cast<char *> (dsn.c_str())), SQL_NTS,
- reinterpret_cast<SQLCHAR *>(const_cast<char *> (user.c_str())), SQL_NTS,
- reinterpret_cast<SQLCHAR *>(const_cast<char *> (password.c_str())), SQL_NTS);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)){
-
- SQLGetDiagRec(SQL_HANDLE_DBC, connection,1,
- &sqlStat, &error,message,100,&messageLength);
-
- SQLFreeHandle(SQL_HANDLE_DBC, connection);
- SQLFreeHandle(SQL_HANDLE_ENV, environment);
-
- string error("Error to establish the connection.\nSQLSTATE: ");
- error += reinterpret_cast<char*>(&sqlStat);
- throw SQLException(result, error);
- }
-
-}
-
-Connection::Connection(string connectString) {
- SQLRETURN result;
-
- SQLINTEGER error;
- SQLCHAR sqlStat;
- SQLCHAR * message = 0;
- SQLSMALLINT messageLength;
- SQLCHAR outConnectString[1024];
-
- //Alloc environment handle
- result = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&environment);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "Error to alloc the environment handle - SQLHENV");
-
- //Set the environment
- result = SQLSetEnvAttr(environment, SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3, 0);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)){
- SQLFreeHandle(SQL_HANDLE_ENV, environment);
- throw SQLException(result, "Error to set the environment handle - SQLHENV");
- }
-
- //Allocate connection handle
- result = SQLAllocHandle(SQL_HANDLE_DBC, environment, &connection);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)){
- SQLFreeHandle(SQL_HANDLE_ENV, environment);
- throw SQLException(result, "Error to alloc the connection handle - SQLHDBC");
- }
-
- setAutoCommit(false);
-
- //Connect to the datasource
- result = SQLDriverConnect( connection, 0, (SQLCHAR*) (char*) connectString.c_str(), SQL_NTS,
- (SQLCHAR*)outConnectString, sizeof(outConnectString),
- &messageLength, SQL_DRIVER_COMPLETE );
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)){
-
- SQLGetDiagRec(SQL_HANDLE_DBC, connection,1,
- &sqlStat, &error,message,100,&messageLength);
-
- SQLFreeHandle(SQL_HANDLE_DBC, connection);
- SQLFreeHandle(SQL_HANDLE_ENV, environment);
-
- string outC = (char*) outConnectString;
-
- string error("Error to establish the connection.\nSQLSTATE: ");
- error += reinterpret_cast<char*>(&sqlStat);
- throw SQLException(result, error);
- }
-
-}
-
-Connection::~Connection(void){
- std::list<StatementPtr*>::iterator it;
-
- for (it = statements.begin() ; it != statements.end() ; it++) {
-
- if (**it) {
- delete **it;
- delete *it;
-
- }
-
- }
-
- SQLDisconnect(connection);
- SQLFreeHandle(SQL_HANDLE_DBC,connection);
- SQLFreeHandle(SQL_HANDLE_ENV, environment);
-
-}
-
-SQLHDBC Connection::getODBCConnection(void) const{
- return connection;
-}
-
-void Connection::commit(void){
- SQLRETURN result = SQLEndTran(SQL_HANDLE_DBC, connection, SQL_COMMIT);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)){
- throw SQLException(result, "Commit error");
- }
-
-}
-
-void Connection::rollback(void){
- SQLRETURN result = SQLEndTran(SQL_HANDLE_DBC, connection, SQL_ROLLBACK);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)){
- throw SQLException(result, "Rollback error");
- }
-
-}
-
-void Connection::setAutoCommit(bool autoCommit){
- if(autoCommit)
- SQLSetConnectAttr(connection,SQL_ATTR_AUTOCOMMIT,reinterpret_cast<SQLPOINTER>(SQL_AUTOCOMMIT_ON), SQL_IS_INTEGER );
- else
- SQLSetConnectAttr(connection,SQL_ATTR_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF, SQL_IS_INTEGER );
-}
-
-StatementPtr Connection::createStatement(void) {
- SQLHSTMT statementHandle;
- SQLRETURN result = SQLAllocHandle(SQL_HANDLE_STMT, connection, &statementHandle);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)){
- throw SQLException(result, "Error to alloc the statement handle - SQLSTMT");
- }
-
- std::list<StatementPtr*>::iterator it;
-
- for (it = statements.begin() ; it != statements.end() ; ) {
-
- if (**it) {
- it++;
-
- } else {
- std::list<StatementPtr*>::iterator aux = it;
- it++;
- statements.erase(aux);
-
- }
-
- }
-
- Statement* stmt = new Statement(*this, statementHandle);
- StatementPtr ret(stmt);
- statements.push_back(new StatementPtr(stmt, false));
-
- return ret;
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/CreatedDataObject.cpp b/cpp/das/runtime/core/src/apache/das/rdb/CreatedDataObject.cpp
deleted file mode 100644
index de24d356d4..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/CreatedDataObject.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/CreatedDataObject.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-CreatedDataObject::CreatedDataObject(const Table& table, commonj::sdo::DataObjectPtr dataObject,
- commonj::sdo::ChangeSummaryPtr changeSummary)
- : DASDataObject(table, dataObject, changeSummary) {
-
-
- commonj::sdo::PropertyList properties = dataObject->getInstanceProperties();
- statement.append("insert into ").append(table.getTableName()).append("(");
- bool containsDataType = false;
- std::string columns;
- std::string values;
-
- for (unsigned int i = 0 ; i < properties.size() ; i++) {
-
- if (properties[i].getType().isDataType()) {
-
- if (containsDataType) {
- columns.append(",");
- values.append(",");
-
- }
-
- containsDataType = true;
- const Column* column = table.getColumnByProperty(properties[i].getName());
- ColumnData columnData(*column, dataObject);
-
- columns.append(column->getName());
- values.append(columnData.toSQL());
-
- }
-
- }
-
- statement.append(columns).append(") values(").append(values).append(");");
-
-}
-
-CreatedDataObject::~CreatedDataObject(void) {}
-
-std::string CreatedDataObject::getStatement(void) const {
- return statement;
-}
-
-//void CreatedDataObject::execute(StatementPtr stmt) const {
-// DASDataObject::execute(stmt);
-//
-// std::string statement;
-// statement = statement.append("insert into ").append(getDataObject()->getType().getName()).append("(");
-//
-// stmt->executeQuery(statement);
-//
-//
-//}
-//
-//void CreatedDataObject::execute(StatementPtr stmt) const {
-//
-// for (std::list<RelationshipStatement*>::const_iterator it = dependencies.begin() ;
-// it != dependencies.end() ; it++) {
-//
-// (*it)->execute(stmt);
-//
-// }
-//
-// std::cout << statement << std::endl;
-//
-// if (statement != "") {
-// stmt->executeQuery(statement);
-// }
-//
-//}
-
-void CreatedDataObject::printStmt(void) {
- /*DASDataObject::printStmt();
-
- std::string statement;
- statement = statement.append("insert into ").append(getDataObject()->getType().getName()).append("(").append(columns).append(") values(").append(values).append(");");
-
- std::cout << statement << std::endl;*/
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DASColumnNotFoundException.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DASColumnNotFoundException.cpp
deleted file mode 100644
index be40dd89f0..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DASColumnNotFoundException.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/rdb/DASColumnNotFoundException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-DASColumnNotFoundException::DASColumnNotFoundException(std::string message) : std::exception(message.c_str()) {}
-
-DASColumnNotFoundException::~DASColumnNotFoundException(void) {}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DASDataObject.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DASDataObject.cpp
deleted file mode 100644
index f04d9dd7a5..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DASDataObject.cpp
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/ModifiedDataObject.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-DASDataObject::DASDataObject(const Table& table, commonj::sdo::DataObjectPtr dataObject,
- commonj::sdo::ChangeSummaryPtr changeSummary) : PKObject(table) {
-
- commonj::sdo::SettingList* settingList = 0;
- this->changeSummary = changeSummary;
- occChecked = false;
- this->dataObject = dataObject;
- bool modifiedOnGraph = changeSummary->isDeleted(dataObject) || changeSummary->isModified(dataObject);
-
- if (modifiedOnGraph) {
- settingList = &changeSummary->getOldValues(dataObject);
- }
-
- std::map<std::string, const commonj::sdo::Setting*> settingMap;
- const std::map<std::string, const Column*> columns = table.getColumns();
- std::string statement;
- unsigned int pkColumnCount = table.getPKColumnCount();
- unsigned int pkCount = 0;
-
- if (modifiedOnGraph) {
-
- for (int i = 0 ; i < settingList->size() ; i++) {
- settingMap.insert(std::make_pair((*settingList)[i].getProperty().getName(), &(*settingList)[i]));
- }
-
- }
-
- for (std::map<std::string, const Column*>::const_iterator columnsIterator = columns.begin() ;
- columnsIterator != columns.end() && pkColumnCount > pkCount ; columnsIterator++) {
- const Column& column = *columnsIterator->second;
-
- if (column.isPK()) {
-
- if (modifiedOnGraph) {
-
- std::map<std::string, const commonj::sdo::Setting*>::const_iterator settingIterator =
- settingMap.find(column.getPropertyName());
-
- if (settingIterator != settingMap.end()) {
-
- if (settingIterator->second->isNull() || !settingIterator->second->isSet()) {
- //throw exception
- }
-
- ColumnData* oldPKData = new ColumnData(column, *settingIterator->second);
- addPrimaryKey(column.getPropertyName(),
- *(oldPKData));
-
- continue;
-
- }
-
- }
-
- if (dataObject->isNull(column.getPropertyName()) || !dataObject->isSet(column.getPropertyName())) {
- //throw exception
- }
-
- addPrimaryKey(column.getPropertyName(), *(new ColumnData(column, dataObject)));
-
- }
-
- }
-
-}
-
-bool DASDataObject::isOCCChecked(void) const {
- return occChecked;
-}
-
-void DASDataObject::setOCCChecked(bool occChecked) {
- this->occChecked = occChecked;
-}
-
-long DASDataObject::getOldOCC(void) const {
- const Column* occCol = getTable().getOCCColumn();
-
- if (occCol != 0) {
-
- try {
- const commonj::sdo::Setting& setting = changeSummary->getOldValue(dataObject, *dataObject->getInstanceProperty(occCol->getPropertyName()));
-
- if (!setting.isNull() && setting.isSet()) {
- return setting.getIntValue();
- }
-
- } catch (commonj::sdo::SDOIndexOutOfRangeException&) {
- return getNewOCC();
- }
-
- }
-
- return 0;
-
-}
-
-long DASDataObject::getNewOCC(void) const {
- const Column* occCol = getTable().getOCCColumn();
-
- if (occCol != 0) {
-
- if (dataObject->isSet(occCol->getPropertyName()) && !dataObject->isNull(occCol->getPropertyName())) {
- return dataObject->getInt(occCol->getName());
- }
-
- }
-
- return 0;
-
-}
-
-void DASDataObject::printStmt() {
- std::cout << "[" << getTable().getTableName() << "]" << std::endl;
-
- for (std::list<std::string>::iterator it = updateStatements.begin() ; it != updateStatements.end() ; it++) {
- std::cout << *it << std::endl;
- }
-
- std::cout << std::endl;
-
-}
-
-DASDataObject::~DASDataObject(void) {
-
- for (std::map<std::string, RelationshipStatement*>::iterator it = fks.begin() ; it != fks.end() ; it++) {
- delete it->second;
- }
-
-}
-
-const commonj::sdo::DataObjectPtr DASDataObject::getDataObject(void) const {
- return dataObject;
-}
-
-std::string DASDataObject::getWhereStmt(void) const {
- std::string stmt = "where ";
- const KeyDataList& pks = getPrimaryKeys();
- unsigned int i = 1;
-
- for (KeyDataList::const_iterator it = pks.begin() ; it != pks.end() ; it++) {
- stmt.append(getTable().getTableName() + "." + it->second->getColumn().getName()).append("=").append(/*"2"*/it->second->toSQL());
-
- if (i != pks.size()) {
- stmt.append(" and ");
- }
-
- i++;
-
- }
-
- if (!isOCCChecked()) {
- const Column* occCol = getTable().getOCCColumn();
-
- if (occCol != 0) {
- stmt.append(" and ").append(occCol->getName()).append("=").append(StringWrapper::toString(getOldOCC()));
- }
-
- }
-
- return stmt;
-
-}
-
-std::string DASDataObject::getStatement(void) const {
- return "";
-}
-
-RelationshipStatement& DASDataObject::addFK(const Relationship& relationship, const KeyDataList* keyDataList) {
- std::map<std::string, RelationshipStatement*>::iterator it = fks.find(relationship.getName());
- RelationshipStatement* relatStmt;
-
- if (it == fks.end()) {
- relatStmt = new RelationshipStatement(relationship, keyDataList);
- relatStmt->setDASDataObject(*this);
- fks.insert(std::make_pair(relationship.getName(), relatStmt));
-
- } else if (keyDataList != 0) {
- relatStmt = it->second;
- relatStmt->setFKList(keyDataList);
-
- }
-
- return *relatStmt;
-
-}
-
-void DASDataObject::execute(StatementPtr stmt) {
- std::string statement = getStatement();
-
- if (statement != "") {
- const Column* occColumn = getTable().getOCCColumn();
- bool noData = false;
- ResultSetPtr rs;
-
- try {
- rs = stmt->executeQuery(statement);
-
- } catch (SQLException& ex) {
-
- if (ex.getODBCReturnCode() == SQL_NO_DATA) {
- noData = true;
- } else {
- throw;
- }
-
- }
-
- if (occColumn != 0 && !isOCCChecked()) {
-
- if (noData || rs->getRowCount() == 0) {
- throw DASOptimisticConcurrencyControlException();
- } else {
- setOCCChecked(true);
- }
-
- }
-
- }
-
- for (std::list<RelationshipStatement*>::const_iterator it = dependencies.begin() ;
- it != dependencies.end() ; it++) {
-
- (*it)->execute(stmt);
-
- }
-
-}
-
-void DASDataObject::addDependency(RelationshipStatement& relationshipStatement) {
- dependencies.push_back(&relationshipStatement);
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DASFactoryImpl.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DASFactoryImpl.cpp
deleted file mode 100644
index e28f5e6d3a..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DASFactoryImpl.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/DASFactoryImpl.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-DASFactoryImpl::DASFactoryImpl(void) {}
-
-DASFactoryImpl::~DASFactoryImpl(void) {}
-
-DAS* DASFactoryImpl::createDAS(Connection& connection) {
- return new DASImpl(connection);
-}
-
-DAS* DASFactoryImpl::createDAS(const Config& config, Connection& connection) {
- return new DASImpl(config, connection);
-}
-
-DAS* DASFactoryImpl::createDAS(const Config& config) {
- return new DASImpl(config);
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DASImpl.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DASImpl.cpp
deleted file mode 100644
index eab18ab980..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DASImpl.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/DASImpl.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-DASFactory* DASImpl::FACTORY = new DASFactoryImpl();
-
-DASImpl::DASImpl(Connection& inConnection) {
- /*if (FACTORY == 0) {
- FACTORY = new DASFactoryImpl();
- }*/
-
- createdCommands = new std::list<CommandPtr*>();
- config = new ConfigImpl();
- setConnection(&inConnection);
-
-}
-
-DASImpl::DASImpl(const Config& config, Connection& inConnection) {
- /*if (FACTORY == 0) {
- FACTORY = new DASFactoryImpl();
- }*/
-
- createdCommands = new std::list<CommandPtr*>();
- this->config = new ConfigImpl(config);
- setConnection(&inConnection);
-
-}
-
-DASImpl::DASImpl(const Config& config) {
- /*if (FACTORY == 0) {
- FACTORY = new DASFactoryImpl();
- }*/
-
- createdCommands = new std::list<CommandPtr*>();
- this->config = new ConfigImpl((ConfigImpl&) config);
-
-}
-
-DASImpl::~DASImpl() {
- std::list<CommandPtr*>::iterator it;
-
- for (it = createdCommands->begin() ; it != createdCommands->end() ; it++) {
- delete **it;
- delete *it;
-
- }
-
- delete createdCommands;
- delete config;
-
-}
-
-DASFactory& DASImpl::getFACTORY(void) {
- return *FACTORY;
-}
-
-void DASImpl::setConnection(Connection* aConnection) {
- connection = aConnection;
-}
-
-Connection* DASImpl::getConnection(void) {
- return connection;
-}
-
-void DASImpl::releaseResources(void) {
- closeConnection();
-}
-
-CommandPtr DASImpl::getCommand(std::string commandName) {
- std::string commandSQL = config->getCommand(commandName);
-
- return createCommand(commandSQL);
-
-}
-
-CommandPtr DASImpl::createCommand(std::string sql) {
- CommandPtr command = 0;
- //trim(inSql);
- char firstChar = toupper(sql[0]);
-
- switch (firstChar) {
- case 'S':
- command = new ReadCommandImpl(*this, sql);
- break;
-
- default :
- command = new CommandImpl(*this, sql);
-
- }
-
- std::list<CommandPtr*>::iterator it;
-
- for (it = createdCommands->begin() ; it != createdCommands->end() ; ) {
-
- if (**it) {
- it++;
-
- } else {
- std::list<CommandPtr*>::iterator aux = it;
- it++;
- createdCommands->erase(aux);
-
- }
-
- }
-
- createdCommands->push_back(new CommandPtr(command, false));
- return command;
-
-}
-
-void DASImpl::closeConnection(void) {
-
- if (connection != 0) {
-
- //try {
- delete connection;
- connection = 0;
- //} catch (SQLException e) {
- // throw new RuntimeException(e);
- //}
-
- }
-
-}
-
-const ::apache::das::Config& DASImpl::getConfig(void) const {
- return *((Config*) config);
-}
-
-void DASImpl::applyChanges(commonj::sdo::DataObjectPtr root) {
- ApplyChanges(*this, root);
- commonj::sdo::ChangeSummaryPtr csummary = root->getChangeSummary();
- csummary->endLogging();
- csummary->beginLogging();
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidColumnNameException.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidColumnNameException.cpp
deleted file mode 100644
index a199a7f0d5..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidColumnNameException.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/rdb/DASInvalidColumnNameException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-DASInvalidColumnNameException::DASInvalidColumnNameException(std::string message) : std::exception(message.c_str()) {}
-
-DASInvalidColumnNameException::~DASInvalidColumnNameException(void) {}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidRelationshipNameException.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidRelationshipNameException.cpp
deleted file mode 100644
index 9db5b4665a..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidRelationshipNameException.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/rdb/DASInvalidRelationshipNameException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-DASInvalidRelationshipNameException::DASInvalidRelationshipNameException(std::string message) : std::exception(message.c_str()) {}
-
-DASInvalidRelationshipNameException::~DASInvalidRelationshipNameException(void) {}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidSDOTypeException.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidSDOTypeException.cpp
deleted file mode 100644
index e924dd9cdf..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidSDOTypeException.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/rdb/DASInvalidSDOTypeException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-DASInvalidSDOTypeException::DASInvalidSDOTypeException(std::string message) : std::exception(message.c_str()) {}
-
-DASInvalidSDOTypeException::~DASInvalidSDOTypeException(void) {}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidSQLTypeException.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidSQLTypeException.cpp
deleted file mode 100644
index d7b16547df..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidSQLTypeException.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/rdb/DASInvalidSQLTypeException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-DASInvalidSQLTypeException::DASInvalidSQLTypeException(std::string message) : std::exception(message.c_str()) {}
-
-DASInvalidSQLTypeException::~DASInvalidSQLTypeException(void) {}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidTableNameException.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidTableNameException.cpp
deleted file mode 100644
index 5f578d2130..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DASInvalidTableNameException.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/rdb/DASInvalidTableNameException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
- DASInvalidTableNameException::DASInvalidTableNameException(std::string message) : std::exception(message.c_str()) {}
-
-DASInvalidTableNameException::~DASInvalidTableNameException(void) {}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DASOptimisticConcurrencyControlException.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DASOptimisticConcurrencyControlException.cpp
deleted file mode 100644
index 983a1b0def..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DASOptimisticConcurrencyControlException.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/rdb/DASOptimisticConcurrencyControlException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-DASOptimisticConcurrencyControlException::DASOptimisticConcurrencyControlException(std::string message) : std::exception(message.c_str()) {}
-
-DASOptimisticConcurrencyControlException::~DASOptimisticConcurrencyControlException(void) {}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DASPrimaryKeyNotFoundException.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DASPrimaryKeyNotFoundException.cpp
deleted file mode 100644
index 15464c742a..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DASPrimaryKeyNotFoundException.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/rdb/DASPrimaryKeyNotFoundException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-DASPrimaryKeyNotFoundException::DASPrimaryKeyNotFoundException(std::string message) : std::exception(message.c_str()) {}
-
-DASPrimaryKeyNotFoundException::~DASPrimaryKeyNotFoundException(void) {}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/DeteledDataObject.cpp b/cpp/das/runtime/core/src/apache/das/rdb/DeteledDataObject.cpp
deleted file mode 100644
index f39d4136bb..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/DeteledDataObject.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/DeletedDataObject.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-DeletedDataObject::DeletedDataObject(const Table& table, commonj::sdo::DataObjectPtr dataObject,
- commonj::sdo::ChangeSummaryPtr changeSummary)
- : DASDataObject(table, dataObject, changeSummary) {}
-
-DeletedDataObject::~DeletedDataObject(void) {}
-
-std::string DeletedDataObject::getStatement(void) const {
- std::string ret = "delete from ";
- ret.append(getTable().getTableName()).append(" ").append(getWhereStmt()).append(";");
-
- return ret;
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/GraphBuilder.cpp b/cpp/das/runtime/core/src/apache/das/rdb/GraphBuilder.cpp
deleted file mode 100644
index 7676df0291..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/GraphBuilder.cpp
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/GraphBuilder.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-GraphBuilder::GraphBuilder(const ConfigImpl& config, ResultSetPtr resultSet) {
- graphBuilderMetaData = new GraphBuilderMetaData(config, resultSet->getResultSetMetaData()) ;
- commonj::sdo::DataFactoryPtr dataFactory = graphBuilderMetaData->createGraph();
-
- this->resultSet = resultSet;
- const std::map<std::string, Table*>& tables = graphBuilderMetaData->getTables();
-
- while (resultSet->next()) {
-
- std::map<std::string, Table*>::const_iterator it;
- for (it = tables.begin() ; it != tables.end() ; it++) {
- Table* table = it->second;
-
- std::list<TableData*>* tableList;
- TableData* tableData = new TableData(*table, resultSet);
-
- if (!tableData->hasPK()) {
- delete tableData;
- continue;
-
- }
-
- std::map<std::string, std::list<TableData*>*>::iterator it2 =
- tablesData.find(table->getTableName());
-
- if (it2 == tablesData.end()) {
- tableList = new std::list<TableData*>();
- tablesData.insert(std::make_pair(table->getTableName(), tableList));
-
- } else {
- tableList = it2->second;
- }
-
- std::list<TableData*>::const_iterator it3;
- bool duplicated = false;
-
- for (it3 = tableList->begin() ; it3 != tableList->end() ; it3++) {
-
- if (*tableData == **it3) {
- delete tableData;
- duplicated = true;
- break;
-
- }
-
- }
-
- if (!duplicated) {
- tableList->push_back(tableData);
- }
-
- }
-
- }
-
- int a = resultSet->getRowCount();
-
- root = dataFactory->create(config.getURI(), DAS_ROOT_NAME);
- std::map<std::string, std::list<TableData*>*>::iterator it;
-
- if (tablesData.size() > 0) {
-
- for (it = tablesData.begin() ; it != tablesData.end() ; it++) {
- std::list<TableData*>& tableList = *it->second;
- std::list<TableData*>::iterator it2;
-
- for (it2 = tableList.begin() ; it2 != tableList.end() ; it2++) {
- (*it2)->populateDataGraph(*this);
- }
-
- }
-
- std::map<std::string, Table*>::const_iterator it2;
- std::map<std::string, Relationship*>& relationships = graphBuilderMetaData->getRelationships();
- std::map<std::string, std::map<const KeyDataList*, TableData*, KeyDataCmp>*> tablesDataByPK;
- std::map<std::string, std::list<TableData*>*>::iterator it3;
- for (it3 = tablesData.begin() ; it3 != tablesData.end() ; it3++) {
- std::map<const KeyDataList*, TableData*, KeyDataCmp>* tableList = new std::map<const KeyDataList*, TableData*, KeyDataCmp>();
- std::list<TableData*>::iterator it4;
-
- for (it4 = it3->second->begin() ; it4 != it3->second->end() ; it4++) {
- TableData* tableData = *it4;
- tableList->insert(std::make_pair(&tableData->getPrimaryKeys(), tableData));
-
- }
-
- tablesDataByPK.insert(std::make_pair(it3->first, tableList));
-
- }
-
- for (it2 = tables.begin() ; it2 != tables.end() ; it2++) {
- RelationshipWrapper relationshipWrapper;
- std::list<Relationship*>& fkTableRelationships = relationshipWrapper.getRelationshipsByTableName(relationships, it2->first, false);
-
- std::list<Relationship*>::iterator relationshipIterator;
- for (relationshipIterator = fkTableRelationships.begin() ;
- relationshipIterator != fkTableRelationships.end() ; relationshipIterator++) {
-
- std::list<TableData*>& fkTablesList =
- *((std::map<std::string, std::list<TableData*>*>::iterator) tablesData.find(
- (*relationshipIterator)->getFKTableName()))->second;
-
- std::map<const KeyDataList*, TableData*, KeyDataCmp>& pkTablesData =
- *((std::map<std::string, std::map<const KeyDataList*, TableData*, KeyDataCmp>*>::iterator)
- tablesDataByPK.find((*relationshipIterator)->getPKTableName()))->second;
-
- std::list<TableData*>::iterator tableDataIterator;
- for (tableDataIterator = fkTablesList.begin() ; tableDataIterator !=
- fkTablesList.end() ; tableDataIterator++) {
-
- TableData& fkTableData = **tableDataIterator;
- const std::map<std::string, const KeyPair*>& keyPairs = (*relationshipIterator)->getKeyPairs();
- std::map<std::string, const KeyPair*>::const_iterator keyPairIterator;
- KeyDataList fksColumnList;
-
- for (keyPairIterator = keyPairs.begin() ; keyPairIterator != keyPairs.end() ;
- keyPairIterator++) {
-
- const KeyPair& keyPair = *keyPairIterator->second;
- ColumnData* columnData = fkTableData.
- getColumnData(keyPair.getFKColumnName());
-
- fksColumnList.insert(std::make_pair(keyPair.getPKColumnName(),
- columnData));
-
- }
-
- std::map<const KeyDataList*, TableData*, KeyDataCmp>::iterator pkTablaDataIterator =
- pkTablesData.find(&fksColumnList);
-
- if (pkTablaDataIterator != pkTablesData.end()) {
- TableData& pkTableData = *pkTablaDataIterator->second;
-
- if ((*relationshipIterator)->isMany()) {
- pkTableData.getGraphObject()->getList((*relationshipIterator)->getName().c_str()).
- append(fkTableData.getGraphObject());
-
- } else {
- pkTableData.getGraphObject()->setDataObject((*relationshipIterator)->getName().c_str(),
- fkTableData.getGraphObject());
-
- }
-
- }
-
- }
-
- }
-
- }
-
- std::map<std::string, std::map<const KeyDataList*, TableData*, KeyDataCmp>*>::iterator tablesDataByPKIterator;
- for (tablesDataByPKIterator = tablesDataByPK.begin() ; tablesDataByPKIterator !=
- tablesDataByPK.end() ; tablesDataByPKIterator++) {
-
- delete tablesDataByPKIterator->second;
-
- }
-
- }
-
-}
-
-GraphBuilder::~GraphBuilder(void) {
- std::map<std::string, std::list<TableData*>*>::iterator it;
- std::list<TableData*>::iterator it2;
-
- for (it = tablesData.begin() ; it != tablesData.end() ; it++) {
- std::list<TableData*>* tableList = it->second;
-
- for (it2 = tableList->begin() ; it2 != tableList->end() ; it2++) {
- delete *it2;
- }
-
- delete tableList;
-
- }
-
- delete graphBuilderMetaData;
-
-}
-
-commonj::sdo::DataObjectPtr GraphBuilder::getRoot(void) const {
- return root;
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/GraphBuilderMetaData.cpp b/cpp/das/runtime/core/src/apache/das/rdb/GraphBuilderMetaData.cpp
deleted file mode 100644
index 81d3962998..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/GraphBuilderMetaData.cpp
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/GraphBuilderMetaData.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-GraphBuilderMetaData::GraphBuilderMetaData(const ConfigImpl& config, const ResultSetMetaData& resultSetMetaData) {
- this->resultSetMetaData = &resultSetMetaData;
- this->config = &config;
- graphTables = new std::map<std::string, Table*>();
- const std::map<std::string, Relationship*>& configRelationships = config.getRelationships();
- relationships = new std::map<std::string, Relationship*>();
- std::map<std::string, Relationship*>::const_iterator relationshipIterator;
-
- unsigned int colCount = resultSetMetaData.getColumnCount();
- std::map<std::string, std::list<Column*>*> tablesColumns;
-
- for (unsigned int i = 0 ; i < colCount ; i++) {
- std::string columnName = resultSetMetaData.getColumnName(i);
- SQLSMALLINT columnSQLType = resultSetMetaData.getSQLType(i);
- std::string columnTableName = resultSetMetaData.getTableName(i);
- std::map<std::string, Table*>::iterator tableIterator = graphTables->
- find(columnTableName);
-
- Table* table = 0;
- const Table* configTable = config.getTable(columnTableName);
-
- if (tableIterator == graphTables->end()) {
- table = new Table(columnTableName);
-
- if (configTable != 0) {
- table->setTypeName(configTable->getTypeName());
- }
-
- graphTables->insert(std::make_pair(table->getTableName(), table));
-
- } else {
- table = tableIterator->second;
- }
-
- if (configTable == 0) {
- table->addColumn(columnName, columnSQLType);
- } else {
- Column* column = (Column*) configTable->getColumn(columnName);
-
- if (column != 0) {
- table->addColumn(Column(*column));
- } else {
- table->addColumn(columnName, columnSQLType);
- }
-
- }
-
- }
-
- std::map<std::string, Table*>::iterator tableIterator;
- for (tableIterator = graphTables->begin() ; tableIterator != graphTables->end() ;
- tableIterator++) {
-
- Table& table = *tableIterator->second;
- const Table* configTable = config.getTable(table.getTableName());
- bool hasPK = false;
-
- if (configTable != 0 && configTable->getPKColumnCount() ==
- table.getPKColumnCount() && configTable->getPKColumnCount() != 0) {
- hasPK = true;
-
- }
-
- const std::map<std::string, const Column*>& tableColumns = table.getColumns();
- std::map<std::string, const Column*>::const_iterator columnIterator;
-
- if (!hasPK) {
- Column* column = table.getColumn("ID");
-
- if (column != 0) {
- column->setPK(true);
- hasPK = true;
-
- }
-
-
- }
-
- if (!hasPK) {
-
- if (configTable == 0 || configTable->getColumns().size() == 0) {
-
- for (columnIterator = tableColumns.begin() ;
- columnIterator != tableColumns.end() ; columnIterator++) {
- ((Column*) columnIterator->second)->setPK(true);
- }
-
- }
-
- }
-
- }
-
- for (relationshipIterator = configRelationships.begin() ;
- relationshipIterator != configRelationships.end() ; relationshipIterator++) {
-
- Relationship& relationship = *relationshipIterator->second;
- bool contains = true;
- const std::map<std::string, const KeyPair*>& keyPairs = relationship.getKeyPairs();
- std::map<std::string, const KeyPair*>::const_iterator keyPairIterator;
- std::map<std::string, Table*>::iterator pkTableIterator =
- graphTables->find(relationship.getPKTableName());
-
- std::map<std::string, Table*>::iterator fkTableIterator =
- graphTables->find(relationship.getFKTableName());
-
- if (pkTableIterator == graphTables->end() ||
- fkTableIterator == graphTables->end()) {
- continue;
- }
-
- Table& pkTable = *pkTableIterator->second;
- Table& fkTable = *fkTableIterator->second;
-
- for (keyPairIterator = keyPairs.begin() ; keyPairIterator != keyPairs.end() ;
- keyPairIterator++) {
-
- const KeyPair& keyPair = *keyPairIterator->second;
- Column* pkColumn = pkTable.getColumn(keyPair.getPKColumnName());
- Column* fkColumn = fkTable.getColumn(keyPair.getFKColumnName());
-
- if (fkColumn == 0 || pkColumn == 0 || !pkColumn->isPK() ||
- fkColumn->getSQLType() != pkColumn->getSQLType()) {
-
- contains = false;
- break;
-
- }
-
- }
-
- if (contains) {
- relationships->insert(std::make_pair(
- relationship.getPKTableName() + "." + relationship.getFKTableName(),
- new Relationship(relationship)));
-
- }
-
- }
-
- for (tableIterator = graphTables->begin() ; tableIterator != graphTables->end() ;
- tableIterator++) {
-
- Table& table = *tableIterator->second;
- const std::map<std::string, const Column*>& tableColumns = table.getColumns();
- std::map<std::string, const Column*>::const_iterator columnIterator;
-
- for (columnIterator = tableColumns.begin() ;
- columnIterator != tableColumns.end() ; columnIterator++) {
-
- std::string columnName = columnIterator->second->getName();
-
- if (columnName.size() > 3 &&
- columnName.substr(columnName.size() - 3, 3) == "_ID") {
-
- std::string pkTableName = columnName.substr(0, columnName.size() - 3);
- std::string pkXfk = pkTableName + "." + table.getTableName();
-
- std::map<std::string, Table*>::iterator pkTableIterator =
- graphTables->find(pkTableName);
-
- if (pkTableIterator == graphTables->end()) {
- continue;
- }
-
- Column* pkColumn = pkTableIterator->second->getColumn("ID");
- if (pkColumn == 0 ||
- columnIterator->second->getSQLType() != pkColumn->getSQLType()) {
- continue;
- }
-
- std::map<std::string, Relationship*>::iterator relationshipIterator =
- relationships->find(pkXfk);
-
- if (relationshipIterator == relationships->end() &&
- pkColumn->isPK()) {
-
- if (pkTableIterator->second->getPKColumnCount() == 1) {
- Relationship* relationship =
- new Relationship(pkTableName, table.getTableName());
-
- relationship->addKeyPair("ID", columnName);
- relationships->insert(std::make_pair(relationship->getName(), relationship));
-
- }
-
- }
-
- }
-
- }
-
- }
-
-}
-
-GraphBuilderMetaData::~GraphBuilderMetaData(void) {
- std::map<std::string, Table*>::iterator itTables;
- std::map<std::string, Relationship*>::iterator itRelationships;
-
- for (itTables = graphTables->begin() ; itTables != graphTables->end() ; itTables++) {
- delete itTables->second;
- }
-
- for (itRelationships = relationships->begin() ; itRelationships != relationships->end() ; itRelationships++) {
- delete itRelationships->second;
- }
-
- delete graphTables;
- delete relationships;
-
-}
-
-commonj::sdo::DataFactoryPtr GraphBuilderMetaData::createGraph(void) const {
- commonj::sdo::DataFactoryPtr dataFactory = commonj::sdo::DataFactory::getDataFactory();
- dataFactory->addType(config->getURI(), DAS_ROOT_NAME);
- dataFactory->addPropertyToType(config->getURI(), DAS_ROOT_NAME, "ChangeSummary", SDO_NAMESPACE, "ChangeSummary", false, false, true);
-
- std::map<std::string, Table*>::const_iterator it;
- std::map<std::string, Relationship*>::const_iterator it2;
-
- for (it = graphTables->begin() ; it != graphTables->end() ; it++) {
- Table& table = *(it->second);
- std::string tableName = table.getTypeName();
-
- dataFactory->addType(config->getURI(), tableName.c_str());
- dataFactory->addPropertyToType(config->getURI(), DAS_ROOT_NAME,
- tableName.c_str(), config->getURI(), tableName.c_str(), true, false, true);
-
- }
-
- for (it = graphTables->begin() ; it != graphTables->end() ; it++) {
- it->second->createGraph(*this, dataFactory);
- }
-
- for (it2 = relationships->begin() ; it2 != relationships->end() ; it2++) {
- const Relationship& relationship = *it2->second;
-
- dataFactory->addPropertyToType(config->getURI(), relationship.getPKTableName().c_str(),
- relationship.getName().c_str(), config->getURI(),
- relationship.getFKTableName().c_str(), relationship.isMany(), false, false);
-
- }
-
- return dataFactory;
-
-}
-
-const ResultSetMetaData& GraphBuilderMetaData::getResultSetMetaData(void) const {
- return *resultSetMetaData;
-}
-
-const ConfigImpl& GraphBuilderMetaData::getConfig(void) const {
- return *config;
-}
-
-std::map<std::string, Table*>& GraphBuilderMetaData::getTables(void) const {
- return *graphTables;
-}
-
-Table* GraphBuilderMetaData::getTable(std::string tableName) const {
- std::map<std::string, Table*>::iterator it = graphTables->find(tableName);
-
- if (it == graphTables->end()) {
- return 0;
- }
-
- return it->second;
-
-}
-
-std::map<std::string, Relationship*>& GraphBuilderMetaData::getRelationships(void) const {
- return *relationships;
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/KeyPair.cpp b/cpp/das/runtime/core/src/apache/das/rdb/KeyPair.cpp
deleted file mode 100644
index 30a895a82f..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/KeyPair.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/KeyPair.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-KeyPair::KeyPair(const KeyPair& keyPair) {
- pkColumnName = keyPair.pkColumnName;
- fkColumnName = keyPair.fkColumnName;
- relationship = keyPair.relationship;
-
-}
-
-KeyPair::KeyPair(std::string pkColumnName, std::string fkColumnName) {
- StringWrapper pkColumnNameWrapper(pkColumnName);
- pkColumnName = pkColumnNameWrapper.toUpper();
- StringWrapper fkColumnNameWrapper(fkColumnName);
- fkColumnName = fkColumnNameWrapper.toUpper();
-
- if (!pkColumnNameWrapper.isValidRDBName()) {
- throw DASInvalidColumnNameException("PK column name must not contain whitespace characters!");
- }
-
- if (!fkColumnNameWrapper.isValidRDBName()) {
- throw DASInvalidColumnNameException("FK column name must not contain whitespace characters!");
- }
-
- this->pkColumnName = pkColumnName;
- this->fkColumnName = fkColumnName;
- relationship = 0;
-
-}
-
-KeyPair::~KeyPair(void) {}
-
-std::string KeyPair::getPKColumnName(void) const {
- return pkColumnName;
-}
-
-std::string KeyPair::getFKColumnName(void) const {
- return fkColumnName;
-}
-
-void KeyPair::setRelationship(Relationship* relationship) {
- this->relationship = relationship;
-}
-
-Relationship* KeyPair::getRelationship(void) const {
- return relationship;
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/ModifiedDataObject.cpp b/cpp/das/runtime/core/src/apache/das/rdb/ModifiedDataObject.cpp
deleted file mode 100644
index 560684a25b..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/ModifiedDataObject.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/ModifiedDataObject.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-ModifiedDataObject::ModifiedDataObject(const Table& table, commonj::sdo::DataObjectPtr dataObject,
- commonj::sdo::ChangeSummaryPtr changeSummary) : DASDataObject(table, dataObject, changeSummary) {
-
- bool modifiedOnGraph = changeSummary->isCreated(dataObject) || changeSummary->isDeleted(dataObject) || changeSummary->isModified(dataObject);
- const KeyDataList& columnDataList = getPrimaryKeys();
- unsigned int pkCount = 0;
- unsigned int pkColumnCount = columnDataList.size();
- bool dataTypeModified = false;
- //pkModified = false;
-
- if (modifiedOnGraph) {
- sets.append("update ").append(table.getTableName()).append(" set");
- commonj::sdo::SettingList& settings = changeSummary->getOldValues(dataObject);
- /*const KeyDataList& keyDataList = getPrimaryKeys();
-
- for (KeyDataList::const_iterator pkIt = keyDataList.begin() ; pkIt != keyDataList.end() ; pkIt++) {
- ColumnData actualColumnData(pkIt->second->getColumn(), dataObject);
-
- if (actualColumnData != *pkIt->second) {
- pkModified = true;
- break;
-
- }
-
- }*/
-
- for (int i = 0 ; i < settings.size() ; i++) {
-
- if (settings[i].getType().isDataType()) {
-
- if (dataTypeModified) {
- sets.append(",");
- }
-
- std::string propName = settings[i].getProperty().getName();
- const Column* column = table.getColumnByProperty(propName);
-
- if (!column->isCollision() || !column->isManaged()) {
- dataTypeModified = true;
- sets.append(" ").append(column->getName()).append("=").append(ColumnData(*column, dataObject).toSQL());
-
- }
-
- }
-
- }
-
- if (!dataTypeModified) {
- sets = "";
- }
-
- }
-
-}
-
-ModifiedDataObject::~ModifiedDataObject(void) {}
-
-std::string ModifiedDataObject::getStatement(void) const {
-
- if (sets != "") {
- std::string ret = sets;
- const Column* occCol = getTable().getOCCColumn();
-
- if (occCol != 0 && !isOCCChecked() && occCol->isManaged()) {
- ret.append(",").append(occCol->getName()).append("=").append(StringWrapper::toString(getNewOCC() + 1));
- }
-
- ret.append(" ").append(getWhereStmt()).append(";");
-
- return ret;
-
- } else {
- return "";
- }
-
-}
-
-//bool ModifiedDataObject::isPKModified(void) const {
-// return pkModified;
-//}
-
-
-//
-//void ModifiedDataObject::printStmt() {
-// DASDataObject::printStmt();
-//
-// if (sets.size() != 0 || fks.size() != 0) {
-// std::string statement;
-// statement.append("update ").append(getTable().getTableName()).append(" set").append(sets);
-//
-// for (std::map<std::string, const ColumnData*>::const_iterator it = fks.begin() ; it != fks.end() ; it++) {
-//
-// statement.append(" ").append(it->first).append("=");
-//
-// if (it->second == 0) {
-// statement.append(SQL_NULL_VALUE);
-// } else {
-// statement.append(it->second->toSQL());
-// }
-//
-// }
-//
-// statement.append(" ").append(whereStmt).append(";");
-//
-// std::cout << statement << std::endl;
-//
-// }
-//
-//}
-
-
-
-
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/ODBCTypeHelper.cpp b/cpp/das/runtime/core/src/apache/das/rdb/ODBCTypeHelper.cpp
deleted file mode 100644
index aad3c49ad5..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/ODBCTypeHelper.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/ODBCTypeHelper.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-const std::string ODBCTypeHelper::getSDOType(SQLSMALLINT sqlType) {
-
- switch (sqlType) {
-
- case SQL_CHAR :
- case SQL_WCHAR :
- return "Character";
-
- case SQL_INTEGER :
- case SQL_SMALLINT :
- return "Int";
-
- case SQL_REAL :
- return "Float";
-
- case SQL_FLOAT :
- case SQL_DOUBLE :
- return "Double";
-
- case SQL_VARCHAR :
- case SQL_WVARCHAR :
- return "String";
-
- default :
- throw DASInvalidSQLTypeException("Invalid sql type: " + sqlType + (std::string) "");
-
- }
-
-}
-
-const SQLSMALLINT ODBCTypeHelper::getSQLType(const commonj::sdo::Type& type) {
- std::string typeName = type.getName();
-
- if ("String" == typeName) {
- return SQL_WVARCHAR;
-
- } else if ("Double" == typeName) {
- return SQL_DOUBLE;
-
- } else if ("Float" == typeName) {
- return SQL_REAL;
-
- } else if ("Int" == typeName) {
- return SQL_INTEGER;
-
- } else if ("Character" == typeName) {
- return SQL_WCHAR;
-
- } else {
- throw DASInvalidSDOTypeException((std::string) "Invalid sdo data type: " + type.getURI() + "." + type.getName() + "");
- }
-
-}
-
-const SQLSMALLINT ODBCTypeHelper::getSQLType(std::string sqlTypeName) {
- sqlTypeName = StringWrapper(sqlTypeName).toLower();
-
- if ("varchar" == sqlTypeName) {
- return SQL_VARCHAR;
- } else if ("wvarchar" == sqlTypeName) {
- return SQL_WVARCHAR;
- } else if ("integer" == sqlTypeName) {
- return SQL_INTEGER;
- } else if ("float" == sqlTypeName) {
- return SQL_FLOAT;
- } else if ("real" == sqlTypeName) {
- return SQL_REAL;
- } else if ("double" == sqlTypeName) {
- return SQL_DOUBLE;
- } else if ("char" == sqlTypeName) {
- return SQL_CHAR;
- } else if ("wchar" == sqlTypeName) {
- return SQL_WCHAR;
- } else if ("smallint" == sqlTypeName) {
- return SQL_SMALLINT;
- } else {
- throw DASInvalidSQLTypeException("sql type does not exist: " + sqlTypeName);
- }
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/PKObject.cpp b/cpp/das/runtime/core/src/apache/das/rdb/PKObject.cpp
deleted file mode 100644
index 84133b0980..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/PKObject.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/PKObject.h"
-#include "apache/das/rdb/ColumnData.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-PKObject::PKObject(const Table& table) {
- this->table = &table;
- primaryKeys = new KeyDataList();
-
-}
-
-PKObject::~PKObject(void) {
- KeyDataList::const_iterator it;
-
- for (it = primaryKeys->begin() ; it != primaryKeys->end() ; it++) {
- delete it->second;
- }
-
- delete primaryKeys;
-
-}
-
-void PKObject::addPrimaryKey(std::string columnName, ColumnData& columnData) {
- primaryKeys->insert(std::make_pair(columnName, &columnData));
-}
-
-const Table& PKObject::getTable(void) const {
- return *table;
-}
-
-bool PKObject::isPK(std::string columnName) const {
- KeyDataList::const_iterator it = primaryKeys->find(columnName);
-
- return it != primaryKeys->end();
-
-}
-
-bool PKObject::operator==(const KeyDataList* primaryKeyList) const {
-
- if (primaryKeys->size() != primaryKeyList->size()) {
- return false;
- }
-
- KeyDataList::const_iterator it, primaryKeyIterator;
-
- for (it = primaryKeyList->begin() ; it != primaryKeyList->end() ; it++) {
- primaryKeyIterator = primaryKeys->find(it->first);
-
- if (primaryKeyIterator == primaryKeys->end()) {
- return false;
-
- } else if (*it->second != *primaryKeyIterator->second) {
- return false;
-
- }
-
- }
-
- return true;
-
-}
-
-bool PKObject::operator==(const PKObject& pkObject) const {
- return (*this == pkObject.primaryKeys);
-}
-
-bool PKObject::operator!=(const PKObject& pkObject) const {
- return !(*this == pkObject);
-}
-
-bool PKObject::operator!=(const KeyDataList* primaryKeyList) const {
- return !(*this == primaryKeyList);
-}
-
-const KeyDataList& PKObject::getPrimaryKeys(void) const {
- return *primaryKeys;
-}
-
-bool PKObject::operator<(const PKObject& pkObject) const {
- return (*this < pkObject.primaryKeys);
-}
-
-bool PKObject::operator<(const KeyDataList* primaryKeyList) const {
-
- if (primaryKeys->size() < primaryKeyList->size()) {
- return true;
- } else if (primaryKeys->size() > primaryKeyList->size()) {
- return false;
- }
-
- KeyDataList::const_iterator it;
-
- for (it = primaryKeyList->begin() ; it != primaryKeyList->end() ; it++) {
- KeyDataList::const_iterator primaryKeyIterator =
- primaryKeys->find(it->first);
-
- if (primaryKeyIterator != primaryKeys->end()) {
-
- if (*it->second < *primaryKeyIterator->second) {
- return true;
- } else if (*it->second > *primaryKeyIterator->second) {
- return false;
- }
-
- }
-
- }
-
- return false;
-
-}
-
-bool KeyDataCmp::operator() ( const KeyDataList* keyDataList1, const KeyDataList* keyDataList2 ) const {
- if (keyDataList1->size() < keyDataList2->size()) {
- return true;
- } else if (keyDataList1->size() > keyDataList2->size()) {
- return false;
- }
-
- KeyDataList::const_iterator it;
-
- for (it = keyDataList2->begin() ; it != keyDataList2->end() ; it++) {
- KeyDataList::const_iterator primaryKeyIterator =
- keyDataList1->find(it->first);
-
- if (primaryKeyIterator != keyDataList1->end()) {
-
- if (it->second->getColumn().getSQLType() != primaryKeyIterator->second->getColumn().getSQLType()) {
- return false;
- }
-
- if (*it->second < *primaryKeyIterator->second) {
- return true;
- } else if (*it->second > *primaryKeyIterator->second) {
- return false;
- }
-
- }
-
- }
-
- return false;
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/PreparedStatement.cpp b/cpp/das/runtime/core/src/apache/das/rdb/PreparedStatement.cpp
deleted file mode 100644
index 271e340030..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/PreparedStatement.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/PreparedStatement.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-PreparedStatement::PreparedStatement(Connection& connection, SQLHSTMT statementHandle, string sql)
- : Statement(connection, statementHandle){
- this->sql = sql;
-
- for(unsigned int i = 0; i < sql.size(); i++){
- if(sql.at(i) == '?')
- positions.push_back(i);
- }
-}
-
-
-PreparedStatement::~PreparedStatement(){
- Statement::~Statement();
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/ReadCommandImpl.cpp b/cpp/das/runtime/core/src/apache/das/rdb/ReadCommandImpl.cpp
deleted file mode 100644
index c7df40dd57..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/ReadCommandImpl.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/ReadCommandImpl.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-ReadCommandImpl::ReadCommandImpl(DASImpl& das, std::string sqlString) : CommandImpl(das, sqlString) {}
-
-ReadCommandImpl::~ReadCommandImpl(void) {}
-
-commonj::sdo::DataObjectPtr ReadCommandImpl::executeQuery(void) {
- ResultSetPtr results = statement->executeQuery(sql);
- commonj::sdo::DataObjectPtr root = buildGraph(results);
- root->getChangeSummary()->beginLogging();
-
- return root;
-
-}
-
-commonj::sdo::DataObjectPtr ReadCommandImpl::buildGraph(ResultSetPtr resultSet) {
- GraphBuilder graphBuilder((ConfigImpl&) ((DASImpl*) das)->getConfig(), resultSet);
-
- return graphBuilder.getRoot();
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/Relationship.cpp b/cpp/das/runtime/core/src/apache/das/rdb/Relationship.cpp
deleted file mode 100644
index 32c720b49c..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/Relationship.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/Relationship.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-Relationship::Relationship(const Relationship& relationship) {
- many = relationship.many;
- relationshipName = relationship.relationshipName;
- pkTableName = relationship.pkTableName;
- fkTableName = relationship.fkTableName;
- this->keyPairs = new std::map<std::string, const KeyPair*>();
-
- std::map<std::string, const KeyPair*>::iterator it;
- for (it = relationship.keyPairs->begin() ; it != relationship.keyPairs->end() ; it++) {
- KeyPair* newKP = new KeyPair(*it->second);
- newKP->setRelationship(this);
- this->keyPairs->insert(std::make_pair(it->first, newKP));
-
- }
-
-}
-
-Relationship::Relationship(std::string pkTableName, std::string fkTableName,
- std::string relationshipName) {
-
- StringWrapper pkTableNameWrapper(pkTableName);
- StringWrapper fkTableNameWrapper(fkTableName);
- StringWrapper relationshipNameWrapper(relationshipName);
- pkTableName = pkTableNameWrapper.toUpper();
- fkTableName = fkTableNameWrapper.toUpper();
-
- if (relationshipName == "") {
- this->relationshipName = fkTableName;
- } else {
-
- if (!relationshipNameWrapper.isValidRDBName()) {
- throw DASInvalidRelationshipNameException("Relationship name must not contain whitespace characters!");
- }
-
- this->relationshipName = relationshipNameWrapper.toUpper();
-
- }
-
- if (!pkTableNameWrapper.isValidRDBName()) {
- throw DASInvalidTableNameException("PK Table name must not contain whitespace characters!");
- }
-
- if (!fkTableNameWrapper.isValidRDBName()) {
- throw DASInvalidTableNameException("FK Table name must not contain whitespace characters!");
- }
-
- this->pkTableName = pkTableName;
- this->fkTableName = fkTableName;
- many = true;
- keyPairs = new std::map<std::string, const KeyPair*>();
-
-}
-
-void Relationship::setMany(bool many) {
- this->many = many;
-}
-
-bool Relationship::isMany(void) const {
- return many;
-}
-
-KeyPair& Relationship::addKeyPair(std::string pkColumnName, std::string fkColumnName) {
- KeyPair& newKP = newKeyPair(*(new KeyPair(pkColumnName, fkColumnName)));
- newKP.setRelationship(this);
-
- return newKP;
-
-}
-
-KeyPair& Relationship::addKeyPair(const KeyPair& keyPair) {
- KeyPair& newKP = newKeyPair(*(new KeyPair(keyPair)));
- newKP.setRelationship(this);
-
- return newKP;
-
-}
-
-KeyPair& Relationship::newKeyPair(KeyPair& keyPair) {
- const KeyPair* configKeyPair = getKeyPair(keyPair.getPKColumnName(), keyPair.getFKColumnName());
-
- if (configKeyPair == 0) {
- keyPairs->insert(std::make_pair(keyPair.getPKColumnName() + "." + keyPair.getFKColumnName(), &keyPair));
-
- return keyPair;
-
- }
-
- return (KeyPair&) *configKeyPair;
-
-}
-
-std::string Relationship::getName(void) const {
- return relationshipName;
-}
-
-Relationship::~Relationship(void) {
- std::map<std::string, const KeyPair*>::iterator it;
-
- for (it = keyPairs->begin() ; it != keyPairs->end() ; it++) {
- delete it->second;
- }
-
- delete keyPairs;
-
-}
-
-std::string Relationship::getPKTableName(void) const {
- return pkTableName;
-}
-
-std::string Relationship::getFKTableName(void) const {
- return fkTableName;
-}
-
-const std::map<std::string, const KeyPair*>& Relationship::getKeyPairs(void) const {
- return (const std::map<std::string, const KeyPair*>&) *keyPairs;
-}
-
-const KeyPair* Relationship::getKeyPair(std::string pkColumnName, std::string fkColumnName) const {
- std::map<std::string, const KeyPair*>::iterator it = keyPairs->
- find(pkColumnName + "." + fkColumnName);
-
- if (it == keyPairs->end()) {
- return 0;
- }
-
- return it->second;
-
-}
-
-std::list<const KeyPair*>* Relationship::getKeyPair(std::string columnName, bool pkColumn) const {
- std::map<std::string, const KeyPair*>::const_iterator it;
- std::list<const KeyPair*>* ret = new std::list<const KeyPair*>();
-
- for (it = keyPairs->begin() ; it != keyPairs->end() ; it++) {
- std::string actualColumnName;
-
- if (pkColumn) {
- actualColumnName = it->second->getPKColumnName();
- } else {
- actualColumnName = it->second->getFKColumnName();
- }
-
- if (columnName == actualColumnName) {
- ret->push_back(it->second);
- }
-
- }
-
- return ret;
-
-}
-
-
-bool Relationship::containsColumn(std::string columnName, bool pkColumn) const {
- std::map<std::string, const KeyPair*>::const_iterator it;
-
- for (it = keyPairs->begin() ; it != keyPairs->end() ; it++) {
-
- if (pkColumn) {
-
- if (it->second->getPKColumnName() == columnName) {
- return true;
- }
-
- } else {
-
- if (it->second->getFKColumnName() == columnName) {
- return true;
- }
-
- }
-
- }
-
- return false;
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/RelationshipStatement.cpp b/cpp/das/runtime/core/src/apache/das/rdb/RelationshipStatement.cpp
deleted file mode 100644
index a7b23727a9..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/RelationshipStatement.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/RelationshipStatement.h"
-#include "apache/das/rdb/Relationship.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-RelationshipStatement::RelationshipStatement(const Relationship& relationship, const KeyDataList* keyDataList) {
- this->relationship = &relationship;
- this->keyDataList = keyDataList;
- executed = false;
-
-}
-
-void RelationshipStatement::setDASDataObject(DASDataObject& dataObject) {
- this->dataObject = &dataObject;
-}
-
-RelationshipStatement::~RelationshipStatement(void) {}
-
-bool RelationshipStatement::isUnset(void) const {
- return keyDataList == 0;
-}
-
-DASDataObject& RelationshipStatement::getDASDataObject(void) const {
- return *dataObject;
-}
-
-void RelationshipStatement::setFKList(const KeyDataList* keyDataList) {
- this->keyDataList = keyDataList;
-}
-
-void RelationshipStatement::execute(StatementPtr statement) {
-
- if (!executed) {
- const std::map<std::string, const KeyPair*>& keyPairs = relationship->getKeyPairs();
- std::string stmt;
- stmt.append("update ").append(relationship->getFKTableName()).append(" set");
- unsigned int i = 1;
-
- for (std::map<std::string, const KeyPair*>::const_iterator it = keyPairs.begin() ; it != keyPairs.end() ; it++) {
- stmt.append(" ").append(it->second->getFKColumnName()).append("=");
-
- if (keyDataList == 0) {
- stmt.append(SQL_NULL_VALUE);
- } else {
- KeyDataList::const_iterator pkIt = keyDataList->find(it->second->getPKColumnName());
-
- if (pkIt == keyDataList->end()) {
- //throw exception
- }
-
- stmt.append(pkIt->second->toSQL());
-
- }
-
- if (i != keyPairs.size()) {
- stmt.append(",");
- }
-
- i++;
-
- }
-
- const Column* occCol = 0;
- if (!dataObject->isOCCChecked()) {
- occCol = dataObject->getTable().getOCCColumn();
-
- if (occCol != 0 && occCol->isManaged()) {
- stmt.append(occCol->getName()).append("=").append(StringWrapper::toString(dataObject->getNewOCC() + 1));
- }
-
- }
-
-
- stmt.append(" ").append(dataObject->getWhereStmt()).append(";");
- bool noData = false;
- ResultSetPtr rs;
-
- try {
- rs = statement->executeQuery(stmt);
- } catch (SQLException& ex) {
-
- if (ex.getODBCReturnCode() == SQL_NO_DATA) {
- noData = true;
- } else {
- throw;
- }
-
- }
-
- if (!dataObject->isOCCChecked()) {
-
- if (occCol != 0 && (noData || rs->getRowCount() == 0)) {
- throw DASOptimisticConcurrencyControlException();
- } else {
- dataObject->setOCCChecked(true);
- }
-
- }
-
- executed = true;
-
- }
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/RelationshipWrapper.cpp b/cpp/das/runtime/core/src/apache/das/rdb/RelationshipWrapper.cpp
deleted file mode 100644
index 22bc41277a..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/RelationshipWrapper.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/RelationshipWrapper.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-RelationshipWrapper::RelationshipWrapper(void) {}
-
-RelationshipWrapper::~RelationshipWrapper(void) {
- std::list<std::list<Relationship*>*>::iterator it;
-
- for (it = relationshipLists.begin() ; it != relationshipLists.end() ; it++) {
- delete *it;
- }
-
-}
-
-std::list<Relationship*>& RelationshipWrapper::getRelationshipsByTableName(
- const std::map<std::string, Relationship*>& relationships, std::string tableName,
- bool pkTable) {
-
- std::list<Relationship*>* relationshipList = new std::list<Relationship*>();
- std::map<std::string, Relationship*>::const_iterator it;
-
- for (it = relationships.begin() ; it != relationships.end() ; it++) {
-
- if (pkTable) {
-
- if (it->second->getPKTableName() == tableName) {
- relationshipList->push_back(it->second);
- }
-
- } else {
-
- if (it->second->getFKTableName() == tableName) {
- relationshipList->push_back(it->second);
- }
-
- }
-
- }
-
- relationshipLists.push_back(relationshipList);
-
- return *relationshipList;
-
-}
-
-std::list<Relationship*>& RelationshipWrapper::getRelationshipsByTableName(const std::list<
- Relationship*>& relationships, std::string tableName,
- bool pkTable) {
-
- std::list<Relationship*>* relationshipList = new std::list<Relationship*>();
- std::list<Relationship*>::const_iterator it;
-
- for (it = relationships.begin() ; it != relationships.end() ; it++) {
-
- if (pkTable) {
-
- if ((*it)->getPKTableName() == tableName) {
- relationshipList->push_back(*it);
- }
-
- } else {
-
- if ((*it)->getFKTableName() == tableName) {
- relationshipList->push_back(*it);
- }
-
- }
-
- }
-
- relationshipLists.push_back(relationshipList);
-
- return *relationshipList;
-
-}
-
-void RelationshipWrapper::free(std::list<Relationship*>& relationshipList) {
- std::list<std::list<Relationship*>*>::iterator it;
-
- for (it = relationshipLists.begin() ; it != relationshipLists.end() ; it++) {
-
- if (*it == &relationshipList) {
- delete *it;
- relationshipLists.erase(it);
-
- return;
-
- }
-
- }
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/ResultSet.cpp b/cpp/das/runtime/core/src/apache/das/rdb/ResultSet.cpp
deleted file mode 100644
index 4870f4fbfa..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/ResultSet.cpp
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/ResultSet.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-ResultSet::ResultSet(StatementPtr aStmt) {
- stmt = aStmt;
- metaData = new ResultSetMetaData(*this);
-
-}
-
-ResultSet::~ResultSet(void) {
- ResultSetObject::free();
- delete metaData;
-
-}
-
-const ResultSetMetaData& ResultSet::getResultSetMetaData(void) const {
- return *metaData;
-}
-
-StatementPtr ResultSet::getStatement(void) const {
- return stmt;
-}
-
-SQLINTEGER ResultSet::getSQLInteger(unsigned int columnIndex) const {
- SQLINTEGER sqlPtr = 0;
- SQLSMALLINT length = 0;
- SQLINTEGER aux = 0;
-
- if (metaData->getSQLType(columnIndex) == SQL_INTEGER) {
- SQLRETURN result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_LONG, &sqlPtr, 0, &aux);
-SQLINTEGER error;
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)){
-SQLCHAR sqlStat;
-
-SQLCHAR * message = new SQLCHAR[100];
- SQLSMALLINT messageLength;
- SQLGetDiagRec(SQL_HANDLE_DBC, stmt->getConnection().getODBCConnection(),1,
- &sqlStat, &error,message,100,&messageLength);
-
-
-
- string error("Error to establish the connection.\nSQLSTATE: ");
- error += reinterpret_cast<char*>(&sqlStat);
- throw SQLException(result, error);
- }
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "Error on getting database data!");
-
- } else {
- throw DASInvalidSQLTypeException("Column sql type on index " + columnIndex + (std::string) " is not integer!");
- }
-
- return sqlPtr;
-
-}
-
-SQLINTEGER ResultSet::getSQLInteger(std::string tableName, std::string columnName) const {
- return getSQLInteger(metaData->getColumnIndex(tableName, columnName));
-}
-
-SQLSMALLINT ResultSet::getSQLSmallInt(unsigned int columnIndex) const {
- SQLSMALLINT sqlPtr = 0;
- SQLSMALLINT length = 0;
- SQLINTEGER aux = 0;
-
- if (metaData->getSQLType(columnIndex) == SQL_SMALLINT) {
- SQLRETURN result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_SHORT, &sqlPtr, 0, &aux);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "Error on getting database data!");
-
- } else {
- throw DASInvalidSQLTypeException("Column sql type on index " + columnIndex + (std::string) " is not integer!");
- }
-
- return sqlPtr;
-
-}
-
-SQLSMALLINT ResultSet::getSQLSmallInt(std::string tableName, std::string columnName) const {
- return getSQLSmallInt(metaData->getColumnIndex(tableName, columnName));
-}
-
-
-SQLWCHAR ResultSet::getSQLWChar(unsigned int columnIndex) const {
- SQLWCHAR strAux = 0;
-
- if (metaData->getSQLType(columnIndex) == SQL_WCHAR) {
- SQLINTEGER length = 0;
- SQLRETURN result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_WCHAR, &strAux, 2, &length);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "Error on getting database data!");
-
- } else {
- throw DASInvalidSQLTypeException("Column sql type on index " + columnIndex + (std::string) " is not char!");
- }
-
- return strAux;
-
-}
-
-SQLWCHAR ResultSet::getSQLWChar(std::string tableName, std::string columnName) const {
- return getSQLWChar(metaData->getColumnIndex(tableName, columnName));
-}
-
-SQLCHAR ResultSet::getSQLChar(unsigned int columnIndex) const {
- SQLCHAR strAux = 0;
-
- if (metaData->getSQLType(columnIndex) == SQL_CHAR) {
- SQLINTEGER length = 0;
- SQLRETURN result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_CHAR, &strAux, 2, &length);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "Error on getting database data!");
-
- } else {
- throw DASInvalidSQLTypeException("Column sql type on index " + columnIndex + (std::string) " is not char!");
- }
-
- return strAux;
-
-}
-
-SQLCHAR ResultSet::getSQLChar(std::string tableName, std::string columnName) const {
- return getSQLChar(metaData->getColumnIndex(tableName, columnName));
-}
-
-SQLREAL ResultSet::getSQLReal(unsigned int columnIndex) const {
- SQLREAL ret = 0;
-
- if (metaData->getSQLType(columnIndex) == SQL_REAL) {
- SQLREAL real = 0;
- SQLINTEGER length = 0;
- SQLRETURN result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_FLOAT, &real, 1, &length);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "Error on getting database data!");
-
- ret = (SQLREAL) real;
-
- } else {
- throw DASInvalidSQLTypeException("Column sql type on index " + columnIndex + (std::string) " is not real!");
- }
-
- return ret;
-
-}
-
-SQLREAL ResultSet::getSQLReal(std::string tableName, std::string columnName) const {
- return getSQLReal(metaData->getColumnIndex(tableName, columnName));
-}
-
-SQLFLOAT ResultSet::getSQLFloat(unsigned int columnIndex) const {
- SQLFLOAT ret = 0;
-
- if (metaData->getSQLType(columnIndex) == SQL_FLOAT) {
- SQLDOUBLE data = 0;
- SQLINTEGER length = 0;
- SQLRETURN result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_DOUBLE, &data, 1, &length);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "error on getting database data!");
-
- ret = (SQLFLOAT) data;
-
- } else {
- throw DASInvalidSQLTypeException("Column sql type on index " + columnIndex + (std::string) " is not float!");
- }
-
- return ret;
-
-}
-
-SQLFLOAT ResultSet::getSQLFloat(std::string tableName, std::string columnName) const {
- return getSQLFloat(metaData->getColumnIndex(tableName, columnName));
-}
-
-SQLDOUBLE ResultSet::getSQLDouble(unsigned int columnIndex) const {
- double ret = 0;
-
- if (metaData->getSQLType(columnIndex) == SQL_DOUBLE) {
- SQLDOUBLE data = 0;
- SQLINTEGER length = 0;
- SQLRETURN result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_DOUBLE, &data, 1, &length);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "error on getting database data!");
-
- ret = (SQLDOUBLE) data;
-
- } else {
- throw DASInvalidSQLTypeException("Column sql type on index " + columnIndex + (std::string) " is not double!");
- }
-
- return ret;
-
-}
-
-SQLDOUBLE ResultSet::getSQLDouble(std::string tableName, std::string columnName) const {
- return getSQLDouble(metaData->getColumnIndex(tableName, columnName));
-}
-
-std::string ResultSet::getSQLDecimal(unsigned int columnIndex) const {
-
- if (metaData->getSQLType(columnIndex) == SQL_DECIMAL) {
- return getSQLString(columnIndex);
- } else {
- throw DASInvalidSQLTypeException("Column sql type on index " + columnIndex + (std::string) " is not decimal!");
- }
-
-}
-
-std::string ResultSet::getSQLDecimal(std::string tableName, std::string columnName) const {
- return getSQLDecimal(metaData->getColumnIndex(tableName, columnName));
-}
-
-bool ResultSet::isNull(unsigned int columnIndex) const {
- SQLINTEGER sqlPtr = 0;
- SQLSMALLINT length = 0;
- SQLINTEGER aux = 0;
-
- if (metaData->getSQLType(columnIndex) == SQL_INTEGER) {
- SQLRETURN result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_DEFAULT, &sqlPtr, 0, &aux);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "Error on getting database data!");
-
- } else {
- throw DASInvalidSQLTypeException("Column sql type on index " + columnIndex + (std::string) " is not integer!");
- }
-
- return aux == SQL_NULL_DATA;
-
-}
-
-bool ResultSet::isNull(std::string tableName, std::string columnName) const {
- return isNull(metaData->getColumnIndex(tableName, columnName));
-}
-
-bool ResultSet::next(void) {
- return (SQL_SUCCESS == SQLFetch(stmt->getODBCStatement()));
-}
-
-unsigned int ResultSet::getRowCount(void) const {
- SQLINTEGER rowCount = 0;
- SQLRETURN result = SQLRowCount(stmt->getODBCStatement(), &rowCount);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "error on getting row count!");
-
- return (unsigned int) rowCount;
-
-}
-
-std::string ResultSet::getSQLString(unsigned int columnIndex) const {
- SQLPOINTER sqlPtr = 0;
- SQLCHAR strAux[1];
- SQLINTEGER length = 0;
- SQLRETURN result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_CHAR, &strAux, 1, &length);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "error on getting database data!");
-
- length++;
- sqlPtr = new SQLCHAR[length];
- SQLINTEGER aux = 0;
- result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_CHAR, sqlPtr, length, &aux);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "error on getting database data!");
-
- std::string ret = (char*) sqlPtr;
- delete [] ((SQLCHAR*) sqlPtr);
-
- return ret;
-
-}
-
-std::wstring ResultSet::getSQLWString(unsigned int columnIndex) const {
- SQLPOINTER sqlPtr = 0;
- SQLWCHAR strAux[1];
- SQLINTEGER length = 0;
- SQLRETURN result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_WCHAR, &strAux, 1, &length);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "error on getting database data!");
-
- length++;
- sqlPtr = new SQLWCHAR[length];
- SQLINTEGER aux = 0;
- result = SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_WCHAR, sqlPtr, length, &aux);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
- throw SQLException(result, "error on getting database data!");
-
- std::wstring ret = (wchar_t*) sqlPtr;
- delete [] ((SQLWCHAR*) sqlPtr);
-
- return ret;
-
-}
-
-std::string ResultSet::getSQLVarchar(unsigned int columnIndex) const {
-
- if (metaData->getSQLType(columnIndex) == SQL_VARCHAR) {
- return getSQLString(columnIndex);
- } else {
- throw DASInvalidSQLTypeException("Column sql type on index " + columnIndex + (std::string) " is not varchar!");
- }
-
-}
-
-std::string ResultSet::getSQLVarchar(std::string tableName, std::string columnName) const {
- return getSQLVarchar(metaData->getColumnIndex(tableName, columnName));
-}
-
-std::wstring ResultSet::getSQLWVarchar(unsigned int columnIndex) const {
-
- if (metaData->getSQLType(columnIndex) == SQL_WVARCHAR) {
- return getSQLWString(columnIndex);
- } else {
- throw DASInvalidSQLTypeException("Column sql type on index " + columnIndex + (std::string) " is not varchar!");
- }
-
-}
-
-std::wstring ResultSet::getSQLWVarchar(std::string tableName, std::string columnName) const {
- return getSQLWVarchar(metaData->getColumnIndex(tableName, columnName));
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/ResultSetMetaData.cpp b/cpp/das/runtime/core/src/apache/das/rdb/ResultSetMetaData.cpp
deleted file mode 100644
index e17295560e..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/ResultSetMetaData.cpp
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/ResultSetMetaData.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-ResultSetMetaData::ResultSetMetaData(const ResultSet& aResultSet) {
- resultSet = &aResultSet;
- unsigned int columnCount = getColumnCount();
-
- for (unsigned int i = 0 ; i < columnCount ; i++) {
- std::string columnName = StringWrapper(getColumnName(i)).toUpper();
- std::string tableName = StringWrapper(getTableName(i)).toUpper();
- columnsIndexes.insert(std::make_pair(tableName + "." + columnName, i));
-
- }
-
-}
-
-ResultSetMetaData::~ResultSetMetaData(void) {}
-
-SQLSMALLINT ResultSetMetaData::getSQLCType(SQLSMALLINT sqlType) {
-
- switch (sqlType) {
-
- case SQL_CHAR :
- return SQL_C_CHAR;
-
- case SQL_BINARY :
- return SQL_C_BINARY;
-
- case SQL_TYPE_DATE :
- return SQL_C_TYPE_DATE;
-
- case SQL_DECIMAL :
- return SQL_C_CHAR;
-
- case SQL_DOUBLE :
- return SQL_C_DOUBLE;
-
- case SQL_FLOAT :
- return SQL_C_DOUBLE;
-
- case SQL_INTEGER :
- return SQL_C_LONG;
-
- case SQL_LONGVARCHAR :
- return SQL_C_CHAR;
-
- case SQL_LONGVARBINARY :
- return SQL_C_BINARY;
-
- case SQL_NUMERIC :
- return SQL_C_CHAR;
-
- case SQL_REAL :
- return SQL_C_FLOAT;
-
- case SQL_SMALLINT :
- return SQL_C_SHORT;
-
- case SQL_TYPE_TIME :
- return SQL_C_TYPE_TIME;
-
- case SQL_TYPE_TIMESTAMP :
- return SQL_C_TYPE_TIMESTAMP;
-
- case SQL_VARCHAR :
- return SQL_C_CHAR;
-
- case SQL_VARBINARY :
- return SQL_C_BINARY;
-
- default :
- throw DASInvalidSQLTypeException();
-
- }
-
-}
-
-SQLSMALLINT ResultSetMetaData::getSQLType(unsigned int columnIndex) const {
- SQLSMALLINT sqlType = 0;
- SQLColAttribute(resultSet->getStatement()->getODBCStatement(), columnIndex + 1, SQL_DESC_TYPE, NULL, NULL, NULL, &sqlType);
-
- return sqlType;
-
-}
-
-SQLSMALLINT ResultSetMetaData::getSQLType(std::string tableName, std::string columnName) const {
- return getSQLType(getColumnIndex(tableName, columnName));
-}
-
-std::string ResultSetMetaData::getSQLTypeName(unsigned int columnIndex) const {
- SQLCHAR* sqlPtr = 0;
- char strAux[1];
- SQLSMALLINT length = 0;
- SQLColAttribute(resultSet->getStatement()->getODBCStatement(), columnIndex + 1, SQL_DESC_TYPE_NAME, &strAux, 1, (SQLSMALLINT*) &length, NULL);
- length++;
- sqlPtr = (SQLCHAR*) new SQLCHAR[length];
- SQLColAttributeA(resultSet->getStatement()->getODBCStatement(), columnIndex + 1, SQL_DESC_TYPE_NAME, sqlPtr, length, (SQLSMALLINT*) &length, NULL);
-
- std::string ret((char*) sqlPtr);
- delete [] sqlPtr;
-
- return StringWrapper(ret).toUpper();
-
-}
-
-std::string ResultSetMetaData::getSQLTypeName(std::string tableName, std::string columnName) const {
- return getSQLTypeName(getColumnIndex(tableName, columnName));
-}
-
-
-std::string ResultSetMetaData::getColumnName(unsigned int columnIndex) const {
- SQLCHAR* sqlPtr = 0;
- char strAux[1];
- SQLSMALLINT length = 0;
- SQLColAttribute(resultSet->getStatement()->getODBCStatement(), columnIndex + 1, SQL_DESC_BASE_COLUMN_NAME, &strAux, 1, (SQLSMALLINT*) &length, NULL);
- length++;
- sqlPtr = (SQLCHAR*) new SQLCHAR[length];
- SQLColAttributeA(resultSet->getStatement()->getODBCStatement(), columnIndex + 1, SQL_DESC_BASE_COLUMN_NAME, sqlPtr, length, (SQLSMALLINT*) &length, NULL);
-
- std::string ret((char*) sqlPtr);
- delete [] sqlPtr;
-
- return StringWrapper(ret).toUpper();
-
-}
-
-unsigned int ResultSetMetaData::getColumnIndex(std::string tableName, std::string columnName) const {
- tableName = StringWrapper(tableName).toUpper();
- columnName = StringWrapper(columnName).toUpper();
- std::map<std::string, unsigned int>::const_iterator it = columnsIndexes.find(tableName + "." + columnName);
-
- if (it == columnsIndexes.end()) {
- throw DASColumnNotFoundException("No such column on table " + tableName + ": " + columnName);
- }
-
- return it->second;
-
-}
-
-
-std::string ResultSetMetaData::getTableName(unsigned int columnIndex) const {
- SQLCHAR* sqlPtr = 0;
- char strAux[1];
- SQLSMALLINT length = 0;
- SQLColAttribute(resultSet->getStatement()->getODBCStatement(), columnIndex + 1, SQL_DESC_TABLE_NAME, &strAux, 1, (SQLSMALLINT*) &length, NULL);
- length++;
- sqlPtr = (SQLCHAR*) new SQLCHAR[length];
- SQLColAttributeA(resultSet->getStatement()->getODBCStatement(), columnIndex + 1, SQL_DESC_TABLE_NAME, sqlPtr, length, (SQLSMALLINT*) &length, NULL);
-
- std::string ret((char*) sqlPtr);
- delete [] sqlPtr;
-
- return StringWrapper(ret).toUpper();
-
-}
-
-std::string ResultSetMetaData::getTableName(std::string tableName, std::string columnName) const {
- return getTableName(getColumnIndex(tableName, columnName));
-}
-
-
-SQLSMALLINT ResultSetMetaData::getSQLCType(unsigned int columnIndex) const {
- return getSQLCType(getSQLType(columnIndex));
-}
-
-SQLSMALLINT ResultSetMetaData::getSQLCType(std::string tableName, std::string columnName) const {
- return getSQLCType(getSQLType(getColumnIndex(tableName, columnName)));
-}
-
-unsigned int ResultSetMetaData::getColumnCount(void) const {
- SQLUINTEGER columnCount = 0;
- SQLRETURN ret = SQLColAttribute(resultSet->getStatement()->getODBCStatement(), NULL, SQL_DESC_COUNT, NULL, NULL, NULL, &columnCount);
-
- return (unsigned int) columnCount;
-
-}
-
-bool ResultSetMetaData::containsColumn(std::string tableName, std::string columnName) const {
- std::map<std::string, unsigned int>::const_iterator it = columnsIndexes.find(tableName + "." + columnName);
-
- if (it == columnsIndexes.end()) {
- return false;
- }
-
- return true;
-
-}
-
-const ResultSet& ResultSetMetaData::getResultSet(void) const {
- return *resultSet;
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/SQLException.cpp b/cpp/das/runtime/core/src/apache/das/rdb/SQLException.cpp
deleted file mode 100644
index 3de09819bd..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/SQLException.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "apache/das/rdb/SQLException.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-SQLException::SQLException(SQLRETURN returnCode, string errorText)
- :exception(errorText.c_str()) {
- this->returnCode = returnCode;
-
-}
-
-SQLException::~SQLException(){}
-
-SQLRETURN SQLException::getODBCReturnCode(void) const {
- return returnCode;
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/Statement.cpp b/cpp/das/runtime/core/src/apache/das/rdb/Statement.cpp
deleted file mode 100644
index 62e92cda67..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/Statement.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/Statement.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-Statement::Statement(Connection& connection, SQLHSTMT statementHandle) : resultSet(0, false) {
- this->statementHandle = statementHandle;
- this->connection = &connection;
-
-}
-
-Statement::~Statement(void) {
- if (!resultSet) {
- delete resultSet;
- }
-
- SQLFreeHandle(SQL_HANDLE_STMT, statementHandle);
- StatementObject::free();
-
-}
-
-std::string Statement::getError(void) const {
- SQLCHAR state[5];
- SQLCHAR message[1000];
- SQLINTEGER nativeError = 0;
- SQLSMALLINT messageLength = 0;
-
- SQLRETURN result = SQLGetDiagRec(SQL_HANDLE_STMT, statementHandle, 1,
- state, &nativeError, message, 1000, &messageLength);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
- return "";
- }
-
- if (messageLength < 1000) {
- message[messageLength + 1] = 0;
- }
-
- std::string ret = (std::string) (char*) state;
- ret += ": ";
- ret += StringWrapper::toString((long) nativeError);
- ret += " - ";
- ret += (char*) message;
-
- return ret;
-
-}
-
-Connection& Statement::getConnection(void) const {
- return *connection;
-}
-
-ResultSetPtr Statement::executeQuery(std::string sql) {
- queryString = sql;
- SQLCloseCursor(statementHandle);
- SQLRETURN result = SQLExecDirect(statementHandle, (SQLCHAR*) (char*) sql.c_str(), SQL_NTS);
-
- if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
- throw SQLException(result, getError());
- }
-
- return createResultSet();
-
-}
-
-ResultSetPtr Statement::createResultSet(void) {
- if (resultSet) {
- delete resultSet;
- }
-
- ResultSetPtr ret = new ResultSet((StatementPtr) *this);
- resultSet = ret;
-
- return ret;
-
-}
-
-void Statement::close(void) {
- delete this;
-}
-
-HSTMT Statement::getODBCStatement(void) const {
- return statementHandle;
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/Table.cpp b/cpp/das/runtime/core/src/apache/das/rdb/Table.cpp
deleted file mode 100644
index 66f905dafd..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/Table.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/Table.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-Table::Table(std::string tableName) {
- tableName = StringWrapper(tableName).toUpper();
-
- if (tableName.find(' ') != -1 || tableName.find('\t') != -1 || tableName.find('\n') != -1 || tableName.find('\r') != -1) {
- throw DASInvalidTableNameException("Table name must not contain whitespace characters!");
- }
-
- this->tableName = tableName;
- this->typeName = tableName;
- this->columns = new std::map<std::string, const Column*>();
-
-}
-
-Table::Table(std::string tableName, std::string typeName) {
- tableName = StringWrapper(tableName).toUpper();
-
- if (tableName.find(' ') != -1 || tableName.find('\t') != -1 || tableName.find('\n') != -1 || tableName.find('\r') != -1) {
- throw DASInvalidTableNameException("Table name must not contain whitespace characters!");
- }
-
- this->tableName = tableName;
- this->typeName = typeName;
- this->columns = new std::map<std::string, const Column*>();
-
-}
-
-Table::Table(const Table& table) {
- tableName = table.tableName;
- typeName = table.typeName;
- this->columns = new std::map<std::string, const Column*>();
-
- std::map<std::string, const Column*>::iterator it;
- for (it = table.columns->begin() ; it != table.columns->end() ; it++) {
- Column* newColumn = new Column(*it->second);
- newColumn->setContainerTable(this);
- columns->insert(std::make_pair(it->first, newColumn));
-
- }
-
-}
-
-Table::~Table(void) {
- std::map<std::string, const Column*>::iterator it;
-
- for (it = columns->begin() ; it != columns->end() ; it++) {
- delete it->second;
- }
-
- delete columns;
-
-}
-
-const Column* Table::getColumnByProperty(std::string propertyName) const {
-
- for (std::map<std::string, const Column*>::const_iterator it = columns->begin() ;
- it != columns->end() ; it++) {
-
- if (it->second->getPropertyName() == propertyName) {
- return it->second;
- }
-
- }
-
- return 0;
-
-}
-
-std::string Table::getTableName(void) const {
- return tableName;
-}
-
-Column& Table::addColumn(std::string columnName, SQLSMALLINT sqlType) {
- Column* column = new Column(columnName, sqlType);
- return newColumn(*column);
-}
-
-Column& Table::addColumn(const Column& column) {
- return newColumn(*(new Column(column)));
-}
-
-Column& Table::newColumn(Column& column) {
- std::string columnName = column.getName();
- Column* tableColumn = getColumn(columnName);
-
- if (tableColumn == 0) {
- columns->insert(std::make_pair(columnName, &column));
- column.setContainerTable(this);
-
- return column;
-
- }
-
- return *tableColumn;
-
-}
-
-void Table::createGraph(const GraphBuilderMetaData& graphBuilderMetaData, commonj::sdo::DataFactoryPtr dataFactory) const {
- std::map<std::string, const Column*>::const_iterator it;
- std::map<std::string, Relationship*>& relationships = graphBuilderMetaData.getRelationships();
- std::map<std::string, Relationship*>::const_iterator relationshipIterator;
- std::list<Relationship*> tablePKRelationships;
- std::list<Relationship*> tableFKRelationships;
- std::list<std::string> relationshipColumns;
-
- for (relationshipIterator = relationships.begin() ; relationshipIterator !=
- relationships.end() ; relationshipIterator++) {
-
- if (relationshipIterator->second->getFKTableName() == tableName) {
- const std::map<std::string, const KeyPair*>& keyPairs = relationshipIterator->second->getKeyPairs();
- std::map<std::string, const KeyPair*>::const_iterator keyPairIterator;
-
- for (keyPairIterator = keyPairs.begin() ; keyPairIterator !=
- keyPairs.end() ; keyPairIterator++) {
-
- relationshipColumns.push_back(keyPairIterator->second->
- getFKColumnName());
-
- }
-
- }
-
- }
-
- for (it = columns->begin() ; it != columns->end() ; it++) {
- const Column& column = *(it->second);
-
- if (graphBuilderMetaData.getResultSetMetaData().containsColumn(tableName, column.getName())) {
-
- std::list<std::string>::const_iterator it2 = std::find(relationshipColumns.begin(),
- relationshipColumns.end(), column.getName());
-
- if (it2 == relationshipColumns.end()) {
- dataFactory->addPropertyToType(graphBuilderMetaData.getConfig().getURI(), typeName.c_str(),
- column.getPropertyName().c_str(), SDO_NAMESPACE,
- ODBCTypeHelper::getSDOType(column.getSQLType()).c_str() , false,
- false, true);
-
- }
-
- }
-
- }
-
-}
-
-const Column* Table::getOCCColumn(void) const {
-
- for (std::map<std::string, const Column*>::const_iterator it = columns->begin() ; it != columns->end() ; it++) {
-
- if (it->second->isCollision()) {
- return it->second;
- }
-
- }
-
- return 0;
-
-}
-
-void Table::setTypeName(std::string typeName) {
- typeName = StringWrapper(typeName).toUpper();
-
- if (typeName.find(' ') != -1 || typeName.find('\t') != -1 || typeName.find('\n') != -1 || typeName.find('\r') != -1) {
- throw DASInvalidTypeNameException("Type must not contain whitespace characters!");
- }
-
- this->typeName = typeName;
-
-}
-
-Column* Table::getColumn(std::string columnName) {
- std::map<std::string, const Column*>::const_iterator it = columns->find(columnName);
-
- if (it == columns->end()) {
- return 0;
- }
-
- return (Column*) it->second;
-
-}
-
-const Column* Table::getColumn(std::string columnName) const {
- return ((Table*) this)->getColumn(columnName);
-}
-
-std::string Table::getTypeName(void) const {
- return typeName;
-}
-
-const std::map<std::string, const Column*>& Table::getColumns(void) const {
- return *columns;
-}
-
-unsigned int Table::getPKColumnCount(void) const {
- unsigned int count = 0;
- std::map<std::string, const Column*>::const_iterator it;
-
- for (it = columns->begin() ; it != columns->end() ; it++) {
-
- if (it->second->isPK()) {
- count++;
- }
-
- }
-
- return count;
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/core/src/apache/das/rdb/TableData.cpp b/cpp/das/runtime/core/src/apache/das/rdb/TableData.cpp
deleted file mode 100644
index 3f6fd68828..0000000000
--- a/cpp/das/runtime/core/src/apache/das/rdb/TableData.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include "apache/das/rdb/TableData.h"
-
-namespace apache {
- namespace das {
- namespace rdb {
-
-TableData::TableData(const Table& table, ResultSetPtr resultSet) : PKObject(table) {
- dataObject = 0;
- const std::map<std::string, const Column*>& columns = table.getColumns();
- std::map<std::string, const Column*>::const_iterator columnIterator;
- const ResultSetMetaData& metaData = resultSet->getResultSetMetaData();
- const KeyDataList& primaryKeys = getPrimaryKeys();
-
- for (columnIterator = columns.begin() ; columnIterator != columns.end() ;
- columnIterator++) {
-
- const Column& column = *columnIterator->second;
- std::string columnName = column.getName();
-
- if (metaData.containsColumn(table.getTableName(), columnName)) {
- ColumnData* columnData = new ColumnData(column, resultSet);
-
- columnsData.insert(std::make_pair(columnName, columnData));
-
- if (column.isPK()) {
- addPrimaryKey(columnName, *columnData);
- }
-
- }
-
- }
-
-}
-
-TableData::~TableData(void) {
- std::map<std::string, ColumnData*>::iterator it;
-
- for (it = columnsData.begin() ; it != columnsData.end() ; it++) {
-
- if (!(it->second->getColumn().isPK())) {
- delete it->second;
- }
-
- }
-
-}
-
-bool TableData::hasPK(void) const {
- const KeyDataList& primaryKeys = getPrimaryKeys();
- return (primaryKeys.size() == getTable().getPKColumnCount() && primaryKeys.size() > 0);
-}
-
-commonj::sdo::DataObjectPtr TableData::getGraphObject(void) const {
- return dataObject;
-}
-
-void TableData::populateDataGraph(GraphBuilder& graphBuilder) {
- dataObject = graphBuilder.getRoot()->createDataObject(getTable().getTableName().c_str());
- std::map<std::string, ColumnData*>::iterator it;
-
- for (it = columnsData.begin() ; it != columnsData.end() ; it++) {
- it->second->populateDataGraph(*this);
- }
-
-}
-
-ColumnData* TableData::getColumnData(std::string columnName) const {
- std::map<std::string, ColumnData*>::const_iterator it = columnsData.find(columnName);
-
- if (it == columnsData.end()) {
- return 0;
- }
-
- return it->second;
-
-}
-
- };
- };
-};
diff --git a/cpp/das/runtime/test/build.xml b/cpp/das/runtime/test/build.xml
deleted file mode 100644
index c1512055ee..0000000000
--- a/cpp/das/runtime/test/build.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<project name="TuscanyDASNative_test" default="all" basedir="../..">
-
- <import file="${basedir}/antscripts/system.xml"/>
- <import file="${basedir}/antscripts/compile-targets.xml"/>
-
- <!--
- Notice that the basedir for this project is set to the TuscanyDAS root dir
- This makes path setting in system.xml much simpler, but we'll just have to
- set a property here to this directory.
- -->
- <property name="this.dir" location="${basedir}/runtime/test"/>
- <property name="das.test.src.dir" location="${this.dir}/src"/>
- <property name="das.test.build.dir" location="${this.dir}/build"/>
- <property name="das.test.app" value="das_test"/>
-
- <!--
- Public targets
- -->
- <target name="all" description="compile, link, and run TuscanyDASNative test suite">
- <antcall target="build"/>
- <antcall target="run"/>
- </target>
-
- <target name="build" description="compile and link TuscanyDASNative test suite" depends="check.sdo">
- <cpp-build
- srcdir="${das.test.src.dir}"
- infiles="*.cpp"
- outdir="${das.test.build.dir}"
- outfile="${das.test.app}"
- outtype="executable">
- <custom-build-elements>
-
- <includepath path="${tuscanyDAS.install.dir}/include"/>
- <includepath path="${tuscany.sdo.home.dir}/include"/>
-
- <libset dir="${tuscanyDAS.install.dir}/lib" libs="tuscany_das"/>
- <libset dir="${tuscany.sdo.home.dir}/lib" libs="tuscany_sdo"/>
- <libset libs="odbc32"/>
-
- </custom-build-elements>
- </cpp-build>
-
- </target>
-
- <target name="run" depends="build" description="Run TuscanyDASNative test suite">
- <exec executable="${das.test.build.dir}/${das.test.app}${exe.ext}" dir="${das.test.build.dir}"/>
- </target>
-
- <target name="clean" description="Clean TuscanyDASNative test suite">
- <delete dir="${das.test.build.dir}" quiet="@{quiet}"/>
-
- </target>
-
-</project>
diff --git a/cpp/das/runtime/test/rsc/testCompositeRelationship.xml b/cpp/das/runtime/test/rsc/testCompositeRelationship.xml
deleted file mode 100644
index c22799e650..0000000000
--- a/cpp/das/runtime/test/rsc/testCompositeRelationship.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd" uri="test.composite.relationship">
-
- <Command name="get composite relationship" SQL="SELECT DEPARTMENT.ID, DEPARTMENT.NAME, EMPLOYEE.ID, EMPLOYEE.DEPARTMENT_ID, EMPLOYEE.DEPARTMENT_NAME FROM DEPARTMENT, EMPLOYEE;"/>
-
- <Table tableName="department">
- <Column sqlType="integer" columnName="id" primaryKey="true"/>
- <Column sqlType="varchar" columnName="name" primaryKey="true"/>
- </Table>
-
- <Relationship primaryKeyTable="department" foreignKeyTable="employee" many="true">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="department_id"/>
- <KeyPair primaryKeyColumn="name" foreignKeyColumn="department_name"/>
- </Relationship>
-
-</Config> \ No newline at end of file
diff --git a/cpp/das/runtime/test/rsc/testCreateOperation.xml b/cpp/das/runtime/test/rsc/testCreateOperation.xml
deleted file mode 100644
index c9e8d8a444..0000000000
--- a/cpp/das/runtime/test/rsc/testCreateOperation.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd" uri="test.create.operation"> >
-
- <Command name="get all tables" SQL="SELECT * FROM company, department, employee;"/>
-
- <Table tableName="Department">
- <Column columnName="id" sqlType="integer" primaryKey="true"/>
- <Column columnName="name" sqlType="varchar" primaryKey="true"/>
- </Table>
-
- <Relationship primaryKeyTable="company" foreignKeyTable="department">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="company_id"/>
- </Relationship>
-
- <Relationship primaryKeyTable="department" foreignKeyTable="employee">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="department_id"/>
- <KeyPair primaryKeyColumn="name" foreignKeyColumn="department_name"/>
- </Relationship>
-
-
-
-</Config> \ No newline at end of file
diff --git a/cpp/das/runtime/test/rsc/testDeleteOperation.xml b/cpp/das/runtime/test/rsc/testDeleteOperation.xml
deleted file mode 100644
index fa619fda76..0000000000
--- a/cpp/das/runtime/test/rsc/testDeleteOperation.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd" uri="test.delete.operation">
-
- <Command name="get all tables" SQL="SELECT * FROM company, department, employee;"/>
-
- <Table tableName="Department">
- <Column columnName="id" sqlType="integer" primaryKey="true"/>
- <Column columnName="name" sqlType="varchar" primaryKey="true"/>
- </Table>
-
- <Relationship primaryKeyTable="company" foreignKeyTable="department">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="company_id"/>
- </Relationship>
-
- <Relationship primaryKeyTable="department" foreignKeyTable="employee">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="department_id"/>
- <KeyPair primaryKeyColumn="name" foreignKeyColumn="department_name"/>
- </Relationship>
-
-
-
-</Config> \ No newline at end of file
diff --git a/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship1.xml b/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship1.xml
deleted file mode 100644
index b43453d21d..0000000000
--- a/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship1.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd" uri="test.incomplete.composite.relationship.one">
-
- <Command name="get incomplete relationship" SQL="SELECT department.id, department.name, employee.id, employee.department_id FROM department, employee;"/>
-
- <Table tableName="department">
- <Column sqlType="integer" columnName="id" primaryKey="true"/>
- <Column sqlType="varchar" columnName="name" primaryKey="true"/>
- </Table>
-
- <Relationship primaryKeyTable="department" foreignKeyTable="employee" many="true">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="department_id"/>
- <KeyPair primaryKeyColumn="name" foreignKeyColumn="department_name"/>
- </Relationship>
-
-</Config> \ No newline at end of file
diff --git a/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship2.xml b/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship2.xml
deleted file mode 100644
index a3032f2be0..0000000000
--- a/cpp/das/runtime/test/rsc/testIncompleteCompositeRelationship2.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd" uri="test.incomplete.composite.relationship.two">
-
- <Command name="get incomplete relationship" SQL="SELECT department.id, department.name, employee.id, employee.department_id, employee.department_name FROM department, employee;"/>
-
- <Table tableName="department">
- <Column sqlType="varchar" columnName="name" primaryKey="true"/>
- </Table>
-
- <Relationship primaryKeyTable="department" foreignKeyTable="employee" many="true">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="department_id"/>
- <KeyPair primaryKeyColumn="name" foreignKeyColumn="department_name"/>
- </Relationship>
-
-</Config> \ No newline at end of file
diff --git a/cpp/das/runtime/test/rsc/testKeyPairColumnTypeNotEqual.xml b/cpp/das/runtime/test/rsc/testKeyPairColumnTypeNotEqual.xml
deleted file mode 100644
index 3da18378a1..0000000000
--- a/cpp/das/runtime/test/rsc/testKeyPairColumnTypeNotEqual.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd" uri="test.key.pair.column.type.not.equal">
-
- <Command name="get all employees and departments" SQL="SELECT * FROM department, employee;"/>
-
- <Table tableName="department">
- <Column sqlType="integer" columnName="id" primaryKey="true"/>
- </Table>
-
- <Table tableName="employee">
- <Column sqlType="float" columnName="department_id" primaryKey="true"/>
- </Table>
-
- <Relationship primaryKeyTable="department" foreignKeyTable="employee" many="true">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="department_id"/>
- </Relationship>
-
-</Config> \ No newline at end of file
diff --git a/cpp/das/runtime/test/rsc/testManyRelationship1.xml b/cpp/das/runtime/test/rsc/testManyRelationship1.xml
deleted file mode 100644
index 30ceadf1c0..0000000000
--- a/cpp/das/runtime/test/rsc/testManyRelationship1.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd" uri="test.many.relationship.one">
-
- <Command name="get company 1 and its departments" SQL="SELECT * FROM company, department where company.id = 1;"/>
-
- <Relationship primaryKeyTable="company" foreignKeyTable="department" many="true">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="company_id"/>
- </Relationship>
-
-</Config> \ No newline at end of file
diff --git a/cpp/das/runtime/test/rsc/testManyRelationship2.xml b/cpp/das/runtime/test/rsc/testManyRelationship2.xml
deleted file mode 100644
index 9fa38c8a79..0000000000
--- a/cpp/das/runtime/test/rsc/testManyRelationship2.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd" uri="test.many.relationship.two">
-
- <Command name="get company 1 and its departments" SQL="SELECT * FROM company, department where company.id = 1;"/>
-
- <Relationship primaryKeyTable="company" foreignKeyTable="department" many="false">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="company_id"/>
- </Relationship>
-
-</Config> \ No newline at end of file
diff --git a/cpp/das/runtime/test/rsc/testModifyOperation.xml b/cpp/das/runtime/test/rsc/testModifyOperation.xml
deleted file mode 100644
index 59ae0b986a..0000000000
--- a/cpp/das/runtime/test/rsc/testModifyOperation.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd" uri="test.modify.operation">
-
- <Command name="get all tables" SQL="SELECT * FROM company, department, employee;"/>
-
- <Table tableName="Department">
- <Column columnName="id" sqlType="integer" primaryKey="true"/>
- <Column columnName="name" sqlType="varchar" primaryKey="true"/>
- </Table>
-
- <Relationship primaryKeyTable="company" foreignKeyTable="department">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="company_id"/>
- </Relationship>
-
- <Relationship primaryKeyTable="department" foreignKeyTable="employee">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="department_id"/>
- <KeyPair primaryKeyColumn="name" foreignKeyColumn="department_name"/>
- </Relationship>
-
-
-
-</Config> \ No newline at end of file
diff --git a/cpp/das/runtime/test/rsc/testOCC1.xml b/cpp/das/runtime/test/rsc/testOCC1.xml
deleted file mode 100644
index 605d1aee83..0000000000
--- a/cpp/das/runtime/test/rsc/testOCC1.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd" uri="test.occ">
-
- <Command name="get all companies" SQL="SELECT * FROM company;"/>
-
- <Table tableName="Department">
- <Column columnName="id" sqlType="integer" primaryKey="true"/>
- <Column columnName="name" sqlType="varchar" primaryKey="true"/>
- </Table>
-
- <Table tableName="company">
- <Column columnName="occ" sqlType="integer" collision="true" managed="true"/>
- </Table>
-
- <Relationship primaryKeyTable="company" foreignKeyTable="department">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="company_id"/>
- </Relationship>
-
- <Relationship primaryKeyTable="department" foreignKeyTable="employee">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="department_id"/>
- <KeyPair primaryKeyColumn="name" foreignKeyColumn="department_name"/>
- </Relationship>
-
-</Config> \ No newline at end of file
diff --git a/cpp/das/runtime/test/rsc/testOCC2.xml b/cpp/das/runtime/test/rsc/testOCC2.xml
deleted file mode 100644
index 65fab5927f..0000000000
--- a/cpp/das/runtime/test/rsc/testOCC2.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
-
-<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd" uri="test.occ">
-
- <Command name="get all companies" SQL="SELECT * FROM company;"/>
-
- <Table tableName="Department">
- <Column columnName="id" sqlType="integer" primaryKey="true"/>
- <Column columnName="name" sqlType="varchar" primaryKey="true"/>
- </Table>
-
- <Table tableName="company">
- <Column columnName="occ" sqlType="integer" collision="true" managed="false"/>
- </Table>
-
- <Relationship primaryKeyTable="company" foreignKeyTable="department">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="company_id"/>
- </Relationship>
-
- <Relationship primaryKeyTable="department" foreignKeyTable="employee">
- <KeyPair primaryKeyColumn="id" foreignKeyColumn="department_id"/>
- <KeyPair primaryKeyColumn="name" foreignKeyColumn="department_name"/>
- </Relationship>
-
-</Config> \ No newline at end of file
diff --git a/cpp/das/runtime/test/src/main.cpp b/cpp/das/runtime/test/src/main.cpp
deleted file mode 100644
index b8f6239680..0000000000
--- a/cpp/das/runtime/test/src/main.cpp
+++ /dev/null
@@ -1,843 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on`` an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <iostream>
-#include <apache/das/rdb/Connection.h>
-#include <apache/das/DAS.h>
-#include <apache/das/rdb/DASImpl.h>
-#include <apache/das/CommandPtr.h>
-#include <apache/das/rdb/ResultSet.h>
-#include <apache/das/rdb/Statement.h>
-#include <apache/das/DASNullPointerException.h>
-#include <apache/das/rdb/DASOptimisticConcurrencyControlException.h>
-#include <apache/das/rdb/das_constants.h>
-#include <apache/das/rdb/Column.h>
-#include <apache/das/rdb/Table.h>
-#include <apache/das/DataGraphPrinter.h>
-#include <commonj/sdo/DataObject.h>
-#include <commonj/sdo/SDORuntimeException.h>
-#include <commonj/sdo/DataFactory.h>
-
-#define TEST_RESOURCE_PATH "../rsc/"
-
-using namespace std;
-using namespace apache::das;
-using namespace apache::das::rdb;
-
-std::string clearDBStatements[] = { "delete from EMPLOYEE",
- "delete from DEPARTMENT",
- "delete from COMPANY",
- "drop table EMPLOYEE",
- "drop table DEPARTMENT",
- "drop table COMPANY"
- };
-
-std::string resetDBStatements[] = { "create table COMPANY ( ID int not null, NAME varchar(20), OCC int, primary key(ID) )",
- "create table DEPARTMENT ( ID int not null, NAME varchar(20) not null, COMPANY_ID int, foreign key (COMPANY_ID) references company (ID), primary key(ID, NAME) )",
- "create table EMPLOYEE ( ID int not null, NAME varchar(20), DEPARTMENT_ID int, DEPARTMENT_NAME varchar(20), primary key(ID) )",
- "insert into COMPANY values (1, 'apache', 0)",
- "insert into COMPANY values (2, 'acme', 0)",
- "insert into COMPANY values (3, 'google', 0)",
- "insert into COMPANY values (4, 'ibm', 0)",
- "insert into COMPANY values (5, 'yahoo', 0)",
- "insert into DEPARTMENT values (1, 'department1', 1)",
- "insert into DEPARTMENT values (2, 'department1', 1)",
- "insert into DEPARTMENT values (3, 'department2', 2)",
- "insert into DEPARTMENT values (5, 'department3', 3)",
- "insert into DEPARTMENT values (4, 'department5', 2)",
- "insert into DEPARTMENT values (6, 'department6', 3)",
- "insert into EMPLOYEE values (1, 'adriano', 1, 'department1')",
- "insert into EMPLOYEE values (2, 'paul', 1, 'department1')",
- "insert into EMPLOYEE values (3, 'richard', 1, 'department1')",
- "insert into EMPLOYEE values (4, 'ema', 2, 'department2')",
- "insert into EMPLOYEE values (5, 'james', 2, 'department2')"
- };
-
-Connection* getConnection() {
- Connection* conn;
-
- try {
- std::string dsn = "DAStestcases";
- std::string user = "postgres";
- std::string password = "tuscany";
-
- conn = new Connection(dsn, user, password);
-
- } catch (SQLException& ex) {
- cout << "couldn't connect to the data source: " << ex.what() << endl;
- system("PAUSE");
- exit(1);
-
- }
-
- StatementPtr stmt = conn->createStatement();
-
- for (unsigned int i = 0 ; i < 6 ; i++) {
-
- try {
- stmt->executeQuery(clearDBStatements[i]);
- } catch (SQLException& ex) {cout << ex.what() << endl;}
-
- }
-
- for (unsigned int i = 0 ; i < 19 ; i++) {
-
- try {
- stmt->executeQuery(resetDBStatements[i]);
- } catch (SQLException& ex) {cout << ex.what() << endl;}
-
- }
-
- stmt->executeQuery("commit");
-
- return conn;
-
-}
-
-
-void testPointers() {
- cout << "-------------testPointers--------------" << endl;
- Connection* conn = getConnection();
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(*conn);
- Command* comm = new ReadCommandImpl(*das, "select * from COMPANY");
- CommandPtr comm1 = *comm;
- CommandPtr comm2 = comm1;
- CommandPtr comm3 = das->createCommand("select * from COMPANY;");
- StatementPtr stmtPtr1 = conn->createStatement();
- Statement* stmt = stmtPtr1;
- StatementPtr stmtPtr2 = stmtPtr1;
- StatementPtr stmtPtr3 = conn->createStatement();
- StatementPtr* stmtPtr4 = new StatementPtr(stmt);
-
- cout << "Command pointer working correctly = ";
- try {
- comm1->executeQuery();
- cout << "OK" << endl;
- } catch (DASNullPointerException& exp) {
- cout << "DASNullPointerException" << endl;
- }
-
- comm1 = 0;
- comm2 = 0;
- cout << "Command object deleted when there is no more reference = ";
- try {
- comm1->executeQuery();
- cout << "not deleted" << endl;
- } catch (DASNullPointerException& exp) {
- cout << "OK" << endl;
- }
-
- delete das;
- cout << "Command pointer set as null when object is deleted = ";
- if (comm3 != 0) {
- cout << "not null" << endl;
- } else {
- cout << "OK" << endl;
- }
-
- ResultSetPtr resultSetPtr = stmtPtr1->executeQuery("select * from COMPANY;");
-
- cout << "ResultSet pointer working correctly = ";
- try {
- resultSetPtr->getStatement();
- cout << "OK" << endl;
- } catch (DASNullPointerException& exp) {
- cout << "DASNullPointerException" << endl;
- }
-
- stmtPtr1->executeQuery("select * from EMPLOYEE;");
- cout << "ResultSet object deleted when there is another query on its statement = ";
- try {
- resultSetPtr->getStatement();
- cout << "not deleted" << endl;
- } catch (DASNullPointerException& exp) {
- cout << "OK" << endl;
- }
-
- cout << "Statement pointer working correctly = ";
- try {
- stmtPtr1->getODBCStatement();
- cout << "OK" << endl;
- } catch (DASNullPointerException& exp) {
- cout << "DASNullPointerException" << endl;
- }
-
- stmtPtr1 = 0;
- stmtPtr2 = 0;
- delete stmtPtr4;
- cout << "Statement object deleted when there is no more reference = ";
- try {
- stmtPtr1->getODBCStatement();
- cout << "not deleted" << endl;
- } catch (DASNullPointerException& exp) {
- cout << "OK" << endl;
- }
-
- stmtPtr1 = conn->createStatement();
- resultSetPtr = stmtPtr1 ->executeQuery("select * from COMPANY;");
- ResultSetPtr resultSetPtr2 = resultSetPtr;
- delete conn;
- stmtPtr1 = 0;
- resultSetPtr = 0;
- resultSetPtr2 = 0;
-
- cout << "Statement pointer set as null when object is deleted = ";
- if (stmtPtr3 != 0) {
- cout << "not null" << endl;
- } else {
- cout << "OK" << endl;
- }
-
- cout << "---------------------------------" << endl << endl;
-
-}
-
-void testIncompleteCompositeRelationship() {
- cout << "-------------testIncompleteCompositeRelationship--------------" << endl;
-
- Connection* conn = getConnection();
-
- {
- ConfigImpl config((std::string) TEST_RESOURCE_PATH + "testIncompleteCompositeRelationship1.xml");
-
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, *conn);
-
- CommandPtr command = das->getCommand("get incomplete relationship");
-
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
- cout << "relationship ignored when the ResultSet does not contain all KeyPairs = ";
- try {
- root->getDataFactory()->getType(config.getURI(), "DEPARTMENT").getProperty("EMPLOYEE");
- cout << "not ignored" << endl;
-
- } catch (commonj::sdo::SDOPropertyNotFoundException& ex) {
- cout << "OK" << endl;
- }
-
- delete das;
-
- }
-
- {
- ConfigImpl config((std::string) TEST_RESOURCE_PATH + "testIncompleteCompositeRelationship2.xml");
-
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, *conn);
-
- CommandPtr command = das->getCommand("get incomplete relationship");
-
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
- cout << "relationship ignored when a defined relationship pk is not a table pk = ";
- try {
- root->getDataFactory()->getType(config.getURI(), "DEPARTMENT").getProperty("EMPLOYEE");
- cout << "not ignored" << endl;
-
- } catch (commonj::sdo::SDOPropertyNotFoundException& ex) {
- cout << "OK" << endl;
- }
-
- delete das;
-
- }
-
- delete conn;
-
- cout << "---------------------------------" << endl << endl;
-
-}
-
-void testCompositeRelationship() {
- cout << "-------------testCompositeRelationship--------------" << endl;
-
- Connection* conn = getConnection();
- ConfigImpl config((std::string) TEST_RESOURCE_PATH + "testCompositeRelationship.xml");
-
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, *conn);
-
- CommandPtr command = das->getCommand("get composite relationship");
-
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
- cout << "relationship created = ";
- try {
- root->getDataFactory()->getType(config.getURI(), "DEPARTMENT").getProperty("EMPLOYEE");
- cout << "OK" << endl;
-
- cout << "references set = ";
- if (root->getDataObject("DEPARTMENT[1]")->getList("EMPLOYEE").size() != 0) {
- cout << "OK" << endl;
- } else {
- cout << "not set" << endl;
- }
-
- } catch (commonj::sdo::SDOPropertyNotFoundException& ex) {
- cout << "not created" << endl;
-
- }
-
- delete conn;
- delete das;
-
- cout << "---------------------------------" << endl << endl;
-
-}
-
-void testCOCRelationship() {
- cout << "-------------testCOCRelationship--------------" << endl;
-
- Connection* conn = getConnection();
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(*conn);
-
- CommandPtr command = das->createCommand("SELECT * FROM DEPARTMENT, COMPANY;");
-
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
-
- cout << "relationship created = ";
- try {
- root->getDataFactory()->getType(das->getConfig().getURI(), "COMPANY").getProperty("DEPARTMENT");
- cout << "OK" << endl;
-
- } catch (commonj::sdo::SDOPropertyNotFoundException& ex) {
- cout << "not created" << endl;
- }
-
- delete conn;
- delete das;
-
- cout << "---------------------------------" << endl << endl;
-
-}
-
-void testKeyPairColumnTypeNotEqual() {
- cout << "-------------testKeyPairColumnTypeNotEqual--------------" << endl;
-
- Connection* conn = getConnection();
- ConfigImpl config((std::string) TEST_RESOURCE_PATH + "testKeyPairColumnTypeNotEqual.xml");
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, *conn);
- CommandPtr command = das->getCommand("get all employees and departments");
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
- cout << "relationship ignored when keypair types are not equal = ";
- try {
- root->getDataFactory()->getType(config.getURI(), "DEPARTMENT").getProperty("EMPLOYEE");
- cout << "not ignored" << endl;
-
- } catch (commonj::sdo::SDOPropertyNotFoundException& ex) {
- cout << "OK" << endl;
- }
-
- delete conn;
- delete das;
-
- cout << "---------------------------------" << endl << endl;
-
-}
-
-void testUniqueObjectByID() {
- cout << "-------------testUniqueObjectByID--------------" << endl;
-
- Connection* conn = getConnection();
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(*conn);
- CommandPtr command = das->createCommand("SELECT * FROM COMPANY, DEPARTMENT where COMPANY.ID = 1;");
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
- cout << "table duplicated row ignored = ";
- if (root->getList("COMPANY").size() == 1) {
- cout << "OK" << endl;
- } else {
- cout << "not ignored" << endl;
- }
-
- delete conn;
- delete das;
-
- cout << "---------------------------------" << endl << endl;
-
-}
-
-void testDeleteOperation() {
- cout << "-------------testDeleteOperation--------------" << endl;
-
- Connection* conn = getConnection();
-
- ConfigImpl config((std::string) TEST_RESOURCE_PATH + "testDeleteOperation.xml");
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, *conn);
- CommandPtr command = das->getCommand("get all tables");
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
- root->getDataObject("COMPANY[1]")->getDataObject("DEPARTMENT[1]")->detach();
- commonj::sdo::DataObjectPtr company = root->getDataObject("COMPANY[1]");
- company->detach();
- long removedCompanyID = company->getInt("ID");
-
- cout << "COMPANY with id " << removedCompanyID << " deleted on database: ";
-
- das->applyChanges(root);
-
- root = command->executeQuery();
-
- commonj::sdo::DataObjectList& companies = root->getList("COMPANY");
- bool failed = true;
- for (unsigned int i = 0 ; i < companies.size() ; i++) {
- failed = false;
-
- if (companies[i]->getInt("ID") == removedCompanyID) {
- cout << "Failed" << endl;
- failed = true;
- break;
-
- }
-
- }
-
- if (!failed) {
- cout << "OK" << endl;
- }
-
- delete conn;
- delete das;
-
- cout << "---------------------------------" << endl << endl;
-
-}
-
-void testCreateOperation() {
- cout << "-------------testCreateOperation--------------" << endl;
-
- Connection* conn = getConnection();
- ConfigImpl config((std::string) TEST_RESOURCE_PATH + "testCreateOperation.xml");
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, *conn);
- CommandPtr command = das->getCommand("get all tables");
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
- commonj::sdo::DataObjectPtr company = root->createDataObject("COMPANY");
- StringWrapper("hp").defineOnDataObject(company, "NAME");
- company->setInt("ID", 40);
-
- commonj::sdo::DataObjectPtr department = root->createDataObject("DEPARTMENT");
- StringWrapper("DEPARTMENT40").defineOnDataObject(department, "NAME");
- department->setInt("ID", 39);
-
- company = root->getDataObject("COMPANY[1]");
- long departmentCompanyID = company->getInt("ID");
- company->getList("DEPARTMENT").append(department);
-
- commonj::sdo::DataObjectPtr employee = root->createDataObject("EMPLOYEE");
- StringWrapper("juan").defineOnDataObject(employee, "NAME");
- employee->setInt("ID", 38);
- department->getList("EMPLOYEE").append(employee);
-
- das->applyChanges(root);
-
- root = command->executeQuery();
-
- commonj::sdo::DataObjectList& departments = root->getList("DEPARTMENT");
- bool failed = true;
- for (unsigned int i = 0 ; i < departments.size() ; i++) {
-
- if (departments[i]->getInt("ID") == 39 && StringWrapper(departments[i], "NAME").getString() == "DEPARTMENT40"
- && departments[i]->getDataObject("EMPLOYEE[1]")->getInt("ID") == 38
- && StringWrapper(departments[i]->getDataObject("EMPLOYEE[1]"), "NAME").getString() == "juan") {
-
- failed = false;
- break;
-
- }
-
- }
-
- if (!failed) {
- failed = true;
- commonj::sdo::DataObjectList& companies = root->getList("COMPANY");
- for (unsigned int i = 0 ; i < companies.size() ; i++) {
-
- if (companies[i]->getInt("ID") == departmentCompanyID) {
- commonj::sdo::DataObjectList& companyDepartments = root->getList("DEPARTMENT");
-
- for (unsigned int i = 0 ; i < companyDepartments.size() ; i++) {
-
- if (companyDepartments[i]->getInt("ID") == 39) {
- failed = false;
- break;
-
- }
-
- }
-
- break;
-
- }
-
- }
-
- }
-
- if (failed) {
- cout << "Failed" << endl;
- } else {
- cout << "OK" << endl;
- }
-
- delete conn;
- delete das;
-
- cout << "---------------------------------" << endl << endl;
-
-}
-
-//
-
-void testMofidyOperation() {
- cout << "-------------testMofidyOperation--------------" << endl;
-
- Connection* conn = getConnection();
- ConfigImpl config((std::string) TEST_RESOURCE_PATH + "testModifyOperation.xml");
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, *conn);
- CommandPtr command = das->getCommand("get all tables");
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
- commonj::sdo::DataObjectPtr company1 = root->getDataObject("COMPANY[1]");
- commonj::sdo::DataObjectPtr company2 = root->getDataObject("COMPANY[2]");
-
- StringWrapper("intel").defineOnDataObject(company1, "NAME");
-
- commonj::sdo::DataObjectPtr department = root->createDataObject("DEPARTMENT");
- StringWrapper("department40").defineOnDataObject(department, "NAME");
- department->setInt("ID", 39);
- company1->getList("DEPARTMENT").append(department);
-
- department = company1->getList("DEPARTMENT").remove(0);//company->getDataObject("DEPARTMENT[1]");
- company2->getList("DEPARTMENT").append(department);
-
- commonj::sdo::DataObjectPtr employee = root->createDataObject("EMPLOYEE");
- StringWrapper("albert").defineOnDataObject(employee, "NAME");
- employee->setInt("ID", 37);
- department->getList("EMPLOYEE").append(employee);
-
- das->applyChanges(root);
-
- commonj::sdo::DataObjectPtr dob;
- bool failed = false;
- try {
- dob = root->getDataObject("COMPANY[NAME='intel']");
- } catch (commonj::sdo::SDOPathNotFoundException& ex) {
- cout << ex.getMessageText() << endl;
- failed = true;
-
- }
-
- try {
- dob = root->getDataObject("COMPANY[NAME='intel']/DEPARTMENT[NAME='department40'and ID=39]");
- } catch (commonj::sdo::SDOPathNotFoundException& ex) {
- cout << ex.getMessageText() << endl;
- failed = true;
-
- }
-
- try {
- dob = root->getDataObject("COMPANY[ID=2]/DEPARTMENT[ID=1]");
- } catch (commonj::sdo::SDOPathNotFoundException& ex) {
- cout << ex.getMessageText() << endl;
- failed = true;
-
- }
-
- try {
- dob = root->getDataObject("COMPANY[ID=2]/DEPARTMENT[ID=1]/EMPLOYEE[ID=37 and NAME='albert']");
- } catch (commonj::sdo::SDOPathNotFoundException& ex) {
- cout << ex.getMessageText() << endl;
- failed = true;
-
- }
-
- if (failed) {
- cout << "Failed" << endl;
- } else {
- cout << "OK" << endl;
- }
-
- delete conn;
- delete das;
-
- cout << "---------------------------------" << endl << endl;
-
-}
-
-void testOCC() {
- cout << "-------------testOCC--------------" << endl;
-
- Connection* conn = getConnection();
- {
- ConfigImpl config((std::string) TEST_RESOURCE_PATH + "testOCC1.xml");
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, *conn);
- CommandPtr command = das->getCommand("get all companies");
- commonj::sdo::DataObjectPtr root1 = command->executeQuery();
- commonj::sdo::DataObjectPtr root2 = command->executeQuery();
-
- commonj::sdo::DataObjectPtr company = root1->getDataObject("COMPANY[ID=1]");
- StringWrapper("microsoft").defineOnDataObject(company, "NAME");
- long oldOCCValue = company->getInt("OCC");
-
- das->applyChanges(root1);
-
- root1 = command->executeQuery();
-
- cout << "OCC field incremented after changes applied: ";
- if (root1->getDataObject("COMPANY[ID=1]")->getInt("OCC") > oldOCCValue) {
- cout << "OK";
- } else {
- cout << "Failed";
- }
-
- cout << endl;
-
- company = root2->getDataObject("COMPANY[ID=1]");
- StringWrapper("dell").defineOnDataObject(company, "NAME");
-
- cout << "DASOptimisticConcurrencyControlException thrown in attempt to modify a row with different occ field value: ";
- try {
- das->applyChanges(root2);
- cout << "Failed";
-
- } catch (DASOptimisticConcurrencyControlException&) {
- cout << "OK";
- }
-
- cout << endl;
- delete das;
-
-
- }
-
- {
- ConfigImpl config((std::string) TEST_RESOURCE_PATH + "testOCC2.xml");
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, *conn);
- CommandPtr command = das->getCommand("get all companies");
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
- commonj::sdo::DataObjectPtr company = root->getDataObject("COMPANY[ID=1]");
- StringWrapper("dell").defineOnDataObject(company, "NAME");
- long oldOCCValue = company->getInt("OCC");
-
- das->applyChanges(root);
-
- root = command->executeQuery();
-
- cout << "OCC field not incremented when it's not managed by DAS: ";
- if (root->getDataObject("COMPANY[ID=1]")->getInt("OCC") == oldOCCValue) {
- cout << "OK";
- } else {
- cout << "Failed";
- }
-
- cout << endl;
- delete das;
-
- }
-
- delete conn;
-
- cout << "---------------------------------" << endl << endl;
-
-}
-
-void testManyRelationship() {
- cout << "-------------testManyRelationship--------------" << endl;
-
- Connection* conn = getConnection();
- {
- ConfigImpl config((std::string) TEST_RESOURCE_PATH + "testManyRelationship1.xml");
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, *conn);
- CommandPtr command = das->getCommand("get company 1 and its departments");
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
- cout << "reference created as many on data graph = ";
- if (root->getDataFactory()->getType(config.getURI(), "COMPANY").getProperty("DEPARTMENT").isMany()) {
- cout << "OK" << endl;
-
- cout << "all data objects added on reference list = ";
- if (root->getDataObject("COMPANY[1]")->getList("DEPARTMENT").size() > 1) {
- cout << "OK" << endl;
- } else {
- cout << "not added all data objects" << endl;
- }
-
- } else {
- cout << "not created as many" << endl;
- }
-
- delete das;
-
- }
-
- {
- ConfigImpl config((std::string) TEST_RESOURCE_PATH + "testManyRelationship2.xml");
- DASImpl* das = (DASImpl*) DASImpl::getFACTORY().createDAS(config, *conn);
- CommandPtr command = das->getCommand("get company 1 and its departments");
- commonj::sdo::DataObjectPtr root = command->executeQuery();
-
- cout << "reference created as not many on data graph = ";
- if (!root->getDataFactory()->getType(config.getURI(), "COMPANY").getProperty("DEPARTMENT").isMany()) {
- cout << "OK" << endl;
-
- cout << "only one data object added on reference = ";
- if (root->getDataObject("COMPANY[1]")->isNull("DEPARTMENT")) {
- cout << "reference data object not set" << endl;
- } else {
- cout << "OK" << endl;
- }
-
- } else {
- cout << "not created as many" << endl;
- }
-
- delete das;
-
- }
-
- delete conn;
-
- cout << "---------------------------------" << endl << endl;
-
-}
-
-void testDataTypes() {
- Connection* conn;
-
- try {
- std::string dsn = "PostgresTestcases2";
- std::string user = "postgres";
- std::string password = "tuscany";
-
- conn = new Connection(dsn, user, password);
-
- } catch (SQLException& ex) {
- cout << "couldn't connect to the data source: " << ex.what() << endl;
- system("PAUSE");
- exit(1);
-
- }
-
- StatementPtr stmt = conn->createStatement();
- ResultSetPtr rs = stmt->executeQuery("select * from DATA;");
- const ResultSetMetaData& rsm = rs->getResultSetMetaData();
- rs->next();
- for (int i = 0 ; i < rsm.getColumnCount() ; i++) {
- SQLSMALLINT type = rsm.getSQLType(i);
- cout << rsm.getColumnName(i) << ": ";
-
- switch (type) {
- case SQL_INTEGER : cout << "SQL_INTEGER" << endl; break;
- case SQL_DECIMAL : cout << "SQL_DECIMAL" << endl; break;
- case SQL_CHAR : cout << "SQL_CHAR" << endl; break;
- case SQL_NUMERIC : cout << "SQL_NUMERIC" << endl; break;
- case SQL_SMALLINT : cout << "SQL_SMALLINT" << endl; break;
- case SQL_FLOAT : cout << "SQL_FLOAT" << endl; break;
- case SQL_REAL : cout << "SQL_REAL" << endl; break;
- case SQL_DOUBLE : cout << "SQL_DOUBLE" << endl; break;
- case SQL_DATETIME : cout << "SQL_DATETIME" << endl; break;
- case SQL_VARCHAR : cout << "SQL_VARCHAR" << endl; break;
- case SQL_TYPE_DATE : cout << "SQL_TYPE_DATE" << endl; break;
- case SQL_TYPE_TIME : cout << "SQL_TYPE_TIME" << endl; break;
- case SQL_TYPE_TIMESTAMP : cout << "SQL_TYPE_TIMESTAMP" << endl; break;
- case SQL_UNKNOWN_TYPE : cout << "SQL_UNKNOWN_TYPE" << endl; break;
- default : cout << "more than unknown = " << type << endl;
-
- }
-
- Table table("DATA");
- const apache::das::rdb::Column& column = table.addColumn(rsm.getColumnName(i), type);
-
- cout << "SQL value = " << ColumnData(column, rs).toSQL() << endl;
-
- }
-
- delete conn;
-
-}
-
-int main() {
-
- //testDataTypes();
-
- //try {
- testMofidyOperation();
- /*} catch (...) {
- cout << "FAILED (unexpected unknown exception)" << endl;
- }*/
-
- try {
- testDeleteOperation();
- } catch (...) {
- cout << "FAILED (unexpected unknown exception)" << endl;
- }
-
- try {
- testCreateOperation();
- } catch (...) {
- cout << "FAILED (unexpected unknown exception)" << endl;
- }
-
- try {
- testPointers();
- } catch (...) {
- cout << "FAILED (unexpected unknown exception)" << endl;
- }
-
- try {
- testUniqueObjectByID();
- } catch (...) {
- cout << "FAILED (unexpected unknown exception)" << endl;
- }
-
- try {
- testIncompleteCompositeRelationship();
- } catch (...) {
- cout << "FAILED (unexpected unknown exception)" << endl;
- }
-
- try {
- testCompositeRelationship();
- } catch (...) {
- cout << "FAILED (unexpected unknown exception)" << endl;
- }
-
- try {
- testCOCRelationship();
- } catch (...) {
- cout << "FAILED (unexpected unknown exception)" << endl;
- }
-
- try {
- testManyRelationship();
- } catch (...) {
- cout << "FAILED (unexpected unknown exception)" << endl;
- }
-
- try {
- testOCC();
- } catch (...) {
- cout << "FAILED (unexpected unknown exception)" << endl;
- }
-
- system("PAUSE");
-
-}