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


Java XMLDatatypeUtil类代码示例

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


XMLDatatypeUtil类属于org.openrdf.model.datatypes包,在下文中一共展示了XMLDatatypeUtil类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: parseXMLDatatype

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入依赖的package包/类
/**
 * Parse the data type of an XML entity based on its string content
 *
 * @param input The XML entity, in string form
 * @return The entity instance, properly classed
 */
public static Object parseXMLDatatype( String input ) {
	if ( input == null ) {
		return null;
	}
	input = input.trim();
	String[] pieces = input.split( "\"" );
	if ( pieces.length != 3 ) {
		return removeExtraneousDoubleQuotes( input );
	}
	Class<?> theClass = null;
	for ( URI datatypeUri : TYPELOOKUP.keySet() ) {
		if ( pieces[2].contains( datatypeUri.stringValue() ) ) {
			theClass = TYPELOOKUP.get( datatypeUri );
		}
	}
	String dataPiece = pieces[1];
	if ( theClass == Double.class && XMLDatatypeUtil.isValidDouble( dataPiece ) ) {
		return XMLDatatypeUtil.parseDouble( dataPiece );
	}
	if ( theClass == Float.class && XMLDatatypeUtil.isValidFloat( dataPiece ) ) {
		return XMLDatatypeUtil.parseFloat( dataPiece );
	}
	if ( theClass == Integer.class && XMLDatatypeUtil.isValidInteger( dataPiece ) ) {
		return XMLDatatypeUtil.parseInteger( dataPiece );
	}
	if ( theClass == Boolean.class && XMLDatatypeUtil.isValidBoolean( dataPiece ) ) {
		return XMLDatatypeUtil.parseBoolean( dataPiece );
	}
	if ( theClass == Date.class && XMLDatatypeUtil.isValidDate( dataPiece ) ) {
		return XMLDatatypeUtil.parseCalendar( dataPiece );
	}
	return removeExtraneousDoubleQuotes( input );
}
 
开发者ID:Ostrich-Emulators,项目名称:semtool,代码行数:40,代码来源:RDFDatatypeTools.java

示例3: convertToInstant

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入依赖的package包/类
private Instant convertToInstant(Literal literal) {
    String stringVal = literal.getLabel();
    URI dataType = literal.getDatatype();
    checkArgument(dataType.equals(XMLSchema.DATETIME) || dataType.equals(XMLSchema.DATE),
            String.format("Invalid data type for date time. Data Type must be of type %s or %s .", XMLSchema.DATETIME, XMLSchema.DATE));
    checkArgument(XMLDatatypeUtil.isValidDateTime(stringVal) || XMLDatatypeUtil.isValidDate(stringVal), "Invalid date time value.");
    return literal.calendarValue().toGregorianCalendar().toInstant();
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:9,代码来源:DateTimeWithinPeriod.java

示例4: convertPeriodToMillis

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入依赖的package包/类
private long convertPeriodToMillis(Literal literal, URI unit) {
    String stringVal = literal.getLabel();
    URI dataType = literal.getDatatype();
    checkArgument(dataType.equals(XMLSchema.INTEGER) || dataType.equals(XMLSchema.INT), String
            .format("Invalid data type for period duration. Data Type must be of type %s or %s .", XMLSchema.INTEGER, XMLSchema.INT));
    checkArgument(XMLDatatypeUtil.isValidInteger(stringVal) || XMLDatatypeUtil.isValidInt(stringVal), "Invalid duration value.");
    return convertToMillis(Integer.parseInt(stringVal), unit);
}
 
开发者ID:apache,项目名称:incubator-rya,代码行数:9,代码来源:DateTimeWithinPeriod.java

示例5: isDatatype

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入依赖的package包/类
public boolean isDatatype() {
	if (self instanceof URI
			&& XMLDatatypeUtil.isBuiltInDatatype((URI) self))
		return true;
	if (self.equals(RDFS.LITERAL))
		return true;
	if (self instanceof URI) {
		URI uri = (URI) self;
		if (uri.getNamespace().equals(RDF.NAMESPACE)
				&& uri.getLocalName().equals("PlainLiteral"))
			return true;
	}
	return isA(RDFS.DATATYPE);
}
 
开发者ID:anno4j,项目名称:anno4j,代码行数:15,代码来源:RDFClass.java

示例6: 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.isCalendarDatatype(dt)) {
      try {
        return new GeneralDBNumberValue(getCalendarValue(lit.calendarValue()));
      } catch (IllegalArgumentException e) {
        return null;
      }
    }
  }
  return null;
}
 
开发者ID:esarbanis,项目名称:strabon,代码行数:15,代码来源:GeneralDBTimeExprFactory.java

示例7: 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

示例8: 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

