/** * Compares two instances of values of the given datatype. * This ignores lang tags and defers to the equality function * defined by the Xerces package - to be checked. */ @Override public boolean isEqual(LiteralLabel value1, LiteralLabel value2) { return typeDeclaration.isEqual(value1.getValue(), value2.getValue()); }
/** * Compares two instances of values of the given datatype. * This ignores lang tags and just uses the java.lang.Number * equality. */ @Override public boolean isEqual(LiteralLabel value1, LiteralLabel value2) { return value1.getDatatype() == value2.getDatatype() && Arrays.equals((byte[])value1.getValue(), (byte[])value2.getValue()); // && value1.getLexicalForm().equals(value2.getLexicalForm()); // bug tracking, not real code }
/** * Compares two instances of values of the given datatype. * This ignores lang tags and just uses the java.lang.Number * equality. */ @Override public boolean isEqual(LiteralLabel value1, LiteralLabel value2) { return value1.getDatatype() == value2.getDatatype() && value1.getValue().equals(value2.getValue()); } }
/** * Compares two instances of values of the given datatype. * This ignores lang tags and just uses the java.lang.Number * equality. */ @Override public boolean isEqual(LiteralLabel value1, LiteralLabel value2) { return value1.getDatatype() == value2.getDatatype() && value1.getValue().equals(value2.getValue()); } }
public static long nodeToLong(Node node) { LiteralLabel lit = node.getLiteral() ; if ( ! XSDDatatype.XSDinteger.isValidLiteral(lit) ) return Long.MIN_VALUE ; long i = ((Number)lit.getValue()).longValue() ; return i ; }
public static int nodeToInt(Node node) { LiteralLabel lit = node.getLiteral() ; if ( ! XSDDatatype.XSDinteger.isValidLiteral(lit) ) return Integer.MIN_VALUE ; int i = ((Number)lit.getValue()).intValue() ; return i ; }
public static long nodeToLong(Node node) { LiteralLabel lit = node.getLiteral() ; if ( ! XSDDatatype.XSDinteger.isValidLiteral(lit) ) return Long.MIN_VALUE ; long i = ((Number)lit.getValue()).longValue() ; return i ; }
public static int nodeToInt(Node node) { LiteralLabel lit = node.getLiteral() ; if ( ! XSDDatatype.XSDinteger.isValidLiteral(lit) ) return Integer.MIN_VALUE ; int i = ((Number)lit.getValue()).intValue() ; return i ; }
public static float nodeToFloat(Node node) { LiteralLabel lit = node.getLiteral(); if ( ! XSDDatatype.XSDfloat.isValidLiteral(lit) ) return Float.NaN; float f = ((Number)lit.getValue()).floatValue(); return f; }
public static double nodeToDouble(Node node) { LiteralLabel lit = node.getLiteral(); if ( ! XSDDatatype.XSDdouble.isValidLiteral(lit) ) return Double.NaN; double d = ((Number)lit.getValue()).doubleValue(); return d; }
@Override public Boolean booleanValue(Node node) { if(node.isLiteral()){ Object value = node.getLiteral().getValue(); if(value instanceof Boolean){ return (Boolean)value; } else { return super.booleanValue(node); } } else { throw new IllegalArgumentException("parsed node is not an Literal"); } }
@Override public int getHashCode( LiteralLabel lit ) { // Can't use super.getHashCode as that does "value.hashCode" // Java arrays are not equal by value and their hash code of the sameValue array are different. if ( lit.isWellFormed() ) return getHashCode( (byte []) lit.getValue() ); else return lit.getLexicalForm().hashCode() ; } }
@Override public Double doubleValue(Node node) { if(node.isLiteral()){ Object value = node.getLiteral().getValue(); if(value instanceof Double){ return (Double)value; } else { return super.doubleValue(node); } } else { throw new IllegalArgumentException("parsed node is not an Literal"); } }
@Override public Boolean booleanValue(Node node) { if(node.isLiteral()){ Object value = node.getLiteral().getValue(); if(value instanceof Boolean){ return (Boolean)value; } else { return super.booleanValue(node); } } else { throw new IllegalArgumentException("parsed node is not an Literal"); } }
@Override public Long longValue(Node node) { if(node.isLiteral()){ Object value = node.getLiteral().getValue(); if(value instanceof Long){ return (Long)value; } else { return super.longValue(node); } } else { throw new IllegalArgumentException("parsed node is not an Literal"); } }
@Override public Integer intValue(Node node) { if(node.isLiteral()){ Object value = node.getLiteral().getValue(); if(value instanceof Integer){ return (Integer)value; } else { return super.intValue(node); } } else { throw new IllegalArgumentException("parsed node is not an Literal"); } }
@Override public Date dateTimeValue(Node node) { if(node.isLiteral()){ Object value = node.getLiteral().getValue(); try { if(value instanceof XSDDateTime){ return ((XSDDateTime)value).asCalendar().getTime(); } } catch (RuntimeException e) { /*ignore*/} return super.dateTimeValue(node); } else { throw new IllegalArgumentException("parsed node is not an Literal"); } }