source: release-kits/lirk3/ant-scripts/tasks/antelope/src/ise/antelope/tasks/Num.java_@ 14982

Last change on this file since 14982 was 14982, checked in by oranfry, 16 years ago

initial import of LiRK3

File size: 4.3 KB
Line 
1/*
2* The Apache Software License, Version 1.1
3*
4* Copyright (c) 2001-2002 The Apache Software Foundation. All rights
5* reserved.
6*
7* Redistribution and use in source and binary forms, with or without
8* modification, are permitted provided that the following conditions
9* are met:
10*
11* 1. Redistributions of source code must retain the above copyright
12* notice, this list of conditions and the following disclaimer.
13*
14* 2. Redistributions in binary form must reproduce the above copyright
15* notice, this list of conditions and the following disclaimer in
16* the documentation and/or other materials provided with the
17* distribution.
18*
19* 3. The end-user documentation included with the redistribution, if
20* any, must include the following acknowlegement:
21* "This product includes software developed by the
22* Apache Software Foundation (http://www.apache.org/)."
23* Alternately, this acknowlegement may appear in the software itself,
24* if and wherever such third-party acknowlegements normally appear.
25*
26* 4. The names "The Jakarta Project", "Ant", and "Apache Software
27* Foundation" must not be used to endorse or promote products derived
28* from this software without prior written permission. For written
29* permission, please contact [email protected].
30*
31* 5. Products derived from this software may not be called "Apache"
32* nor may "Apache" appear in their names without prior written
33* permission of the Apache Group.
34*
35* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46* SUCH DAMAGE.
47* ====================================================================
48*
49* This software consists of voluntary contributions made by many
50* individuals on behalf of the Apache Software Foundation. For more
51* information on the Apache Software Foundation, please see
52* <http://www.apache.org/>.
53*/
54package ise.antelope.tasks;
55
56import org.apache.tools.ant.BuildException;
57
58/**
59 * Represents a number.
60 * @author Dale Anson, [email protected]
61 */
62public class Num {
63
64 // the value of this number
65 private String value = null;
66
67 private String datatype = null;
68
69 /**
70 * Set the value for this number. This string must parse to the set
71 * datatype, for example, setting value to "7.992" and datatype to INT
72 * will cause a number format exception to be thrown. Supports two special
73 * numbers, "E" and "PI".
74 * @param value the value for this number
75 */
76 public void setValue( String value ) {
77 if (value.equals("E"))
78 value = String.valueOf(java.lang.Math.E);
79 else if (value.equals("PI"))
80 value = String.valueOf(java.lang.Math.PI);
81 this.value = value;
82 }
83
84 /**
85 * @return the value for this number as a Number. Cast as appropriate to
86 * Integer, Long, Float, or Double.
87 */
88 public Number getValue() {
89 if (datatype == null)
90 datatype = "double";
91 if ( datatype.equals("int") )
92 return new Integer( value );
93 if ( datatype.equals("long" ))
94 return new Long( value );
95 if ( datatype.equals("float" ))
96 return new Float( value );
97 if ( datatype.equals("double" ))
98 return new Double( value );
99 throw new BuildException( "Invalid datatype." );
100 }
101
102 /**
103 * Sets the datatype of this number. Allowed values are
104 * "int", "long", "float", or "double".
105 */
106 public void setDatatype( String p ) {
107 datatype = p;
108 }
109
110 /**
111 * @return the datatype as one of the defined types.
112 */
113 public String getDatatype() {
114 if (datatype == null)
115 datatype = "double";
116 return datatype;
117 }
118
119 public String toString() {
120 return getValue().toString();
121 }
122}
123
Note: See TracBrowser for help on using the repository browser.