001 package com.thaiopensource.datatype.xsd; 002 003 import org.relaxng.datatype.ValidationContext; 004 005 class FloatDatatype extends DoubleDatatype { 006 007 Object getValue(String str, ValidationContext vc) { 008 if (str.equals("INF")) 009 return new Float(Float.POSITIVE_INFINITY); 010 if (str.equals("-INF")) 011 return new Float(Float.NEGATIVE_INFINITY); 012 if (str.equals("NaN")) 013 return new Float(Float.NaN); 014 return new Float(str); 015 } 016 017 public boolean isLessThan(Object obj1, Object obj2) { 018 return ((Float)obj1).floatValue() < ((Float)obj2).floatValue(); 019 } 020 021 public boolean sameValue(Object value1, Object value2) { 022 float f1 = ((Float)value1).floatValue(); 023 float f2 = ((Float)value2).floatValue(); 024 // NaN = NaN 025 return f1 == f2 || (f1 != f1 && f2 != f2); 026 } 027 }