Repository: metamodel Updated Branches: refs/heads/master 4f4cefdbb -> 67a0c96c8
METAMODEL-228: Fixed Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/67a0c96c Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/67a0c96c Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/67a0c96c Branch: refs/heads/master Commit: 67a0c96c8f849e112b57ce0cc3e99667e0145384 Parents: 4f4cefd Author: Kasper Sørensen <[email protected]> Authored: Tue Feb 9 13:39:15 2016 +0100 Committer: Kasper Sørensen <[email protected]> Committed: Tue Feb 9 13:39:15 2016 +0100 ---------------------------------------------------------------------- CHANGES.md | 1 + .../apache/metamodel/schema/ColumnTypeImpl.java | 4 +- .../metamodel/schema/ColumnTypeImplTest.java | 95 ++++++++++++++++++++ .../apache/metamodel/schema/ColumnTypeTest.java | 92 ------------------- .../couchdb/CouchDbDataContextTest.java | 16 ++-- .../mongodb/mongo2/MongoDbDataContextTest.java | 2 +- .../mongodb/mongo3/MongoDbDataContextTest.java | 2 +- .../pojo/ObjectTableDataProviderTest.java | 2 +- 8 files changed, 110 insertions(+), 104 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/67a0c96c/CHANGES.md ---------------------------------------------------------------------- diff --git a/CHANGES.md b/CHANGES.md index 13f1694..39aa75e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,7 @@ * [METAMODEL-227] - Fix for respecting CSV escape character also when no quote character is set. * [METAMODEL-183] - MongoDB module split into three: common, Mongo2 and Mongo3 to allow use of either old or new MongoDB API. * [METAMODEL-231] - Fixed a bug causing the Neo4j to represent the same table multiple times within a schema. + * [METAMODEL-228] - Fixed a bug causing Number.class to not be converted to ColumnType.NUMBER. ### Apache MetaModel 4.5.0 http://git-wip-us.apache.org/repos/asf/metamodel/blob/67a0c96c/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 856321e..dbca861 100644 --- a/core/src/main/java/org/apache/metamodel/schema/ColumnTypeImpl.java +++ b/core/src/main/java/org/apache/metamodel/schema/ColumnTypeImpl.java @@ -198,7 +198,7 @@ public class ColumnTypeImpl implements ColumnType { final ColumnType type; if (cls == String.class) { - type = ColumnType.VARCHAR; + type = ColumnType.STRING; } else if (cls == Boolean.class || cls == boolean.class) { type = ColumnType.BOOLEAN; } else if (cls == Character.class || cls == char.class || cls == Character[].class || cls == char[].class) { @@ -217,6 +217,8 @@ public class ColumnTypeImpl implements ColumnType { type = ColumnType.DOUBLE; } else if (cls == BigDecimal.class) { type = ColumnType.DECIMAL; + } else if (Number.class.isAssignableFrom(cls)) { + type = ColumnType.NUMBER; } else if (Map.class.isAssignableFrom(cls)) { type = ColumnType.MAP; } else if (List.class.isAssignableFrom(cls)) { http://git-wip-us.apache.org/repos/asf/metamodel/blob/67a0c96c/core/src/test/java/org/apache/metamodel/schema/ColumnTypeImplTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/metamodel/schema/ColumnTypeImplTest.java b/core/src/test/java/org/apache/metamodel/schema/ColumnTypeImplTest.java new file mode 100644 index 0000000..fbff3dc --- /dev/null +++ b/core/src/test/java/org/apache/metamodel/schema/ColumnTypeImplTest.java @@ -0,0 +1,95 @@ +/** + * 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.metamodel.schema; + +import java.sql.Time; +import java.sql.Timestamp; +import java.sql.Types; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import junit.framework.TestCase; + +public class ColumnTypeImplTest extends TestCase { + + public void testConvertColumnTypeFromJdbcTypes() throws Exception { + ColumnType type = ColumnTypeImpl.convertColumnType(Types.VARCHAR); + assertEquals(ColumnType.VARCHAR, type); + + type = ColumnTypeImpl.convertColumnType(Types.DATE); + assertEquals(ColumnType.DATE, type); + + type = ColumnTypeImpl.convertColumnType(Types.TIME); + assertEquals(ColumnType.TIME, type); + + type = ColumnTypeImpl.convertColumnType(Types.TIMESTAMP); + assertEquals(ColumnType.TIMESTAMP, type); + + type = ColumnTypeImpl.convertColumnType(42397443); + assertEquals(ColumnType.OTHER, type); + + type = ColumnTypeImpl.convertColumnType(-42397443); + assertEquals(ColumnType.OTHER, type); + } + + public void testConvertColumnTypeFromJavaClass() throws Exception { + ColumnType type = ColumnTypeImpl.convertColumnType(String.class); + assertEquals(ColumnType.STRING, type); + + type = ColumnTypeImpl.convertColumnType(Number.class); + assertEquals(ColumnType.NUMBER, type); + + type = ColumnTypeImpl.convertColumnType(Time.class); + assertEquals(ColumnType.TIME, type); + + type = ColumnTypeImpl.convertColumnType(Timestamp.class); + assertEquals(ColumnType.TIMESTAMP, type); + + type = ColumnTypeImpl.convertColumnType(java.sql.Date.class); + assertEquals(ColumnType.DATE, type); + + type = ColumnTypeImpl.convertColumnType(Date.class); + assertEquals(ColumnType.TIMESTAMP, type); + + type = ColumnTypeImpl.convertColumnType(Integer.class); + assertEquals(ColumnType.INTEGER, type); + + type = ColumnTypeImpl.convertColumnType(Object.class); + assertEquals(ColumnType.OTHER, type); + + type = ColumnTypeImpl.convertColumnType(Map.class); + assertEquals(ColumnType.MAP, type); + type = ColumnTypeImpl.convertColumnType(HashMap.class); + assertEquals(ColumnType.MAP, type); + type = ColumnTypeImpl.convertColumnType(TreeMap.class); + assertEquals(ColumnType.MAP, type); + + type = ColumnTypeImpl.convertColumnType(List.class); + assertEquals(ColumnType.LIST, type); + type = ColumnTypeImpl.convertColumnType(ArrayList.class); + assertEquals(ColumnType.LIST, type); + type = ColumnTypeImpl.convertColumnType(LinkedList.class); + assertEquals(ColumnType.LIST, type); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/metamodel/blob/67a0c96c/core/src/test/java/org/apache/metamodel/schema/ColumnTypeTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/metamodel/schema/ColumnTypeTest.java b/core/src/test/java/org/apache/metamodel/schema/ColumnTypeTest.java deleted file mode 100644 index 58b843a..0000000 --- a/core/src/test/java/org/apache/metamodel/schema/ColumnTypeTest.java +++ /dev/null @@ -1,92 +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.metamodel.schema; - -import java.sql.Time; -import java.sql.Timestamp; -import java.sql.Types; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -import junit.framework.TestCase; - -public class ColumnTypeTest extends TestCase { - - public void testConvertColumnTypeFromJdbcTypes() throws Exception { - ColumnType type = ColumnTypeImpl.convertColumnType(Types.VARCHAR); - assertEquals(ColumnType.VARCHAR, type); - - type = ColumnTypeImpl.convertColumnType(Types.DATE); - assertEquals(ColumnType.DATE, type); - - type = ColumnTypeImpl.convertColumnType(Types.TIME); - assertEquals(ColumnType.TIME, type); - - type = ColumnTypeImpl.convertColumnType(Types.TIMESTAMP); - assertEquals(ColumnType.TIMESTAMP, type); - - type = ColumnTypeImpl.convertColumnType(42397443); - assertEquals(ColumnType.OTHER, type); - - type = ColumnTypeImpl.convertColumnType(-42397443); - assertEquals(ColumnType.OTHER, type); - } - - public void testConvertColumnTypeFromJavaClass() throws Exception { - ColumnType type = ColumnTypeImpl.convertColumnType(String.class); - assertEquals(ColumnType.VARCHAR, type); - - type = ColumnTypeImpl.convertColumnType(Time.class); - assertEquals(ColumnType.TIME, type); - - type = ColumnTypeImpl.convertColumnType(Timestamp.class); - assertEquals(ColumnType.TIMESTAMP, type); - - type = ColumnTypeImpl.convertColumnType(java.sql.Date.class); - assertEquals(ColumnType.DATE, type); - - type = ColumnTypeImpl.convertColumnType(Date.class); - assertEquals(ColumnType.TIMESTAMP, type); - - type = ColumnTypeImpl.convertColumnType(Integer.class); - assertEquals(ColumnType.INTEGER, type); - - type = ColumnTypeImpl.convertColumnType(Object.class); - assertEquals(ColumnType.OTHER, type); - - type = ColumnTypeImpl.convertColumnType(Map.class); - assertEquals(ColumnType.MAP, type); - type = ColumnTypeImpl.convertColumnType(HashMap.class); - assertEquals(ColumnType.MAP, type); - type = ColumnTypeImpl.convertColumnType(TreeMap.class); - assertEquals(ColumnType.MAP, type); - - type = ColumnTypeImpl.convertColumnType(List.class); - assertEquals(ColumnType.LIST, type); - type = ColumnTypeImpl.convertColumnType(ArrayList.class); - assertEquals(ColumnType.LIST, type); - type = ColumnTypeImpl.convertColumnType(LinkedList.class); - assertEquals(ColumnType.LIST, type); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/metamodel/blob/67a0c96c/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java ---------------------------------------------------------------------- diff --git a/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java b/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java index dd637fd..9e1f5fe 100644 --- a/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java +++ b/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java @@ -65,7 +65,7 @@ public class CouchDbDataContextTest extends CouchDbTestCase { connector = couchDbInstance.createConnector(databaseName, true); final String[] columnNames = new String[] { "name", "gender", "age" }; - final ColumnType[] columnTypes = new ColumnType[] { ColumnType.VARCHAR, ColumnType.CHAR, ColumnType.INTEGER }; + final ColumnType[] columnTypes = new ColumnType[] { ColumnType.STRING, ColumnType.CHAR, ColumnType.INTEGER }; predefinedTableDef = new SimpleTableDef(databaseName, columnNames, columnTypes); } @@ -160,11 +160,11 @@ public class CouchDbDataContextTest extends CouchDbTestCase { final CouchDbDataContext dc = new CouchDbDataContext(couchDbInstance); Table table = dc.getDefaultSchema().getTableByName(databaseName); assertNotNull(table); - assertEquals("[Column[name=_id,columnNumber=0,type=VARCHAR,nullable=false,nativeType=null,columnSize=null], " - + "Column[name=_rev,columnNumber=1,type=VARCHAR,nullable=false,nativeType=null,columnSize=null], " - + "Column[name=bar,columnNumber=2,type=VARCHAR,nullable=null,nativeType=null,columnSize=null], " + assertEquals("[Column[name=_id,columnNumber=0,type=STRING,nullable=false,nativeType=null,columnSize=null], " + + "Column[name=_rev,columnNumber=1,type=STRING,nullable=false,nativeType=null,columnSize=null], " + + "Column[name=bar,columnNumber=2,type=STRING,nullable=null,nativeType=null,columnSize=null], " + "Column[name=baz,columnNumber=3,type=INTEGER,nullable=null,nativeType=null,columnSize=null], " - + "Column[name=foo,columnNumber=4,type=VARCHAR,nullable=null,nativeType=null,columnSize=null]]", + + "Column[name=foo,columnNumber=4,type=STRING,nullable=null,nativeType=null,columnSize=null]]", Arrays.toString(table.getColumns())); // first delete the manually created database! @@ -182,7 +182,7 @@ public class CouchDbDataContextTest extends CouchDbTestCase { @Override public void run(UpdateCallback callback) { Table table = callback.createTable(dc.getDefaultSchema(), databaseName).withColumn("foo") - .ofType(ColumnType.VARCHAR).withColumn("greeting").ofType(ColumnType.VARCHAR).execute(); + .ofType(ColumnType.STRING).withColumn("greeting").ofType(ColumnType.STRING).execute(); assertEquals("[_id, _rev, foo, greeting]", Arrays.toString(table.getColumnNames())); } }); @@ -260,11 +260,11 @@ public class CouchDbDataContextTest extends CouchDbTestCase { assertEquals("[_id, _rev, age, gender, name]", Arrays.toString(schema.getTableByName(getDatabaseName()).getColumnNames())); Column idColumn = schema.getTableByName(getDatabaseName()).getColumnByName("_id"); - assertEquals("Column[name=_id,columnNumber=0,type=VARCHAR,nullable=false,nativeType=null,columnSize=null]", + assertEquals("Column[name=_id,columnNumber=0,type=STRING,nullable=false,nativeType=null,columnSize=null]", idColumn.toString()); assertTrue(idColumn.isPrimaryKey()); - assertEquals("Column[name=_rev,columnNumber=1,type=VARCHAR,nullable=false,nativeType=null,columnSize=null]", + assertEquals("Column[name=_rev,columnNumber=1,type=STRING,nullable=false,nativeType=null,columnSize=null]", schema.getTableByName(getDatabaseName()).getColumnByName("_rev").toString()); DataSet ds; http://git-wip-us.apache.org/repos/asf/metamodel/blob/67a0c96c/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContextTest.java ---------------------------------------------------------------------- diff --git a/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContextTest.java b/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContextTest.java index d777e5e..a03585a 100644 --- a/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContextTest.java +++ b/mongodb/mongo2/src/test/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContextTest.java @@ -283,7 +283,7 @@ public class MongoDbDataContextTest extends MongoDbTestCase { assertEquals("[_id, baz, foo, id, list, name]", Arrays.toString(table.getColumnNames())); assertEquals(ColumnType.MAP, table.getColumnByName("baz").getType()); - assertEquals(ColumnType.VARCHAR, table.getColumnByName("foo").getType()); + assertEquals(ColumnType.STRING, table.getColumnByName("foo").getType()); assertEquals(ColumnType.LIST, table.getColumnByName("list").getType()); assertEquals(ColumnType.INTEGER, table.getColumnByName("id").getType()); assertEquals(ColumnType.ROWID, table.getColumnByName("_id").getType()); http://git-wip-us.apache.org/repos/asf/metamodel/blob/67a0c96c/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java ---------------------------------------------------------------------- diff --git a/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java b/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java index 1952640..d16e47c 100644 --- a/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java +++ b/mongodb/mongo3/src/test/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContextTest.java @@ -266,7 +266,7 @@ public class MongoDbDataContextTest extends MongoDbTestCase { assertEquals("[_id, baz, foo, id, list, name]", Arrays.toString(table.getColumnNames())); assertEquals(ColumnType.MAP, table.getColumnByName("baz").getType()); - assertEquals(ColumnType.VARCHAR, table.getColumnByName("foo").getType()); + assertEquals(ColumnType.STRING, table.getColumnByName("foo").getType()); assertEquals(ColumnType.LIST, table.getColumnByName("list").getType()); assertEquals(ColumnType.INTEGER, table.getColumnByName("id").getType()); assertEquals(ColumnType.ROWID, table.getColumnByName("_id").getType()); http://git-wip-us.apache.org/repos/asf/metamodel/blob/67a0c96c/pojo/src/test/java/org/apache/metamodel/pojo/ObjectTableDataProviderTest.java ---------------------------------------------------------------------- diff --git a/pojo/src/test/java/org/apache/metamodel/pojo/ObjectTableDataProviderTest.java b/pojo/src/test/java/org/apache/metamodel/pojo/ObjectTableDataProviderTest.java index bdffc2a..ecf89fb 100644 --- a/pojo/src/test/java/org/apache/metamodel/pojo/ObjectTableDataProviderTest.java +++ b/pojo/src/test/java/org/apache/metamodel/pojo/ObjectTableDataProviderTest.java @@ -30,7 +30,7 @@ public class ObjectTableDataProviderTest extends TestCase { SimpleTableDef tableDef = tableDataProvider.getTableDef(); assertEquals( - "SimpleTableDef[name=FoobarBean,columnNames=[col1, col2, col3],columnTypes=[VARCHAR, INTEGER, BOOLEAN]]", + "SimpleTableDef[name=FoobarBean,columnNames=[col1, col2, col3],columnTypes=[STRING, INTEGER, BOOLEAN]]", tableDef.toString()); } }
