|
38 | 38 | import java.io.Reader; |
39 | 39 | import java.io.StringReader; |
40 | 40 | import java.text.SimpleDateFormat; |
41 | | -import java.util.Arrays; |
| 41 | +import java.util.ArrayList; |
42 | 42 | import java.util.Collections; |
43 | 43 | import java.util.Date; |
44 | 44 | import java.util.HashMap; |
@@ -450,10 +450,7 @@ private <T> void assignAttribute(final DefaultMutableModuleItem<T> item, |
450 | 450 | // CTR: There must be an easier way to do this. |
451 | 451 | // Just compile the thing using javac? Or parse via javascript, maybe? |
452 | 452 | if (is(k, "callback")) item.setCallback(as(v, String.class)); |
453 | | - else if (is(k, "choices")) { |
454 | | - // FIXME: Regex above won't handle {a,b,c} syntax. |
455 | | -// item.setChoices(list(v, item.getType())); |
456 | | - } |
| 453 | + else if (is(k, "choices")) item.setChoices(asList(v, item.getType())); |
457 | 454 | else if (is(k, "columns")) item.setColumnCount(as(v, int.class)); |
458 | 455 | else if (is(k, "description")) item.setDescription(as(v, String.class)); |
459 | 456 | else if (is(k, "initializer")) item.setInitializer(as(v, String.class)); |
@@ -484,6 +481,15 @@ private <T> T as(final Object v, final Class<T> type) { |
484 | 481 | return convertService.convert(v, type); |
485 | 482 | } |
486 | 483 |
|
| 484 | + private <T> List<T> asList(final Object v, final Class<T> type) { |
| 485 | + final ArrayList<T> result = new ArrayList<T>(); |
| 486 | + final List<?> list = as(v, List.class); |
| 487 | + for (final Object item : list) { |
| 488 | + result.add(as(item, type)); |
| 489 | + } |
| 490 | + return result; |
| 491 | + } |
| 492 | + |
487 | 493 | /** |
488 | 494 | * Read entire contents of a Reader and return as String. |
489 | 495 | * |
|
0 commit comments