Polish default value for arrays

See gh-1996
This commit is contained in:
Stephane Nicoll 2014-12-03 17:32:00 +01:00
parent f821fdfffa
commit 509201907c
4 changed files with 11 additions and 3 deletions

View File

@ -144,8 +144,9 @@ The JSON object contained in the `properties` array can contain the following at
|`defaultValue`
| Object
| The default value which will be used if the property is not specified. May be omitted
if the default value is not known.
| The default value which will be used if the property is not specified. Can also be an
array of value(s) if the type of the property is an array. May be omitted if the default
value is not known.
|`deprecated`
| boolean

View File

@ -124,7 +124,11 @@ public class JavaCompilerFieldValuesParser implements FieldValuesParser {
if (arrayValues != null) {
Object[] result = new Object[arrayValues.size()];
for (int i = 0; i < arrayValues.size(); i++) {
result[i] = getValue(arrayValues.get(i), null);
Object value = getValue(arrayValues.get(i), null);
if (value == null) { // One of the elements could not be resolved
return defaultValue;
}
result[i] = value;
}
return result;
}

View File

@ -84,6 +84,7 @@ public abstract class AbstractFieldValuesProcessorTests {
assertThat(values.get("stringArrayConst"), equalToObject(new Object[]{"OK", "KO"}));
assertThat(values.get("stringArrayConstElements"), equalToObject(new Object[] {"c"}));
assertThat(values.get("integerArray"), equalToObject(new Object[] {42, 24}));
assertThat(values.get("unknownArray"), nullValue());
}
private Matcher<Object> equalToObject(Object object) {

View File

@ -90,4 +90,6 @@ public class FieldValues {
private Integer[] integerArray = new Integer[] {42, 24};
private FieldValues[] unknownArray = new FieldValues[] {new FieldValues()};
}