001: /*
002: * Copyright 2002 (C) TJDO.
003: * All rights reserved.
004: *
005: * This software is distributed under the terms of the TJDO License version 1.0.
006: * See the terms of the TJDO License in the documentation provided with this software.
007: *
008: * $Id: IntegerLiteral.java,v 1.3 2003/08/04 16:40:35 pierreg0 Exp $
009: */
010:
011: package com.triactive.jdo.store;
012:
013: import java.math.BigInteger;
014:
015: class IntegerLiteral extends NumericExpression {
016: private final BigInteger value;
017:
018: public IntegerLiteral(QueryStatement qs, BigInteger value) {
019: super (qs);
020:
021: this .value = value;
022: st.append(value);
023: }
024:
025: public BigInteger getValue() {
026: return value;
027: }
028:
029: public BooleanExpression eq(SQLExpression expr) {
030: if (expr instanceof IntegerLiteral)
031: return new BooleanLiteral(qs, value
032: .compareTo(((IntegerLiteral) expr).value) == 0);
033: else
034: return super .eq(expr);
035: }
036:
037: public BooleanExpression noteq(SQLExpression expr) {
038: if (expr instanceof IntegerLiteral)
039: return new BooleanLiteral(qs, value
040: .compareTo(((IntegerLiteral) expr).value) != 0);
041: else
042: return super .noteq(expr);
043: }
044:
045: public BooleanExpression lt(SQLExpression expr) {
046: if (expr instanceof IntegerLiteral)
047: return new BooleanLiteral(qs, value
048: .compareTo(((IntegerLiteral) expr).value) < 0);
049: else
050: return super .lt(expr);
051: }
052:
053: public BooleanExpression lteq(SQLExpression expr) {
054: if (expr instanceof IntegerLiteral)
055: return new BooleanLiteral(qs, value
056: .compareTo(((IntegerLiteral) expr).value) <= 0);
057: else if (expr instanceof IndexOfExpression)
058: return expr.gteq(this );
059: else
060: return super .lteq(expr);
061: }
062:
063: public BooleanExpression gt(SQLExpression expr) {
064: if (expr instanceof IntegerLiteral)
065: return new BooleanLiteral(qs, value
066: .compareTo(((IntegerLiteral) expr).value) > 0);
067: else
068: return super .gt(expr);
069: }
070:
071: public BooleanExpression gteq(SQLExpression expr) {
072: if (expr instanceof IntegerLiteral)
073: return new BooleanLiteral(qs, value
074: .compareTo(((IntegerLiteral) expr).value) >= 0);
075: else
076: return super .gteq(expr);
077: }
078:
079: public SQLExpression add(SQLExpression expr) {
080: if (expr instanceof IntegerLiteral)
081: return new IntegerLiteral(qs, value
082: .add(((IntegerLiteral) expr).value));
083: else
084: return super .add(expr);
085: }
086:
087: public SQLExpression sub(SQLExpression expr) {
088: if (expr instanceof IntegerLiteral)
089: return new IntegerLiteral(qs, value
090: .subtract(((IntegerLiteral) expr).value));
091: else
092: return super .sub(expr);
093: }
094:
095: public SQLExpression mul(SQLExpression expr) {
096: if (expr instanceof IntegerLiteral)
097: return new IntegerLiteral(qs, value
098: .multiply(((IntegerLiteral) expr).value));
099: else
100: return super .mul(expr);
101: }
102:
103: public SQLExpression div(SQLExpression expr) {
104: if (expr instanceof IntegerLiteral)
105: return new IntegerLiteral(qs, value
106: .divide(((IntegerLiteral) expr).value));
107: else
108: return super .div(expr);
109: }
110:
111: public SQLExpression mod(SQLExpression expr) {
112: if (expr instanceof IntegerLiteral)
113: return new IntegerLiteral(qs, value
114: .mod(((IntegerLiteral) expr).value));
115: else
116: return super .mod(expr);
117: }
118:
119: public SQLExpression neg() {
120: return new IntegerLiteral(qs, value.negate());
121: }
122: }
|