Skip to content

Commit

Permalink
WIP: add support for enum literals
Browse files Browse the repository at this point in the history
  • Loading branch information
stelfrich committed Aug 8, 2016
1 parent b4e8a32 commit 0c50673
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 4 deletions.
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-expression-parser</artifactId>
<version>3.0.2-SNAPSHOT</version>
</dependency>

<!-- Third-party dependencies -->
Expand Down
11 changes: 10 additions & 1 deletion src/main/java/org/scijava/parse/DefaultParseService.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,19 @@

package org.scijava.parse;

import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.scijava.ItemPersistence;
import org.scijava.ItemVisibility;
import org.scijava.plugin.Plugin;
import org.scijava.service.AbstractService;
import org.scijava.service.Service;
import org.scijava.sjep.ExpressionParser;
import org.scijava.sjep.Operators;
import org.scijava.sjep.Variable;
import org.scijava.sjep.eval.DefaultEvaluator;
import org.scijava.util.ObjectArray;
Expand Down Expand Up @@ -99,7 +104,11 @@ public boolean isList() {
}

private void parseItems(final String arg) {
final DefaultEvaluator e = new DefaultEvaluator();
List<Enum> enums = new ArrayList<Enum>();
enums.add(ItemVisibility.NORMAL);
enums.add(ItemPersistence.DEFAULT);

final DefaultEvaluator e = new DefaultEvaluator(new ExpressionParser(Operators.standardList(), enums));
final Object result = e.evaluate("(" + arg + ")");
if (result == null) {
throw new IllegalStateException("Error parsing string: '" + arg + "'");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
import org.junit.Test;
import org.scijava.Context;
import org.scijava.ItemIO;
import org.scijava.ItemPersistence;
import org.scijava.command.Command;
import org.scijava.command.CommandService;
import org.scijava.plugin.Parameter;
Expand Down Expand Up @@ -123,7 +124,7 @@ public static class OpenSesame implements Command {
@Parameter(type = ItemIO.BOTH)
private StringBuilder buffer;

@Parameter(required = false, persist = false)
@Parameter(required = false, persist = ItemPersistence.NO)
private String magicWord;

@Override
Expand Down
4 changes: 2 additions & 2 deletions src/test/java/org/scijava/script/ScriptInfoTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ public void testParameters() {
"% @LogService(required = false) log\n" + //
"% @int(label=\"Slider Value\", softMin=5, softMax=15, " + //
"stepSize=3, value=11, style=\"slider\") sliderValue\n" + //
"% @String(persist = false, family='Carnivora', " + //
"% @String(persist = \"NO\", family='Carnivora', " + //
"choices={'quick brown fox', 'lazy dog'}) animal\n" + //
"% @BOTH java.lang.StringBuilder buffer";

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

Expand Down

0 comments on commit 0c50673

Please sign in to comment.