Skip to content

Commit 0c50673

Browse files
committed
WIP: add support for enum literals
1 parent b4e8a32 commit 0c50673

File tree

4 files changed

+15
-4
lines changed

4 files changed

+15
-4
lines changed

pom.xml

+1
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
<dependency>
107107
<groupId>org.scijava</groupId>
108108
<artifactId>scijava-expression-parser</artifactId>
109+
<version>3.0.2-SNAPSHOT</version>
109110
</dependency>
110111

111112
<!-- Third-party dependencies -->

src/main/java/org/scijava/parse/DefaultParseService.java

+10-1
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,19 @@
3131

3232
package org.scijava.parse;
3333

34+
import java.util.ArrayList;
3435
import java.util.Collections;
3536
import java.util.LinkedHashMap;
3637
import java.util.List;
3738
import java.util.Map;
3839

40+
import org.scijava.ItemPersistence;
41+
import org.scijava.ItemVisibility;
3942
import org.scijava.plugin.Plugin;
4043
import org.scijava.service.AbstractService;
4144
import org.scijava.service.Service;
45+
import org.scijava.sjep.ExpressionParser;
46+
import org.scijava.sjep.Operators;
4247
import org.scijava.sjep.Variable;
4348
import org.scijava.sjep.eval.DefaultEvaluator;
4449
import org.scijava.util.ObjectArray;
@@ -99,7 +104,11 @@ public boolean isList() {
99104
}
100105

101106
private void parseItems(final String arg) {
102-
final DefaultEvaluator e = new DefaultEvaluator();
107+
List<Enum> enums = new ArrayList<Enum>();
108+
enums.add(ItemVisibility.NORMAL);
109+
enums.add(ItemPersistence.DEFAULT);
110+
111+
final DefaultEvaluator e = new DefaultEvaluator(new ExpressionParser(Operators.standardList(), enums));
103112
final Object result = e.evaluate("(" + arg + ")");
104113
if (result == null) {
105114
throw new IllegalStateException("Error parsing string: '" + arg + "'");

src/test/java/org/scijava/command/run/CommandCodeRunnerTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.junit.Test;
4545
import org.scijava.Context;
4646
import org.scijava.ItemIO;
47+
import org.scijava.ItemPersistence;
4748
import org.scijava.command.Command;
4849
import org.scijava.command.CommandService;
4950
import org.scijava.plugin.Parameter;
@@ -123,7 +124,7 @@ public static class OpenSesame implements Command {
123124
@Parameter(type = ItemIO.BOTH)
124125
private StringBuilder buffer;
125126

126-
@Parameter(required = false, persist = false)
127+
@Parameter(required = false, persist = ItemPersistence.NO)
127128
private String magicWord;
128129

129130
@Override

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public void testParameters() {
142142
"% @LogService(required = false) log\n" + //
143143
"% @int(label=\"Slider Value\", softMin=5, softMax=15, " + //
144144
"stepSize=3, value=11, style=\"slider\") sliderValue\n" + //
145-
"% @String(persist = false, family='Carnivora', " + //
145+
"% @String(persist = \"NO\", family='Carnivora', " + //
146146
"choices={'quick brown fox', 'lazy dog'}) animal\n" + //
147147
"% @BOTH java.lang.StringBuilder buffer";
148148

@@ -165,7 +165,7 @@ public void testParameters() {
165165
final List<String> animalChoices = //
166166
Arrays.asList("quick brown fox", "lazy dog");
167167
assertItem("animal", String.class, null, ItemIO.INPUT, true,
168-
ItemPersistence.DEFAULT, null, null, null, null, null, null, null, null,
168+
ItemPersistence.NO, null, null, null, null, null, null, null, null,
169169
animalChoices, animal);
170170
assertEquals(animal.get("family"), "Carnivora"); // test custom attribute
171171

0 commit comments

Comments
 (0)