/**
*
*/
package org.codehaus.mojo.cis.core;
import java.io.IOException;
import java.net.URL;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
final class CisCoreEntityResolver implements EntityResolver
{
private final CisUtils cisUtils;
/**
* Creates a new instance with the given CIS Utils.
*/
public CisCoreEntityResolver( CisUtils pCisUtils )
{
cisUtils = pCisUtils;
}
/**
* Returns the CIS Utilities.
*/
public CisUtils getCisUtils() {
return cisUtils;
}
public InputSource resolveEntity( String pPublicId, String pSystemId )
throws SAXException, IOException
{
getCisUtils().debug( "Resolving entity publicId=" + pPublicId
+ ", systemId=" + pSystemId );
final String res;
if ( "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN".equals( pPublicId ) )
{
res = "resources/web-app_2_3.dtd";
}
else
{
return null;
}
URL url = getClass().getResource( res );
if ( url == null )
{
throw new SAXException( "Failed to locate resource: " + res );
}
InputSource isource = new InputSource( url.openStream() );
isource.setSystemId( url.toExternalForm() );
return isource;
}
}