View Javadoc

1   /*
2    * "Peko" Visual Novel System
3    *
4    * All Rights Reserved.
5    * Copyright (c) 1999-2003 Tsukuba Bunko.
6    *
7    * $Id: PekoResourceLoader.java,v 1.1 2005/07/11 12:49:18 ppoi Exp $
8    */
9   package tsukuba_bunko.peko.resource;
10  
11  import	javax.xml.parsers.ParserConfigurationException;
12  
13  import	org.xml.sax.Attributes;
14  import	org.xml.sax.SAXException;
15  
16  import	tsukuba_bunko.resource.ResourceDeserializer;
17  import	tsukuba_bunko.resource.ResourceLoader;
18  
19  
20  /***
21   * "Peko" 用のリソースをロードする ResouceLoader です。
22   * @author	$Author: ppoi $
23   * @version	$Revision: 1.1 $
24   */
25  public class PekoResourceLoader	extends ResourceLoader	{
26  
27  	/***
28  	 * パス情報
29  	 */
30  	private StringBuffer	_path = null;
31  
32  
33  	/***
34  	 * <code>PekoResourceLoader</code> のインスタンスを作成します。
35  	 * @throws	InitializationError	初期化に失敗した場合
36  	 */
37  	public PekoResourceLoader()
38  		throws ParserConfigurationException, SAXException
39  	{
40  		super();
41  		setDeserializerMapping( TypeMapping.getInstance().getDeserializerMapping() );
42  	}
43  
44  
45  //
46  //	ResourceLoader の実装
47  //
48  	protected ResourceDeserializer getResourceDeserializer( String namespaceURI, String localName, String qName, Attributes attrs )
49  	{
50  		ResourceDeserializer	deserializer = null;
51  
52  		if( (_path == null) || (_path.length() == 0) )	{
53  			_path = new StringBuffer( getCurrentPath() );
54  		}
55  		else	{
56  			_path.append( '.' );
57  			_path.append( qName );
58  		}
59  
60  		TypeMapping	mapping = TypeMapping.getInstance();
61  		deserializer = mapping.getResourceDeserializer( new String(_path) );
62  		return deserializer;
63  	}
64  
65  
66  //
67  //	ContentHandler の実装
68  //
69  	public void startDocument()
70  	{
71  		super.startDocument();
72  		_path = null;
73  	}
74  
75  	public void endElement( String namespaceURI, String localName, String qName )
76  		throws SAXException
77  	{
78  		super.endElement( namespaceURI, localName, qName );
79  		_path = null;
80  	}
81  }