aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages/Type.java
diff options
context:
space:
mode:
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.java24
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);