Coverage report

| %line | %branch
--- | --- | ---
tsukuba_bunko.resource.DeserializerMapping |
81% |
93% |

1 |  |
     /*
2 |  |
      * Common Library for TBAS Softwares
3 |  |
      *
4 |  |
      * All Rights Reserved.
5 |  |
      * (c) Copyright 2002 by Tsukuba Bunko.
6 |  |
      *
7 |  |
      * $Id: DeserializerMapping.java,v 1.1 2005/07/11 12:49:18 ppoi Exp $
8 |  |
      */
9 |  |
     package tsukuba_bunko.resource;
10 |  |
11 |  |
     import	java.util.Enumeration;
12 |  |
     import	java.util.Map;
13 |  |
     import	java.util.ResourceBundle;
14 |  |
15 |  |
16 |  |
     /**
17 |  |
      * データ型名と <code>ResourceDeserializer</code> のマップを管理します。このクラスは thread-safe ではありませんので、malti-thread
18 |  |
      * 環境で使用する場合は、同期の制御を行ってください。
19 |  |
      * @author	$Author: ppoi $
20 |  |
      * @version	$Revision: 1.1 $
21 |  |
      */
22 |  |
     public class DeserializerMapping	{
23 |  |
24 |  |
     	/**
25 |  |
     	 * データ型名 - ResourceDeserializer マップ
26 |  |
     	 */
27 | 80 |
     	private Map	_registry = new java.util.HashMap( 89 );
28 |  |
29 |  |
30 |  |
     	/**
31 |  |
     	 * <code>DeserializerMapping</code> のインスタンスを作成します。
32 |  |
     	 */
33 |  |
     	public DeserializerMapping()
34 |  |
     	{
35 | 80 |
     		super();
36 | 80 |
     	}
37 |  |
38 |  |
39 |  |
     	/**
40 |  |
     	 * データ型 <code>dataType</code> に <code>ResourceDeserializer</code> クラス
41 |  |
     	 * <code>deserializerClass</code> を関連づけます。
42 |  |
     	 * @param	typeName	データ型名
43 |  |
     	 * @param	deserializer	使用する <code>ResourceDeserializer</code>
44 |  |
     	 * @exception	IllegalArgumentException	<code>deserializerClass</code> が妥当な <code>ResourceDeserializer</code> サブクラスではない場合
45 |  |
     	 */
46 |  |
     	public void register( String typeName, ResourceDeserializer deserializer )
47 |  |
     	{
48 | 720 |
     		deserializer.setDeserializerMapping( this );
49 | 720 |
     		deserializer.setTypeName( typeName );
50 | 720 |
     		_registry.put( typeName, deserializer );
51 | 720 |
     	}
52 |  |
53 |  |
     	/**
54 |  |
     	 * データ型 <code>typeName</code> に関連づけられた <code>ResourceDeserializer</code> クラスを削除します。
55 |  |
     	 * @param	typeName
56 |  |
     	 */
57 |  |
     	public void unregister( String typeName )
58 |  |
     	{
59 | 0 |
     		_registry.remove( typeName );
60 | 0 |
     	}
61 |  |
62 |  |
     	/**
63 |  |
     	 * <code>dataType</code> に関連づけられた <code>ResourceDeserializer</code> を取得します。
64 |  |
     	 * @param	dataType	データ型名
65 |  |
     	 * @return	関連づけられている <code>ResourceDeserializer</code>
66 |  |
     	 * @exception	IllegalStateException	<code>ValueDeserialzier</code> の取得に失敗した場合
67 |  |
     	 */
68 |  |
     	public ResourceDeserializer getResourceDeserializer( String dataType )
69 |  |
     	{
70 | 170 |
     		return (ResourceDeserializer)_registry.get( dataType );
71 |  |
     	}
72 |  |
73 |  |
     	/**
74 |  |
     	 * 指定された reosurce bundle を使用して <code>DeserializerMapping</code> のインスタンスを作成します。
75 |  |
     	 * @param	bundleName	ResourceBundle のベースクラス名
76 |  |
     	 * @return	作成された <code>DeserializerMapping</code> のインスタンス
77 |  |
     	 */
78 |  |
     	public static DeserializerMapping newInstance( String bundleName )
79 |  |
     	{
80 | 80 |
     		DeserializerMapping	mapping = new DeserializerMapping();
81 |  |
82 | 80 |
     		ResourceBundle	source = ResourceBundle.getBundle( bundleName );
83 | 115 |
     		ClassLoader	cl = DeserializerMapping.class.getClassLoader();
84 |  |
85 | 80 |
     		Enumeration	keys = source.getKeys();
86 | 80 |
     		String	key = null;
87 | 800 |
     		while( keys.hasMoreElements() )	{
88 | 720 |
     			key = (String)keys.nextElement();
89 | 720 |
     			String	className = source.getString( key );
90 |  |
     			try	{
91 | 720 |
     				mapping.register( key, (ResourceDeserializer)cl.loadClass(className).newInstance() );
92 |  |
     			}
93 | 0 |
     			catch( Exception e )	{
94 | 0 |
     				System.err.println( "[libtbas] ERROR : illegal class \"" + className + "\"" );
95 | 0 |
     				e.printStackTrace();
96 | 720 |
     			}
97 | 720 |
     		}
98 |  |
99 | 80 |
     		return mapping;
100 |  |
     	}
101 |  |
102 |  |
     	/**
103 |  |
     	 * リソースで指定された内容から <code>DeserializerMapping</code> のインスタンスを作成します。
104 |  |
     	 * @return	作成された <code>DeserializerMapping</code> のインスタンス
105 |  |
     	 */
106 |  |
     	public static DeserializerMapping newInstance()
107 |  |
     	{
108 | 70 |
     		return newInstance( System.getProperty("libtbas.resource.mapping", "tsukuba_bunko.resource.mapping") );
109 |  |
     	}
110 |  |
     }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.