You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2014/05/18 21:00:38 UTC
[2/6] git commit: Adapted other modules to work with the
ColumnType-as-an-interface change.
Adapted other modules to work with the ColumnType-as-an-interface
change.
Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/743e891f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/743e891f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/743e891f
Branch: refs/heads/master
Commit: 743e891f62924682cef5fbcf37d6e6db0e64e2e9
Parents: 0423261
Author: Kasper Sørensen <i....@gmail.com>
Authored: Tue Mar 25 22:04:10 2014 +0100
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Fri Apr 4 07:47:44 2014 +0200
----------------------------------------------------------------------
.../org/apache/metamodel/schema/ColumnType.java | 9 +-
.../apache/metamodel/schema/ColumnTypeImpl.java | 14 +-
.../LegacyDeserializationObjectInputStream.java | 2 +-
.../metamodel/couchdb/CouchDbDataContext.java | 22 +-
.../org/apache/metamodel/jdbc/JdbcDataSet.java | 355 +++++++++----------
.../jdbc/dialects/AbstractQueryRewriter.java | 3 +-
.../jdbc/dialects/DB2QueryRewriter.java | 7 +-
.../metamodel/mongodb/MongoDbDataContext.java | 6 +-
.../metamodel/pojo/ObjectTableDataProvider.java | 3 +-
.../salesforce/SalesforceDataContext.java | 13 +-
.../metamodel/salesforce/SalesforceDataSet.java | 11 +-
11 files changed, 220 insertions(+), 225 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/743e891f/core/src/main/java/org/apache/metamodel/schema/ColumnType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/ColumnType.java b/core/src/main/java/org/apache/metamodel/schema/ColumnType.java
index 44d5e87..a2b4a2e 100644
--- a/core/src/main/java/org/apache/metamodel/schema/ColumnType.java
+++ b/core/src/main/java/org/apache/metamodel/schema/ColumnType.java
@@ -25,6 +25,7 @@ import static org.apache.metamodel.schema.SuperColumnType.NUMBER_TYPE;
import static org.apache.metamodel.schema.SuperColumnType.OTHER_TYPE;
import static org.apache.metamodel.schema.SuperColumnType.TIME_TYPE;
+import java.io.Serializable;
import java.math.BigInteger;
import java.sql.Blob;
import java.sql.Clob;
@@ -38,7 +39,7 @@ import org.apache.metamodel.util.HasName;
/**
* Represents the data-type of columns.
*/
-public interface ColumnType extends HasName {
+public interface ColumnType extends HasName, Serializable {
/*
* Literal
@@ -46,11 +47,11 @@ public interface ColumnType extends HasName {
public static final ColumnType CHAR = new ColumnTypeImpl("CHAR", LITERAL_TYPE);
public static final ColumnType VARCHAR = new ColumnTypeImpl("VARCHAR", LITERAL_TYPE);
public static final ColumnType LONGVARCHAR = new ColumnTypeImpl("LONGVARCHAR", LITERAL_TYPE);
- public static final ColumnType CLOB = new ColumnTypeImpl("CLOB", LITERAL_TYPE, Clob.class);
+ public static final ColumnType CLOB = new ColumnTypeImpl("CLOB", LITERAL_TYPE, Clob.class, true);
public static final ColumnType NCHAR = new ColumnTypeImpl("NCHAR", LITERAL_TYPE);
public static final ColumnType NVARCHAR = new ColumnTypeImpl("NVARCHAR", LITERAL_TYPE);
public static final ColumnType LONGNVARCHAR = new ColumnTypeImpl("LONGNVARCHAR", LITERAL_TYPE);
- public static final ColumnType NCLOB = new ColumnTypeImpl("NCLOB", LITERAL_TYPE, Clob.class);
+ public static final ColumnType NCLOB = new ColumnTypeImpl("NCLOB", LITERAL_TYPE, Clob.class, true);
/*
* Numbers
@@ -84,7 +85,7 @@ public interface ColumnType extends HasName {
public static final ColumnType BINARY = new ColumnTypeImpl("BINARY", BINARY_TYPE);
public static final ColumnType VARBINARY = new ColumnTypeImpl("VARBINARY", BINARY_TYPE);
public static final ColumnType LONGVARBINARY = new ColumnTypeImpl("LONGVARBINARY", BINARY_TYPE);
- public static final ColumnType BLOB = new ColumnTypeImpl("BLOB", BINARY_TYPE, Blob.class);
+ public static final ColumnType BLOB = new ColumnTypeImpl("BLOB", BINARY_TYPE, Blob.class, true);
/*
* Other types (as defined in {@link Types}).
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/743e891f/core/src/main/java/org/apache/metamodel/schema/ColumnTypeImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/ColumnTypeImpl.java b/core/src/main/java/org/apache/metamodel/schema/ColumnTypeImpl.java
index 2b482a4..ce55398 100644
--- a/core/src/main/java/org/apache/metamodel/schema/ColumnTypeImpl.java
+++ b/core/src/main/java/org/apache/metamodel/schema/ColumnTypeImpl.java
@@ -40,17 +40,24 @@ import org.slf4j.LoggerFactory;
*/
public class ColumnTypeImpl implements ColumnType {
+ private static final long serialVersionUID = 1L;
+
public static final Logger logger = LoggerFactory.getLogger(ColumnTypeImpl.class);
private final String _name;
private final SuperColumnType _superColumnType;
private final Class<?> _javaType;
+ private final boolean _largeObject;
public ColumnTypeImpl(String name, SuperColumnType superColumnType) {
this(name, superColumnType, null);
}
public ColumnTypeImpl(String name, SuperColumnType superColumnType, Class<?> javaType) {
+ this(name, superColumnType, javaType, false);
+ }
+
+ public ColumnTypeImpl(String name, SuperColumnType superColumnType, Class<?> javaType, boolean largeObject) {
if (name == null) {
throw new IllegalArgumentException("Name cannot be null");
}
@@ -64,6 +71,7 @@ public class ColumnTypeImpl implements ColumnType {
} else {
_javaType = javaType;
}
+ _largeObject = largeObject;
}
@Override
@@ -112,11 +120,7 @@ public class ColumnTypeImpl implements ColumnType {
@Override
public boolean isLargeObject() {
- String name = getName();
- if ("BLOB".equals(name) || "CLOB".equals(name) || "NCLOB".equals(name)) {
-
- }
- return false;
+ return _largeObject;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/743e891f/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java b/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java
index c5ab2e5..ad7e4fb 100644
--- a/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java
+++ b/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java
@@ -34,7 +34,7 @@ public class LegacyDeserializationObjectInputStream extends ObjectInputStream {
public LegacyDeserializationObjectInputStream(InputStream in) throws IOException, SecurityException {
super(in);
}
-
+
@Override
protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
String className = desc.getName();
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/743e891f/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
----------------------------------------------------------------------
diff --git a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
index 557b7e9..6ff3ee9 100644
--- a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
+++ b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
@@ -19,7 +19,7 @@
package org.apache.metamodel.couchdb;
import java.util.ArrayList;
-import java.util.EnumSet;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
@@ -27,15 +27,6 @@ import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
-import org.codehaus.jackson.JsonNode;
-import org.ektorp.CouchDbConnector;
-import org.ektorp.CouchDbInstance;
-import org.ektorp.StreamingViewResult;
-import org.ektorp.ViewQuery;
-import org.ektorp.ViewResult.Row;
-import org.ektorp.http.HttpClient;
-import org.ektorp.http.StdHttpClient;
-import org.ektorp.impl.StdCouchDbInstance;
import org.apache.metamodel.MetaModelException;
import org.apache.metamodel.MetaModelHelper;
import org.apache.metamodel.QueryPostprocessDataContext;
@@ -51,6 +42,15 @@ import org.apache.metamodel.schema.MutableTable;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
import org.apache.metamodel.util.SimpleTableDef;
+import org.codehaus.jackson.JsonNode;
+import org.ektorp.CouchDbConnector;
+import org.ektorp.CouchDbInstance;
+import org.ektorp.StreamingViewResult;
+import org.ektorp.ViewQuery;
+import org.ektorp.ViewResult.Row;
+import org.ektorp.http.HttpClient;
+import org.ektorp.http.StdHttpClient;
+import org.ektorp.impl.StdCouchDbInstance;
/**
* DataContext implementation for CouchDB
@@ -130,7 +130,7 @@ public class CouchDbDataContext extends QueryPostprocessDataContext implements U
Set<ColumnType> types = columnsAndTypes.get(key);
if (types == null) {
- types = EnumSet.noneOf(ColumnType.class);
+ types = new HashSet<ColumnType>();
columnsAndTypes.put(key, types);
}
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/743e891f/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataSet.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataSet.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataSet.java
index 76b8552..e730b6a 100644
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataSet.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/JdbcDataSet.java
@@ -46,184 +46,179 @@ import org.slf4j.LoggerFactory;
*/
final class JdbcDataSet extends AbstractDataSet {
- private static final Logger logger = LoggerFactory.getLogger(JdbcDataSet.class);
-
- private final JdbcCompiledQuery _compiledQuery;
- private final JdbcCompiledQueryLease _lease;
- private final Statement _statement;
- private final ResultSet _resultSet;
- private final JdbcDataContext _jdbcDataContext;
- private final Connection _connection;
- private Row _row;
- private boolean _closed;
-
- /**
- * Constructor used for regular query execution.
- *
- * @param query
- * @param jdbcDataContext
- * @param connection
- * @param statement
- * @param resultSet
- */
- public JdbcDataSet(Query query, JdbcDataContext jdbcDataContext, Connection connection, Statement statement,
- ResultSet resultSet) {
- super(query.getSelectClause().getItems());
- if (query == null || statement == null || resultSet == null) {
- throw new IllegalArgumentException("Arguments cannot be null");
- }
- _jdbcDataContext = jdbcDataContext;
- _connection = connection;
- _statement = statement;
- _resultSet = resultSet;
- _closed = false;
- _compiledQuery = null;
- _lease = null;
- }
-
- /**
- * Constructor used for compiled query execution
- *
- * @param query
- * @param jdbcDataContext
- * @param resultSet
- */
- public JdbcDataSet(JdbcCompiledQuery compiledQuery, JdbcCompiledQueryLease lease, ResultSet resultSet) {
- super(compiledQuery.getSelectItems());
- if (compiledQuery == null || lease == null || resultSet == null) {
- throw new IllegalArgumentException("Arguments cannot be null");
- }
-
- _compiledQuery = compiledQuery;
- _lease = lease;
-
- _jdbcDataContext = null;
- _connection = null;
- _statement = null;
- _resultSet = resultSet;
- _closed = false;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Row getRow() {
- return _row;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean next() throws MetaModelException {
- try {
- boolean result = _resultSet.next();
- if (result) {
- Object[] values = new Object[getHeader().size()];
- for (int i = 0; i < values.length; i++) {
-
- values[i] = getValue(_resultSet, i);
-
- try {
- // some drivers return boxed primitive types in stead of
- // nulls (such as false in stead of null for a Boolean
- // column)
- if (_resultSet.wasNull()) {
- values[i] = null;
- }
- } catch (Exception e) {
- logger.debug("Could not invoke wasNull() method on resultset, error message: {}",
- e.getMessage());
- }
- }
- _row = new DefaultRow(getHeader(), values);
- } else {
- _row = null;
- }
- return result;
- } catch (SQLException e) {
- throw JdbcUtils.wrapException(e, "get next record in resultset");
- }
- }
-
- private Object getValue(ResultSet resultSet, int i) throws SQLException {
- final SelectItem selectItem = getHeader().getSelectItem(i);
- final int columnIndex = i + 1;
- if (selectItem.getFunction() == null) {
- Column column = selectItem.getColumn();
- if (column != null) {
- ColumnType type = column.getType();
- try {
- switch (type) {
- case TIME:
- return _resultSet.getTime(columnIndex);
- case DATE:
- return _resultSet.getDate(columnIndex);
- case TIMESTAMP:
- return _resultSet.getTimestamp(columnIndex);
- case BLOB:
- final Blob blob = _resultSet.getBlob(columnIndex);
- if (isLobConversionEnabled()) {
- final InputStream inputStream = blob.getBinaryStream();
- final byte[] bytes = FileHelper.readAsBytes(inputStream);
- return bytes;
- }
- return blob;
- case BINARY:
- case VARBINARY:
- case LONGVARBINARY:
- return _resultSet.getBytes(columnIndex);
- case CLOB:
- case NCLOB:
- final Clob clob = _resultSet.getClob(columnIndex);
- if (isLobConversionEnabled()) {
- final Reader reader = clob.getCharacterStream();
- final String result = FileHelper.readAsString(reader);
- return result;
- }
- return clob;
- case BIT:
- case BOOLEAN:
- return _resultSet.getBoolean(columnIndex);
- }
- } catch (Exception e) {
- logger.warn("Failed to retrieve " + type
- + " value using type-specific getter, retrying with generic getObject(...) method", e);
- }
- }
- }
- return _resultSet.getObject(columnIndex);
- }
-
- private boolean isLobConversionEnabled() {
- final String systemProperty = System.getProperty(JdbcDataContext.SYSTEM_PROPERTY_CONVERT_LOBS);
- return "true".equals(systemProperty);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void close() {
- if (_closed) {
- return;
- }
- if (_jdbcDataContext != null) {
- _jdbcDataContext.close(_connection, _resultSet, _statement);
- }
- if (_compiledQuery != null) {
- _compiledQuery.returnLease(_lease);
- }
- _closed = true;
- }
-
- @Override
- protected void finalize() throws Throwable {
- super.finalize();
- if (!_closed) {
- logger.warn("finalize() invoked, but DataSet is not closed. Invoking close() on {}", this);
- close();
- }
- }
+ private static final Logger logger = LoggerFactory.getLogger(JdbcDataSet.class);
+
+ private final JdbcCompiledQuery _compiledQuery;
+ private final JdbcCompiledQueryLease _lease;
+ private final Statement _statement;
+ private final ResultSet _resultSet;
+ private final JdbcDataContext _jdbcDataContext;
+ private final Connection _connection;
+ private Row _row;
+ private boolean _closed;
+
+ /**
+ * Constructor used for regular query execution.
+ *
+ * @param query
+ * @param jdbcDataContext
+ * @param connection
+ * @param statement
+ * @param resultSet
+ */
+ public JdbcDataSet(Query query, JdbcDataContext jdbcDataContext, Connection connection, Statement statement,
+ ResultSet resultSet) {
+ super(query.getSelectClause().getItems());
+ if (query == null || statement == null || resultSet == null) {
+ throw new IllegalArgumentException("Arguments cannot be null");
+ }
+ _jdbcDataContext = jdbcDataContext;
+ _connection = connection;
+ _statement = statement;
+ _resultSet = resultSet;
+ _closed = false;
+ _compiledQuery = null;
+ _lease = null;
+ }
+
+ /**
+ * Constructor used for compiled query execution
+ *
+ * @param query
+ * @param jdbcDataContext
+ * @param resultSet
+ */
+ public JdbcDataSet(JdbcCompiledQuery compiledQuery, JdbcCompiledQueryLease lease, ResultSet resultSet) {
+ super(compiledQuery.getSelectItems());
+ if (compiledQuery == null || lease == null || resultSet == null) {
+ throw new IllegalArgumentException("Arguments cannot be null");
+ }
+
+ _compiledQuery = compiledQuery;
+ _lease = lease;
+
+ _jdbcDataContext = null;
+ _connection = null;
+ _statement = null;
+ _resultSet = resultSet;
+ _closed = false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Row getRow() {
+ return _row;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean next() throws MetaModelException {
+ try {
+ boolean result = _resultSet.next();
+ if (result) {
+ Object[] values = new Object[getHeader().size()];
+ for (int i = 0; i < values.length; i++) {
+
+ values[i] = getValue(_resultSet, i);
+
+ try {
+ // some drivers return boxed primitive types in stead of
+ // nulls (such as false in stead of null for a Boolean
+ // column)
+ if (_resultSet.wasNull()) {
+ values[i] = null;
+ }
+ } catch (Exception e) {
+ logger.debug("Could not invoke wasNull() method on resultset, error message: {}",
+ e.getMessage());
+ }
+ }
+ _row = new DefaultRow(getHeader(), values);
+ } else {
+ _row = null;
+ }
+ return result;
+ } catch (SQLException e) {
+ throw JdbcUtils.wrapException(e, "get next record in resultset");
+ }
+ }
+
+ private Object getValue(ResultSet resultSet, int i) throws SQLException {
+ final SelectItem selectItem = getHeader().getSelectItem(i);
+ final int columnIndex = i + 1;
+ if (selectItem.getFunction() == null) {
+ Column column = selectItem.getColumn();
+ if (column != null) {
+ ColumnType type = column.getType();
+ try {
+ if (type == ColumnType.TIME) {
+ return _resultSet.getTime(columnIndex);
+ } else if (type == ColumnType.DATE) {
+ return _resultSet.getDate(columnIndex);
+ } else if (type == ColumnType.TIMESTAMP) {
+ return _resultSet.getTimestamp(columnIndex);
+ } else if (type == ColumnType.BLOB) {
+ final Blob blob = _resultSet.getBlob(columnIndex);
+ if (isLobConversionEnabled()) {
+ final InputStream inputStream = blob.getBinaryStream();
+ final byte[] bytes = FileHelper.readAsBytes(inputStream);
+ return bytes;
+ }
+ return blob;
+ } else if (type.isBinary()) {
+ return _resultSet.getBytes(columnIndex);
+ } else if (type == ColumnType.CLOB || type == ColumnType.NCLOB) {
+ final Clob clob = _resultSet.getClob(columnIndex);
+ if (isLobConversionEnabled()) {
+ final Reader reader = clob.getCharacterStream();
+ final String result = FileHelper.readAsString(reader);
+ return result;
+ }
+ return clob;
+ } else if (type.isBoolean()) {
+ return _resultSet.getBoolean(columnIndex);
+ }
+ } catch (Exception e) {
+ logger.warn("Failed to retrieve " + type
+ + " value using type-specific getter, retrying with generic getObject(...) method", e);
+ }
+ }
+ }
+ return _resultSet.getObject(columnIndex);
+ }
+
+ private boolean isLobConversionEnabled() {
+ final String systemProperty = System.getProperty(JdbcDataContext.SYSTEM_PROPERTY_CONVERT_LOBS);
+ return "true".equals(systemProperty);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void close() {
+ if (_closed) {
+ return;
+ }
+ if (_jdbcDataContext != null) {
+ _jdbcDataContext.close(_connection, _resultSet, _statement);
+ }
+ if (_compiledQuery != null) {
+ _compiledQuery.returnLease(_lease);
+ }
+ _closed = true;
+ }
+
+ @Override
+ protected void finalize() throws Throwable {
+ super.finalize();
+ if (!_closed) {
+ logger.warn("finalize() invoked, but DataSet is not closed. Invoking close() on {}", this);
+ close();
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/743e891f/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/AbstractQueryRewriter.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/AbstractQueryRewriter.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/AbstractQueryRewriter.java
index a55ea2a..f83057e 100644
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/AbstractQueryRewriter.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/AbstractQueryRewriter.java
@@ -35,6 +35,7 @@ import org.apache.metamodel.query.Query;
import org.apache.metamodel.query.SelectClause;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.ColumnType;
+import org.apache.metamodel.schema.ColumnTypeImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -60,7 +61,7 @@ public abstract class AbstractQueryRewriter implements IQueryRewriter {
@Override
public ColumnType getColumnType(int jdbcType, String nativeType, Integer columnSize) {
- return ColumnType.convertColumnType(jdbcType);
+ return ColumnTypeImpl.convertColumnType(jdbcType);
}
public String rewriteQuery(Query query) {
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/743e891f/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/DB2QueryRewriter.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/DB2QueryRewriter.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/DB2QueryRewriter.java
index fcb0e27..03e9318 100644
--- a/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/DB2QueryRewriter.java
+++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/dialects/DB2QueryRewriter.java
@@ -117,13 +117,10 @@ public class DB2QueryRewriter extends DefaultQueryRewriter implements IQueryRewr
@Override
public String rewriteColumnType(ColumnType columnType) {
- switch (columnType) {
- case BOOLEAN:
- case BIT:
+ if (columnType == ColumnType.BOOLEAN || columnType == ColumnType.BIT) {
return "SMALLINT";
- default:
- return super.rewriteColumnType(columnType);
}
+ return super.rewriteColumnType(columnType);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/743e891f/mongodb/src/main/java/org/apache/metamodel/mongodb/MongoDbDataContext.java
----------------------------------------------------------------------
diff --git a/mongodb/src/main/java/org/apache/metamodel/mongodb/MongoDbDataContext.java b/mongodb/src/main/java/org/apache/metamodel/mongodb/MongoDbDataContext.java
index d74ebad..4e3ee5f 100644
--- a/mongodb/src/main/java/org/apache/metamodel/mongodb/MongoDbDataContext.java
+++ b/mongodb/src/main/java/org/apache/metamodel/mongodb/MongoDbDataContext.java
@@ -43,7 +43,11 @@ import org.apache.metamodel.query.Query;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.ColumnType;
+<<<<<<< Upstream, based on origin/master
import org.apache.metamodel.schema.MutableColumn;
+=======
+import org.apache.metamodel.schema.ColumnTypeImpl;
+>>>>>>> 4abc0d6 Adapted other modules to work with the ColumnType-as-an-interface change.
import org.apache.metamodel.schema.MutableSchema;
import org.apache.metamodel.schema.MutableTable;
import org.apache.metamodel.schema.Schema;
@@ -198,7 +202,7 @@ public class MongoDbDataContext extends QueryPostprocessDataContext implements U
if (columnType == ObjectId.class) {
columnTypes[i] = ColumnType.ROWID;
} else {
- columnTypes[i] = ColumnType.convertColumnType(columnType);
+ columnTypes[i] = ColumnTypeImpl.convertColumnType(columnType);
}
i++;
}
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/743e891f/pojo/src/main/java/org/apache/metamodel/pojo/ObjectTableDataProvider.java
----------------------------------------------------------------------
diff --git a/pojo/src/main/java/org/apache/metamodel/pojo/ObjectTableDataProvider.java b/pojo/src/main/java/org/apache/metamodel/pojo/ObjectTableDataProvider.java
index 65afdf1..5571d0b 100644
--- a/pojo/src/main/java/org/apache/metamodel/pojo/ObjectTableDataProvider.java
+++ b/pojo/src/main/java/org/apache/metamodel/pojo/ObjectTableDataProvider.java
@@ -29,6 +29,7 @@ import java.util.Map.Entry;
import java.util.Set;
import org.apache.metamodel.schema.ColumnType;
+import org.apache.metamodel.schema.ColumnTypeImpl;
import org.apache.metamodel.util.SimpleTableDef;
/**
@@ -93,7 +94,7 @@ public final class ObjectTableDataProvider<E> implements TableDataProvider<E> {
_fieldTypes.put(columnName, returnType);
columnNames.add(columnName);
- columnTypes.add(ColumnType.convertColumnType(returnType));
+ columnTypes.add(ColumnTypeImpl.convertColumnType(returnType));
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/743e891f/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
----------------------------------------------------------------------
diff --git a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
index b904261..730aaae 100644
--- a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
+++ b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
@@ -38,6 +38,7 @@ import org.apache.metamodel.query.OrderByItem;
import org.apache.metamodel.query.Query;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.Column;
+import org.apache.metamodel.schema.ColumnType;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
import org.slf4j.Logger;
@@ -293,21 +294,17 @@ public class SalesforceDataContext extends QueryPostprocessDataContext implement
sb.append(operand);
} else if (operand instanceof Date) {
final SimpleDateFormat dateFormat;
- switch (selectItem.getExpectedColumnType()) {
- case DATE:
+ ColumnType expectedColumnType = selectItem.getExpectedColumnType();
+ if (expectedColumnType == ColumnType.DATE) {
// note: we don't apply the timezone for DATE fields, since they
// don't contain time-of-day information.
dateFormat = new SimpleDateFormat(SOQL_DATE_FORMAT_OUT);
- break;
- case TIME:
+ } else if (expectedColumnType == ColumnType.TIME) {
dateFormat = new SimpleDateFormat(SOQL_TIME_FORMAT_OUT, Locale.ENGLISH);
dateFormat.setTimeZone(SOQL_TIMEZONE);
- break;
- case TIMESTAMP:
- default:
+ } else {
dateFormat = new SimpleDateFormat(SOQL_DATE_TIME_FORMAT_OUT, Locale.ENGLISH);
dateFormat.setTimeZone(SOQL_TIMEZONE);
- break;
}
String str = dateFormat.format((Date) operand);
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/743e891f/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataSet.java
----------------------------------------------------------------------
diff --git a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataSet.java b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataSet.java
index 4bab4bc..2b53d1b 100644
--- a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataSet.java
+++ b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataSet.java
@@ -112,21 +112,16 @@ final class SalesforceDataSet extends AbstractDataSet {
}
if (columnType.isTimeBased()) {
final SimpleDateFormat dateFormat;
- switch (columnType) {
- case DATE:
+ if (columnType == ColumnType.DATE) {
// note: we don't apply the timezone for DATE fields, since
// they don't contain time-of-day information.
dateFormat = new SimpleDateFormat(SalesforceDataContext.SOQL_DATE_FORMAT_IN, Locale.ENGLISH);
- break;
- case TIME:
+ } else if (columnType == ColumnType.TIME) {
dateFormat = new SimpleDateFormat(SalesforceDataContext.SOQL_TIME_FORMAT_IN, Locale.ENGLISH);
dateFormat.setTimeZone(SalesforceDataContext.SOQL_TIMEZONE);
- break;
- case TIMESTAMP:
- default:
+ } else {
dateFormat = new SimpleDateFormat(SalesforceDataContext.SOQL_DATE_TIME_FORMAT_IN, Locale.ENGLISH);
dateFormat.setTimeZone(SalesforceDataContext.SOQL_TIMEZONE);
- break;
}
try {