code: public static final <T,R> Function<T,R> ifNullOrTrueThenElse(
              final Type<T> targetType, 
              final IFunction<? super T, Boolean> condition, final IFunction<? super T,R> thenFunction, final IFunction<? super T,R> elseFunction) {
          return ifTrueThenElse(targetType, FnBoolean.or(FnObject.isNull(),condition), thenFunction, elseFunction);
      }
docs: <p>
  Builds a function that will execute the specified function <tt>thenFunction</tt>
  only if the target object is null or the result of executing <tt>condition</tt>
  on the target object is true, and will execute the specified function
  <tt>elseFunction</tt> otherwise.
  </p>
  <p>
  The built function can effectively change the target type (receive <tt>T</tt> and
  return <tt>R</tt>) if both <tt>thenFunction</tt> and <tt>elseFunction</tt> return
  the same type, and this is different than the target type <tt>T</tt>.
  </p>
  
  @param targetType the target type
  @param condition the condition to be executed on the target object
  @param thenFunction the function to be executed on the target object if
  target is null or the result of executing condition on it is true
  @param elseFunction the function to be executed on the target object otherwise
  @return a function that executes the "thenFunction" if target is null or "condition" is true, and "elseFunction" otherwise.