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


Java XMLDatatypeUtil.isNumericDatatype方法代码示例

本文整理汇总了Java中org.openrdf.model.datatypes.XMLDatatypeUtil.isNumericDatatype方法的典型用法代码示例。如果您正苦于以下问题:Java XMLDatatypeUtil.isNumericDatatype方法的具体用法?Java XMLDatatypeUtil.isNumericDatatype怎么用?Java XMLDatatypeUtil.isNumericDatatype使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.openrdf.model.datatypes.XMLDatatypeUtil的用法示例。


在下文中一共展示了XMLDatatypeUtil.isNumericDatatype方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: compareDatatypes

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入方法依赖的package包/类
/**
 * Compares two literal datatypes and indicates if one should be ordered after the other. This
 * algorithm ensures that compatible ordered datatypes (numeric and date/time) are grouped
 * together so that {@link QueryEvaluationUtil#compareLiterals(Literal, Literal, CompareOp)} is
 * used in consecutive ordering steps.
 */
private int compareDatatypes(URI leftDatatype, URI rightDatatype) {
  if (XMLDatatypeUtil.isNumericDatatype(leftDatatype)) {
    if (XMLDatatypeUtil.isNumericDatatype(rightDatatype)) {
      // both are numeric datatypes
      return compareURIs(leftDatatype, rightDatatype);
    } else {
      return -1;
    }
  } else if (XMLDatatypeUtil.isNumericDatatype(rightDatatype)) {
    return 1;
  } else if (XMLDatatypeUtil.isCalendarDatatype(leftDatatype)) {
    if (XMLDatatypeUtil.isCalendarDatatype(rightDatatype)) {
      // both are calendar datatypes
      return compareURIs(leftDatatype, rightDatatype);
    } else {
      return -1;
    }
  } else if (XMLDatatypeUtil.isCalendarDatatype(rightDatatype)) {
    return 1;
  } else {
    // incompatible or unordered datatypes
    return compareURIs(leftDatatype, rightDatatype);
  }
}
 
开发者ID:esarbanis,项目名称:strabon,代码行数:31,代码来源:StSPARQLValueComparator.java

示例2: valueOf

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入方法依赖的package包/类
private GeneralDBSqlExpr valueOf(Value value) {
  if (value instanceof Literal) {
    Literal lit = (Literal) value;
    URI dt = lit.getDatatype();
    if (dt != null && XMLDatatypeUtil.isNumericDatatype(dt)) {
      try {
        return new GeneralDBDoubleValue(lit.doubleValue());
      } catch (NumberFormatException e) {
        return null;
      }
    }
  }
  return null;
}
 
开发者ID:esarbanis,项目名称:strabon,代码行数:15,代码来源:GeneralDBNumericExprFactory.java

示例3: update

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入方法依赖的package包/类
@Override
public void update(final AggregationElement aggregation, final AggregationState state, final VisibilityBindingSet childBindingSet) {
    checkArgument(aggregation.getAggregationType() == AggregationType.AVERAGE, "The AverageFunction only accepts AVERAGE AggregationElements.");
    requireNonNull(state);
    requireNonNull(childBindingSet);

    // Only update the average if the child contains the binding that we are averaging.
    final String aggregatedName = aggregation.getAggregatedBindingName();
    if(childBindingSet.hasBinding(aggregatedName)) {
        final MapBindingSet result = state.getBindingSet();
        final String resultName = aggregation.getResultBindingName();
        final boolean newBinding = !result.hasBinding(resultName);

        // Get the state of the average.
        final Map<String, AverageState> averageStates = state.getAverageStates();
        AverageState averageState = newBinding ? new AverageState() : averageStates.get(resultName);

        // Update the state of the average.
        final Value childValue = childBindingSet.getValue(aggregatedName);
        if(childValue instanceof Literal) {
            final Literal childLiteral = (Literal) childValue;
            if (childLiteral.getDatatype() != null && XMLDatatypeUtil.isNumericDatatype(childLiteral.getDatatype())) {
                try {
                    // Update the sum.
                    final Literal oldSum = new DecimalLiteralImpl(averageState.getSum());
                    final BigDecimal sum = MathUtil.compute(oldSum, childLiteral, MathOp.PLUS).decimalValue();

                    // Update the count.
                    final BigInteger count = averageState.getCount().add( BigInteger.ONE );

                    // Update the BindingSet to include the new average.
                    final Literal sumLiteral = new DecimalLiteralImpl(sum);
                    final Literal countLiteral = new IntegerLiteralImpl(count);
                    final Literal average = MathUtil.compute(sumLiteral, countLiteral, MathOp.DIVIDE);
                    result.addBinding(resultName, average);

                    // Update the average state that is stored.
                    averageState = new AverageState(sum, count);
                    averageStates.put(resultName, averageState);
                } catch (final ValueExprEvaluationException e) {
                    log.error("A problem was encountered while updating an Average Aggregation. This binding set will be ignored: " + childBindingSet);
                    return;
                }
            }
        }
    }
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:48,代码来源:AverageFunction.java


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