summaryrefslogtreecommitdiffstats
path: root/das-java/tags/1.0-incubating-beta1-rc1/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/RowObjects.java
diff options
context:
space:
mode:
Diffstat (limited to 'das-java/tags/1.0-incubating-beta1-rc1/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/RowObjects.java')
-rw-r--r--das-java/tags/1.0-incubating-beta1-rc1/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/RowObjects.java145
1 files changed, 0 insertions, 145 deletions
diff --git a/das-java/tags/1.0-incubating-beta1-rc1/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/RowObjects.java b/das-java/tags/1.0-incubating-beta1-rc1/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/RowObjects.java
deleted file mode 100644
index c7f200cb1e..0000000000
--- a/das-java/tags/1.0-incubating-beta1-rc1/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/RowObjects.java
+++ /dev/null
@@ -1,145 +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.
- */
-package org.apache.tuscany.das.rdb.graphbuilder.impl;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.apache.tuscany.das.rdb.config.KeyPair;
-import org.apache.tuscany.das.rdb.config.Relationship;
-import org.apache.tuscany.das.rdb.config.wrapper.MappingWrapper;
-
-import commonj.sdo.DataObject;
-import commonj.sdo.Property;
-
-public class RowObjects {
- private final Logger logger = Logger.getLogger(RowObjects.class);
-
- private Map objectsByTableName;
-
- private List tableObjects;
-
- private final GraphBuilderMetadata metadata;
-
- private final TableRegistry registry;
-
- public RowObjects(GraphBuilderMetadata metadata, TableRegistry registry) {
- objectsByTableName = new HashMap();
- tableObjects = new ArrayList();
- this.metadata = metadata;
- this.registry = registry;
- }
-
- public void put(String key, DataObject value) {
- objectsByTableName.put(key, value);
- tableObjects.add(value);
- }
-
- public DataObject get(String tablePropertyName) {
- return (DataObject) objectsByTableName.get(tablePropertyName);
- }
-
- void processRelationships() {
- MappingWrapper wrapper = metadata.getConfigWrapper();
- if (wrapper.hasRecursiveRelationships()) {
- processRecursiveRelationships(wrapper);
- return;
- }
-
- Iterator i = metadata.getRelationships().iterator();
- while (i.hasNext()) {
- Relationship r = (Relationship) i.next();
-
- DataObject parentTable = get(wrapper.getTableTypeName(r.getPrimaryKeyTable()));
- DataObject childTable = get(wrapper.getTableTypeName(r.getForeignKeyTable()));
-
- if (this.logger.isDebugEnabled()) {
- this.logger.debug("Parent table: " + parentTable);
- this.logger.debug("Child table: " + childTable);
- }
- if ((parentTable == null) || (childTable == null)) {
- continue;
- }
-
- Property p = parentTable.getType().getProperty(r.getName());
- setOrAdd(parentTable, childTable, p);
-
- }
- }
-
- private void processRecursiveRelationships(MappingWrapper wrapper) {
- Iterator i = tableObjects.iterator();
- while (i.hasNext()) {
- DataObject table = (DataObject) i.next();
-
- Iterator relationships = wrapper.getRelationshipsByChildTable(table.getType().getName()).iterator();
- while (relationships.hasNext()) {
- Relationship r = (Relationship) relationships.next();
-
- DataObject parentTable = findParentTable(table, r, wrapper);
-
- if (parentTable == null) {
- continue;
- }
-
- Property p = parentTable.getType().getProperty(r.getName());
- setOrAdd(parentTable, table, p);
- }
-
- }
- }
-
- private void setOrAdd(DataObject parent, DataObject child, Property p) {
- if (p.isMany()) {
- parent.getList(p).add(child);
- } else {
- parent.set(p, child);
- }
- }
-
- private DataObject findParentTable(DataObject childTable, Relationship r, MappingWrapper wrapper) {
-
- List fkValue = new ArrayList();
- Iterator keyPairs = r.getKeyPair().iterator();
- while (keyPairs.hasNext()) {
- KeyPair pair = (KeyPair) keyPairs.next();
- String childProperty = wrapper.getColumnPropertyName(r.getPrimaryKeyTable(), pair.getForeignKeyColumn());
-
- Property p = childTable.getType().getProperty(childProperty);
- fkValue.add(childTable.get(p));
- }
-
- if (this.logger.isDebugEnabled()) {
- this.logger.debug("Trying to find parent of " + r.getForeignKeyTable() + " with FK " + fkValue);
- }
-
- DataObject parentTable = registry.get(r.getPrimaryKeyTable(), fkValue);
-
- if (this.logger.isDebugEnabled()) {
- this.logger.debug("Parent table from registry: " + parentTable);
- }
-
- return parentTable;
- }
-
-}