1 /* gnu.classpath.tools.gjdoc.expr.BinaryBitwiseExpression
2 Copyright (C) 2004 Free Software Foundation, Inc.
4 This file is part of GNU Classpath.
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING. If not, write to the
18 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
21 package gnu
.classpath
.tools
.gjdoc
.expr
;
23 abstract class BinaryBitwiseExpression
24 extends BinaryExpression
26 protected BinaryBitwiseExpression(Expression left
, Expression right
)
31 public ConstantExpression
evaluate(Context context
)
32 throws IllegalExpressionException
34 ConstantExpression leftValue
= left
.evaluate(context
);
35 ConstantExpression rightValue
= right
.evaluate(context
);
37 if (Type
.LONG
== leftValue
.getType()
38 || Type
.LONG
== rightValue
.getType()) {
40 return new ConstantLong(compute(leftValue
.asNumber().longValue(),
41 rightValue
.asNumber().longValue()));
44 return new ConstantInteger(compute(leftValue
.asNumber().intValue(),
45 rightValue
.asNumber().intValue()));
49 protected abstract long compute(long leftValue
, long rightValue
);
50 protected abstract int compute(int leftValue
, int rightValue
);