public static ReadableProperty firstNotNull()

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();
      }
    };
  }