View Javadoc

1   package org.codehaus.xfire.java.message;
2   
3   import java.util.ArrayList;
4   import java.util.Calendar;
5   import java.util.Date;
6   import java.util.Iterator;
7   import java.util.List;
8   
9   import org.codehaus.xfire.util.DateUtils;
10  import org.dom4j.Element;
11  
12  /***
13   * Reads literal encoded messages.
14   * 
15   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
16   */
17  public class LiteralReader
18      implements MessageReader
19  {
20      private Element root;
21      
22      public LiteralReader( Element root )
23      {
24          this.root = root;
25      }
26      
27      /***
28       * @see org.codehaus.xfire.java.message.MessageReader#getValue()
29       */
30      public String getValue()
31      {
32          return root.getText();
33      }
34  
35      /***
36       * @see org.codehaus.xfire.java.message.MessageReader#getValueAsInt()
37       */
38      public int getValueAsInt()
39      {
40          return Integer.parseInt( getValue() );
41      }
42  
43      /***
44       * @see org.codehaus.xfire.java.message.MessageReader#getValueAsDate()
45       */
46      public Date getValueAsDate()
47      {
48           return DateUtils.parseDate( getValue() );
49      }
50  
51      /***
52       * @see org.codehaus.xfire.java.message.MessageReader#getValueAsDateTime()
53       */
54      public Date getValueAsDateTime()
55      {
56          return DateUtils.parseDateTime( getValue() );
57      }
58      
59      public Element getElement()
60      {
61          return root;
62      }
63  
64      /***
65  	 * @see org.codehaus.xfire.java.message.MessageReader#getValueAsCalendar()
66  	 */
67      public Calendar getValueAsCalendar()
68      {
69          Calendar calendar = Calendar.getInstance();
70          calendar.setTime( DateUtils.parseDateTime(getValue()) );
71          return calendar;
72      }
73  
74      /***
75  	 * @see org.codehaus.xfire.java.message.MessageReader#getReader(java.lang.String)
76  	 */
77      public MessageReader getReader(String name)
78      {
79          Element child = getElement().element( name );
80          
81          return new LiteralReader( child );
82      }
83  
84      /***
85  	 * @see org.codehaus.xfire.java.message.MessageReader#getReaders()
86  	 */
87      public List getReaders()
88      {
89          List readers = new ArrayList();
90          
91          for ( Iterator itr = getElement().elementIterator(); itr.hasNext(); )
92          {
93              readers.add( new LiteralReader( (Element) itr.next() ) );
94          }
95          
96          return readers;
97      }
98  
99      /***
100 	 * @see org.codehaus.xfire.java.message.MessageReader#getReaders(java.lang.String)
101 	 */
102     public List getReaders(String name)
103     {
104         List readers = new ArrayList();
105         
106         for ( Iterator itr = getElement().elementIterator( name ); itr.hasNext(); )
107         {
108             readers.add( new LiteralReader( (Element) itr.next() ) );
109         }
110         
111         return readers;
112     }
113 
114 	/***
115 	 * @see org.codehaus.xfire.java.message.MessageReader#getValueAsLong()
116 	 */
117 	public long getValueAsLong()
118 	{
119 		return Long.parseLong( getValue() );
120 	}
121 
122 	/***
123 	 * @see org.codehaus.xfire.java.message.MessageReader#getValueAsDouble()
124 	 */
125 	public double getValueAsDouble()
126 	{
127 		return Double.parseDouble( getValue() );
128 	}
129 
130 	/***
131 	 * @see org.codehaus.xfire.java.message.MessageReader#getValueAsFloat()
132 	 */
133 	public float getValueAsFloat()
134 	{
135 		return Float.parseFloat( getValue() );
136 	}
137 
138 	/***
139 	 * @see org.codehaus.xfire.java.message.MessageReader#getValueAsBoolean()
140 	 */
141 	public boolean getValueAsBoolean()
142 	{
143 		return Boolean.valueOf( getValue() ).booleanValue();
144 	}
145 }