proguard.evaluation.value.IntegerValue Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of proguard-core Show documentation
Show all versions of proguard-core Show documentation
ProGuardCORE is a free library to read, analyze, modify, and write Java class files.
/*
* ProGuardCORE -- library to process Java bytecode.
*
* Copyright (c) 2002-2020 Guardsquare NV
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package proguard.evaluation.value;
import proguard.classfile.TypeConstants;
/**
* Representation of a partially evaluated integer value.
*
* @author Eric Lafortune
*/
public abstract class IntegerValue extends Category1Value
{
/**
* Returns the specific integer value, if applicable.
*/
public int value()
{
return 0;
}
// Basic unary methods.
/**
* Returns the negated value of this IntegerValue.
*/
public abstract IntegerValue negate();
/**
* Converts this IntegerValue to a byte IntegerValue.
*/
public abstract IntegerValue convertToByte();
/**
* Converts this IntegerValue to a character IntegerValue.
*/
public abstract IntegerValue convertToCharacter();
/**
* Converts this IntegerValue to a short IntegerValue.
*/
public abstract IntegerValue convertToShort();
/**
* Converts this IntegerValue to a LongValue.
*/
public abstract LongValue convertToLong();
/**
* Converts this IntegerValue to a FloatValue.
*/
public abstract FloatValue convertToFloat();
/**
* Converts this IntegerValue to a DoubleValue.
*/
public abstract DoubleValue convertToDouble();
// Basic binary methods.
/**
* Returns the generalization of this IntegerValue and the given other
* IntegerValue.
*/
public abstract IntegerValue generalize(IntegerValue other);
/**
* Returns the sum of this IntegerValue and the given IntegerValue.
*/
public abstract IntegerValue add(IntegerValue other);
/**
* Returns the difference of this IntegerValue and the given IntegerValue.
*/
public abstract IntegerValue subtract(IntegerValue other);
/**
* Returns the difference of the given IntegerValue and this IntegerValue.
*/
public abstract IntegerValue subtractFrom(IntegerValue other);
/**
* Returns the product of this IntegerValue and the given IntegerValue.
*/
public abstract IntegerValue multiply(IntegerValue other)
throws ArithmeticException;
/**
* Returns the quotient of this IntegerValue and the given IntegerValue.
*/
public abstract IntegerValue divide(IntegerValue other)
throws ArithmeticException;
/**
* Returns the quotient of the given IntegerValue and this IntegerValue.
*/
public abstract IntegerValue divideOf(IntegerValue other)
throws ArithmeticException;
/**
* Returns the remainder of this IntegerValue divided by the given
* IntegerValue.
*/
public abstract IntegerValue remainder(IntegerValue other)
throws ArithmeticException;
/**
* Returns the remainder of the given IntegerValue divided by this
* IntegerValue.
*/
public abstract IntegerValue remainderOf(IntegerValue other)
throws ArithmeticException;
/**
* Returns this IntegerValue, shifted left by the given IntegerValue.
*/
public abstract IntegerValue shiftLeft(IntegerValue other);
/**
* Returns this IntegerValue, shifted right by the given IntegerValue.
*/
public abstract IntegerValue shiftRight(IntegerValue other);
/**
* Returns this unsigned IntegerValue, shifted left by the given
* IntegerValue.
*/
public abstract IntegerValue unsignedShiftRight(IntegerValue other);
/**
* Returns the given IntegerValue, shifted left by this IntegerValue.
*/
public abstract IntegerValue shiftLeftOf(IntegerValue other);
/**
* Returns the given IntegerValue, shifted right by this IntegerValue.
*/
public abstract IntegerValue shiftRightOf(IntegerValue other);
/**
* Returns the given unsigned IntegerValue, shifted left by this
* IntegerValue.
*/
public abstract IntegerValue unsignedShiftRightOf(IntegerValue other);
/**
* Returns the given LongValue, shifted left by this IntegerValue.
*/
public abstract LongValue shiftLeftOf(LongValue other);
/**
* Returns the given LongValue, shifted right by this IntegerValue.
*/
public abstract LongValue shiftRightOf(LongValue other);
/**
* Returns the given unsigned LongValue, shifted right by this IntegerValue.
*/
public abstract LongValue unsignedShiftRightOf(LongValue other);
/**
* Returns the logical and of this IntegerValue and the given
* IntegerValue.
*/
public abstract IntegerValue and(IntegerValue other);
/**
* Returns the logical or of this IntegerValue and the given
* IntegerValue.
*/
public abstract IntegerValue or(IntegerValue other);
/**
* Returns the logical xor of this IntegerValue and the given
* IntegerValue.
*/
public abstract IntegerValue xor(IntegerValue other);
/**
* Returns whether this IntegerValue and the given IntegerValue are equal:
* NEVER
, MAYBE
, or ALWAYS
.
*/
public abstract int equal(IntegerValue other);
/**
* Returns whether this IntegerValue is less than the given IntegerValue:
* NEVER
, MAYBE
, or ALWAYS
.
*/
public abstract int lessThan(IntegerValue other);
/**
* Returns whether this IntegerValue is less than or equal to the given
* IntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public abstract int lessThanOrEqual(IntegerValue other);
// Derived binary methods.
/**
* Returns whether this IntegerValue and the given IntegerValue are different:
* NEVER
, MAYBE
, or ALWAYS
.
*/
public final int notEqual(IntegerValue other)
{
return -equal(other);
}
/**
* Returns whether this IntegerValue is greater than the given IntegerValue:
* NEVER
, MAYBE
, or ALWAYS
.
*/
public final int greaterThan(IntegerValue other)
{
return -lessThanOrEqual(other);
}
/**
* Returns whether this IntegerValue is greater than or equal to the given IntegerValue:
* NEVER
, MAYBE
, or ALWAYS
.
*/
public final int greaterThanOrEqual(IntegerValue other)
{
return -lessThan(other);
}
// Similar binary methods, but this time with unknown arguments.
/**
* Returns the generalization of this IntegerValue and the given other
* UnknownIntegerValue.
*/
public IntegerValue generalize(UnknownIntegerValue other)
{
return generalize((IntegerValue)other);
}
/**
* Returns the sum of this IntegerValue and the given UnknownIntegerValue.
*/
public IntegerValue add(UnknownIntegerValue other)
{
return add((IntegerValue)other);
}
/**
* Returns the difference of this IntegerValue and the given UnknownIntegerValue.
*/
public IntegerValue subtract(UnknownIntegerValue other)
{
return subtract((IntegerValue)other);
}
/**
* Returns the difference of the given UnknownIntegerValue and this IntegerValue.
*/
public IntegerValue subtractFrom(UnknownIntegerValue other)
{
return subtractFrom((IntegerValue)other);
}
/**
* Returns the product of this IntegerValue and the given UnknownIntegerValue.
*/
public IntegerValue multiply(UnknownIntegerValue other)
{
return multiply((IntegerValue)other);
}
/**
* Returns the quotient of this IntegerValue and the given
* UnknownIntegerValue.
*/
public IntegerValue divide(UnknownIntegerValue other)
{
return divide((IntegerValue)other);
}
/**
* Returns the quotient of the given UnknownIntegerValue and this
* IntegerValue.
*/
public IntegerValue divideOf(UnknownIntegerValue other)
{
return divideOf((IntegerValue)other);
}
/**
* Returns the remainder of this IntegerValue divided by the given
* UnknownIntegerValue.
*/
public IntegerValue remainder(UnknownIntegerValue other)
{
return remainder((IntegerValue)other);
}
/**
* Returns the remainder of the given UnknownIntegerValue divided by this
* IntegerValue.
*/
public IntegerValue remainderOf(UnknownIntegerValue other)
{
return remainderOf((IntegerValue)other);
}
/**
* Returns this IntegerValue, shifted left by the given UnknownIntegerValue.
*/
public IntegerValue shiftLeft(UnknownIntegerValue other)
{
return shiftLeft((IntegerValue)other);
}
/**
* Returns this IntegerValue, shifted right by the given UnknownIntegerValue.
*/
public IntegerValue shiftRight(UnknownIntegerValue other)
{
return shiftRight((IntegerValue)other);
}
/**
* Returns this unsigned IntegerValue, shifted right by the given
* UnknownIntegerValue.
*/
public IntegerValue unsignedShiftRight(UnknownIntegerValue other)
{
return unsignedShiftRight((IntegerValue)other);
}
/**
* Returns the given UnknownIntegerValue, shifted left by this IntegerValue.
*/
public IntegerValue shiftLeftOf(UnknownIntegerValue other)
{
return shiftLeftOf((IntegerValue)other);
}
/**
* Returns the given UnknownIntegerValue, shifted right by this IntegerValue.
*/
public IntegerValue shiftRightOf(UnknownIntegerValue other)
{
return shiftRightOf((IntegerValue)other);
}
/**
* Returns the given unsigned UnknownIntegerValue, shifted right by this
* IntegerValue.
*/
public IntegerValue unsignedShiftRightOf(UnknownIntegerValue other)
{
return unsignedShiftRightOf((IntegerValue)other);
}
/**
* Returns the given UnknownLongValue, shifted left by this IntegerValue.
*/
public LongValue shiftLeftOf(UnknownLongValue other)
{
return shiftLeftOf((LongValue)other);
}
/**
* Returns the given UnknownLongValue, shifted right by this IntegerValue.
*/
public LongValue shiftRightOf(UnknownLongValue other)
{
return shiftRightOf((LongValue)other);
}
/**
* Returns the given unsigned UnknownLongValue, shifted right by this
* IntegerValue.
*/
public LongValue unsignedShiftRightOf(UnknownLongValue other)
{
return unsignedShiftRightOf((LongValue)other);
}
/**
* Returns the logical and of this IntegerValue and the given
* UnknownIntegerValue.
*/
public IntegerValue and(UnknownIntegerValue other)
{
return and((IntegerValue)other);
}
/**
* Returns the logical or of this IntegerValue and the given
* UnknownIntegerValue.
*/
public IntegerValue or(UnknownIntegerValue other)
{
return or((IntegerValue)other);
}
/**
* Returns the logical xor of this IntegerValue and the given
* UnknownIntegerValue.
*/
public IntegerValue xor(UnknownIntegerValue other)
{
return xor((IntegerValue)other);
}
/**
* Returns whether this IntegerValue and the given UnknownIntegerValue are
* equal: NEVER
, MAYBE
, or ALWAYS
.
*/
public int equal(UnknownIntegerValue other)
{
return equal((IntegerValue)other);
}
/**
* Returns whether this IntegerValue is less than the given
* UnknownIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public int lessThan(UnknownIntegerValue other)
{
return lessThan((IntegerValue)other);
}
/**
* Returns whether this IntegerValue is less than or equal to the given
* UnknownIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public int lessThanOrEqual(UnknownIntegerValue other)
{
return lessThanOrEqual((IntegerValue)other);
}
// Derived binary methods.
/**
* Returns whether this IntegerValue and the given UnknownIntegerValue are
* different: NEVER
, MAYBE
, or ALWAYS
.
*/
public final int notEqual(UnknownIntegerValue other)
{
return -equal(other);
}
/**
* Returns whether this IntegerValue is greater than the given
* UnknownIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public final int greaterThan(UnknownIntegerValue other)
{
return -lessThanOrEqual(other);
}
/**
* Returns whether this IntegerValue is greater than or equal to the given
* UnknownIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public final int greaterThanOrEqual(UnknownIntegerValue other)
{
return -lessThan(other);
}
// Similar binary methods, but this time with specific arguments.
/**
* Returns the generalization of this IntegerValue and the given other
* SpecificIntegerValue.
*/
public IntegerValue generalize(SpecificIntegerValue other)
{
return generalize((IntegerValue)other);
}
/**
* Returns the sum of this IntegerValue and the given SpecificIntegerValue.
*/
public IntegerValue add(SpecificIntegerValue other)
{
return add((IntegerValue)other);
}
/**
* Returns the difference of this IntegerValue and the given SpecificIntegerValue.
*/
public IntegerValue subtract(SpecificIntegerValue other)
{
return subtract((IntegerValue)other);
}
/**
* Returns the difference of the given SpecificIntegerValue and this IntegerValue.
*/
public IntegerValue subtractFrom(SpecificIntegerValue other)
{
return subtractFrom((IntegerValue)other);
}
/**
* Returns the product of this IntegerValue and the given SpecificIntegerValue.
*/
public IntegerValue multiply(SpecificIntegerValue other)
{
return multiply((IntegerValue)other);
}
/**
* Returns the quotient of this IntegerValue and the given
* SpecificIntegerValue.
*/
public IntegerValue divide(SpecificIntegerValue other)
{
return divide((IntegerValue)other);
}
/**
* Returns the quotient of the given SpecificIntegerValue and this
* IntegerValue.
*/
public IntegerValue divideOf(SpecificIntegerValue other)
{
return divideOf((IntegerValue)other);
}
/**
* Returns the remainder of this IntegerValue divided by the given
* SpecificIntegerValue.
*/
public IntegerValue remainder(SpecificIntegerValue other)
{
return remainder((IntegerValue)other);
}
/**
* Returns the remainder of the given SpecificIntegerValue divided by this
* IntegerValue.
*/
public IntegerValue remainderOf(SpecificIntegerValue other)
{
return remainderOf((IntegerValue)other);
}
/**
* Returns this IntegerValue, shifted left by the given SpecificIntegerValue.
*/
public IntegerValue shiftLeft(SpecificIntegerValue other)
{
return shiftLeft((IntegerValue)other);
}
/**
* Returns this IntegerValue, shifted right by the given SpecificIntegerValue.
*/
public IntegerValue shiftRight(SpecificIntegerValue other)
{
return shiftRight((IntegerValue)other);
}
/**
* Returns this unsigned IntegerValue, shifted right by the given
* SpecificIntegerValue.
*/
public IntegerValue unsignedShiftRight(SpecificIntegerValue other)
{
return unsignedShiftRight((IntegerValue)other);
}
/**
* Returns the given SpecificIntegerValue, shifted left by this IntegerValue.
*/
public IntegerValue shiftLeftOf(SpecificIntegerValue other)
{
return shiftLeftOf((IntegerValue)other);
}
/**
* Returns the given SpecificIntegerValue, shifted right by this IntegerValue.
*/
public IntegerValue shiftRightOf(SpecificIntegerValue other)
{
return shiftRightOf((IntegerValue)other);
}
/**
* Returns the given unsigned SpecificIntegerValue, shifted right by this
* IntegerValue.
*/
public IntegerValue unsignedShiftRightOf(SpecificIntegerValue other)
{
return unsignedShiftRightOf((IntegerValue)other);
}
/**
* Returns the given SpecificLongValue, shifted left by this IntegerValue.
*/
public LongValue shiftLeftOf(SpecificLongValue other)
{
return shiftLeftOf((LongValue)other);
}
/**
* Returns the given SpecificLongValue, shifted right by this IntegerValue.
*/
public LongValue shiftRightOf(SpecificLongValue other)
{
return shiftRightOf((LongValue)other);
}
/**
* Returns the given unsigned SpecificLongValue, shifted right by this
* IntegerValue.
*/
public LongValue unsignedShiftRightOf(SpecificLongValue other)
{
return unsignedShiftRightOf((LongValue)other);
}
/**
* Returns the logical and of this IntegerValue and the given
* SpecificIntegerValue.
*/
public IntegerValue and(SpecificIntegerValue other)
{
return and((IntegerValue)other);
}
/**
* Returns the logical or of this IntegerValue and the given
* SpecificIntegerValue.
*/
public IntegerValue or(SpecificIntegerValue other)
{
return or((IntegerValue)other);
}
/**
* Returns the logical xor of this IntegerValue and the given
* SpecificIntegerValue.
*/
public IntegerValue xor(SpecificIntegerValue other)
{
return xor((IntegerValue)other);
}
/**
* Returns whether this IntegerValue and the given SpecificIntegerValue are
* equal: NEVER
, MAYBE
, or ALWAYS
.
*/
public int equal(SpecificIntegerValue other)
{
return equal((IntegerValue)other);
}
/**
* Returns whether this IntegerValue is less than the given
* SpecificIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public int lessThan(SpecificIntegerValue other)
{
return lessThan((IntegerValue)other);
}
/**
* Returns whether this IntegerValue is less than or equal to the given
* SpecificIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public int lessThanOrEqual(SpecificIntegerValue other)
{
return lessThanOrEqual((IntegerValue)other);
}
// Derived binary methods.
/**
* Returns whether this IntegerValue and the given SpecificIntegerValue are
* different: NEVER
, MAYBE
, or ALWAYS
.
*/
public final int notEqual(SpecificIntegerValue other)
{
return -equal(other);
}
/**
* Returns whether this IntegerValue is greater than the given
* SpecificIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public final int greaterThan(SpecificIntegerValue other)
{
return -lessThanOrEqual(other);
}
/**
* Returns whether this IntegerValue is greater than or equal to the given
* SpecificIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public final int greaterThanOrEqual(SpecificIntegerValue other)
{
return -lessThan(other);
}
// Similar binary methods, but this time with particular arguments.
/**
* Returns the generalization of this IntegerValue and the given other
* ParticularIntegerValue.
*/
public IntegerValue generalize(ParticularIntegerValue other)
{
return generalize((SpecificIntegerValue)other);
}
/**
* Returns the sum of this IntegerValue and the given ParticularIntegerValue.
*/
public IntegerValue add(ParticularIntegerValue other)
{
return add((SpecificIntegerValue)other);
}
/**
* Returns the difference of this IntegerValue and the given ParticularIntegerValue.
*/
public IntegerValue subtract(ParticularIntegerValue other)
{
return subtract((SpecificIntegerValue)other);
}
/**
* Returns the difference of the given ParticularIntegerValue and this IntegerValue.
*/
public IntegerValue subtractFrom(ParticularIntegerValue other)
{
return subtractFrom((SpecificIntegerValue)other);
}
/**
* Returns the product of this IntegerValue and the given ParticularIntegerValue.
*/
public IntegerValue multiply(ParticularIntegerValue other)
{
return multiply((SpecificIntegerValue)other);
}
/**
* Returns the quotient of this IntegerValue and the given
* ParticularIntegerValue.
*/
public IntegerValue divide(ParticularIntegerValue other)
{
return divide((SpecificIntegerValue)other);
}
/**
* Returns the quotient of the given ParticularIntegerValue and this
* IntegerValue.
*/
public IntegerValue divideOf(ParticularIntegerValue other)
{
return divideOf((SpecificIntegerValue)other);
}
/**
* Returns the remainder of this IntegerValue divided by the given
* ParticularIntegerValue.
*/
public IntegerValue remainder(ParticularIntegerValue other)
{
return remainder((SpecificIntegerValue)other);
}
/**
* Returns the remainder of the given ParticularIntegerValue divided by this
* IntegerValue.
*/
public IntegerValue remainderOf(ParticularIntegerValue other)
{
return remainderOf((SpecificIntegerValue)other);
}
/**
* Returns this IntegerValue, shifted left by the given ParticularIntegerValue.
*/
public IntegerValue shiftLeft(ParticularIntegerValue other)
{
return shiftLeft((SpecificIntegerValue)other);
}
/**
* Returns this IntegerValue, shifted right by the given ParticularIntegerValue.
*/
public IntegerValue shiftRight(ParticularIntegerValue other)
{
return shiftRight((SpecificIntegerValue)other);
}
/**
* Returns this unsigned IntegerValue, shifted right by the given
* ParticularIntegerValue.
*/
public IntegerValue unsignedShiftRight(ParticularIntegerValue other)
{
return unsignedShiftRight((SpecificIntegerValue)other);
}
/**
* Returns the given ParticularIntegerValue, shifted left by this IntegerValue.
*/
public IntegerValue shiftLeftOf(ParticularIntegerValue other)
{
return shiftLeftOf((SpecificIntegerValue)other);
}
/**
* Returns the given ParticularIntegerValue, shifted right by this IntegerValue.
*/
public IntegerValue shiftRightOf(ParticularIntegerValue other)
{
return shiftRightOf((SpecificIntegerValue)other);
}
/**
* Returns the given unsigned ParticularIntegerValue, shifted right by this
* IntegerValue.
*/
public IntegerValue unsignedShiftRightOf(ParticularIntegerValue other)
{
return unsignedShiftRightOf((SpecificIntegerValue)other);
}
/**
* Returns the given ParticularLongValue, shifted left by this IntegerValue.
*/
public LongValue shiftLeftOf(ParticularLongValue other)
{
return shiftLeftOf((SpecificLongValue)other);
}
/**
* Returns the given ParticularLongValue, shifted right by this IntegerValue.
*/
public LongValue shiftRightOf(ParticularLongValue other)
{
return shiftRightOf((SpecificLongValue)other);
}
/**
* Returns the given unsigned ParticularLongValue, shifted right by this
* IntegerValue.
*/
public LongValue unsignedShiftRightOf(ParticularLongValue other)
{
return unsignedShiftRightOf((SpecificLongValue)other);
}
/**
* Returns the logical and of this IntegerValue and the given
* ParticularIntegerValue.
*/
public IntegerValue and(ParticularIntegerValue other)
{
return and((SpecificIntegerValue)other);
}
/**
* Returns the logical or of this IntegerValue and the given
* ParticularIntegerValue.
*/
public IntegerValue or(ParticularIntegerValue other)
{
return or((SpecificIntegerValue)other);
}
/**
* Returns the logical xor of this IntegerValue and the given
* ParticularIntegerValue.
*/
public IntegerValue xor(ParticularIntegerValue other)
{
return xor((SpecificIntegerValue)other);
}
/**
* Returns whether this IntegerValue and the given ParticularIntegerValue are
* equal: NEVER
, MAYBE
, or ALWAYS
.
*/
public int equal(ParticularIntegerValue other)
{
return equal((SpecificIntegerValue)other);
}
/**
* Returns whether this IntegerValue is less than the given
* ParticularIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public int lessThan(ParticularIntegerValue other)
{
return lessThan((SpecificIntegerValue)other);
}
/**
* Returns whether this IntegerValue is less than or equal to the given
* ParticularIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public int lessThanOrEqual(ParticularIntegerValue other)
{
return lessThanOrEqual((SpecificIntegerValue)other);
}
// Derived binary methods.
/**
* Returns whether this IntegerValue and the given ParticularIntegerValue are
* different: NEVER
, MAYBE
, or ALWAYS
.
*/
public final int notEqual(ParticularIntegerValue other)
{
return -equal(other);
}
/**
* Returns whether this IntegerValue is greater than the given
* ParticularIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public final int greaterThan(ParticularIntegerValue other)
{
return -lessThanOrEqual(other);
}
/**
* Returns whether this IntegerValue is greater than or equal to the given
* ParticularIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public final int greaterThanOrEqual(ParticularIntegerValue other)
{
return -lessThan(other);
}
// Similar binary methods, but this time with range arguments.
/**
* Returns the generalization of this IntegerValue and the given other
* RangeIntegerValue.
*/
public IntegerValue generalize(RangeIntegerValue other)
{
return generalize((IntegerValue)other);
}
/**
* Returns the sum of this IntegerValue and the given RangeIntegerValue.
*/
public IntegerValue add(RangeIntegerValue other)
{
return add((IntegerValue)other);
}
/**
* Returns the difference of this IntegerValue and the given RangeIntegerValue.
*/
public IntegerValue subtract(RangeIntegerValue other)
{
return subtract((IntegerValue)other);
}
/**
* Returns the difference of the given RangeIntegerValue and this IntegerValue.
*/
public IntegerValue subtractFrom(RangeIntegerValue other)
{
return subtractFrom((IntegerValue)other);
}
/**
* Returns the product of this IntegerValue and the given RangeIntegerValue.
*/
public IntegerValue multiply(RangeIntegerValue other)
{
return multiply((IntegerValue)other);
}
/**
* Returns the quotient of this IntegerValue and the given
* RangeIntegerValue.
*/
public IntegerValue divide(RangeIntegerValue other)
{
return divide((IntegerValue)other);
}
/**
* Returns the quotient of the given RangeIntegerValue and this
* IntegerValue.
*/
public IntegerValue divideOf(RangeIntegerValue other)
{
return divideOf((IntegerValue)other);
}
/**
* Returns the remainder of this IntegerValue divided by the given
* RangeIntegerValue.
*/
public IntegerValue remainder(RangeIntegerValue other)
{
return remainder((IntegerValue)other);
}
/**
* Returns the remainder of the given RangeIntegerValue divided by this
* IntegerValue.
*/
public IntegerValue remainderOf(RangeIntegerValue other)
{
return remainderOf((IntegerValue)other);
}
/**
* Returns this IntegerValue, shifted left by the given RangeIntegerValue.
*/
public IntegerValue shiftLeft(RangeIntegerValue other)
{
return shiftLeft((IntegerValue)other);
}
/**
* Returns this IntegerValue, shifted right by the given RangeIntegerValue.
*/
public IntegerValue shiftRight(RangeIntegerValue other)
{
return shiftRight((IntegerValue)other);
}
/**
* Returns this unsigned IntegerValue, shifted right by the given
* RangeIntegerValue.
*/
public IntegerValue unsignedShiftRight(RangeIntegerValue other)
{
return unsignedShiftRight((IntegerValue)other);
}
/**
* Returns the given RangeIntegerValue, shifted left by this IntegerValue.
*/
public IntegerValue shiftLeftOf(RangeIntegerValue other)
{
return shiftLeftOf((IntegerValue)other);
}
/**
* Returns the given RangeIntegerValue, shifted right by this IntegerValue.
*/
public IntegerValue shiftRightOf(RangeIntegerValue other)
{
return shiftRightOf((IntegerValue)other);
}
/**
* Returns the given unsigned RangeIntegerValue, shifted right by this
* IntegerValue.
*/
public IntegerValue unsignedShiftRightOf(RangeIntegerValue other)
{
return unsignedShiftRightOf((IntegerValue)other);
}
/**
* Returns the logical and of this IntegerValue and the given
* RangeIntegerValue.
*/
public IntegerValue and(RangeIntegerValue other)
{
return and((IntegerValue)other);
}
/**
* Returns the logical or of this IntegerValue and the given
* RangeIntegerValue.
*/
public IntegerValue or(RangeIntegerValue other)
{
return or((IntegerValue)other);
}
/**
* Returns the logical xor of this IntegerValue and the given
* RangeIntegerValue.
*/
public IntegerValue xor(RangeIntegerValue other)
{
return xor((IntegerValue)other);
}
/**
* Returns whether this IntegerValue and the given RangeIntegerValue are
* equal: NEVER
, MAYBE
, or ALWAYS
.
*/
public int equal(RangeIntegerValue other)
{
return equal((IntegerValue)other);
}
/**
* Returns whether this IntegerValue is less than the given
* RangeIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public int lessThan(RangeIntegerValue other)
{
return lessThan((IntegerValue)other);
}
/**
* Returns whether this IntegerValue is less than or equal to the given
* RangeIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public int lessThanOrEqual(RangeIntegerValue other)
{
return lessThanOrEqual((IntegerValue)other);
}
// Derived binary methods.
/**
* Returns whether this IntegerValue and the given RangeIntegerValue are
* different: NEVER
, MAYBE
, or ALWAYS
.
*/
public final int notEqual(RangeIntegerValue other)
{
return -equal(other);
}
/**
* Returns whether this IntegerValue is greater than the given
* RangeIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public final int greaterThan(RangeIntegerValue other)
{
return -lessThanOrEqual(other);
}
/**
* Returns whether this IntegerValue is greater than or equal to the given
* RangeIntegerValue: NEVER
, MAYBE
, or
* ALWAYS
.
*/
public final int greaterThanOrEqual(RangeIntegerValue other)
{
return -lessThan(other);
}
// Implementations for Value.
public final IntegerValue integerValue()
{
return this;
}
public final Value generalize(Value other)
{
return this.generalize(other.integerValue());
}
public final int computationalType()
{
return TYPE_INTEGER;
}
public final String internalType()
{
return String.valueOf(TypeConstants.INT);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy