首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArangoDB自带变换器

ArangoDB自带变换器
EN

Stack Overflow用户
提问于 2018-04-14 08:50:51
回答 1查看 159关注 0票数 0

如何添加我自己的ArangoDB配置转换器。

转换器的一个例子。

代码语言:javascript
复制
public class HTMLConverter {

    private static final boolean HTML_DESCRIPTION_IS_PRESENT = ClassUtils.isPresent("com.b.k.api.domain.extend.HTML", null);

    public static Collection<Converter<?, ?>> getConvertersToRegister() {
        if (!HTML_DESCRIPTION_IS_PRESENT) {
            return Collections.emptySet();
        }
        final List<Converter<?, ?>> converters = new ArrayList<>();
        converters.add(HtmlToStringConverter.INSTANCE);

        converters.add(StringToHtmlConverter.INSTANCE);
        return converters;
    }

    public enum HtmlToStringConverter implements Converter<HTML, String> {
        INSTANCE;

        @Override
        public String convert(final HTML source) {
            return source == null ? null : source.getXml();
        }
    }

    public enum StringToHtmlConverter implements Converter<String, HTML> {
        INSTANCE;

        @Override
        public HTML convert(final String source) {
            return source == null ? null : new HTML(source);
        }
    }
}

我的转换器的复制如下:

代码语言:javascript
复制
public class BKArangoCustomConverters extends CustomConversions {

    private static final StoreConversions STORE_CONVERSIONS;

    static {
        final Collection<Converter<?, ?>> converters = new ArrayList<>();
        converters.addAll(XMLConverter.getConvertersToRegister());
        converters.addAll(HTMLConverter.getConvertersToRegister());
        STORE_CONVERSIONS = StoreConversions.of(SimpleTypeHolder.DEFAULT, converters);
    }

    protected BKArangoCustomConverters(Collection<?> converters) {
        super(converters);
    }
}

有人问我如何使用扩展类"com.arangodb.springframework.config.AbstractArangoConfiguration".中的构建器"com.arangodb.ArangoDB.Builder“将新的转换器添加到ArangoDB配置中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-16 12:03:57

您必须在配置类中重写来自AbstractArangoConfiguration的方法AbstractArangoConfiguration,并在那里添加转换器。

代码语言:javascript
复制
public CustomConversions customConversions() {
  Collection<Converter<?, ?>> converters = new ArrayList<>();
  converters.addAll(XMLConverter.getConvertersToRegister());
  converters.addAll(HTMLConverter.getConvertersToRegister());
  return new ArangoCustomConversions(converters);
}

或者用我们自己的clasn类ArangoCustomConversions替换BKArangoCustomConverters

代码语言:javascript
复制
public CustomConversions customConversions() {
  return new BKArangoCustomConverters(Collections.emptyList());
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49829599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档