📄 sqltinyint.java
字号:
/** @exception StandardException if outsideRangeForTinyint */ public void setValue(int theValue) throws StandardException { if (theValue > Byte.MAX_VALUE || theValue < Byte.MIN_VALUE) throw StandardException.newException(SQLState.LANG_OUTSIDE_RANGE_FOR_DATATYPE, "TINYINT"); value = (byte)theValue; isnull = false; } /** @exception StandardException if outsideRangeForTinyint */ public void setValue(long theValue) throws StandardException { if (theValue > Byte.MAX_VALUE || theValue < Byte.MIN_VALUE) throw StandardException.newException(SQLState.LANG_OUTSIDE_RANGE_FOR_DATATYPE, "TINYINT"); value = (byte)theValue; isnull = false; } /** * @see NumberDataValue#setValue * * @exception StandardException Thrown on error */ public void setValue(float theValue) throws StandardException { theValue = NumberDataType.normalizeREAL(theValue); if (theValue > Byte.MAX_VALUE || theValue < Byte.MIN_VALUE) throw StandardException.newException(SQLState.LANG_OUTSIDE_RANGE_FOR_DATATYPE, "TINYINT"); float floorValue = (float)Math.floor(theValue); value = (byte)floorValue; isnull = false; } /** * @see NumberDataValue#setValue * * @exception StandardException Thrown on error */ public void setValue(double theValue) throws StandardException { theValue = NumberDataType.normalizeDOUBLE(theValue); if (theValue > Byte.MAX_VALUE || theValue < Byte.MIN_VALUE) throw outOfRange(); double floorValue = Math.floor(theValue); value = (byte)floorValue; isnull = false; } /** * @see NumberDataValue#setValue * */ public void setValue(boolean theValue) { value = theValue?(byte)1:(byte)0; isnull = false; } /** * @see DataValueDescriptor#setValue * * @exception StandardException Thrown on error */ public void setValue(Object theValue) throws StandardException { if (theValue == null) { setToNull(); } else if (theValue instanceof Number) { this.setValue(((Number)theValue).byteValue()); } else { genericSetObject(theValue); } } protected void setFrom(DataValueDescriptor theValue) throws StandardException { setValue(theValue.getByte()); } /* * DataValueDescriptor interface */ /** @see DataValueDescriptor#typePrecedence */ public int typePrecedence() { return TypeId.TINYINT_PRECEDENCE; } /* ** SQL Operators */ /** * The = operator as called from the language module, as opposed to * the storage module. * * @param left The value on the left side of the = * @param right The value on the right side of the = * * @return A SQL boolean value telling whether the two parameters are equal * * @exception StandardException Thrown on error */ public BooleanDataValue equals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException { return SQLBoolean.truthValue(left, right, left.getByte() == right.getByte()); } /** * The <> operator as called from the language module, as opposed to * the storage module. * * @param left The value on the left side of the <> * @param right The value on the right side of the <> * * @return A SQL boolean value telling whether the two parameters * are not equal * * @exception StandardException Thrown on error */ public BooleanDataValue notEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException { return SQLBoolean.truthValue(left, right, left.getByte() != right.getByte()); } /** * The < operator as called from the language module, as opposed to * the storage module. * * @param left The value on the left side of the < * @param right The value on the right side of the < * * @return A SQL boolean value telling whether the first operand is less * than the second operand * * @exception StandardException Thrown on error */ public BooleanDataValue lessThan(DataValueDescriptor left, DataValueDescriptor right) throws StandardException { return SQLBoolean.truthValue(left, right, left.getByte() < right.getByte()); } /** * The > operator as called from the language module, as opposed to * the storage module. * * @param left The value on the left side of the > * @param right The value on the right side of the > * * @return A SQL boolean value telling whether the first operand is greater * than the second operand * * @exception StandardException Thrown on error */ public BooleanDataValue greaterThan(DataValueDescriptor left, DataValueDescriptor right) throws StandardException { return SQLBoolean.truthValue(left, right, left.getByte() > right.getByte()); } /** * The <= operator as called from the language module, as opposed to * the storage module. * * @param left The value on the left side of the <= * @param right The value on the right side of the <= * * @return A SQL boolean value telling whether the first operand is less * than or equal to the second operand * * @exception StandardException Thrown on error */ public BooleanDataValue lessOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException { return SQLBoolean.truthValue(left, right, left.getByte() <= right.getByte()); } /** * The >= operator as called from the language module, as opposed to * the storage module. * * @param left The value on the left side of the >= * @param right The value on the right side of the >= * * @return A SQL boolean value telling whether the first operand is greater * than or equal to the second operand * * @exception StandardException Thrown on error */ public BooleanDataValue greaterOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException { return SQLBoolean.truthValue(left, right, left.getByte() >= right.getByte()); } /** * This method implements the * operator for "tinyint * tinyint". * * @param left The first value to be multiplied * @param right The second value to be multiplied * @param result The result of a previous call to this method, null * if not called yet * * @return A SQLTinyint containing the result of the multiplication * * @exception StandardException Thrown on error */ public NumberDataValue times(NumberDataValue left, NumberDataValue right, NumberDataValue result) throws StandardException { if (result == null) { result = new SQLTinyint(); } if (left.isNull() || right.isNull()) { result.setToNull(); return result; } /* ** Java does not check for overflow with integral types. We have to ** check the result ourselves. ** ** The product of 2 bytes is an int, so we check to see if the product ** is in the range of values for a byte. */ int product = left.getByte() * right.getByte(); result.setValue(product); return result; } /** mod(tinyint, tinyint) */ public NumberDataValue mod(NumberDataValue dividend, NumberDataValue divisor, NumberDataValue result) throws StandardException { if (result == null) { result = new SQLTinyint(); } if (dividend.isNull() || divisor.isNull()) { result.setToNull(); return result; } /* Catch divide by 0 */ byte byteDivisor = divisor.getByte(); if (byteDivisor == 0) { throw StandardException.newException(SQLState.LANG_DIVIDE_BY_ZERO); } result.setValue(dividend.getByte() % byteDivisor); return result; } /** * This method implements the unary minus operator for tinyint. * * @param result The result of a previous call to this method, null * if not called yet * * @return A SQLTinyint containing the result of the division * * @exception StandardException Thrown on error */ public NumberDataValue minus(NumberDataValue result) throws StandardException { if (result == null) { result = new SQLTinyint(); } if (this.isNull()) { result.setToNull(); return result; } int operandValue = this.getByte(); result.setValue(-operandValue); return result; } /** * This method implements the isNegative method. * * @return A boolean. If this.value is negative, return true. * For positive values or null, return false. */ protected boolean isNegative() { return !isNull() && value < 0; } /* * String display of value */ public String toString() { if (isNull()) return "NULL"; else return Byte.toString(value); } /* * Hash code */ public int hashCode() { return (int) value; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -