Last active
December 20, 2015 23:18
-
-
Save kaspersorensen/6210970 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/core/src/main/java/org/apache/metamodel/AbstractDataContext.java b/core/src/main/java/org/apache/metamodel/AbstractDataContext.java | |
| index 3e395fa..77ab3c1 100644 | |
| --- a/core/src/main/java/org/apache/metamodel/AbstractDataContext.java | |
| +++ b/core/src/main/java/org/apache/metamodel/AbstractDataContext.java | |
| @@ -18,10 +18,8 @@ | |
| */ | |
| package org.apache.metamodel; | |
| -import java.util.ArrayList; | |
| import java.util.Arrays; | |
| import java.util.Comparator; | |
| -import java.util.List; | |
| import java.util.concurrent.ConcurrentHashMap; | |
| import java.util.concurrent.ConcurrentMap; | |
| @@ -232,21 +230,6 @@ public abstract class AbstractDataContext implements DataContext { | |
| if (columnName == null) { | |
| return null; | |
| } | |
| - | |
| - final String[] tokens = tokenizePath(columnName, 3); | |
| - if (tokens != null) { | |
| - final Schema schema = getSchemaByToken(tokens[0]); | |
| - if (schema != null) { | |
| - final Table table = schema.getTableByName(tokens[1]); | |
| - if (table != null) { | |
| - final Column column = table.getColumnByName(tokens[2]); | |
| - if (column != null) { | |
| - return column; | |
| - } | |
| - } | |
| - } | |
| - } | |
| - | |
| Schema schema = null; | |
| final String[] schemaNames = getSchemaNames(); | |
| for (final String schemaName : schemaNames) { | |
| @@ -383,18 +366,6 @@ public abstract class AbstractDataContext implements DataContext { | |
| if (tableName == null) { | |
| return null; | |
| } | |
| - | |
| - final String[] tokens = tokenizePath(tableName, 2); | |
| - if (tokens != null) { | |
| - Schema schema = getSchemaByToken(tokens[0]); | |
| - if (schema != null) { | |
| - Table table = schema.getTableByName(tokens[1]); | |
| - if (table != null) { | |
| - return table; | |
| - } | |
| - } | |
| - } | |
| - | |
| Schema schema = null; | |
| String[] schemaNames = getSchemaNames(); | |
| for (String schemaName : schemaNames) { | |
| @@ -442,73 +413,6 @@ public abstract class AbstractDataContext implements DataContext { | |
| return schema.getTableByName(tablePart); | |
| } | |
| - /** | |
| - * Tokenizes a path for a table or a column. | |
| - * | |
| - * @param tableName | |
| - * @param expectedParts | |
| - * @return | |
| - */ | |
| - private String[] tokenizePath(String path, int expectedParts) { | |
| - List<String> tokens = new ArrayList<String>(expectedParts); | |
| - | |
| - boolean inQuotes = false; | |
| - StringBuilder currentToken = new StringBuilder(); | |
| - for (int i = 0; i < path.length(); i++) { | |
| - char c = path.charAt(i); | |
| - if (c == '.' && !inQuotes) { | |
| - // token finished | |
| - tokens.add(currentToken.toString()); | |
| - currentToken.setLength(0); | |
| - | |
| - if (tokens.size() > expectedParts) { | |
| - return null; | |
| - } | |
| - } else if (c == '"') { | |
| - // TODO: Act on false assertions | |
| - if (inQuotes) { | |
| - if (i + 1 < path.length() && path.charAt(i + 1) != '.') { | |
| - return null; | |
| - } | |
| - } else { | |
| - if (currentToken.length() > 0) { | |
| - return null; | |
| - } | |
| - } | |
| - inQuotes = !inQuotes; | |
| - } else { | |
| - currentToken.append(c); | |
| - } | |
| - } | |
| - | |
| - if (currentToken.length() > 0) { | |
| - tokens.add(currentToken.toString()); | |
| - } | |
| - | |
| - if (tokens.size() == expectedParts - 1) { | |
| - // add a special-meaning "null" which will be interpreted as the | |
| - // default schema (since the schema wasn't specified). | |
| - tokens.add(0, null); | |
| - } else if (tokens.size() != expectedParts) { | |
| - return null; | |
| - } | |
| - | |
| - return tokens.toArray(new String[tokens.size()]); | |
| - } | |
| - | |
| - private Schema getSchemaByToken(String token) { | |
| - if (token == null) { | |
| - return getDefaultSchema(); | |
| - } | |
| - try { | |
| - return getSchemaByName(token); | |
| - } catch (RuntimeException e) { | |
| - // swallow this exception - the attempt did not work and the null | |
| - // will be treated. | |
| - return null; | |
| - } | |
| - } | |
| - | |
| private boolean isStartingToken(String partName, String fullName) { | |
| if (fullName.startsWith(partName)) { | |
| final int length = partName.length(); | |
| diff --git a/core/src/main/java/org/apache/metamodel/schema/MutableColumn.java b/core/src/main/java/org/apache/metamodel/schema/MutableColumn.java | |
| index 050de15..6308d50 100644 | |
| --- a/core/src/main/java/org/apache/metamodel/schema/MutableColumn.java | |
| +++ b/core/src/main/java/org/apache/metamodel/schema/MutableColumn.java | |
| @@ -73,11 +73,6 @@ public class MutableColumn extends AbstractColumn implements Serializable { | |
| setQuote(quote); | |
| } | |
| - public MutableColumn(String name, Table table) { | |
| - this(name); | |
| - setTable(table); | |
| - } | |
| - | |
| @Override | |
| public int getColumnNumber() { | |
| return _columnNumber; | |
| diff --git a/core/src/main/java/org/apache/metamodel/schema/MutableTable.java b/core/src/main/java/org/apache/metamodel/schema/MutableTable.java | |
| index e0e5e4e..39ad0b2 100644 | |
| --- a/core/src/main/java/org/apache/metamodel/schema/MutableTable.java | |
| +++ b/core/src/main/java/org/apache/metamodel/schema/MutableTable.java | |
| @@ -68,11 +68,6 @@ public class MutableTable extends AbstractTable implements Serializable { | |
| setColumns(columns); | |
| } | |
| - public MutableTable(String name, Schema schema) { | |
| - this(name); | |
| - _schema = schema; | |
| - } | |
| - | |
| @Override | |
| public String getName() { | |
| return _name; | |
| diff --git a/core/src/main/java/org/apache/metamodel/util/ClasspathResource.java b/core/src/main/java/org/apache/metamodel/util/ClasspathResource.java | |
| index dee85af..a205886 100644 | |
| --- a/core/src/main/java/org/apache/metamodel/util/ClasspathResource.java | |
| +++ b/core/src/main/java/org/apache/metamodel/util/ClasspathResource.java | |
| @@ -38,15 +38,14 @@ public class ClasspathResource implements Resource, Serializable { | |
| } | |
| _resourcePath = resourcePath; | |
| } | |
| - | |
| + | |
| @Override | |
| public String toString() { | |
| return "ClasspathResource[" + _resourcePath + "]"; | |
| } | |
| - | |
| + | |
| /** | |
| * Gets the name of the classpath entry | |
| - * | |
| * @return | |
| */ | |
| public String getResourcePath() { | |
| @@ -68,11 +67,6 @@ public class ClasspathResource implements Resource, Serializable { | |
| return name; | |
| } | |
| - @Override | |
| - public String getQualifiedPath() { | |
| - return _resourcePath; | |
| - } | |
| - | |
| protected ClassLoader getClassLoader() { | |
| return ClassLoader.getSystemClassLoader(); | |
| } | |
| diff --git a/core/src/main/java/org/apache/metamodel/util/FileResource.java b/core/src/main/java/org/apache/metamodel/util/FileResource.java | |
| index 81cf46a..12fe80d 100644 | |
| --- a/core/src/main/java/org/apache/metamodel/util/FileResource.java | |
| +++ b/core/src/main/java/org/apache/metamodel/util/FileResource.java | |
| @@ -19,7 +19,6 @@ | |
| package org.apache.metamodel.util; | |
| import java.io.File; | |
| -import java.io.IOException; | |
| import java.io.InputStream; | |
| import java.io.OutputStream; | |
| import java.io.Serializable; | |
| @@ -49,15 +48,6 @@ public class FileResource implements Resource, Serializable { | |
| public String getName() { | |
| return _file.getName(); | |
| } | |
| - | |
| - @Override | |
| - public String getQualifiedPath() { | |
| - try { | |
| - return _file.getCanonicalPath(); | |
| - } catch (IOException e) { | |
| - return _file.getAbsolutePath(); | |
| - } | |
| - } | |
| @Override | |
| public boolean isReadOnly() { | |
| diff --git a/core/src/main/java/org/apache/metamodel/util/InMemoryResource.java b/core/src/main/java/org/apache/metamodel/util/InMemoryResource.java | |
| index 35e0b9a..64bf531 100644 | |
| --- a/core/src/main/java/org/apache/metamodel/util/InMemoryResource.java | |
| +++ b/core/src/main/java/org/apache/metamodel/util/InMemoryResource.java | |
| @@ -77,11 +77,6 @@ public class InMemoryResource implements Resource, Serializable { | |
| } | |
| return name; | |
| } | |
| - | |
| - @Override | |
| - public String getQualifiedPath() { | |
| - return _path; | |
| - } | |
| /** | |
| * Gets the path of this resource | |
| diff --git a/core/src/main/java/org/apache/metamodel/util/Resource.java b/core/src/main/java/org/apache/metamodel/util/Resource.java | |
| index 657ffe6..9b5ed53 100644 | |
| --- a/core/src/main/java/org/apache/metamodel/util/Resource.java | |
| +++ b/core/src/main/java/org/apache/metamodel/util/Resource.java | |
| @@ -34,14 +34,6 @@ public interface Resource extends HasName { | |
| public String getName(); | |
| /** | |
| - * Gets the qualified path of the resource, which typically includes slash | |
| - * or backslash separated nodes in a hierarical tree structure. | |
| - * | |
| - * @return | |
| - */ | |
| - public String getQualifiedPath(); | |
| - | |
| - /** | |
| * Determines if the file is read only, or if writes are also possible. | |
| * | |
| * @return | |
| diff --git a/core/src/main/java/org/apache/metamodel/util/ResourceUtils.java b/core/src/main/java/org/apache/metamodel/util/ResourceUtils.java | |
| deleted file mode 100644 | |
| index 0ce61f4..0000000 | |
| --- a/core/src/main/java/org/apache/metamodel/util/ResourceUtils.java | |
| +++ /dev/null | |
| @@ -1,61 +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.util; | |
| - | |
| -/** | |
| - * Static utility methods for handling {@link Resource}s. | |
| - */ | |
| -public class ResourceUtils { | |
| - | |
| - /** | |
| - * Gets the parent name of a resource. For example, if the resource's | |
| - * qualified path is /foo/bar/baz, this method will return "bar". | |
| - * | |
| - * @param resource | |
| - * @return | |
| - */ | |
| - public static String getParentName(Resource resource) { | |
| - String name = resource.getName(); | |
| - String qualifiedPath = resource.getQualifiedPath(); | |
| - | |
| - assert qualifiedPath.endsWith(name); | |
| - | |
| - int indexOfChild = qualifiedPath.length() - name.length() - 1; | |
| - | |
| - if (indexOfChild <= 0) { | |
| - return name; | |
| - } | |
| - | |
| - String parentQualifiedPath = qualifiedPath.substring(0, indexOfChild); | |
| - | |
| - int lastIndexOfSlash = parentQualifiedPath.lastIndexOf('/'); | |
| - int lastIndexOfBackSlash = parentQualifiedPath.lastIndexOf('\\'); | |
| - int lastIndexToUse = Math.max(lastIndexOfSlash, lastIndexOfBackSlash); | |
| - | |
| - if (lastIndexToUse == -1) { | |
| - return parentQualifiedPath; | |
| - } | |
| - | |
| - // add one because of the slash/backslash itself | |
| - lastIndexToUse++; | |
| - | |
| - String parentName = parentQualifiedPath.substring(lastIndexToUse); | |
| - return parentName; | |
| - } | |
| -} | |
| diff --git a/core/src/main/java/org/apache/metamodel/util/UrlResource.java b/core/src/main/java/org/apache/metamodel/util/UrlResource.java | |
| index 6a5cac8..7030854 100644 | |
| --- a/core/src/main/java/org/apache/metamodel/util/UrlResource.java | |
| +++ b/core/src/main/java/org/apache/metamodel/util/UrlResource.java | |
| @@ -82,11 +82,6 @@ public class UrlResource implements Resource, Serializable { | |
| } | |
| return name; | |
| } | |
| - | |
| - @Override | |
| - public String getQualifiedPath() { | |
| - return _uri.toString(); | |
| - } | |
| @Override | |
| public boolean isReadOnly() { | |
| diff --git a/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java b/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java | |
| index 478e4fb..8493a08 100644 | |
| --- a/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java | |
| +++ b/core/src/test/java/org/apache/metamodel/AbstractDataContextTest.java | |
| @@ -19,11 +19,8 @@ | |
| package org.apache.metamodel; | |
| import java.util.Arrays; | |
| -import java.util.LinkedHashMap; | |
| -import java.util.Map; | |
| import junit.framework.TestCase; | |
| - | |
| import org.apache.metamodel.data.DataSet; | |
| import org.apache.metamodel.query.Query; | |
| import org.apache.metamodel.schema.Column; | |
| @@ -35,131 +32,101 @@ import org.apache.metamodel.schema.Table; | |
| public class AbstractDataContextTest extends TestCase { | |
| - private class MyDataContext extends AbstractDataContext { | |
| - | |
| - private final Map<String, Schema> _schemas; | |
| - private final String _defaultSchemaName; | |
| - | |
| - public MyDataContext() { | |
| - this("foobar", createSchema("barfoo"), createSchema("foobar"), createSchema("foo.bar")); | |
| - } | |
| - | |
| - public MyDataContext(String defaultSchemaName, Schema... schemas) { | |
| - _defaultSchemaName = defaultSchemaName; | |
| - _schemas = new LinkedHashMap<String, Schema>(); | |
| - for (Schema schema : schemas) { | |
| - _schemas.put(schema.getName(), schema); | |
| - } | |
| - } | |
| - | |
| - @Override | |
| - public DataSet executeQuery(Query query) throws MetaModelException { | |
| - throw new UnsupportedOperationException(); | |
| - } | |
| - | |
| - @Override | |
| - protected String[] getSchemaNamesInternal() { | |
| - return _schemas.keySet().toArray(new String[0]); | |
| - } | |
| - | |
| - @Override | |
| - protected String getDefaultSchemaName() { | |
| - return _defaultSchemaName; | |
| - } | |
| - | |
| - @Override | |
| - protected Schema getSchemaByNameInternal(String name) { | |
| - Schema schema = _schemas.get(name); | |
| - if (schema == null) { | |
| - throw new IllegalStateException("No such schema: " + name); | |
| - } | |
| - return schema; | |
| - } | |
| - } | |
| - | |
| - public void testGetTableWithQuotesInLabel() throws Exception { | |
| - MutableSchema schema1 = new MutableSchema("foo"); | |
| - schema1.addTable(new MutableTable("bar.baz", schema1)); | |
| - | |
| - MutableSchema schema2 = new MutableSchema("foo.bar"); | |
| - schema2.addTable(new MutableTable("baz", schema2)); | |
| - | |
| - MyDataContext dc = new MyDataContext("foo", schema1, schema2); | |
| - assertEquals("baz", dc.getTableByQualifiedLabel("foo.bar.baz").getName()); | |
| - | |
| - assertEquals("baz", dc.getTableByQualifiedLabel("\"foo.bar\".baz").getName()); | |
| - assertEquals("baz", dc.getTableByQualifiedLabel("\"foo.bar\".\"baz\"").getName()); | |
| - assertEquals("bar.baz", dc.getTableByQualifiedLabel("foo.\"bar.baz\"").getName()); | |
| - assertEquals("bar.baz", dc.getTableByQualifiedLabel("\"foo\".\"bar.baz\"").getName()); | |
| - } | |
| - | |
| - public void testGetColumnWithQuotesInLabel() throws Exception { | |
| - MutableSchema schema = new MutableSchema("foo"); | |
| - | |
| - MutableTable table1 = new MutableTable("bar.baz", schema); | |
| - schema.addTable(table1); | |
| - table1.addColumn(new MutableColumn("buuh", table1)); | |
| - | |
| - MutableTable table2 = new MutableTable("bar", schema); | |
| - schema.addTable(table2); | |
| - table2.addColumn(new MutableColumn("baz.buuh", table2)); | |
| - | |
| - MyDataContext dc = new MyDataContext("foo", schema); | |
| - assertEquals("buuh", dc.getColumnByQualifiedLabel("foo.bar.baz.buuh").getName()); | |
| - | |
| - assertEquals("buuh", dc.getColumnByQualifiedLabel("foo.\"bar.baz\".buuh").getName()); | |
| - assertEquals("buuh", dc.getColumnByQualifiedLabel("foo.\"bar.baz\".\"buuh\"").getName()); | |
| - assertEquals("baz.buuh", dc.getColumnByQualifiedLabel("foo.bar.\"baz.buuh\"").getName()); | |
| - assertEquals("baz.buuh", dc.getColumnByQualifiedLabel("\"foo\".bar.\"baz.buuh\"").getName()); | |
| - } | |
| - | |
| - public void testGetColumnByQualifiedLabel() throws Exception { | |
| - MyDataContext dc = new MyDataContext(); | |
| - Column result; | |
| - | |
| - result = dc.getColumnByQualifiedLabel("foobar.tab.le.col1"); | |
| - result = dc.getColumnByQualifiedLabel("blabla.tab.le.col4"); | |
| - result = dc.getColumnByQualifiedLabel("FOOBAR.TABLE.COL3"); | |
| - assertNull(result); | |
| - | |
| - result = dc.getColumnByQualifiedLabel("foobar.table.col1"); | |
| - assertEquals("col1", result.getName()); | |
| - assertEquals("table", result.getTable().getName()); | |
| - assertEquals("foobar", result.getTable().getSchema().getName()); | |
| - | |
| - result = dc.getColumnByQualifiedLabel("foo.bar.table.col1"); | |
| - assertEquals("col1", result.getName()); | |
| - assertEquals("table", result.getTable().getName()); | |
| - assertEquals("foo.bar", result.getTable().getSchema().getName()); | |
| - | |
| - result = dc.getColumnByQualifiedLabel("foobar.tab.le.col3"); | |
| - assertEquals("col3", result.getName()); | |
| - assertEquals("tab.le", result.getTable().getName()); | |
| - assertEquals("foobar", result.getTable().getSchema().getName()); | |
| - | |
| - result = dc.getColumnByQualifiedLabel("FOO.BAR.tab.le.col3"); | |
| - assertEquals("col3", result.getName()); | |
| - assertEquals("tab.le", result.getTable().getName()); | |
| - assertEquals("foo.bar", result.getTable().getSchema().getName()); | |
| - | |
| - result = dc.getColumnByQualifiedLabel("tab.le.col3"); | |
| - assertEquals("col3", result.getName()); | |
| - assertEquals("tab.le", result.getTable().getName()); | |
| - assertEquals("foobar", result.getTable().getSchema().getName()); | |
| - } | |
| - | |
| - public void testGetTableByQualfiedLabelSchemaNameInTableName() throws Exception { | |
| + private class MyDataContext extends AbstractDataContext { | |
| + @Override | |
| + public DataSet executeQuery(Query query) throws MetaModelException { | |
| + throw new UnsupportedOperationException(); | |
| + } | |
| + | |
| + @Override | |
| + protected String[] getSchemaNamesInternal() { | |
| + return new String[] { "barfoo", "foobar", "foo.bar" }; | |
| + } | |
| + | |
| + @Override | |
| + protected String getDefaultSchemaName() { | |
| + return "foobar"; | |
| + } | |
| + | |
| + @Override | |
| + protected Schema getSchemaByNameInternal(String name) { | |
| + if ("barfoo".equals(name) || "foobar".equals(name) | |
| + || "foo.bar".equals(name)) { | |
| + return createSchema(name); | |
| + } | |
| + throw new IllegalStateException("No such schema: " + name); | |
| + } | |
| + | |
| + private Schema createSchema(String name) { | |
| + MutableSchema schema = new MutableSchema(name); | |
| + MutableTable t1 = new MutableTable("table"); | |
| + MutableColumn col1 = new MutableColumn("col1"); | |
| + MutableColumn col2 = new MutableColumn("col2"); | |
| + t1.addColumn(col1).addColumn(col2); | |
| + col1.setTable(t1); | |
| + col2.setTable(t1); | |
| + MutableTable t2 = new MutableTable("tab.le"); | |
| + MutableColumn col3 = new MutableColumn("col3"); | |
| + MutableColumn col4 = new MutableColumn("col4"); | |
| + t2.addColumn(col3).addColumn(col4); | |
| + col3.setTable(t2); | |
| + col4.setTable(t2); | |
| + schema.addTable(t1).addTable(t2); | |
| + t1.setSchema(schema); | |
| + t2.setSchema(schema); | |
| + return schema; | |
| + } | |
| + | |
| + } | |
| + | |
| + | |
| + public void testGetColumnByQualifiedLabel() throws Exception { | |
| + MyDataContext dc = new MyDataContext(); | |
| + Column result; | |
| + | |
| + result = dc.getColumnByQualifiedLabel("foobar.tab.le.col1"); | |
| + result = dc.getColumnByQualifiedLabel("blabla.tab.le.col4"); | |
| + result = dc.getColumnByQualifiedLabel("FOOBAR.TABLE.COL3"); | |
| + assertNull(result); | |
| + | |
| + result = dc.getColumnByQualifiedLabel("foobar.table.col1"); | |
| + assertEquals("col1", result.getName()); | |
| + assertEquals("table", result.getTable().getName()); | |
| + assertEquals("foobar", result.getTable().getSchema().getName()); | |
| + | |
| + result = dc.getColumnByQualifiedLabel("foo.bar.table.col1"); | |
| + assertEquals("col1", result.getName()); | |
| + assertEquals("table", result.getTable().getName()); | |
| + assertEquals("foo.bar", result.getTable().getSchema().getName()); | |
| + | |
| + result = dc.getColumnByQualifiedLabel("foobar.tab.le.col3"); | |
| + assertEquals("col3", result.getName()); | |
| + assertEquals("tab.le", result.getTable().getName()); | |
| + assertEquals("foobar", result.getTable().getSchema().getName()); | |
| + | |
| + result = dc.getColumnByQualifiedLabel("FOO.BAR.tab.le.col3"); | |
| + assertEquals("col3", result.getName()); | |
| + assertEquals("tab.le", result.getTable().getName()); | |
| + assertEquals("foo.bar", result.getTable().getSchema().getName()); | |
| + | |
| + result = dc.getColumnByQualifiedLabel("tab.le.col3"); | |
| + assertEquals("col3", result.getName()); | |
| + assertEquals("tab.le", result.getTable().getName()); | |
| + assertEquals("foobar", result.getTable().getSchema().getName()); | |
| + } | |
| + | |
| + public void testGetTableByQualfiedLabelSchemaNameInTableName() throws Exception { | |
| AbstractDataContext dc = new AbstractDataContext() { | |
| @Override | |
| public DataSet executeQuery(Query query) throws MetaModelException { | |
| return null; | |
| } | |
| - | |
| + | |
| @Override | |
| protected String[] getSchemaNamesInternal() { | |
| - return new String[] { "test" }; | |
| + return new String[] {"test"}; | |
| } | |
| - | |
| + | |
| @Override | |
| protected Schema getSchemaByNameInternal(String name) { | |
| MutableSchema sch = new MutableSchema("test"); | |
| @@ -168,120 +135,113 @@ public class AbstractDataContextTest extends TestCase { | |
| sch.addTable(new MutableTable("test_table3").setSchema(sch)); | |
| return sch; | |
| } | |
| - | |
| + | |
| @Override | |
| protected String getDefaultSchemaName() { | |
| return "test"; | |
| } | |
| }; | |
| - | |
| + | |
| assertEquals("test_table1", dc.getTableByQualifiedLabel("test_table1").getName()); | |
| assertEquals("test_table2", dc.getTableByQualifiedLabel("test_table2").getName()); | |
| assertEquals("test_table3", dc.getTableByQualifiedLabel("test_table3").getName()); | |
| } | |
| - public void testGetTableByQualifiedLabel() throws Exception { | |
| - MyDataContext dc = new MyDataContext(); | |
| - | |
| - Table result; | |
| - | |
| - result = dc.getTableByQualifiedLabel("FOOBAR.table"); | |
| - assertEquals("table", result.getName()); | |
| - assertEquals("foobar", result.getSchema().getName()); | |
| - | |
| - result = dc.getTableByQualifiedLabel("table"); | |
| - assertEquals("table", result.getName()); | |
| - assertEquals("foobar", result.getSchema().getName()); | |
| - | |
| - result = dc.getTableByQualifiedLabel("foo.bar.table"); | |
| - assertEquals("table", result.getName()); | |
| - assertEquals("foo.bar", result.getSchema().getName()); | |
| - | |
| - result = dc.getTableByQualifiedLabel("foobar.tab.le"); | |
| - assertEquals("tab.le", result.getName()); | |
| - assertEquals("foobar", result.getSchema().getName()); | |
| - | |
| - result = dc.getTableByQualifiedLabel("foo.bar.tab.le"); | |
| - assertEquals("tab.le", result.getName()); | |
| - assertEquals("foo.bar", result.getSchema().getName()); | |
| - | |
| - result = dc.getTableByQualifiedLabel("foo.table"); | |
| - assertNull(result); | |
| - } | |
| - | |
| - public void testGetSchemas() throws Exception { | |
| - MyDataContext dc = new MyDataContext(); | |
| - Schema[] schemas = dc.getSchemas(); | |
| - assertEquals("[Schema[name=barfoo], Schema[name=foo.bar], Schema[name=foobar]]", Arrays.toString(schemas)); | |
| - | |
| - dc.refreshSchemas(); | |
| - schemas = dc.getSchemas(); | |
| - assertEquals("[Schema[name=barfoo], Schema[name=foo.bar], Schema[name=foobar]]", Arrays.toString(schemas)); | |
| - } | |
| - | |
| - public void testGetColumnByQualifiedLabelWithNameOverlaps() throws Exception { | |
| - AbstractDataContext dc = new AbstractDataContext() { | |
| - | |
| - @Override | |
| - public DataSet executeQuery(Query query) throws MetaModelException { | |
| - throw new UnsupportedOperationException(); | |
| - } | |
| - | |
| - @Override | |
| - protected String[] getSchemaNamesInternal() { | |
| - return new String[] { "sch" }; | |
| - } | |
| - | |
| - @Override | |
| - protected Schema getSchemaByNameInternal(String name) { | |
| - MutableSchema schema = new MutableSchema("sch"); | |
| - MutableTable table1 = new MutableTable("tab"); | |
| - MutableTable table2 = new MutableTable("tab_le"); | |
| - MutableTable table3 = new MutableTable("table"); | |
| - MutableTable table4 = new MutableTable("tabl_e"); | |
| - schema.addTable(table1.addColumn(new MutableColumn("col").setTable(table1))); | |
| - schema.addTable(table2.addColumn(new MutableColumn("col").setTable(table2))); | |
| - schema.addTable(table3.addColumn(new MutableColumn("col").setTable(table3))); | |
| - schema.addTable(table4.addColumn(new MutableColumn("col").setTable(table4))); | |
| - return schema; | |
| - } | |
| - | |
| - @Override | |
| - protected String getDefaultSchemaName() { | |
| - return "sch"; | |
| - } | |
| - }; | |
| - | |
| - assertEquals("tab.col", dc.getColumnByQualifiedLabel("sch.tab.col").getQualifiedLabel()); | |
| - assertEquals("table.col", dc.getColumnByQualifiedLabel("sch.table.col").getQualifiedLabel()); | |
| - assertEquals("tab_le.col", dc.getColumnByQualifiedLabel("sch.tab_le.col").getQualifiedLabel()); | |
| - assertEquals("tabl_e.col", dc.getColumnByQualifiedLabel("sch.tabl_e.col").getQualifiedLabel()); | |
| - } | |
| - | |
| - public void testGetColumnByQualifiedLabelCaseInsensitive() throws Exception { | |
| - MyDataContext dc = new MyDataContext(); | |
| - Column result = dc.getColumnByQualifiedLabel("FOOBAR.TABLE.COL1"); | |
| - assertNotNull(result); | |
| - assertEquals("col1", result.getName()); | |
| - } | |
| - | |
| - protected static Schema createSchema(String name) { | |
| - MutableSchema schema = new MutableSchema(name); | |
| - MutableTable t1 = new MutableTable("table"); | |
| - MutableColumn col1 = new MutableColumn("col1"); | |
| - MutableColumn col2 = new MutableColumn("col2"); | |
| - t1.addColumn(col1).addColumn(col2); | |
| - col1.setTable(t1); | |
| - col2.setTable(t1); | |
| - MutableTable t2 = new MutableTable("tab.le"); | |
| - MutableColumn col3 = new MutableColumn("col3"); | |
| - MutableColumn col4 = new MutableColumn("col4"); | |
| - t2.addColumn(col3).addColumn(col4); | |
| - col3.setTable(t2); | |
| - col4.setTable(t2); | |
| - schema.addTable(t1).addTable(t2); | |
| - t1.setSchema(schema); | |
| - t2.setSchema(schema); | |
| - return schema; | |
| - } | |
| + public void testGetTableByQualifiedLabel() throws Exception { | |
| + MyDataContext dc = new MyDataContext(); | |
| + | |
| + Table result; | |
| + | |
| + result = dc.getTableByQualifiedLabel("FOOBAR.table"); | |
| + assertEquals("table", result.getName()); | |
| + assertEquals("foobar", result.getSchema().getName()); | |
| + | |
| + result = dc.getTableByQualifiedLabel("table"); | |
| + assertEquals("table", result.getName()); | |
| + assertEquals("foobar", result.getSchema().getName()); | |
| + | |
| + result = dc.getTableByQualifiedLabel("foo.bar.table"); | |
| + assertEquals("table", result.getName()); | |
| + assertEquals("foo.bar", result.getSchema().getName()); | |
| + | |
| + result = dc.getTableByQualifiedLabel("foobar.tab.le"); | |
| + assertEquals("tab.le", result.getName()); | |
| + assertEquals("foobar", result.getSchema().getName()); | |
| + | |
| + result = dc.getTableByQualifiedLabel("foo.bar.tab.le"); | |
| + assertEquals("tab.le", result.getName()); | |
| + assertEquals("foo.bar", result.getSchema().getName()); | |
| + | |
| + result = dc.getTableByQualifiedLabel("foo.table"); | |
| + assertNull(result); | |
| + } | |
| + | |
| + public void testGetSchemas() throws Exception { | |
| + MyDataContext dc = new MyDataContext(); | |
| + Schema[] schemas = dc.getSchemas(); | |
| + assertEquals( | |
| + "[Schema[name=barfoo], Schema[name=foo.bar], Schema[name=foobar]]", | |
| + Arrays.toString(schemas)); | |
| + | |
| + dc.refreshSchemas(); | |
| + schemas = dc.getSchemas(); | |
| + assertEquals( | |
| + "[Schema[name=barfoo], Schema[name=foo.bar], Schema[name=foobar]]", | |
| + Arrays.toString(schemas)); | |
| + } | |
| + | |
| + public void testGetColumnByQualifiedLabelWithNameOverlaps() | |
| + throws Exception { | |
| + AbstractDataContext dc = new AbstractDataContext() { | |
| + | |
| + @Override | |
| + public DataSet executeQuery(Query query) throws MetaModelException { | |
| + throw new UnsupportedOperationException(); | |
| + } | |
| + | |
| + @Override | |
| + protected String[] getSchemaNamesInternal() { | |
| + return new String[] { "sch" }; | |
| + } | |
| + | |
| + @Override | |
| + protected Schema getSchemaByNameInternal(String name) { | |
| + MutableSchema schema = new MutableSchema("sch"); | |
| + MutableTable table1 = new MutableTable("tab"); | |
| + MutableTable table2 = new MutableTable("tab_le"); | |
| + MutableTable table3 = new MutableTable("table"); | |
| + MutableTable table4 = new MutableTable("tabl_e"); | |
| + schema.addTable(table1.addColumn(new MutableColumn("col") | |
| + .setTable(table1))); | |
| + schema.addTable(table2.addColumn(new MutableColumn("col") | |
| + .setTable(table2))); | |
| + schema.addTable(table3.addColumn(new MutableColumn("col") | |
| + .setTable(table3))); | |
| + schema.addTable(table4.addColumn(new MutableColumn("col") | |
| + .setTable(table4))); | |
| + return schema; | |
| + } | |
| + | |
| + @Override | |
| + protected String getDefaultSchemaName() { | |
| + return "sch"; | |
| + } | |
| + }; | |
| + | |
| + assertEquals("tab.col", dc.getColumnByQualifiedLabel("sch.tab.col") | |
| + .getQualifiedLabel()); | |
| + assertEquals("table.col", dc.getColumnByQualifiedLabel("sch.table.col") | |
| + .getQualifiedLabel()); | |
| + assertEquals("tab_le.col", dc.getColumnByQualifiedLabel( | |
| + "sch.tab_le.col").getQualifiedLabel()); | |
| + assertEquals("tabl_e.col", dc.getColumnByQualifiedLabel( | |
| + "sch.tabl_e.col").getQualifiedLabel()); | |
| + } | |
| + | |
| + public void testGetColumnByQualifiedLabelCaseInsensitive() throws Exception { | |
| + MyDataContext dc = new MyDataContext(); | |
| + Column result = dc.getColumnByQualifiedLabel("FOOBAR.TABLE.COL1"); | |
| + assertNotNull(result); | |
| + assertEquals("col1", result.getName()); | |
| + } | |
| } | |
| \ No newline at end of file | |
| diff --git a/core/src/test/java/org/apache/metamodel/util/ResourceUtilsTest.java b/core/src/test/java/org/apache/metamodel/util/ResourceUtilsTest.java | |
| deleted file mode 100644 | |
| index c3a24aa..0000000 | |
| --- a/core/src/test/java/org/apache/metamodel/util/ResourceUtilsTest.java | |
| +++ /dev/null | |
| @@ -1,40 +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.util; | |
| - | |
| -import java.io.File; | |
| - | |
| -import junit.framework.TestCase; | |
| - | |
| -public class ResourceUtilsTest extends TestCase { | |
| - | |
| - public void testGetParentName() throws Exception { | |
| - Resource res = new FileResource(new File("src/test/resources/folder/foo")); | |
| - | |
| - assertEquals("folder", ResourceUtils.getParentName(res)); | |
| - | |
| - res = new FileResource(new File("src/test/resources/folder/")); | |
| - | |
| - assertEquals("resources", ResourceUtils.getParentName(res)); | |
| - | |
| - assertEquals("", ResourceUtils.getParentName(new InMemoryResource(""))); | |
| - assertEquals("foo", ResourceUtils.getParentName(new InMemoryResource("foo"))); | |
| - assertEquals("bar", ResourceUtils.getParentName(new InMemoryResource("foo/bar\\baz"))); | |
| - } | |
| -} | |
| diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java b/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java | |
| index c8eb569..513b8e8 100644 | |
| --- a/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java | |
| +++ b/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java | |
| @@ -23,26 +23,29 @@ import org.apache.metamodel.schema.MutableTable; | |
| import org.apache.metamodel.schema.Schema; | |
| import org.apache.metamodel.schema.Table; | |
| -final class CsvCreateTableBuilder extends AbstractTableCreationBuilder<CsvUpdateCallback> { | |
| +final class CsvCreateTableBuilder extends | |
| + AbstractTableCreationBuilder<CsvUpdateCallback> { | |
| - public CsvCreateTableBuilder(CsvUpdateCallback updateCallback, Schema schema, String name) { | |
| - super(updateCallback, schema, name); | |
| - if (!(schema instanceof CsvSchema)) { | |
| - throw new IllegalArgumentException("Not a valid CSV schema: " + schema); | |
| - } | |
| - } | |
| + public CsvCreateTableBuilder(CsvUpdateCallback updateCallback, | |
| + Schema schema, String name) { | |
| + super(updateCallback, schema, name); | |
| + if (!(schema instanceof CsvSchema)) { | |
| + throw new IllegalArgumentException("Not a valid CSV schema: " | |
| + + schema); | |
| + } | |
| + } | |
| - @Override | |
| - public Table execute() { | |
| - CsvUpdateCallback csvUpdateCallback = getUpdateCallback(); | |
| + @Override | |
| + public Table execute() { | |
| + CsvUpdateCallback csvUpdateCallback = getUpdateCallback(); | |
| - MutableTable table = getTable(); | |
| - String[] columnNames = table.getColumnNames(); | |
| - csvUpdateCallback.writeRow(columnNames, false); | |
| + MutableTable table = getTable(); | |
| + String[] columnNames = table.getColumnNames(); | |
| + csvUpdateCallback.writeRow(columnNames, false); | |
| - CsvSchema schema = (CsvSchema) table.getSchema(); | |
| - CsvTable csvTable = new CsvTable(schema, table.getName(), table.getColumnNames()); | |
| - schema.setTable(csvTable); | |
| - return csvTable; | |
| - } | |
| + CsvSchema schema = (CsvSchema) table.getSchema(); | |
| + CsvTable csvTable = new CsvTable(schema, table.getColumnNames()); | |
| + schema.setTable(csvTable); | |
| + return csvTable; | |
| + } | |
| } | |
| diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java b/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java | |
| index c34c52b..5effa2c 100644 | |
| --- a/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java | |
| +++ b/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java | |
| @@ -43,7 +43,6 @@ import org.apache.metamodel.util.FileHelper; | |
| import org.apache.metamodel.util.FileResource; | |
| import org.apache.metamodel.util.Func; | |
| import org.apache.metamodel.util.Resource; | |
| -import org.apache.metamodel.util.ResourceUtils; | |
| import org.apache.metamodel.util.UrlResource; | |
| import org.slf4j.Logger; | |
| import org.slf4j.LoggerFactory; | |
| @@ -387,14 +386,14 @@ public final class CsvDataContext extends QueryPostprocessDataContext implements | |
| protected CsvSchema getMainSchema() throws MetaModelException { | |
| CsvSchema schema = new CsvSchema(getMainSchemaName(), this); | |
| if (_resource.isExists()) { | |
| - schema.setTable(new CsvTable(schema, _resource.getName())); | |
| + schema.setTable(new CsvTable(schema)); | |
| } | |
| return schema; | |
| } | |
| @Override | |
| protected String getMainSchemaName() { | |
| - return ResourceUtils.getParentName(_resource); | |
| + return _resource.getName(); | |
| } | |
| protected boolean isWritable() { | |
| diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java b/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java | |
| index 6961271..6de36a6 100644 | |
| --- a/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java | |
| +++ b/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java | |
| @@ -52,7 +52,7 @@ final class CsvSchema extends AbstractSchema { | |
| public String getQuote() { | |
| return null; | |
| } | |
| - | |
| + | |
| @Override | |
| public Table[] getTables() { | |
| if (_table == null) { | |
| diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java b/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java | |
| index 0fde506..1603bc8 100644 | |
| --- a/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java | |
| +++ b/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java | |
| @@ -37,7 +37,6 @@ final class CsvTable extends AbstractTable { | |
| private static final long serialVersionUID = 1L; | |
| private final CsvSchema _schema; | |
| - private final String _tableName; | |
| private Column[] _columns; | |
| /** | |
| @@ -46,8 +45,8 @@ final class CsvTable extends AbstractTable { | |
| * @param schema | |
| * @param columnNames | |
| */ | |
| - public CsvTable(CsvSchema schema, String tableName, String[] columnNames) { | |
| - this(schema, tableName); | |
| + public CsvTable(CsvSchema schema, String[] columnNames) { | |
| + this(schema); | |
| _columns = buildColumns(columnNames); | |
| } | |
| @@ -56,20 +55,14 @@ final class CsvTable extends AbstractTable { | |
| * | |
| * @param schema | |
| */ | |
| - public CsvTable(CsvSchema schema, String tableName) { | |
| + public CsvTable(CsvSchema schema) { | |
| _schema = schema; | |
| - _tableName = tableName; | |
| } | |
| @Override | |
| public String getName() { | |
| - if (_tableName == null) { | |
| - // can only occur when deserializing legacy objects. Using the | |
| - // legacy MetaModel code for creating table name here. | |
| - String schemaName = _schema.getName(); | |
| - return schemaName.substring(0, schemaName.length() - 4); | |
| - } | |
| - return _tableName; | |
| + String schemaName = _schema.getName(); | |
| + return schemaName.substring(0, schemaName.length() - 4); | |
| } | |
| @Override | |
| @@ -98,8 +91,7 @@ final class CsvTable extends AbstractTable { | |
| reader.close(); | |
| return buildColumns(columnHeaders); | |
| } catch (IOException e) { | |
| - throw new IllegalStateException("Exception reading from resource: " | |
| - + _schema.getDataContext().getResource().getName(), e); | |
| + throw new IllegalStateException("Exception reading from resource: " + _schema.getDataContext().getResource().getName(), e); | |
| } finally { | |
| FileHelper.safeClose(reader); | |
| } | |
| diff --git a/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java b/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java | |
| index e9b0f5b..c94190c 100644 | |
| --- a/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java | |
| +++ b/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java | |
| @@ -61,7 +61,7 @@ public class CsvDataContextTest extends TestCase { | |
| assertEquals(1, dc.getDefaultSchema().getTableCount()); | |
| Table table = dc.getDefaultSchema().getTables()[0]; | |
| - assertEquals("empty_file.csv", table.getName()); | |
| + assertEquals("empty_file", table.getName()); | |
| assertEquals(0, table.getColumnCount()); | |
| } | |
| @@ -94,7 +94,7 @@ public class CsvDataContextTest extends TestCase { | |
| assertEquals(1, dc.getDefaultSchema().getTableCount()); | |
| Table table = dc.getDefaultSchema().getTables()[0]; | |
| - assertEquals("empty_file.csv", table.getName()); | |
| + assertEquals("empty_file", table.getName()); | |
| assertEquals(0, table.getColumnCount()); | |
| } | |
| @@ -103,7 +103,7 @@ public class CsvDataContextTest extends TestCase { | |
| assertEquals(1, dc.getDefaultSchema().getTableCount()); | |
| Table table = dc.getDefaultSchema().getTables()[0]; | |
| - assertEquals("csv_people.csv", table.getName()); | |
| + assertEquals("csv_people", table.getName()); | |
| assertEquals(0, table.getColumnCount()); | |
| } | |
| @@ -111,7 +111,7 @@ public class CsvDataContextTest extends TestCase { | |
| CsvConfiguration conf = new CsvConfiguration(CsvConfiguration.DEFAULT_COLUMN_NAME_LINE, "UTF8", ',', '"', '\\', | |
| true); | |
| DataContext dc = new CsvDataContext(new File("src/test/resources/csv_inconsistent_columns.csv"), conf); | |
| - DataSet ds = dc.query().from("csv_inconsistent_columns.csv").select("hello").and("world").execute(); | |
| + DataSet ds = dc.query().from("csv_inconsistent_columns").select("hello").and("world").execute(); | |
| assertTrue(ds.next()); | |
| assertTrue(ds.next()); | |
| @@ -185,7 +185,7 @@ public class CsvDataContextTest extends TestCase { | |
| } | |
| Schema schema = dc.getDefaultSchema(); | |
| - String name = schema.getTable(0).getName(); | |
| + String name = schema.getName(); | |
| assertTrue(name.startsWith("metamodel")); | |
| assertTrue(name.endsWith("csv")); | |
| @@ -199,7 +199,7 @@ public class CsvDataContextTest extends TestCase { | |
| File file = new File("src/test/resources/tickets.csv"); | |
| DataContext dc = new CsvDataContext(file); | |
| Schema schema = dc.getDefaultSchema(); | |
| - Table table = schema.getTableByName("tickets.csv"); | |
| + Table table = schema.getTableByName("tickets"); | |
| Column descColumn = table.getColumnByName("_description"); | |
| assertNotNull(table); | |
| @@ -233,10 +233,10 @@ public class CsvDataContextTest extends TestCase { | |
| Schema[] schemas = dc.getSchemas(); | |
| assertEquals(2, schemas.length); | |
| Schema schema = dc.getDefaultSchema(); | |
| - assertEquals("resources", schema.getName()); | |
| + assertEquals("csv_people.csv", schema.getName()); | |
| assertEquals(1, schema.getTableCount()); | |
| Table table = schema.getTables()[0]; | |
| - assertEquals("csv_people.csv", table.getName()); | |
| + assertEquals("csv_people", table.getName()); | |
| assertEquals(4, table.getColumnCount()); | |
| assertEquals(0, table.getRelationshipCount()); | |
| @@ -265,10 +265,10 @@ public class CsvDataContextTest extends TestCase { | |
| Schema[] schemas = dc.getSchemas(); | |
| assertEquals(2, schemas.length); | |
| Schema schema = dc.getDefaultSchema(); | |
| - assertEquals("resources", schema.getName()); | |
| + assertEquals("csv_people.csv", schema.getName()); | |
| assertEquals(1, schema.getTableCount()); | |
| Table table = schema.getTables()[0]; | |
| - assertEquals("csv_people.csv", table.getName()); | |
| + assertEquals("csv_people", table.getName()); | |
| assertEquals(4, table.getColumnCount()); | |
| assertEquals(0, table.getRelationshipCount()); | |
| @@ -296,10 +296,10 @@ public class CsvDataContextTest extends TestCase { | |
| Schema[] schemas = dc.getSchemas(); | |
| assertEquals(2, schemas.length); | |
| Schema schema = dc.getDefaultSchema(); | |
| - assertEquals("resources", schema.getName()); | |
| + assertEquals("csv_people.csv", schema.getName()); | |
| assertEquals(1, schema.getTableCount()); | |
| Table table = schema.getTables()[0]; | |
| - assertEquals("csv_people.csv", table.getName()); | |
| + assertEquals("csv_people", table.getName()); | |
| assertEquals(4, table.getColumnCount()); | |
| assertEquals(0, table.getRelationshipCount()); | |
| @@ -314,7 +314,7 @@ public class CsvDataContextTest extends TestCase { | |
| public void testWhereItemNotInSelectClause() throws Exception { | |
| File file = new File("src/test/resources/csv_people.csv"); | |
| QueryPostprocessDataContext dc = new CsvDataContext(file); | |
| - Table table = dc.getDefaultSchema().getTableByName("csv_people.csv"); | |
| + Table table = dc.getDefaultSchema().getTableByName("csv_people"); | |
| Query q = new Query(); | |
| q.from(table); | |
| @@ -329,10 +329,10 @@ public class CsvDataContextTest extends TestCase { | |
| public void testWhereColumnInValues() throws Exception { | |
| File file = new File("src/test/resources/csv_people.csv"); | |
| QueryPostprocessDataContext dc = new CsvDataContext(file, new CsvConfiguration(1, true, true)); | |
| - Table table = dc.getDefaultSchema().getTableByName("csv_people.csv"); | |
| + Table table = dc.getDefaultSchema().getTableByName("csv_people"); | |
| Query q = dc.query().from(table).as("t").select("name").and("age").where("age").in("18", "20").toQuery(); | |
| - assertEquals("SELECT t.name, t.age FROM resources.csv_people.csv t WHERE t.age IN ('18' , '20')", q.toSql()); | |
| + assertEquals("SELECT t.name, t.age FROM csv_people.csv.csv_people t WHERE t.age IN ('18' , '20')", q.toSql()); | |
| DataSet ds = dc.executeQuery(q); | |
| assertTrue(ds.next()); | |
| @@ -352,7 +352,7 @@ public class CsvDataContextTest extends TestCase { | |
| public void testGroupByQuery() throws Exception { | |
| DataContext dc = new CsvDataContext(new File("src/test/resources/csv_people.csv")); | |
| - Table table = dc.getDefaultSchema().getTableByName("csv_people.csv"); | |
| + Table table = dc.getDefaultSchema().getTableByName("csv_people"); | |
| Query q = new Query(); | |
| q.from(table); | |
| @@ -363,7 +363,7 @@ public class CsvDataContextTest extends TestCase { | |
| "total"), new SelectItem(FunctionType.MIN, table.getColumnByName("id")).setAlias("firstId")); | |
| DataSet data = dc.executeQuery(q); | |
| assertEquals( | |
| - "[csv_people.csv.gender, MAX(csv_people.csv.age), MIN(csv_people.csv.age), COUNT(*) AS total, MIN(csv_people.csv.id) AS firstId]", | |
| + "[csv_people.gender, MAX(csv_people.age), MIN(csv_people.age), COUNT(*) AS total, MIN(csv_people.id) AS firstId]", | |
| Arrays.toString(data.getSelectItems())); | |
| String[] expectations = new String[] { "Row[values=[female, 20, 17, 5, 5]]", "Row[values=[male, 19, 17, 4, 1]]" }; | |
| @@ -443,7 +443,7 @@ public class CsvDataContextTest extends TestCase { | |
| Table table = dc.getDefaultSchema().getTables()[0]; | |
| Query q = new Query().selectCount().from(table); | |
| - assertEquals("SELECT COUNT(*) FROM resources.csv_people.csv", q.toString()); | |
| + assertEquals("SELECT COUNT(*) FROM csv_people.csv.csv_people", q.toString()); | |
| List<Object[]> data = dc.executeQuery(q).toObjectArrays(); | |
| assertEquals(1, data.size()); | |
| @@ -452,7 +452,7 @@ public class CsvDataContextTest extends TestCase { | |
| assertEquals("[9]", Arrays.toString(row)); | |
| q.select(table.getColumns()[0]); | |
| - assertEquals("SELECT COUNT(*), csv_people.csv.id FROM resources.csv_people.csv", q.toString()); | |
| + assertEquals("SELECT COUNT(*), csv_people.id FROM csv_people.csv.csv_people", q.toString()); | |
| data = dc.executeQuery(q).toObjectArrays(); | |
| assertEquals(9, data.size()); | |
| row = data.get(0); | |
| @@ -511,11 +511,11 @@ public class CsvDataContextTest extends TestCase { | |
| dc.executeUpdate(new UpdateScript() { | |
| @Override | |
| public void run(UpdateCallback callback) { | |
| - callback.deleteFrom("csv_delete_all_records.txt").execute(); | |
| + callback.deleteFrom("csv_delete_all_records").execute(); | |
| } | |
| }); | |
| - DataSet ds = dc.query().from("csv_delete_all_records.txt").selectCount().execute(); | |
| + DataSet ds = dc.query().from("csv_delete_all_records").selectCount().execute(); | |
| assertTrue(ds.next()); | |
| assertEquals(0, ((Number) ds.getRow().getValue(0)).intValue()); | |
| assertFalse(ds.next()); | |
| @@ -645,7 +645,7 @@ public class CsvDataContextTest extends TestCase { | |
| Table table = dc.getDefaultSchema().getTables()[0]; | |
| MutableColumn col = (MutableColumn) table.getColumns()[0]; | |
| Query q = dc.query().from(table).select(col).toQuery(); | |
| - assertEquals("SELECT csv_only_number_one.csv.number FROM resources.csv_only_number_one.csv", q.toSql()); | |
| + assertEquals("SELECT csv_only_number_one.number FROM csv_only_number_one.csv.csv_only_number_one", q.toSql()); | |
| DataSet ds = dc.executeQuery(q); | |
| while (ds.next()) { | |
| diff --git a/csv/src/test/java/org/apache/metamodel/csv/SingleLineCsvDataSetTest.java b/csv/src/test/java/org/apache/metamodel/csv/SingleLineCsvDataSetTest.java | |
| index e41db1b..f618906 100644 | |
| --- a/csv/src/test/java/org/apache/metamodel/csv/SingleLineCsvDataSetTest.java | |
| +++ b/csv/src/test/java/org/apache/metamodel/csv/SingleLineCsvDataSetTest.java | |
| @@ -30,7 +30,7 @@ public class SingleLineCsvDataSetTest extends TestCase { | |
| CsvConfiguration configuration = new CsvConfiguration(1, true, false); | |
| CsvDataContext dc = new CsvDataContext(new File("src/test/resources/csv_people.csv"), configuration); | |
| - DataSet dataSet = dc.query().from("csv_people.csv").select("age", "name").execute(); | |
| + DataSet dataSet = dc.query().from("csv_people").select("age", "name").execute(); | |
| assertTrue(dataSet.next()); | |
| assertEquals("Row[values=[18, mike]]", dataSet.getRow().toString()); | |
| diff --git a/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java b/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java | |
| index 7974beb..5f516f3 100644 | |
| --- a/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java | |
| +++ b/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java | |
| @@ -67,7 +67,7 @@ public class InterceptionCsvIntegrationTest extends TestCase { | |
| } | |
| }); | |
| - assertEquals("[table]", | |
| + assertEquals("[test_interception_scenario]", | |
| Arrays.toString(dc.getDefaultSchema().getTableNames())); | |
| Table table = dc.getDefaultSchema().getTables()[0]; | |
| assertEquals("[col1, col2, foobar]", | |
| diff --git a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java | |
| index 58ec92a..1c807fa 100644 | |
| --- a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java | |
| +++ b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java | |
| @@ -37,7 +37,6 @@ import org.apache.metamodel.util.AlphabeticSequence; | |
| import org.apache.metamodel.util.FileHelper; | |
| import org.apache.metamodel.util.FileResource; | |
| import org.apache.metamodel.util.Resource; | |
| -import org.apache.metamodel.util.ResourceUtils; | |
| /** | |
| * DataContext implementation for fixed width value files. | |
| @@ -116,7 +115,7 @@ public class FixedWidthDataContext extends QueryPostprocessDataContext { | |
| protected Schema getMainSchema() throws MetaModelException { | |
| final String schemaName = getDefaultSchemaName(); | |
| final MutableSchema schema = new MutableSchema(schemaName); | |
| - final String tableName = _resource.getName(); | |
| + final String tableName = schemaName.substring(0, schemaName.length() - 4); | |
| final MutableTable table = new MutableTable(tableName, TableType.TABLE, schema); | |
| schema.addTable(table); | |
| @@ -155,7 +154,7 @@ public class FixedWidthDataContext extends QueryPostprocessDataContext { | |
| @Override | |
| protected String getMainSchemaName() throws MetaModelException { | |
| - return ResourceUtils.getParentName(_resource); | |
| + return _resource.getName(); | |
| } | |
| @Override | |
| diff --git a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java | |
| index 2ac3680..52af87f 100644 | |
| --- a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java | |
| +++ b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java | |
| @@ -40,7 +40,7 @@ public class FixedWidthDataContextTest extends TestCase { | |
| assertEquals(1, dc.getDefaultSchema().getTableCount()); | |
| Table table = dc.getDefaultSchema().getTables()[0]; | |
| - assertEquals("empty_file.txt", table.getName()); | |
| + assertEquals("empty_file", table.getName()); | |
| assertEquals(0, table.getColumnCount()); | |
| } | |
| @@ -50,7 +50,7 @@ public class FixedWidthDataContextTest extends TestCase { | |
| assertEquals(1, dc.getDefaultSchema().getTableCount()); | |
| Table table = dc.getDefaultSchema().getTables()[0]; | |
| - assertEquals("empty_file.txt", table.getName()); | |
| + assertEquals("empty_file", table.getName()); | |
| assertEquals(0, table.getColumnCount()); | |
| } | |
| @@ -60,7 +60,7 @@ public class FixedWidthDataContextTest extends TestCase { | |
| assertEquals(1, dc.getDefaultSchema().getTableCount()); | |
| Table table = dc.getDefaultSchema().getTables()[0]; | |
| - assertEquals("example_simple1.txt", table.getName()); | |
| + assertEquals("example_simple1", table.getName()); | |
| assertEquals(0, table.getColumnCount()); | |
| } | |
| @@ -70,15 +70,15 @@ public class FixedWidthDataContextTest extends TestCase { | |
| String[] schemaNames = dc.getSchemaNames(); | |
| assertEquals(2, schemaNames.length); | |
| - assertEquals("[information_schema, resources]", Arrays.toString(schemaNames)); | |
| + assertEquals("[information_schema, example_simple1.txt]", Arrays.toString(schemaNames)); | |
| Schema schema = dc.getDefaultSchema(); | |
| - assertEquals("Schema[name=resources]", schema.toString()); | |
| + assertEquals("Schema[name=example_simple1.txt]", schema.toString()); | |
| assertEquals(1, schema.getTableCount()); | |
| - Table table = schema.getTableByName("example_simple1.txt"); | |
| - assertEquals("Table[name=example_simple1.txt,type=TABLE,remarks=null]", table.toString()); | |
| + Table table = schema.getTableByName("example_simple1"); | |
| + assertEquals("Table[name=example_simple1,type=TABLE,remarks=null]", table.toString()); | |
| assertEquals("[greeting, greeter]", Arrays.toString(table.getColumnNames())); | |
| assertEquals(10, table.getColumnByName("greeting").getColumnSize().intValue()); | |
| @@ -103,15 +103,15 @@ public class FixedWidthDataContextTest extends TestCase { | |
| String[] schemaNames = dc.getSchemaNames(); | |
| assertEquals(2, schemaNames.length); | |
| - assertEquals("[information_schema, resources]", Arrays.toString(schemaNames)); | |
| + assertEquals("[information_schema, example_simple1.txt]", Arrays.toString(schemaNames)); | |
| Schema schema = dc.getDefaultSchema(); | |
| - assertEquals("Schema[name=resources]", schema.toString()); | |
| + assertEquals("Schema[name=example_simple1.txt]", schema.toString()); | |
| assertEquals(1, schema.getTableCount()); | |
| - Table table = schema.getTableByName("example_simple1.txt"); | |
| - assertEquals("Table[name=example_simple1.txt,type=TABLE,remarks=null]", table.toString()); | |
| + Table table = schema.getTableByName("example_simple1"); | |
| + assertEquals("Table[name=example_simple1,type=TABLE,remarks=null]", table.toString()); | |
| assertEquals("[A, B]", Arrays.toString(table.getColumnNames())); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment