You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2014/03/12 16:13:42 UTC

svn commit: r1576778 - /cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DataRowPostProcessor.java

Author: aadamchik
Date: Wed Mar 12 15:13:41 2014
New Revision: 1576778

URL: http://svn.apache.org/r1576778
Log:
CAY-1907 RowReaderFactory

hiding DataRowPostProcessor in the reader factory

Modified:
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DataRowPostProcessor.java

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DataRowPostProcessor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DataRowPostProcessor.java?rev=1576778&r1=1576777&r2=1576778&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DataRowPostProcessor.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DataRowPostProcessor.java Wed Mar 12 15:13:41 2014
@@ -20,19 +20,12 @@
 package org.apache.cayenne.access.jdbc;
 
 import java.sql.ResultSet;
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.Map;
-import java.util.Map.Entry;
 
 import org.apache.cayenne.DataRow;
-import org.apache.cayenne.access.trans.SelectTranslator;
 import org.apache.cayenne.access.types.ExtendedType;
-import org.apache.cayenne.dba.TypesMapping;
-import org.apache.cayenne.map.Entity;
 import org.apache.cayenne.map.EntityInheritanceTree;
-import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.reflect.ClassDescriptor;
 
@@ -47,67 +40,6 @@ class DataRowPostProcessor {
     private Map<String, Collection<ColumnOverride>> columnOverrides;
     private Collection<ColumnOverride> defaultOverrides;
 
-    // factory method
-    static DataRowPostProcessor createPostProcessor(SelectTranslator translator) {
-        Map<ObjAttribute, ColumnDescriptor> attributeOverrides = translator.getAttributeOverrides();
-        if (attributeOverrides.isEmpty()) {
-            return null;
-        }
-
-        ColumnDescriptor[] columns = translator.getResultColumns();
-
-        Map<String, Collection<ColumnOverride>> columnOverrides = new HashMap<String, Collection<ColumnOverride>>(2);
-
-        for (Entry<ObjAttribute, ColumnDescriptor> entry : attributeOverrides.entrySet()) {
-
-            ObjAttribute attribute = entry.getKey();
-            Entity entity = attribute.getEntity();
-
-            String key = null;
-            int jdbcType = TypesMapping.NOT_DEFINED;
-            int index = -1;
-            for (int i = 0; i < columns.length; i++) {
-                if (columns[i] == entry.getValue()) {
-
-                    // if attribute type is the same as column, there is no
-                    // conflict
-                    if (!attribute.getType().equals(columns[i].getJavaClass())) {
-                        // note that JDBC index is "1" based
-                        index = i + 1;
-                        jdbcType = columns[i].getJdbcType();
-                        key = columns[i].getDataRowKey();
-                    }
-
-                    break;
-                }
-            }
-
-            if (index < 1) {
-                continue;
-            }
-
-            ExtendedType converter = translator.getAdapter().getExtendedTypes().getRegisteredType(attribute.getType());
-
-            Collection<ColumnOverride> overrides = columnOverrides.get(entity.getName());
-
-            if (overrides == null) {
-                overrides = new ArrayList<ColumnOverride>(3);
-                columnOverrides.put(entity.getName(), overrides);
-            }
-
-            overrides.add(new ColumnOverride(index, key, converter, jdbcType));
-        }
-
-        // inject null post-processor
-        if (columnOverrides.isEmpty()) {
-            return null;
-        }
-
-        ClassDescriptor rootDescriptor = translator.getQueryMetadata().getClassDescriptor();
-
-        return new DataRowPostProcessor(rootDescriptor, columnOverrides);
-    }
-
     DataRowPostProcessor(ClassDescriptor classDescriptor, Map<String, Collection<ColumnOverride>> columnOverrides) {
 
         if (classDescriptor != null && classDescriptor.hasSubclasses()) {