@Override public long getLong() { if (isPlainLiteral()) { return Long.parseLong(getLexicalForm()); } else { return asNumber(getValue()).longValue(); } }
@Override public double getDouble() { if (isPlainLiteral()) { return Double.parseDouble(getLexicalForm()); } else { return asNumber(getValue()).doubleValue(); } }
@Override public float getFloat() { if (isPlainLiteral()) { return Float.parseFloat(getLexicalForm()); } else { return asNumber(getValue()).floatValue(); } }
@Override public byte getByte() { if (isPlainLiteral()) { return Byte.parseByte(getLexicalForm()); } else { return byteValue( asNumber( getValue() ) ); } }
@Override public int getInt() { if (isPlainLiteral()) { return Integer.parseInt(getLexicalForm()); } else { return intValue( asNumber( getValue() ) ); } }
@Override public short getShort() { if (isPlainLiteral()) { return Short.parseShort(getLexicalForm()); } else { return shortValue( asNumber( getValue() ) ); } }
@Override public char getChar() { if (isPlainLiteral()) { if (getString().length()==1) { return (getString().charAt(0)); } else { throw new BadCharLiteralException( getString() ); } } else { Object value = getValue(); if (value instanceof Character) { return ((Character) value).charValue(); } else { throw new DatatypeFormatException(value.toString() + " is not a Character"); } } }