### Question:
UnaryPredicateOperator { private static FunctionResolver isNotNull() { return FunctionDSL .define(BuiltinFunctionName.IS_NOT_NULL.getName(), Arrays.stream(ExprCoreType.values()) .map(type -> FunctionDSL .impl((v) -> ExprBooleanValue.of(!v.isNull()), BOOLEAN, type)) .collect( Collectors.toList())); }  static void register(BuiltinFunctionRepository repository); ExprValue not(ExprValue v);  }### Answer:
@Test public void is_not_null_predicate() { FunctionExpression expression = dsl.isnotnull(DSL.literal(1)); assertEquals(BOOLEAN, expression.type()); assertEquals(LITERAL_TRUE, expression.valueOf(valueEnv())); expression = dsl.isnotnull(DSL.literal(ExprNullValue.of())); assertEquals(BOOLEAN, expression.type()); assertEquals(LITERAL_FALSE, expression.valueOf(valueEnv())); }