本文整理汇总了Java中javax.json.bind.config.PropertyOrderStrategy.LEXICOGRAPHICAL属性的典型用法代码示例。如果您正苦于以下问题:Java PropertyOrderStrategy.LEXICOGRAPHICAL属性的具体用法?Java PropertyOrderStrategy.LEXICOGRAPHICAL怎么用?Java PropertyOrderStrategy.LEXICOGRAPHICAL使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类javax.json.bind.config.PropertyOrderStrategy
的用法示例。
在下文中一共展示了PropertyOrderStrategy.LEXICOGRAPHICAL属性的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: initOrderStrategy
private PropOrderStrategy initOrderStrategy() {
final Optional<Object> property = jsonbConfig.getProperty(JsonbConfig.PROPERTY_ORDER_STRATEGY);
if (property.isPresent()) {
final Object strategy = property.get();
if (!(strategy instanceof String)) {
throw new JsonbException(Messages.getMessage(MessageKeys.PROPERTY_ORDER, strategy));
}
switch ((String) strategy) {
case PropertyOrderStrategy.LEXICOGRAPHICAL:
return new LexicographicalOrderStrategy();
case PropertyOrderStrategy.REVERSE:
return new ReverseOrderStrategy();
case PropertyOrderStrategy.ANY:
return new AnyOrderStrategy();
default:
throw new JsonbException(Messages.getMessage(MessageKeys.PROPERTY_ORDER, strategy));
}
}
//default by spec
return new LexicographicalOrderStrategy();
}
示例2: orderComparator
private Comparator<String> orderComparator(final Class<?> clazz) {
final Comparator<String> keyComparator;
final JsonbPropertyOrder orderAnnotation = Meta.getAnnotation(clazz, JsonbPropertyOrder.class);
if (orderAnnotation != null) {
final List<String> indexed = new ArrayList<>(asList(orderAnnotation.value()));
if (naming != null) { // JsonbPropertyOrder applies on java names
for (int i = 0; i < indexed.size(); i++) {
indexed.set(i, naming.translateName(indexed.get(i)));
}
}
keyComparator = (o1, o2) -> {
final int i1 = indexed.indexOf(o1);
final int i2 = indexed.indexOf(o2);
if (i1 < 0) {
if (i2 < 0) {
if (order != null) {
switch (order) {
case PropertyOrderStrategy.LEXICOGRAPHICAL:
return o1.compareTo(o2);
case PropertyOrderStrategy.REVERSE:
return o2.compareTo(o1);
case PropertyOrderStrategy.ANY:
default:
return 1;
}
}
}
return 1;
}
return i1 - i2;
};
} else if (order != null) {
switch (order) {
case PropertyOrderStrategy.ANY:
keyComparator = null;
break;
case PropertyOrderStrategy.LEXICOGRAPHICAL:
keyComparator = String::compareTo;
break;
case PropertyOrderStrategy.REVERSE:
keyComparator = Comparator.reverseOrder();
break;
default:
keyComparator = null;
}
} else {
keyComparator = null;
}
return keyComparator;
}