@Nullable
    @Override
    public DescriptiveTypeInfo newDescriptiveTypeInfo(Object typeDescriptor) {
        requireNonNull(typeDescriptor, "typeDescriptor");

        if (typeDescriptor instanceof Descriptor) {
            return newStructInfo((Descriptor) typeDescriptor);
        }
        if (typeDescriptor instanceof EnumDescriptor) {
            return newEnumInfo((EnumDescriptor) typeDescriptor);
        }

        if (!(typeDescriptor instanceof Class)) {
            return null;
        }

        final Class<?> clazz = (Class<?>) typeDescriptor;
        if (!isProtobufMessage(clazz)) {
            return null;
        }
        final Message.Builder messageBuilder = getMessageBuilder(clazz);
        final Descriptor descriptorForType = messageBuilder.getDescriptorForType();

        return newStructInfo(descriptorForType).withAlias(clazz.getName());
    }
A {@link DescriptiveTypeInfoProvider} to create a {@link DescriptiveTypeInfo}
from a protobuf {@link Message}.
protobuf/src/main/java/com/linecorp/armeria/server/protobuf/ProtobufDescriptiveTypeInfoProvider.java