@Nullable
    @Override
    protected TProtocolFactory protocolFactory(SerializationFormat serializationFormat,
                                               int maxStringLength, int maxContainerLength) {
        requireNonNull(serializationFormat, "serializationFormat");
        if (!serializationFormats().contains(serializationFormat)) {
            return null;
        }

        if (serializationFormat == ThriftSerializationFormats.BINARY) {
            return ThriftProtocolFactories.binary(maxStringLength, maxContainerLength);
        } else if (serializationFormat == ThriftSerializationFormats.COMPACT) {
            return ThriftProtocolFactories.compact(maxStringLength, maxContainerLength);
        } else if (serializationFormat == ThriftSerializationFormats.JSON) {
            return ThriftProtocolFactories.json();
        } else if (serializationFormat == ThriftSerializationFormats.TEXT) {
            return ThriftProtocolFactories.text();
        } else if (serializationFormat == ThriftSerializationFormats.TEXT_NAMED_ENUM) {
            return ThriftProtocolFactories.textNamedEnum();
        } else {
            // Should never reach here.
            throw new Error();
        }
    }
Default registered {@link ThriftProtocolFactoryProvider}.
It is not overridable but you may provide and register another implementation.
thrift/thrift0.13/src/main/java/com/linecorp/armeria/internal/common/thrift/DefaultThriftProtocolFactoryProvider.java