diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages/Type.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/Type.java | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Type.java b/src/main/java/com/google/devtools/build/lib/packages/Type.java index 633f0e6faf..e869096e95 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/Type.java +++ b/src/main/java/com/google/devtools/build/lib/packages/Type.java @@ -84,26 +84,38 @@ public abstract class Type<T> { // this over selectableConvert. /** - * Equivalent to {@code convert(x, what, null)}. Useful for converting values to types that do not - * involve the type {@code LABEL} and hence do not require the label of the current package. + * Equivalent to {@link #convert(Object, String, Label)} where the label is {@code null}. + * Useful for converting values to types that do not involve the type {@code LABEL} + * and hence do not require the label of the current package. */ public final T convert(Object x, String what) throws ConversionException { return convert(x, what, null); } /** - * Like {@code convert(x, what, label)}, but converts skylark {@code None} to java {@code null}. + * Like {@link #convert(Object, String, Label)}, but converts skylark {@code None} + * to given {@code defaultValue}. */ - @Nullable public final T convertOptional (Object x, String what, @Nullable Label currentRule) + @Nullable public final T convertOptional(Object x, + String what, @Nullable Label currentRule, T defaultValue) throws ConversionException { if (EvalUtils.isNullOrNone(x)) { - return null; + return defaultValue; } return convert(x, what, currentRule); } /** - * Like {@code convert(x, what)}, but converts skylark {@code NONE} to java {@code null}. + * Like {@link #convert(Object, String, Label)}, but converts skylark {@code None} + * to java {@code null}. + */ + @Nullable public final T convertOptional(Object x, String what, @Nullable Label currentRule) + throws ConversionException { + return convertOptional(x, what, currentRule, null); + } + + /** + * Like {@link #convert(Object, String)}, but converts skylark {@code NONE} to java {@code null}. */ @Nullable public final T convertOptional(Object x, String what) throws ConversionException { return convertOptional(x, what, null); |