/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.internal.xml.xsd.typeprovider;
import gw.fs.IFile;
import gw.internal.xml.xsd.ResourceFileXmlSchemaSource;
import gw.internal.xml.xsd.typeprovider.schema.XmlSchema;
import gw.lang.reflect.module.IModule;
import gw.util.Pair;
import java.net.URL;
import java.util.List;
import java.util.Map;
/**
*/
public class XmlSchemaResourceTypeLoader extends XmlSchemaResourceTypeLoaderBase<Object> {
public XmlSchemaResourceTypeLoader( IModule module ) {
super( "xsd", module );
}
protected XmlSchemaIndex<Object> loadSchemaForNamespace( String namespace, IFile resourceFile, Map<Pair<URL,String>, XmlSchema> caches ) {
XmlSchemaIndex<Object> ret = null;
try {
ret = new XmlSchemaIndex<Object>( this, namespace, new ResourceFileXmlSchemaSource( resourceFile ), null );
}
catch ( RuntimeException ex ) {
ex.printStackTrace();
for ( IXmlSchemaExceptionListener listener : _exceptionListeners ) {
listener.exceptionOccurred( namespace, resourceFile, ex );
}
}
return ret;
}
@Override
public boolean handlesNonPrefixLoads() {
return true;
}
}