当前位置: 首页>>代码示例>>Java>>正文


Java PropertyOrderStrategy.LEXICOGRAPHICAL属性代码示例

本文整理汇总了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();
}
 
开发者ID:eclipse,项目名称:yasson,代码行数:21,代码来源:JsonbConfigProperties.java

示例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;
}
 
开发者ID:apache,项目名称:johnzon,代码行数:50,代码来源:JsonbAccessMode.java


注:本文中的javax.json.bind.config.PropertyOrderStrategy.LEXICOGRAPHICAL属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。