01: /*
02: * Copyright 2006-2007 Pentaho Corporation. All rights reserved.
03: * This software was developed by Pentaho Corporation and is provided under the terms
04: * of the Mozilla Public License, Version 1.1, or any later version. You may not use
05: * this file except in compliance with the license. If you need a copy of the license,
06: * please go to http://www.mozilla.org/MPL/MPL-1.1.txt.
07: *
08: * Software distributed under the Mozilla Public License is distributed on an "AS IS"
09: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
10: * the license for the specific language governing your rights and limitations.
11: *
12: * Additional Contributor(s): Martin Schmid gridvision engineering GmbH
13: */
14: package org.pentaho.jfreereport.legacy;
15:
16: import org.jetbrains.annotations.Nullable;
17: import org.jfree.report.function.ColumnAggregationExpression;
18:
19: import java.math.BigDecimal;
20:
21: /**
22: * User: Martin
23: * Date: 26.06.2006
24: * Time: 18:50:02
25: */
26: @Deprecated
27: public class ColumnDifferenceExpression extends
28: ColumnAggregationExpression {
29:
30: public ColumnDifferenceExpression() {
31: }
32:
33: /**
34: * Return the current expression value. <P> The value depends (obviously) on
35: * the expression implementation.
36: *
37: * @return the value of the function.
38: */
39: @Nullable
40: public Object getValue() {
41: Object[] values = getFieldValues();
42: BigDecimal computedResult = null;
43: for (final Object value : values) {
44: if (value instanceof Number) {
45: Number n = (Number) value;
46: if (computedResult == null) {
47: //noinspection ObjectToString
48: computedResult = new BigDecimal(n.toString());
49: } else {
50: //noinspection ObjectToString
51: computedResult = computedResult
52: .subtract(new BigDecimal(n.toString()));
53: }
54: }
55: }
56:
57: if (computedResult != null) {
58: return computedResult.stripTrailingZeros();
59: } else {
60: return null;
61: }
62: }
63: }
|