2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 * Created on May 6, 2005
21 package org
.apache
.poi
.hssf
.record
.formula
.functions
;
23 import org
.apache
.poi
.hssf
.record
.formula
.eval
.BlankEval
;
24 import org
.apache
.poi
.hssf
.record
.formula
.eval
.ErrorEval
;
25 import org
.apache
.poi
.hssf
.record
.formula
.eval
.Eval
;
26 import org
.apache
.poi
.hssf
.record
.formula
.eval
.NumberEval
;
27 import org
.apache
.poi
.hssf
.record
.formula
.eval
.NumericValueEval
;
28 import org
.apache
.poi
.hssf
.record
.formula
.eval
.ValueEval
;
31 * @author Amol S. Deshmukh < amolweb at ya hoo dot com >
34 public class Degrees
extends NumericFunction
{
36 public Eval
evaluate(Eval
[] operands
, int srcRow
, short srcCol
) {
38 ValueEval retval
= null;
40 switch (operands
.length
) {
42 retval
= ErrorEval
.VALUE_INVALID
;
45 ValueEval ve
= singleOperandEvaluate(operands
[0], srcRow
, srcCol
);
46 if (ve
instanceof NumericValueEval
) {
47 NumericValueEval ne
= (NumericValueEval
) ve
;
48 d
= ne
.getNumberValue();
50 else if (ve
instanceof BlankEval
) {
54 retval
= ErrorEval
.NUM_ERROR
;
59 d
= Math
.toDegrees(d
);
60 retval
= (Double
.isNaN(d
)) ?
(ValueEval
) ErrorEval
.VALUE_INVALID
: new NumberEval(d
);