@Override public boolean isCoercibleTo(PDataType targetType, Object value) { if (value != null) { short i; if (equalsAny(targetType, PUnsignedDouble.INSTANCE, PUnsignedFloat.INSTANCE, PUnsignedLong.INSTANCE, PUnsignedInt.INSTANCE, PUnsignedSmallint.INSTANCE)) { i = (Short) value; return i >= 0; } else if (targetType == PUnsignedTinyint.INSTANCE) { i = (Short) value; return (i >= 0 && i <= Byte.MAX_VALUE); } else if (targetType == PTinyint.INSTANCE) { i = (Short) value; return (i >= Byte.MIN_VALUE && i <= Byte.MAX_VALUE); } } return super.isCoercibleTo(targetType, value); }
@Override public Short toObject(byte[] b, int o, int l, PDataType actualType, SortOrder sortOrder, Integer maxLength, Integer scale) { if (l == 0) { return null; } if (equalsAny(actualType, PSmallint.INSTANCE, PUnsignedSmallint.INSTANCE, PTinyint.INSTANCE, PUnsignedTinyint.INSTANCE, PLong.INSTANCE, PUnsignedLong.INSTANCE, PInteger.INSTANCE, PUnsignedInt.INSTANCE, PFloat.INSTANCE, PUnsignedFloat.INSTANCE, PDouble.INSTANCE, PUnsignedDouble.INSTANCE)) { return actualType.getCodec().decodeShort(b, o, sortOrder); } else if (actualType == PDecimal.INSTANCE) { BigDecimal bd = (BigDecimal)actualType.toObject(b, o, l, actualType, sortOrder); return bd.shortValueExact(); } throwConstraintViolationException(actualType,this); return null; }
@Override public boolean isCoercibleTo(PDataType targetType, Object value) { if (value != null) { short i; if (equalsAny(targetType, PUnsignedDouble.INSTANCE, PUnsignedFloat.INSTANCE, PUnsignedLong.INSTANCE, PUnsignedInt.INSTANCE, PUnsignedSmallint.INSTANCE)) { i = (Short) value; return i >= 0; } else if (targetType == PUnsignedTinyint.INSTANCE) { i = (Short) value; return (i >= 0 && i <= Byte.MAX_VALUE); } else if (targetType == PTinyint.INSTANCE) { i = (Short) value; return (i >= Byte.MIN_VALUE && i <= Byte.MAX_VALUE); } } return super.isCoercibleTo(targetType, value); }
@Override public boolean isCoercibleTo(PDataType targetType, Object value) { if (value != null) { short i; if (equalsAny(targetType, PUnsignedDouble.INSTANCE, PUnsignedFloat.INSTANCE, PUnsignedLong.INSTANCE, PUnsignedInt.INSTANCE, PUnsignedSmallint.INSTANCE)) { i = (Short) value; return i >= 0; } else if (targetType == PUnsignedTinyint.INSTANCE) { i = (Short) value; return (i >= 0 && i <= Byte.MAX_VALUE); } else if (targetType == PTinyint.INSTANCE) { i = (Short) value; return (i >= Byte.MIN_VALUE && i <= Byte.MAX_VALUE); } } return super.isCoercibleTo(targetType, value); }
@Override public Short toObject(byte[] b, int o, int l, PDataType actualType, SortOrder sortOrder, Integer maxLength, Integer scale) { if (l == 0) { return null; } if (equalsAny(actualType, PSmallint.INSTANCE, PUnsignedSmallint.INSTANCE, PTinyint.INSTANCE, PUnsignedTinyint.INSTANCE, PLong.INSTANCE, PUnsignedLong.INSTANCE, PInteger.INSTANCE, PUnsignedInt.INSTANCE, PFloat.INSTANCE, PUnsignedFloat.INSTANCE, PDouble.INSTANCE, PUnsignedDouble.INSTANCE)) { return actualType.getCodec().decodeShort(b, o, sortOrder); } else if (actualType == PDecimal.INSTANCE) { BigDecimal bd = (BigDecimal)actualType.toObject(b, o, l, actualType, sortOrder); return bd.shortValueExact(); } throwConstraintViolationException(actualType,this); return null; }
@Override public Short toObject(byte[] b, int o, int l, PDataType actualType, SortOrder sortOrder, Integer maxLength, Integer scale) { if (l == 0) { return null; } if (equalsAny(actualType, PSmallint.INSTANCE, PUnsignedSmallint.INSTANCE, PTinyint.INSTANCE, PUnsignedTinyint.INSTANCE, PLong.INSTANCE, PUnsignedLong.INSTANCE, PInteger.INSTANCE, PUnsignedInt.INSTANCE, PFloat.INSTANCE, PUnsignedFloat.INSTANCE, PDouble.INSTANCE, PUnsignedDouble.INSTANCE)) { return actualType.getCodec().decodeShort(b, o, sortOrder); } else if (actualType == PDecimal.INSTANCE) { BigDecimal bd = (BigDecimal)actualType.toObject(b, o, l, actualType, sortOrder); return bd.shortValueExact(); } throwConstraintViolationException(actualType,this); return null; }