View Javadoc

1   package org.codehaus.xfire.aegis;
2   
3   import org.codehaus.xfire.XFireRuntimeException;
4   
5   /***
6    * Basic type conversions for reading messages.
7    * 
8    * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
9    */
10  public abstract class AbstractMessageReader
11      implements MessageReader
12  {
13      public AbstractMessageReader()
14      {
15      }
16  
17      public boolean hasValue()
18      {
19          return getValue() != null;
20      }
21      
22      /***
23       * @see org.codehaus.xfire.aegis.MessageReader#getValueAsInt()
24       */
25      public int getValueAsInt()
26      {
27          if (getValue() == null) return 0;
28          
29          return Integer.parseInt( getValue() );
30      }
31  
32  	/***
33  	 * @see org.codehaus.xfire.aegis.MessageReader#getValueAsLong()
34  	 */
35  	public long getValueAsLong()
36  	{
37          if (getValue() == null) return 0l;
38          
39          return Long.parseLong( getValue() );
40  	}
41      
42  	/***
43  	 * @see org.codehaus.xfire.aegis.MessageReader#getValueAsDouble()
44  	 */
45  	public double getValueAsDouble()
46  	{
47          if (getValue() == null) return 0d;
48          
49          return Double.parseDouble( getValue() );
50  	}
51  
52  	/***
53  	 * @see org.codehaus.xfire.aegis.MessageReader#getValueAsFloat()
54  	 */
55  	public float getValueAsFloat()
56  	{
57          if (getValue() == null) return 0f;
58          
59          return Float.parseFloat( getValue() );
60  	}
61  
62  	/***
63  	 * @see org.codehaus.xfire.aegis.MessageReader#getValueAsBoolean()
64  	 */
65  	public boolean getValueAsBoolean()
66  	{
67          String value = getValue();
68          if (value == null) return false;
69          
70          if ("true".equalsIgnoreCase(value) || "1".equalsIgnoreCase(value))
71              return true;
72  
73          if ("false".equalsIgnoreCase(value) || "0".equalsIgnoreCase(value))
74              return false;
75          
76          throw new XFireRuntimeException("Invalid boolean value: " + value);
77  	}
78  }