class LocalProtocolSupportLoader implements ProtocolSupportLoaderProvider {

    private final ServiceContext serviceContext;

    @Override
    public String getProvider() {
        return "local";
    }

    @Override
    public Mono<LocalFileProtocolSupport> load(ProtocolSupportDefinition definition) {<FILL_FUNCTION_BODY>}
}


        return Mono
            .fromCallable(() -> {
                ValueObject config = ValueObject.of(definition.getConfiguration());

                String location = config
                    .getString("location")
                    .orElseThrow(() -> new IllegalArgumentException("location cannot be null"));
                String provider = config.get("provider")
                    .map(String::valueOf)
                    .map(String::trim)
                    .orElse(null);
                File file = new File(location);
                if (!file.exists()) {
                    throw new FileNotFoundException("文件" + file.getName() + "不存在");
                }

                LocalFileProtocolSupport support = new LocalFileProtocolSupport();
                support.init(file, serviceContext, provider);
                return support;
            })
            .subscribeOn(Schedulers.boundedElastic());
    
<no_super_class>