KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > xquark > extractor > xfunctions > XfRound


1 /*
2  * This file belongs to the XQuark distribution.
3  * Copyright (C) 2003 Universite de Versailles Saint-Quentin.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307.
18  * You can also get it at http://www.gnu.org/licenses/lgpl.html
19  *
20  * For more information on this software, see http://www.xquark.org.
21  */

22
23 package org.xquark.extractor.xfunctions;
24
25 import org.xquark.extractor.algebra.Expression;
26 import org.xquark.extractor.sql.SqlExpression;
27
28 /**
29 2.6.3 xf:round
30 2.6.3.1 Signature
31 xf:round(double $srcval) => integer
32
33 2.6.3.2 Parameters
34 $srcval — static type is double
35
36 2.6.3.3 Semantics
37 Returns the number that is closest to the argument and that is an integer. More formally, round(x)
38 produces the same result as floor(x+0.5). These semantics are consistent with Java's semantics. If
39 there are two such numbers, then the one that is closest to positive infinity is returned. If the
40 argument is NaN, then NaN is returned. If the argument is positive infinity, then positive infinity
41 is returned. If the argument is negative infinity, then negative infinity is returned. If the
42 argument is positive zero, then positive zero is returned. If the argument is negative zero, then
43 negative zero is returned. If the argument is less than zero, but greater than or equal to -0.5,
44 then negative zero is returned.
45
46 2.6.3.4 Examples
47 xf:round(2.5) returns 3.
48
49 xf:round(2.4999) returns 2.
50
51 xf:round(-2.5) returns -2 (not the possible alternative, -3).
52  */

53 public final class XfRound extends Xfunction_Integer
54 {
55
56     private static final String JavaDoc RCSRevision = "$Revision: 1.3 $";
57     private static final String JavaDoc RCSName = "$Name: $";
58
59     public XfRound()
60     {
61       super("XfRound");
62     }
63
64     public XfRound(Expression arg )
65     {
66       super("XfRound");
67       setArgument(0,arg);
68     }
69
70     public SqlExpression accept(org.xquark.extractor.algebra.GenSqlVisitor visitor)
71     {
72         return visitor.visit(this);
73     }
74
75     public void accept(org.xquark.extractor.algebra.AlgebraVisitor visitor)
76     {
77         visitor.visit(this);
78     }
79 }
80
Popular Tags