@Override
  TupleValue encodeFromJavaInternal(
      Tuple8<A, B, C, D, E, F, G, H> tuple8, Optional<CassandraOptions> cassandraOptions) {
    if (LOGGER.isTraceEnabled()) {
      LOGGER.trace(format("Encode from Java '%s' tuple8 %s to CQL type", fieldName, tuple8));
    }

    return getRuntimeTupleType(cassandraOptions)
        .newValue(
            aProperty.encodeFromRaw(tuple8._1(), cassandraOptions),
            bProperty.encodeFromRaw(tuple8._2(), cassandraOptions),
            cProperty.encodeFromRaw(tuple8._3(), cassandraOptions),
            dProperty.encodeFromRaw(tuple8._4(), cassandraOptions),
            eProperty.encodeFromRaw(tuple8._5(), cassandraOptions),
            fProperty.encodeFromRaw(tuple8._6(), cassandraOptions),
            gProperty.encodeFromRaw(tuple8._7(), cassandraOptions),
            hProperty.encodeFromRaw(tuple8._8(), cassandraOptions));
  }