@Override public double getValue(byte[] bytes, int offset) { return DoublePointable.getDouble(bytes, offset); } };
@Override public boolean operateDoubleDecimal(DoublePointable doublep1, XSDecimalPointable decp2) throws SystemException, IOException { double double1 = doublep1.doubleValue(); double double2 = decp2.doubleValue(); if (Double.isNaN(doublep1.getDouble())) { return false; } return (double1 < double2); }
@Override public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException { double doubleValue = doublep.getDouble(); if (Double.isInfinite(doubleValue) || Double.isNaN(doubleValue)) { throw new SystemException(ErrorCode.FOCA0002); } if (doubleValue > Integer.MAX_VALUE || doubleValue < Integer.MIN_VALUE) { throw new SystemException(ErrorCode.FOCA0003); } if (doublep.byteValue() < 0 && !negativeAllowed) { throw new SystemException(ErrorCode.FORG0001); } dOut.write(returnTag); dOut.writeInt(doublep.intValue()); }
@Override public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException { double doubleValue = doublep.getDouble(); if (Double.isInfinite(doubleValue) || Double.isNaN(doubleValue)) { throw new SystemException(ErrorCode.FOCA0002); } if (doubleValue > Short.MAX_VALUE || doubleValue < Short.MIN_VALUE) { throw new SystemException(ErrorCode.FOCA0003); } if (doublep.byteValue() < 0 && !negativeAllowed) { throw new SystemException(ErrorCode.FORG0001); } dOut.write(returnTag); dOut.writeShort(doublep.shortValue()); }
@Override public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException { double doubleValue = doublep.getDouble(); if (Double.isInfinite(doubleValue) || Double.isNaN(doubleValue)) { throw new SystemException(ErrorCode.FOCA0002); } if (doubleValue > Byte.MAX_VALUE || doubleValue < Byte.MIN_VALUE) { throw new SystemException(ErrorCode.FOCA0003); } if (doublep.byteValue() < 0 && !negativeAllowed) { throw new SystemException(ErrorCode.FORG0001); } dOut.write(returnTag); dOut.write(doublep.byteValue()); }
@Override public void operateDTDurationDTDuration(LongPointable longp1, LongPointable longp2, DataOutput dOut) throws SystemException, IOException { double value = longp1.longValue(); value /= longp2.longValue(); abvsInner.reset(); doublep.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), DoublePointable.TYPE_TRAITS.getFixedLength()); doublep.setDouble(value); CastToDecimalOperation castToDecmial = new CastToDecimalOperation(); castToDecmial.convertDouble(doublep, dOut); }
@Override public void operateDoubleDouble(DoublePointable doublep1, DoublePointable doublep2, DataOutput dOut) throws SystemException, IOException { double value = doublep1.doubleValue(); value += doublep2.doubleValue(); dOut.write(ValueTag.XS_DOUBLE_TAG); dOut.writeDouble(value); }
public void setDouble(double value) { setDouble(bytes, start, value); }
@Override public int compareTo(IPointable pointer) { return compareTo(pointer.getByteArray(), pointer.getStartOffset(), pointer.getLength()); }
@Override public IPointable createPointable() { return new DoublePointable(); }
@Override public boolean operateDecimalDouble(XSDecimalPointable decp1, DoublePointable doublep2) throws SystemException, IOException { double double1 = decp1.doubleValue(); double double2 = doublep2.doubleValue(); if (Double.isNaN(doublep2.getDouble())) { return false; } return (double1 < double2); }
@Override public void operateDecimalDecimal(XSDecimalPointable decp1, XSDecimalPointable decp2, DataOutput dOut) throws SystemException, IOException { // Prepare double value1 = decp1.doubleValue(); double value2 = decp2.doubleValue(); if (value2 == 0) { throw new SystemException(ErrorCode.FOAR0001); } // Divide value1 /= value2; // Save abvsInner.reset(); doublep.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), DoublePointable.TYPE_TRAITS.getFixedLength()); doublep.setDouble(value1); CastToDecimalOperation castToDecmial = new CastToDecimalOperation(); castToDecmial.convertDouble(doublep, dOut); }
@Override public void operateDoubleDouble(DoublePointable doublep1, DoublePointable doublep2, DataOutput dOut) throws SystemException, IOException { double value = doublep1.doubleValue(); value %= doublep2.doubleValue(); dOut.write(ValueTag.XS_DOUBLE_TAG); dOut.writeDouble(value); }
@Override public short shortValue() { return (short) getDouble(); }
@Override public boolean operateDoubleDecimal(DoublePointable doublep1, XSDecimalPointable decp2) throws SystemException, IOException { double double1 = doublep1.doubleValue(); double double2 = decp2.doubleValue(); if (Double.isNaN(doublep1.getDouble())) { return false; } return (double1 == double2); }
@Override public void operateYMDurationYMDuration(IntegerPointable intp, IntegerPointable intp2, DataOutput dOut) throws SystemException, IOException { if (intp2.getInteger() == 0) { throw new SystemException(ErrorCode.FOAR0001); } double value = intp.intValue(); value /= intp2.intValue(); abvsInner.reset(); doublep.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), DoublePointable.TYPE_TRAITS.getFixedLength()); doublep.setDouble(value); CastToDecimalOperation castToDecmial = new CastToDecimalOperation(); castToDecmial.convertDouble(doublep, dOut); }