source: trunk/src/org/expeditee/simple/SString.java@ 376

Last change on this file since 376 was 376, checked in by ra33, 16 years ago
File size: 1.5 KB
Line 
1package org.expeditee.simple;
2
3public class SString extends SPrimitive<String> {
4 public static String prefix = SVariable.prefix + "s" + SVariable.separator;
5
6 Double doubleValue_ = null;
7
8 public SString() {
9 super();
10 }
11
12 public SString(String name, String value) {
13 super(name, value);
14 }
15
16 public SString(String value) /* throws Exception */{
17 super(value);
18 }
19
20 @Override
21 public void parse(String s) {
22 value_ = s;
23 doubleValue_ = null;
24 }
25
26 @Override
27 public Boolean booleanValue() {
28 return Boolean.parseBoolean(value_);
29 }
30
31 @Override
32 public Long integerValue() {
33 if (value_.equals(""))
34 return 0L;
35 try {
36 return Long.decode(value_);
37 } catch (NumberFormatException ne) {
38 }
39 return Math.round(Double.parseDouble(value_));
40 }
41
42 @Override
43 public Double doubleValue() {
44 if (doubleValue_ != null)
45 return doubleValue_;
46
47 if (value_.equals(""))
48 doubleValue_ = 0.0;
49 else {
50 try {
51 doubleValue_ = Double.parseDouble(value_);
52 } catch (NumberFormatException ne) {
53 try{
54 doubleValue_ =(double) Long.decode(value_);
55 }catch(Exception e){
56 doubleValue_ = Double.NaN;
57 }
58 }
59 }
60 return doubleValue_;
61 }
62
63 @Override
64 public String stringValue() {
65 return value_;
66 }
67
68 @Override
69 public Character characterValue() {
70 if (value_.length() > 0)
71 return value_.charAt(0);
72
73 return '\0';
74 }
75
76 @Override
77 public void setValue(SPrimitive v) {
78 value_ = v.stringValue();
79 doubleValue_ = null;
80 }
81
82 public int length() {
83 return value_.length();
84 }
85}
Note: See TracBrowser for help on using the repository browser.