in model/src/main/java/jetbrains/jetpad/model/property/Properties.java [677:707]
public static <ValueT> ReadableProperty<ValueT> firstNotNull(final ReadableProperty<ValueT>... values) {
return new DerivedProperty<ValueT>(values) {
@Override
public ValueT doGet() {
for (ReadableProperty<ValueT> v : values) {
if (v.get() != null) {
return v.get();
}
}
return null;
}
@Override
public String getPropExpr() {
StringBuilder result = new StringBuilder();
result.append("firstNotNull(");
boolean first = true;
for (ReadableProperty<?> v : values) {
if (first) {
first = false;
} else {
result.append(", ");
}
result.append(v.getPropExpr());
}
result.append(")");
return result.toString();
}
};
}