Changeset 887 for MetadataBeans/trunk/src/main/java/org/eobjects/metamodel/CsvDataContextStrategy.java
- Timestamp:
- 02/04/10 21:56:24 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
MetadataBeans/trunk/src/main/java/org/eobjects/metamodel/CsvDataContextStrategy.java
r886 r887 28 28 import org.eobjects.metamodel.schema.Column; 29 29 import org.eobjects.metamodel.schema.ColumnType; 30 import org.eobjects.metamodel.schema.Schema; 30 import org.eobjects.metamodel.schema.MutableColumn; 31 import org.eobjects.metamodel.schema.MutableSchema; 32 import org.eobjects.metamodel.schema.MutableTable; 31 33 import org.eobjects.metamodel.schema.Table; 32 34 import org.eobjects.metamodel.schema.TableType; … … 46 48 47 49 public CsvDataContextStrategy(File file) { 48 this(file, CSVReader.DEFAULT_SEPARATOR, CSVReader.DEFAULT_QUOTE_CHARACTER); 50 this(file, CSVReader.DEFAULT_SEPARATOR, 51 CSVReader.DEFAULT_QUOTE_CHARACTER); 49 52 } 50 53 … … 67 70 * the character to use for enclosing/quoting values 68 71 */ 69 public CsvDataContextStrategy(File file, char separatorChar, char quoteChar, String fileEncoding) { 72 public CsvDataContextStrategy(File file, char separatorChar, 73 char quoteChar, String fileEncoding) { 70 74 if (file == null) { 71 75 throw new IllegalArgumentException("File cannot be null"); … … 84 88 } 85 89 86 public CsvDataContextStrategy(URL url, char separatorChar, char quoteChar, String encoding) { 90 public CsvDataContextStrategy(URL url, char separatorChar, char quoteChar, 91 String encoding) { 87 92 _encoding = encoding; 88 93 _separatorChar = separatorChar; … … 95 100 } 96 101 97 public CsvDataContextStrategy(InputStream inputStream, char separatorChar, char quoteChar) { 102 public CsvDataContextStrategy(InputStream inputStream, char separatorChar, 103 char quoteChar) { 98 104 this(inputStream, separatorChar, quoteChar, FileHelper.DEFAULT_ENCODING); 99 105 } 100 106 101 public CsvDataContextStrategy(InputStream inputStream, char separatorChar, char quoteChar, String encoding) { 107 public CsvDataContextStrategy(InputStream inputStream, char separatorChar, 108 char quoteChar, String encoding) { 102 109 _encoding = encoding; 103 110 _separatorChar = separatorChar; … … 110 117 } 111 118 112 private void createFileFromInputStream(InputStream inputStream) throws IOException { 119 private void createFileFromInputStream(InputStream inputStream) 120 throws IOException { 113 121 File tempDir = FileHelper.getTempDir(); 114 122 boolean usableName = false; … … 121 129 _file.deleteOnExit(); 122 130 BufferedWriter writer = FileHelper.getBufferedWriter(_file, _encoding); 123 BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); 124 for (String line = reader.readLine(); line != null; line = reader.readLine()) { 131 BufferedReader reader = new BufferedReader(new InputStreamReader( 132 inputStream)); 133 for (String line = reader.readLine(); line != null; line = reader 134 .readLine()) { 125 135 writer.write(line); 126 136 writer.write('\n'); … … 131 141 132 142 @Override 133 public DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) { 143 public DataSet materializeMainSchemaTable(Table table, Column[] columns, 144 int maxRows) { 134 145 if (columns == null || columns.length == 0) { 135 146 columns = table.getColumns(); 136 147 } 137 CSVReader reader = new CSVReader(FileHelper.getReader(_file, _encoding), _separatorChar, _quoteChar, 1); 148 CSVReader reader = new CSVReader( 149 FileHelper.getReader(_file, _encoding), _separatorChar, 150 _quoteChar, 1); 138 151 if (maxRows < 0) { 139 152 return new DataSet(new CsvDataSetStrategy(reader, columns, null)); … … 144 157 145 158 @Override 146 protected Schema getMainSchema() throws MetaModelException {159 protected MutableSchema getMainSchema() throws MetaModelException { 147 160 CSVReader reader = null; 148 161 try { 149 162 String schemaName = getDefaultSchemaName(); 150 Schema schema = new Schema(schemaName); 151 Table table = new Table(schemaName.substring(0, schemaName.length() - 4), TableType.TABLE, schema); 163 MutableSchema schema = new MutableSchema(schemaName); 164 MutableTable table = new MutableTable(schemaName.substring(0, 165 schemaName.length() - 4), TableType.TABLE, schema); 152 166 schema.addTable(table); 153 167 154 reader = new CSVReader(FileHelper.getReader(_file, _encoding), _separatorChar, _quoteChar); 168 reader = new CSVReader(FileHelper.getReader(_file, _encoding), 169 _separatorChar, _quoteChar); 155 170 String[] columnHeaders = reader.readNext(); 156 171 reader.close(); 157 172 for (int i = 0; i < columnHeaders.length; i++) { 158 Column column = new Column(columnHeaders[i], ColumnType.VARCHAR, table, i, true); 173 MutableColumn column = new MutableColumn(columnHeaders[i], 174 ColumnType.VARCHAR, table, i, true); 159 175 table.addColumn(column); 160 176 } … … 162 178 return schema; 163 179 } catch (Exception e) { 164 throw new IllegalStateException("Exception reading from file: " + _file, e); 180 throw new IllegalStateException("Exception reading from file: " 181 + _file, e); 165 182 } finally { 166 183 if (reader != null) {
Note: See TracChangeset
for help on using the changeset viewer.
