ArangoDB 自己的转换器
ArangoDB own converters
如何添加我自己的 ArangoDB 配置转换器。
转换器示例。
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);
}
}
}
我的转换器的复制品如下所示:
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.ArangoDB.Builder" class "com.arangodb.springframework.config.AbstractArangoConfiguration".
中的构建器将新转换器添加到 ArangoDB 配置
您必须在您的配置 class 中覆盖 AbstractArangoConfiguration
中的方法 customConversions()
并在那里添加您的转换器。
public CustomConversions customConversions() {
Collection<Converter<?, ?>> converters = new ArrayList<>();
converters.addAll(XMLConverter.getConvertersToRegister());
converters.addAll(HTMLConverter.getConvertersToRegister());
return new ArangoCustomConversions(converters);
}
或者您将 ArangoCustomConversions
替换为我们自己的类 class BKArangoCustomConverters
.
public CustomConversions customConversions() {
return new BKArangoCustomConverters(Collections.emptyList());
}
如何添加我自己的 ArangoDB 配置转换器。
转换器示例。
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);
}
}
}
我的转换器的复制品如下所示:
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.ArangoDB.Builder" class "com.arangodb.springframework.config.AbstractArangoConfiguration".
中的构建器将新转换器添加到 ArangoDB 配置您必须在您的配置 class 中覆盖 AbstractArangoConfiguration
中的方法 customConversions()
并在那里添加您的转换器。
public CustomConversions customConversions() {
Collection<Converter<?, ?>> converters = new ArrayList<>();
converters.addAll(XMLConverter.getConvertersToRegister());
converters.addAll(HTMLConverter.getConvertersToRegister());
return new ArangoCustomConversions(converters);
}
或者您将 ArangoCustomConversions
替换为我们自己的类 class BKArangoCustomConverters
.
public CustomConversions customConversions() {
return new BKArangoCustomConverters(Collections.emptyList());
}