private void harvestDirectory(StructuredGridCoverage2DReader sr, Directory data) throws UnsupportedOperationException, IOException { for (FileData fd : data.getFiles()) { harvestImportData(sr, fd); } }
public List<Directory> flatten() { List<Directory> flat = new ArrayList<Directory>(); LinkedList<Directory> q = new LinkedList<Directory>(); q.addLast(this); while(!q.isEmpty()) { Directory dir = q.removeFirst(); flat.add(dir); for (Iterator<FileData> it = dir.getFiles().iterator(); it.hasNext(); ) { FileData f = it.next(); if (f instanceof Directory) { Directory d = (Directory) f; it.remove(); q.addLast(d); } } } return flat; }
public List<Directory> flatten() { List<Directory> flat = new ArrayList<Directory>(); LinkedList<Directory> q = new LinkedList<Directory>(); q.addLast(this); while (!q.isEmpty()) { Directory dir = q.removeFirst(); flat.add(dir); for (Iterator<FileData> it = dir.getFiles().iterator(); it.hasNext(); ) { FileData f = it.next(); if (f instanceof Directory) { Directory d = (Directory) f; it.remove(); q.addLast(d); } } } return flat; }
@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)); } }
@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(); } }
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(); } }
public void testMultipleSpatialASpatialFile() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); unpack("shape/bugsites_esri_prj.tar.gz", dir); FileUtils.touch(new File(dir, "foo.txt")); // TODO: don't rely on alphabetical order Directory d = new Directory(dir); d.prepare(); assertEquals(3, d.getFiles().size()); assertTrue(d.getFiles().get(0) instanceof SpatialFile); assertTrue(d.getFiles().get(1) instanceof SpatialFile); assertTrue(d.getFiles().get(2) instanceof ASpatialFile); } }
public void testMultipleSpatialFile() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); unpack("shape/bugsites_esri_prj.tar.gz", dir); Directory d = new Directory(dir); d.prepare(); assertEquals(2, d.getFiles().size()); assertTrue(d.getFiles().get(0) instanceof SpatialFile); assertTrue(d.getFiles().get(1) instanceof SpatialFile); }
public void testShapefileWithMacOSXDirectory() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); File osxDir = new File(dir, "__MACOSX"); osxDir.mkdir(); new File(osxDir, ".archsites.shp").createNewFile(); new File(osxDir, ".archsites.dbf").createNewFile(); new File(osxDir, ".archsites.prj").createNewFile(); Directory d = new Directory(dir); d.prepare(); assertNotNull(d.getFormat()); assertEquals(DataStoreFormat.class, d.getFormat().getClass()); List<FileData> files = d.getFiles(); assertEquals(1, files.size()); assertEquals(DataStoreFormat.class, files.get(0).getFormat().getClass()); }
public void testShapefileWithExtraFiles() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); // 'extra' files new File(dir, "archsites.shp.xml").createNewFile(); new File(dir, "archsites.sbx").createNewFile(); new File(dir, "archsites.sbn").createNewFile(); new File(dir, "archsites.shp.ed.lock").createNewFile(); Directory d = new Directory(dir); d.prepare(); assertNotNull(d.getFormat()); assertEquals(DataStoreFormat.class, d.getFormat().getClass()); List<FileData> files = d.getFiles(); assertEquals(1, files.size()); assertEquals(DataStoreFormat.class, files.get(0).getFormat().getClass()); }
public void testSingleSpatialFile() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); Directory d = new Directory(dir); d.prepare(); List<FileData> files = d.getFiles(); assertEquals(1, files.size()); assertTrue(files.get(0) instanceof SpatialFile); SpatialFile spatial = (SpatialFile) files.get(0); assertEquals("shp", FilenameUtils.getExtension(spatial.getFile().getName())); assertNotNull(spatial.getPrjFile().getName()); assertEquals("prj", FilenameUtils.getExtension(spatial.getPrjFile().getName())); assertEquals(2, spatial.getSuppFiles().size()); Set<String> exts = new HashSet<String>(Arrays.asList("shx", "dbf")); for (File supp : spatial.getSuppFiles()) { exts.remove(FilenameUtils.getExtension(supp.getName())); } assertTrue(exts.isEmpty()); }
@Test public void testCreateContextDirectoryHetero() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); unpack("geotiff/EmissiveCampania.tif.bz2", dir); Directory d = new Directory(dir); ImportContext context = importer.createContext(d); assertEquals(2, context.getTasks().size()); // cannot ensure order of tasks due to hashing HashSet files = new HashSet(); files.add(context.getTasks().get(0).getData()); files.add(context.getTasks().get(1).getData()); assertTrue(files.containsAll(d.getFiles())); }