Skip to content

Commit f94e26d

Browse files
committed
ScriptFinder: let the ctor take a Context instead
This is more flexible: if we need to require additional services later, we will not have to modify the constructor signature again.
1 parent f544fc1 commit f94e26d

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

src/main/java/org/scijava/script/DefaultScriptService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ private synchronized void initScripts() {
391391
final HashMap<String, ScriptInfo> map = new HashMap<>();
392392

393393
final ArrayList<ScriptInfo> scriptList = new ArrayList<>();
394-
new ScriptFinder(this).findScripts(scriptList);
394+
new ScriptFinder(context()).findScripts(scriptList);
395395

396396
for (final ScriptInfo info : scriptList) {
397397
map.put(info.getPath(), info);

src/main/java/org/scijava/script/ScriptFinder.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import java.util.Set;
3939

4040
import org.scijava.AbstractContextual;
41+
import org.scijava.Context;
4142
import org.scijava.MenuEntry;
4243
import org.scijava.MenuPath;
4344
import org.scijava.log.LogService;
@@ -59,14 +60,14 @@ public class ScriptFinder extends AbstractContextual {
5960

6061
private static final String SCRIPT_ICON = "/icons/script_code.png";
6162

62-
private final ScriptService scriptService;
63+
@Parameter
64+
private ScriptService scriptService;
6365

6466
@Parameter
6567
private LogService log;
6668

67-
public ScriptFinder(final ScriptService scriptService) {
68-
this.scriptService = scriptService;
69-
setContext(scriptService.getContext());
69+
public ScriptFinder(final Context context) {
70+
setContext(context);
7071
}
7172

7273
// -- ScriptFinder methods --
@@ -161,4 +162,12 @@ else if (scriptService.canHandleFile(file)) {
161162
return info;
162163
}
163164

165+
// -- Deprecated methods --
166+
167+
/** @deprecated Use {@link #ScriptFinder(Context)} instead. */
168+
@Deprecated
169+
public ScriptFinder(final ScriptService scriptService) {
170+
this(scriptService.context());
171+
}
172+
164173
}

src/test/java/org/scijava/script/ScriptFinderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ private ScriptService createScriptService() {
192192
}
193193

194194
private ArrayList<ScriptInfo> findScripts(final ScriptService scriptService) {
195-
final ScriptFinder scriptFinder = new ScriptFinder(scriptService);
195+
final ScriptFinder scriptFinder = new ScriptFinder(scriptService.context());
196196
final ArrayList<ScriptInfo> scripts = new ArrayList<>();
197197
scriptFinder.findScripts(scripts);
198198
Collections.sort(scripts);

0 commit comments

Comments
 (0)