@Override public double doubleValue() { return getFloat(); } }
@Override public IPointable createPointable() { return new FloatPointable(); }
@Override public boolean operateDecimalFloat(XSDecimalPointable decp1, FloatPointable floatp2) throws SystemException, IOException { float float1 = decp1.floatValue(); float float2 = floatp2.floatValue(); if (Float.isNaN(floatp2.getFloat())) { return false; } return (float1 < float2); }
@Override public boolean operateFloatDouble(FloatPointable floatp1, DoublePointable doublep2) throws SystemException, IOException { double double1 = floatp1.doubleValue(); double double2 = doublep2.doubleValue(); if (Float.isNaN(floatp1.getFloat()) || Double.isNaN(double2)) { return false; } return (double1 == double2); }
@Override public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException { float floatValue = floatp.getFloat(); if (Float.isInfinite(floatValue) || Float.isNaN(floatValue)) { throw new SystemException(ErrorCode.FOCA0002); } if (floatValue > Integer.MAX_VALUE || floatValue < Integer.MIN_VALUE) { throw new SystemException(ErrorCode.FOCA0003); } if (floatp.byteValue() < 0 && !negativeAllowed) { throw new SystemException(ErrorCode.FORG0001); } dOut.write(returnTag); dOut.writeInt(floatp.intValue()); }
@Override public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException { float floatValue = floatp.getFloat(); if (Float.isInfinite(floatValue) || Float.isNaN(floatValue)) { throw new SystemException(ErrorCode.FOCA0002); } if (floatValue > Short.MAX_VALUE || floatValue < Short.MIN_VALUE) { throw new SystemException(ErrorCode.FOCA0003); } if (floatp.byteValue() < 0 && !negativeAllowed) { throw new SystemException(ErrorCode.FORG0001); } dOut.write(returnTag); dOut.writeShort(floatp.shortValue()); }
@Override public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException { float floatValue = floatp.getFloat(); if (Float.isInfinite(floatValue) || Float.isNaN(floatValue)) { throw new SystemException(ErrorCode.FOCA0002); } if (floatValue > Long.MAX_VALUE || floatValue < Long.MIN_VALUE) { throw new SystemException(ErrorCode.FOCA0003); } if ((floatp.longValue() < 0 && !negativeAllowed) || (floatp.longValue() > 0 && negativeRequired)) { throw new SystemException(ErrorCode.FORG0001); } dOut.write(returnTag); dOut.writeLong(floatp.longValue()); }
@Override public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException { float floatValue = floatp.getFloat(); if (Float.isInfinite(floatValue) || Float.isNaN(floatValue)) { throw new SystemException(ErrorCode.FOCA0002); } if (floatValue > Byte.MAX_VALUE || floatValue < Byte.MIN_VALUE) { throw new SystemException(ErrorCode.FOCA0003); } if (floatp.byteValue() < 0 && !negativeAllowed) { throw new SystemException(ErrorCode.FORG0001); } dOut.write(returnTag); dOut.write(floatp.byteValue()); }
@Override public void operateFloatFloat(FloatPointable floatp, FloatPointable floatp2, DataOutput dOut) throws SystemException, IOException { float value = floatp.floatValue(); value %= floatp2.floatValue(); dOut.write(ValueTag.XS_FLOAT_TAG); dOut.writeFloat(value); }
@Override public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException { double value = floatp.doubleValue(); dOut.write(ValueTag.XS_DOUBLE_TAG); dOut.writeDouble(value); }
@Override public void operateDTDurationFloat(LongPointable longp, FloatPointable floatp, DataOutput dOut) throws SystemException, IOException { if (Float.isNaN(floatp.floatValue())) { throw new SystemException(ErrorCode.FOCA0005); } if (floatp.floatValue() == 0.0f) { throw new SystemException(ErrorCode.FODT0002); } float value = longp.floatValue(); value /= floatp.intValue(); dOut.write(ValueTag.XS_DAY_TIME_DURATION_TAG); dOut.writeLong((long) value); }
@Override public int compareTo(IPointable pointer) { return compareTo(pointer.getByteArray(), pointer.getStartOffset(), pointer.getLength()); }
@Override public boolean operateFloatInteger(FloatPointable floatp1, LongPointable longp2) throws SystemException, IOException { float float1 = floatp1.floatValue(); float float2 = longp2.floatValue(); if (Float.isNaN(floatp1.getFloat())) { return false; } return (float1 < float2); }
@Override public boolean operateFloatDouble(FloatPointable floatp1, DoublePointable doublep2) throws SystemException, IOException { double double1 = floatp1.doubleValue(); double double2 = doublep2.doubleValue(); if (Float.isNaN(floatp1.getFloat()) || Double.isNaN(double2)) { return false; } return (double1 < double2); }
@Override public void operateFloatFloat(FloatPointable floatp1, FloatPointable floatp2, DataOutput dOut) throws SystemException, IOException { float value = floatp1.floatValue(); value /= floatp2.floatValue(); dOut.write(ValueTag.XS_FLOAT_TAG); dOut.writeFloat(value); }
@Override public void operateFloatDouble(FloatPointable floatp1, DoublePointable doublep2, DataOutput dOut) throws SystemException, IOException { double value = floatp1.doubleValue(); value /= doublep2.doubleValue(); dOut.write(ValueTag.XS_DOUBLE_TAG); dOut.writeDouble(value); }
@Override public double getValue(byte[] bytes, int offset) { return FloatPointable.getFloat(bytes, offset); } };