summaryrefslogtreecommitdiffstats
path: root/das-cpp/trunk/runtime/core/src/apache/das/rdb/CreatedDataObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'das-cpp/trunk/runtime/core/src/apache/das/rdb/CreatedDataObject.cpp')
-rw-r--r--das-cpp/trunk/runtime/core/src/apache/das/rdb/CreatedDataObject.cpp107
1 files changed, 107 insertions, 0 deletions
diff --git a/das-cpp/trunk/runtime/core/src/apache/das/rdb/CreatedDataObject.cpp b/das-cpp/trunk/runtime/core/src/apache/das/rdb/CreatedDataObject.cpp
new file mode 100644
index 0000000000..de24d356d4
--- /dev/null
+++ b/das-cpp/trunk/runtime/core/src/apache/das/rdb/CreatedDataObject.cpp
@@ -0,0 +1,107 @@
+/*
+ * 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;*/
+
+}
+
+ };
+ };
+};