View Javadoc

1   package tsukuba_bunko.resource;
2   
3   import	org.xml.sax.SAXException;
4   
5   
6   /***
7    * <code>java.lang.Number</code> 系の値をデシリアライズする <code>ResourceDeserializer</code> です.
8    * @author	$Author: ppoi $
9    */
10  public class NumberDeserializer	extends SimpleDeserializer	{
11  
12  	/***
13  	 * 型
14  	 */
15  	private String	_type = null;
16  
17  	/***
18  	 * <code>NumberDeserializer</code> のインスタンスを作成します.
19  	 */
20  	public NumberDeserializer()
21  	{
22  		super();
23  	}
24  
25  
26  //
27  //	SimpleDeserializer の実装
28  //
29  	protected Object convertValue( String source )
30  		throws SAXException
31  	{
32  		try	{
33  			String	type = getTypeName();
34  			Number	value = null;
35  			if( type.equals("integer") )	{
36  				value = Integer.valueOf( source );
37  			}
38  			else if( type.equals("long") )	{
39  				value = Long.valueOf( source );
40  			}
41  			else if( type.equals("double") )	{
42  				value = Double.valueOf( source );
43  			}
44  			else if( type.equals("float") )	{
45  				value = Float.valueOf( source );
46  			}
47  			else if( type.equals("short") )	{
48  				value = Short.valueOf( source );
49  			}
50  			else if( type.equals("byte") )	{
51  				value = Byte.valueOf( source );
52  			}
53  			else	{
54  				throw new SAXException( "unsupported type \"" + _type + "\"" );
55  			}
56  			return value;
57  		}
58  		catch( NumberFormatException nfe )	{
59  			System.err.println( "[hogehgoe]" );
60  			nfe.printStackTrace();
61  			throw new SAXException( nfe );
62  		}
63  	}
64  }