Author: tchemit Date: 2011-11-23 11:29:27 +0100 (Wed, 23 Nov 2011) New Revision: 2233 Url: http://nuiton.org/repositories/revision/nuiton-utils/2233 Log: little improvements (use contructor factory,...) Modified: trunk/nuiton-csv/src/main/java/org/nuiton/util/csv/Export.java trunk/nuiton-csv/src/main/java/org/nuiton/util/csv/Import.java Modified: trunk/nuiton-csv/src/main/java/org/nuiton/util/csv/Export.java =================================================================== --- trunk/nuiton-csv/src/main/java/org/nuiton/util/csv/Export.java 2011-11-22 18:14:23 UTC (rev 2232) +++ trunk/nuiton-csv/src/main/java/org/nuiton/util/csv/Export.java 2011-11-23 10:29:27 UTC (rev 2233) @@ -50,8 +50,13 @@ protected Collection<E> data; - public Export(ExportModel<E> exportModel, Collection<E> data) { - model = exportModel; + public static <E> Export<E> newExport(ExportModel<E> model, + Collection<E> data) { + return new Export<E>(model, data); + } + + protected Export(ExportModel<E> model, Collection<E> data) { + this.model = model; this.data = data; } Modified: trunk/nuiton-csv/src/main/java/org/nuiton/util/csv/Import.java =================================================================== --- trunk/nuiton-csv/src/main/java/org/nuiton/util/csv/Import.java 2011-11-22 18:14:23 UTC (rev 2232) +++ trunk/nuiton-csv/src/main/java/org/nuiton/util/csv/Import.java 2011-11-23 10:29:27 UTC (rev 2233) @@ -64,56 +64,16 @@ /** save once done to prevent multiple headers read leading to consider first lines as headers */ protected ValidationResult csvValidationResult; - protected List<ImportableColumn<E, Object>> getNonIgnoredHeaders() { - List<ImportableColumn<E, Object>> nonIgnoredHeaders = new ArrayList<ImportableColumn<E, Object>>(); - for (ImportableColumn<E, Object> field : model.getColumnsForImport()) { - if (!field.isIgnored()) { - nonIgnoredHeaders.add(field); - } - } - return nonIgnoredHeaders; + public static <E> Import<E> newImport(ImportModel<E> model, + InputStream inputStream) { + return new Import<E>(model, inputStream); } - protected List<ImportableColumn<E, ?>> getAllMandatoryHeaders() { - List<ImportableColumn<E, ?>> allMandatoryHeaders = new ArrayList<ImportableColumn<E, ?>>(); - for (ImportableColumn<E, ?> field : model.getColumnsForImport()) { - if (field.isMandatory()) { - allMandatoryHeaders.add(field); - } - } - return allMandatoryHeaders; + public static <E> Import<E> newImport(ImportModel<E> model, + Reader reader) { + return new Import<E>(model, reader); } - public Import(ImportModel<E> model, InputStream inputStream) { - if (inputStream == null) { - throw new NullPointerException("inputStream is null"); - } - this.model = model; - reader = new CsvReader(inputStream, model.getSeparator(), Charset.forName("UTF-8")); - reader.setTrimWhitespace(true); - } - - public Import(ImportModel<E> model, Reader reader) { - if (reader == null) { - throw new NullPointerException("reader is null"); - } - this.model = model; - this.reader = new CsvReader(reader, model.getSeparator()); - this.reader.setTrimWhitespace(true); - } - - protected boolean validateModel() { - Set<String> headerNames = new HashSet<String>(); - for (ImportableColumn<E, ?> importableColumn : model.getColumnsForImport()) { - String headerName = importableColumn.getHeaderName(); - boolean alreadyUsed = !headerNames.add(headerName); - if (alreadyUsed) { - throw new IllegalArgumentException("model contains multiple columnsForImport named '" + headerName + "'"); - } - } - return true; - } - public ValidationResult validateCsv() throws IOException { if (csvValidationResult == null) { @@ -266,21 +226,72 @@ return result; } - protected void readFirstLine() { + public void stopImport() { + reader.close(); + } + + protected List<ImportableColumn<E, Object>> getNonIgnoredHeaders() { + List<ImportableColumn<E, Object>> nonIgnoredHeaders = new ArrayList<ImportableColumn<E, Object>>(); + for (ImportableColumn<E, Object> field : model.getColumnsForImport()) { + if (!field.isIgnored()) { + nonIgnoredHeaders.add(field); + } + } + return nonIgnoredHeaders; + } + + protected List<ImportableColumn<E, ?>> getAllMandatoryHeaders() { + List<ImportableColumn<E, ?>> allMandatoryHeaders = new ArrayList<ImportableColumn<E, ?>>(); + for (ImportableColumn<E, ?> field : model.getColumnsForImport()) { + if (field.isMandatory()) { + allMandatoryHeaders.add(field); + } + } + return allMandatoryHeaders; + } + + protected Import(ImportModel<E> model, InputStream inputStream) { + if (inputStream == null) { + throw new NullPointerException("inputStream is null"); + } + this.model = model; + reader = new CsvReader(inputStream, model.getSeparator(), Charset.forName("UTF-8")); + reader.setTrimWhitespace(true); + } + + protected Import(ImportModel<E> model, Reader reader) { + if (reader == null) { + throw new NullPointerException("reader is null"); + } + this.model = model; + this.reader = new CsvReader(reader, model.getSeparator()); + this.reader.setTrimWhitespace(true); + } + + protected boolean validateModel() { + Set<String> headerNames = new HashSet<String>(); + for (ImportableColumn<E, ?> importableColumn : model.getColumnsForImport()) { + String headerName = importableColumn.getHeaderName(); + boolean alreadyUsed = !headerNames.add(headerName); + if (alreadyUsed) { + throw new IllegalArgumentException("model contains multiple columnsForImport named '" + headerName + "'"); + } + } + return true; + } + + protected void readFirstLine() throws ImportRuntimeException { try { boolean emptyFile = !reader.readRecord(); if (emptyFile) { - throw new IllegalArgumentException("CSV file has no line"); + throw new ImportRuntimeException("CSV file has no line"); } } catch (IOException e) { reader.close(); - throw new RuntimeException(_("csv.import.error.unableToReadLine", 1), e); + throw new ImportRuntimeException(_("csv.import.error.unableToReadLine", 1), e); } } - public void stopImport() { - reader.close(); - } }
participants (1)
-
tchemit@users.nuiton.org