示例9: createLiteral

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入依赖的package包/类
@Override
public Literal createLiteral(final String label, final URI datatype) {
    try {
        if (datatype == null) {
            return new StringLiteral(label, (String) null);
        } else if (datatype.equals(XMLSchema.STRING)) {
            return new StringLiteral(label, XMLSchema.STRING);
        } else if (datatype.equals(XMLSchema.BOOLEAN)) {
            final boolean value = XMLDatatypeUtil.parseBoolean(label);
            return value ? BooleanLiteralImpl.TRUE : BooleanLiteralImpl.FALSE;
        } else if (datatype.equals(XMLSchema.INT)) {
            return new LongLiteral(XMLSchema.INT, XMLDatatypeUtil.parseInt(label));
        } else if (datatype.equals(XMLSchema.LONG)) {
            return new LongLiteral(XMLSchema.LONG, XMLDatatypeUtil.parseLong(label));
        } else if (datatype.equals(XMLSchema.SHORT)) {
            return new LongLiteral(XMLSchema.SHORT, XMLDatatypeUtil.parseShort(label));
        } else if (datatype.equals(XMLSchema.BYTE)) {
            return new LongLiteral(XMLSchema.BYTE, XMLDatatypeUtil.parseByte(label));
        } else if (datatype.equals(XMLSchema.DOUBLE)) {
            return new DoubleLiteral(XMLSchema.DOUBLE, XMLDatatypeUtil.parseDouble(label));
        } else if (datatype.equals(XMLSchema.FLOAT)) {
            return new DoubleLiteral(XMLSchema.FLOAT, XMLDatatypeUtil.parseFloat(label));
        } else if (datatype.equals(XMLSchema.DATETIME) || datatype.equals(XMLSchema.DATE)
                || datatype.equals(XMLSchema.TIME) || datatype.equals(XMLSchema.GYEARMONTH)
                || datatype.equals(XMLSchema.GMONTHDAY) || datatype.equals(XMLSchema.GYEAR)
                || datatype.equals(XMLSchema.GMONTH) || datatype.equals(XMLSchema.GDAY)) {
            return createLiteral(XMLDatatypeUtil.parseCalendar(label));
        } else if (datatype.equals(XMLSchema.DECIMAL)) {
            return new BigDecimalLiteral(datatype, XMLDatatypeUtil.parseDecimal(label));
        } else if (datatype.equals(XMLSchema.INTEGER)
                || datatype.equals(XMLSchema.NON_NEGATIVE_INTEGER)
                || datatype.equals(XMLSchema.POSITIVE_INTEGER)
                || datatype.equals(XMLSchema.NEGATIVE_INTEGER)) {
            return new BigIntegerLiteral(datatype, XMLDatatypeUtil.parseInteger(label));
        } else {
            return new StringLiteral(label, datatype);
        }
    } catch (final Throwable ex) {
        LOGGER.warn("Illegal literal: '" + label + "'^^<" + datatype + "> (dropping datatype)");
        return createLiteral(label);
    }
}
 
开发者ID:dkmfbk,项目名称:knowledgestore,代码行数:43,代码来源:CompactValueFactory.java

示例10: booleanValue

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入依赖的package包/类
@Override
public boolean booleanValue() {
    return XMLDatatypeUtil.parseBoolean(getLabel());
}
 
开发者ID:dkmfbk,项目名称:knowledgestore,代码行数:5,代码来源:CompactValueFactory.java

示例11: integerValue

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入依赖的package包/类
@Override
public BigInteger integerValue() {
    return XMLDatatypeUtil.parseInteger(getLabel());
}
 
开发者ID:dkmfbk,项目名称:knowledgestore,代码行数:5,代码来源:CompactValueFactory.java

示例12: decimalValue

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入依赖的package包/类
@Override
public BigDecimal decimalValue() {
    return XMLDatatypeUtil.parseDecimal(getLabel());
}
 
开发者ID:dkmfbk,项目名称:knowledgestore,代码行数:5,代码来源:CompactValueFactory.java

示例13: calendarValue

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入依赖的package包/类
@Override
public XMLGregorianCalendar calendarValue() {
    return XMLDatatypeUtil.parseCalendar(getLabel());
}
 
开发者ID:dkmfbk,项目名称:knowledgestore,代码行数:5,代码来源:CompactValueFactory.java

示例14: calendarValue

import org.openrdf.model.datatypes.XMLDatatypeUtil; //导入依赖的package包/类
/**
 * Returns the {@link javax.xml.datatype.XMLGregorianCalendar} value of this literal. A calendar
 * representation can be given for literals whose label conforms to the
 * syntax of the following <a href="http://www.w3.org/TR/xmlschema-2/">XML
 * Schema datatypes</a>: <tt>dateTime</tt>, <tt>time</tt>,
 * <tt>date</tt>, <tt>gYearMonth</tt>, <tt>gMonthDay</tt>,
 * <tt>gYear</tt>, <tt>gMonth</tt> or <tt>gDay</tt>.
 *
 * @return The calendar value of the literal.
 * @throws IllegalArgumentException If the literal cannot be represented by a
 *                                  {@link javax.xml.datatype.XMLGregorianCalendar}.
 */
@Override
public XMLGregorianCalendar calendarValue() {
    try {
        return XMLDatatypeUtil.parseCalendar(getLabel());
    } catch(IllegalArgumentException ex) {
        // try harder to parse the label, sometimes they have stupid formats ...
        Date cv = DateUtils.parseDate(getLabel());
        return DateUtils.getXMLCalendar(cv);
    }
}
 
开发者ID:apache,项目名称:marmotta,代码行数:23,代码来源:KiWiLiteral.java


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