Skip to content

Commit 7125dd6

Browse files
committed
Fix Workspace lookup issues.
1 parent b9c6e88 commit 7125dd6

5 files changed

Lines changed: 18 additions & 11 deletions

File tree

src/main/groovy/geoscript/workspace/Directory.groovy

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,15 @@ class Directory extends Workspace {
133133
Map params = [:]
134134
if (!str.contains("=") && str.endsWith(".shp")) {
135135
if (str.startsWith("file:/")) {
136-
params.put("url", URLs.fileToUrl(URLs.urlToFile(new URL(str)).getAbsoluteFile().getParentFile()))
136+
params.put("type","shapefile")
137+
params.put("file", URLs.urlToFile(new URL(str)).getAbsoluteFile().getParentFile())
137138
} else {
138-
params.put("url", URLs.fileToUrl(new File(str).getAbsoluteFile().getParentFile()))
139+
params.put("type","shapefile")
140+
params.put("file",new File(str).getAbsoluteFile().getParentFile())
139141
}
140142
} else if (!str.contains("=") && new File(str).isDirectory()) {
141-
params.put("url", new File(str).toURL())
143+
params.put("type","shapefile")
144+
params.put("file", new File(str))
142145
} else {
143146
params = super.getParametersFromString(str)
144147
}
@@ -149,7 +152,10 @@ class Directory extends Workspace {
149152
Directory create(String type, Map params) {
150153
if (type.equalsIgnoreCase('shapefile') && params.containsKey('file')) {
151154
File file = params.get('file') instanceof File ? params.get('file') : new File(params.get('file'))
152-
super.create([url: URLs.fileToUrl(file.absoluteFile)])
155+
if (!file.isDirectory()) {
156+
file = file.parentFile
157+
}
158+
new Directory(file)
153159
} else if (type.equalsIgnoreCase('shapefile') && params.containsKey('url') && params.containsKey("dir")) {
154160
URL url = params.get('url') instanceof URL ? params.get('url') : new URL(params.get('url'))
155161
File dir = params.get('dir') instanceof File ? params.get('dir') : new File(params.get('dir'))
@@ -159,7 +165,7 @@ class Directory extends Workspace {
159165
File file = File.createTempFile("download",".zip")
160166
GeoScript.download(url, file, overwrite: params.get("overwrite", true) as boolean)
161167
GeoScript.unzip(file, dir)
162-
super.create([url: URLs.fileToUrl(dir.absoluteFile)])
168+
new Directory(dir)
163169
} else {
164170
null
165171
}

src/main/groovy/geoscript/workspace/FlatGeobuf.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ class FlatGeobuf extends Workspace {
7474
if (!file.isDirectory()) {
7575
file = file.parentFile
7676
}
77+
params.put("type", "flatgeobuf")
7778
params.put("url", URLs.fileToUrl(file))
7879
} else {
7980
params = super.getParametersFromString(str)
@@ -85,7 +86,6 @@ class FlatGeobuf extends Workspace {
8586
FlatGeobuf create(String type) {
8687
if (!type.contains("=") && type.endsWith(".fgb")) {
8788
File file = new File(type)
88-
println "File = ${file.absolutePath}"
8989
new FlatGeobuf(file.isDirectory() ? file : file.getParentFile())
9090
} else {
9191
null

src/main/groovy/geoscript/workspace/Geobuf.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ class Geobuf extends Workspace {
9292
if (!file.isDirectory()) {
9393
file = file.parentFile
9494
}
95+
params.put("type", "geobuf")
9596
params.put("file", file.absolutePath)
9697
} else {
9798
params = super.getParametersFromString(str)
@@ -106,7 +107,7 @@ class Geobuf extends Workspace {
106107
if (!file.isDirectory()) {
107108
file = file.parentFile
108109
}
109-
super.create([file: file])
110+
new Geobuf(file)
110111
} else {
111112
null
112113
}

src/main/groovy/geoscript/workspace/Workspace.groovy

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package geoscript.workspace
22

3-
import geoscript.GeoScript
43
import geoscript.feature.Feature
54
import geoscript.feature.Field
65
import geoscript.feature.Schema

src/test/groovy/geoscript/workspace/WorkspaceTestCase.groovy

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,10 @@ class WorkspaceTestCase {
9595

9696
// Shapefile
9797
params = Workspace.getParametersFromString("/my/states.shp")
98-
assertTrue(params.containsKey("url"))
99-
assertTrue(params["url"] instanceof URL)
100-
assertTrue(params["url"].toString().endsWith("my"))
98+
assertEquals("shapefile", params.type)
99+
assertTrue(params.containsKey("file"))
100+
assertTrue(params["file"] instanceof File)
101+
assertTrue(params["file"].toString().endsWith("my"))
101102

102103
params = Workspace.getParametersFromString("url='/my/states.shp' 'create spatial index'=true")
103104
assertTrue(params.containsKey("url"))

0 commit comments

Comments
 (0)