/*
* @(#)$Id: DataTypeVocabularyMap.java,v 1.7 2001/05/29 23:00:03 Bear Exp $
*
* Copyright 2001 Sun Microsystems, Inc. All Rights Reserved.
*
* This software is the proprietary information of Sun Microsystems, Inc.
* Use is subject to license terms.
*
*/
package com.sun.msv.reader.datatype;
import java.util.Map;
/**
* a map from namespace URI to DataTypeVocabulary
*
* @author <a href="mailto:kohsuke.kawaguchi@eng.sun.com">Kohsuke KAWAGUCHI</a>
*/
public class DataTypeVocabularyMap implements java.io.Serializable {
/** map from namespace URI to DataTypeVocabulary */
private final Map impl = new java.util.HashMap();
/**
* obtains an DataTypeVocabulary associated to the namespace.
*
* If necessary, Vocabulary is located and instanciated.
*/
public DataTypeVocabulary get( String namespaceURI ) {
DataTypeVocabulary v = (DataTypeVocabulary)impl.get(namespaceURI);
if(v!=null) return v;
// TODO: generic way to load a vocabulary
if( namespaceURI.equals( com.sun.msv.reader.datatype.xsd.XSDVocabulary.XMLSchemaNamespace ) ) {
v = new com.sun.msv.reader.datatype.xsd.XSDVocabulary();
impl.put( com.sun.msv.reader.datatype.xsd.XSDVocabulary.XMLSchemaNamespace, v );
impl.put( com.sun.msv.reader.datatype.xsd.XSDVocabulary.XMLSchemaNamespace2, v );
}
return v;
}
/** manually adds DataTypeVocabulary into this map. */
public void put( String namespaceURI, DataTypeVocabulary voc ) {
impl.put( namespaceURI, voc );
}
}