Revision: 5166 http://sourceforge.net/p/jump-pilot/code/5166 Author: edso Date: 2016-11-06 14:23:06 +0000 (Sun, 06 Nov 2016) Log Message: ----------- generalize FILE/URI ReaderWriterDatasource fix somewhat
Modified Paths: -------------- core/trunk/src/com/vividsolutions/jump/io/datasource/ReaderWriterFileDataSource.java Modified: core/trunk/src/com/vividsolutions/jump/io/datasource/ReaderWriterFileDataSource.java =================================================================== --- core/trunk/src/com/vividsolutions/jump/io/datasource/ReaderWriterFileDataSource.java 2016-11-06 12:49:20 UTC (rev 5165) +++ core/trunk/src/com/vividsolutions/jump/io/datasource/ReaderWriterFileDataSource.java 2016-11-06 14:23:06 UTC (rev 5166) @@ -31,6 +31,7 @@ */ package com.vividsolutions.jump.io.datasource; +import java.io.File; import java.net.URI; import java.util.ArrayList; import java.util.Collection; @@ -81,8 +82,10 @@ throw new UnsupportedOperationException("reading is not supported"); try { + DriverProperties dp = getReaderDriverProperties(); + fixUpDriverProperties(dp); + // make readers task monitor aware - DriverProperties dp = getReaderDriverProperties(); URI uri = new URI(dp.getProperty(DataSource.URI_KEY)); if (reader instanceof TaskMonitorSupport) { ((TaskMonitorSupport) reader).setTaskMonitor(monitor); @@ -113,15 +116,11 @@ if (!isWritable()) throw new UnsupportedOperationException("writing is not supported"); + DriverProperties dp = getWriterDriverProperties(); + fixUpDriverProperties(dp); + // make readers task monitor aware - DriverProperties dp = getWriterDriverProperties(); - URI uri = null; - if (dp.getProperty(DataSource.URI_KEY) != null) { - uri = new URI(dp.getProperty(DataSource.URI_KEY)); - if (dp.getProperty(DataSource.FILE_KEY) == null) { - dp.setProperty(DataSource.FILE_KEY, uri.getPath()); - } - } + URI uri = new URI(dp.getProperty(DataSource.URI_KEY)); if (writer instanceof TaskMonitorSupport) { ((TaskMonitorSupport) writer).setTaskMonitor(monitor); TaskMonitorUtil @@ -173,16 +172,33 @@ return getDriverProperties(); } - protected DriverProperties getDriverProperties() { + protected DriverProperties getDriverProperties(){ DriverProperties properties = new DriverProperties(); Map<Object,Object> map = getProperties(); - // explicitely copy into properties object or getProperty() returns null + + // explicitly copy into properties object or getProperty() returns null for (Map.Entry entry : map.entrySet()){ properties.setProperty(String.valueOf(entry.getKey()), (String.valueOf(entry.getValue()))); } + return properties; } + private DriverProperties fixUpDriverProperties(DriverProperties dp) + throws Exception { + // fixup the properties: generate FILE from URI and the other way around + // some _old_ Drivers expect a FILE property to be set, let's generate it + // from URI in case it is missing + String uri = dp.getProperty(DataSource.URI_KEY); + String file = dp.getProperty(DataSource.FILE_KEY); + if (file == null && uri != null) + dp.setProperty(DataSource.FILE_KEY, new URI(uri).getPath()); + else if (file != null && uri == null) + dp.setProperty(DataSource.URI_KEY, new File(file).toURI().toString()); + + return dp; + } + @Override public boolean isReadable() { return reader instanceof JUMPReader; ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today. http://sdm.link/xeonphi _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel