Ejemplo n.º 1
0
  /**
   * Deserializes a transaction.
   *
   * @param options The deserialization options.
   * @param deserializer The deserializer.
   * @return The deserialized transaction.
   */
  private static Transaction deserialize(
      final VerifiableEntity.DeserializationOptions options, final Deserializer deserializer) {
    final int type = deserializer.readInt("type");

    final BiFunction<VerifiableEntity.DeserializationOptions, Deserializer, Transaction>
        constructor = TYPE_TO_CONSTRUCTOR_MAP.getOrDefault(type, null);
    if (null == constructor) {
      throw new IllegalArgumentException("Unknown transaction type: " + type);
    }

    return constructor.apply(options, deserializer);
  }