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 ColumnDivisionExpression extends
28: ColumnAggregationExpression {
29: private static final int DEFAULT_SCALE = 14;
30:
31: public ColumnDivisionExpression() {
32: }
33:
34: /**
35: * Return the current expression value. <P> The value depends (obviously) on
36: * the expression implementation.
37: *
38: * @return the value of the function.
39: */
40: @Nullable
41: public Object getValue() {
42: Object[] values = getFieldValues();
43: BigDecimal computedResult = null;
44: for (final Object value : values) {
45: if (value instanceof Number) {
46: Number n = (Number) value;
47: if (computedResult == null) {
48: //noinspection ObjectToString
49: computedResult = new BigDecimal(n.toString());
50: } else {
51: //noinspection ObjectToString
52: computedResult = computedResult.divide(
53: new BigDecimal(n.toString()),
54: DEFAULT_SCALE, BigDecimal.ROUND_HALF_UP);
55: }
56: }
57: }
58:
59: if (computedResult != null) {
60: return computedResult.stripTrailingZeros();
61: } else {
62: return null;
63: }
64: }
65: }
|