@Override public List<ImportTask> list(ImportData data, Catalog catalog, ProgressMonitor monitor) throws IOException { if (data instanceof Directory) { List<ImportTask> tasks = new ArrayList<ImportTask>(); for (FileData file : ((Directory) data).getFiles()) { tasks.add(task(file, catalog)); } return tasks; } else { return Arrays.asList(task(data, catalog)); } }
File file(ImportData data, final ImportTask item) { if (data instanceof Directory) { return Iterables.find(((Directory) data).getFiles(), new Predicate<FileData>() { @Override public boolean apply(FileData input) { return FilenameUtils.getBaseName(input.getFile().getName()) .equals(item.getLayer().getName()); } }).getFile(); } else { return maybeFile(data).get(); } }
@Override public FeatureReader read(ImportData data, ImportTask item) throws IOException { final FeatureType featureType = (FeatureType) item.getMetadata().get(FeatureType.class); final FeatureIterator it = new FeatureJSON().streamFeatureCollection(file(data, item)); return new FeatureReader() { @Override public FeatureType getFeatureType() { return featureType; } @Override public boolean hasNext() throws IOException { return it.hasNext(); } @Override public Feature next() throws IOException, IllegalArgumentException, NoSuchElementException { return it.next(); } @Override public void close() throws IOException { it.close(); } }; }
File file(ImportData data, final ImportTask item) { if (data instanceof Directory) { return Iterables.find( ((Directory) data).getFiles(), new Predicate<FileData>() { @Override public boolean apply(FileData input) { return FilenameUtils.getBaseName(input.getFile().getName()) .equals(item.getLayer().getName()); } }) .getFile(); } else { return maybeFile(data).get(); } }
@Override public FeatureReader read(ImportData data, ImportTask item) throws IOException { final SimpleFeatureType featureType = (SimpleFeatureType) item.getMetadata().get(FeatureType.class); FeatureJSON json = new FeatureJSON(); json.setFeatureType(featureType); final FeatureIterator it = json.streamFeatureCollection(file(data, item)); return new FeatureReader() { @Override public FeatureType getFeatureType() { return featureType; } @Override public boolean hasNext() throws IOException { return it.hasNext(); } @Override public Feature next() throws IOException, IllegalArgumentException, NoSuchElementException { return it.next(); } @Override public void close() throws IOException { it.close(); } }; }
@Override public List<ImportTask> list(ImportData data, Catalog catalog, ProgressMonitor monitor) throws IOException { if (data instanceof Directory) { List<ImportTask> tasks = new ArrayList<ImportTask>(); for (FileData file : ((Directory)data).getFiles()) { tasks.add(task(file, catalog)); } return tasks; } else { return Arrays.asList(task(data, catalog)); } }