protected <JavaTypeT> TypeCodec<JavaTypeT> codecFor(
      GenericType<JavaTypeT> javaType, boolean isJavaCovariant) {
    LOG.trace(
        "[{}] Looking up codec for Java type {} (covariant = {})",
        logPrefix,
        javaType,
        isJavaCovariant);
    for (TypeCodec<?> primitiveCodec : primitiveCodecs) {
      if (matches(primitiveCodec, javaType, isJavaCovariant)) {
        LOG.trace("[{}] Found matching primitive codec {}", logPrefix, primitiveCodec);
        return uncheckedCast(primitiveCodec);
      }
    }
    for (TypeCodec<?> userCodec : userCodecs) {
      if (matches(userCodec, javaType, isJavaCovariant)) {
        LOG.trace("[{}] Found matching user codec {}", logPrefix, userCodec);
        return uncheckedCast(userCodec);
      }
    }
    return uncheckedCast(getCachedCodec(null, javaType, isJavaCovariant));
  }
protected < JavaTypeT > TypeCodec < JavaTypeT > codecFor ( GenericType < JavaTypeT > javaType , boolean isJavaCovariant ) { LOG . trace ( "[{}] Looking up codec for Java type {} (covariant = {})" , logPrefix , javaType , isJavaCovariant ) ; for ( TypeCodec < ? > primitiveCodec : primitiveCodecs ) { if ( matches ( primitiveCodec , javaType , isJavaCovariant ) ) { LOG . trace ( "[{}] Found matching primitive codec {}" , logPrefix , primitiveCodec ) ; return uncheckedCast ( primitiveCodec ) ; } } for ( TypeCodec < ? > userCodec : userCodecs ) { if ( matches ( userCodec , javaType , isJavaCovariant ) ) { LOG . trace ( "[{}] Found matching user codec {}" , logPrefix , userCodec ) ; return uncheckedCast ( userCodec ) ; } } return uncheckedCast ( getCachedCodec ( null , javaType , isJavaCovariant ) ) ; }
Not exposed publicly, (isJavaCovariant=true) is only used for internal recursion