@Override public void operateDTDurationFloat(LongPointable longp, FloatPointable floatp, DataOutput dOut) throws SystemException, IOException { long value = longp.longValue(); value *= floatp.longValue(); dOut.write(ValueTag.XS_DAY_TIME_DURATION_TAG); dOut.writeLong(value); }
@Override public void operateDTDurationFloat(LongPointable longp1, FloatPointable floatp2, DataOutput dOut) throws SystemException, IOException { long value = longp1.longValue(); value += floatp2.longValue(); dOut.write(ValueTag.XS_DAY_TIME_DURATION_TAG); dOut.writeLong(value); }
@Override public void operateDTDurationFloat(LongPointable longp, FloatPointable floatp, DataOutput dOut) throws SystemException, IOException { long value = longp.longValue(); value -= floatp.longValue(); dOut.write(ValueTag.XS_DAY_TIME_DURATION_TAG); dOut.writeLong(value); }
@Override public void operateFloatDTDuration(FloatPointable floatp, LongPointable longp, DataOutput dOut) throws SystemException, IOException { long value = floatp.longValue(); value -= longp.longValue(); dOut.write(ValueTag.XS_DAY_TIME_DURATION_TAG); dOut.writeLong(value); }
@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()); }