public CompletableFuture apply()

in java/showcase/src/main/java/org/apache/flink/statefun/playground/java/showcase/part1/types/TypeSystemShowcaseFn.java [83:109]


  public CompletableFuture<Void> apply(Context context, Message message) {
    // All values, including messages and storage values, are handled via StateFun's type system.
    // StateFun ships built-in primitive types that handles de-/serialization of messages across
    // functions:
    if (message.isBoolean()) {
      final boolean val = message.asBoolean();
    } else if (message.isInt()) {
      final int val = message.asInt();
    } else if (message.isFloat()) {
      final float val = message.asFloat();
    } else if (message.isLong()) {
      final long val = message.asLong();
    } else if (message.isDouble()) {
      final double val = message.asDouble();
    } else if (message.isUtf8String()) {
      final String val = message.asUtf8String();
    } else if (message.is(USER_LOGIN_JSON_TYPE)) {
      // You can also define your own types using the type system, such as a JSON message, ...
      final UserLogin val = message.as(USER_LOGIN_JSON_TYPE);
    } else if (message.is(USER_PROFILE_PROTOBUF_TYPE)) {
      // ... or a Protobuf message!
      final UserProfile val = message.as(USER_PROFILE_PROTOBUF_TYPE);
    } else {
      throw new IllegalArgumentException("Unrecognized message type!");
    }
    return context.done();
  }