libjava/ChangeLog:
[official-gcc.git] / libjava / classpath / tools / gnu / classpath / tools / gjdoc / expr / BinaryBitwiseExpression.java
blob4b0a993e5ef70a2d33a727bd48a4eb12a6771836
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)
9 any later version.
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
19 02111-1307 USA. */
21 package gnu.classpath.tools.gjdoc.expr;
23 abstract class BinaryBitwiseExpression
24 extends BinaryExpression
26 protected BinaryBitwiseExpression(Expression left, Expression right)
28 super(left, 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()));
43 else {
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);