package org.bouncycastle.i18n;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Locale;
public class MissingEntryException extends RuntimeException
{
protected final String resource;
protected final String key;
protected final ClassLoader loader;
protected final Locale locale;
private String debugMsg;
public MissingEntryException(String message, String resource, String key, Locale locale, ClassLoader loader)
{
super(message);
this.resource = resource;
this.key = key;
this.locale = locale;
this.loader = loader;
}
public MissingEntryException(String message, Throwable cause, String resource, String key, Locale locale, ClassLoader loader)
{
super(message, cause);
this.resource = resource;
this.key = key;
this.locale = locale;
this.loader = loader;
}
public String getKey()
{
return key;
}
public String getResource()
{
return resource;
}
public ClassLoader getClassLoader()
{
return loader;
}
public Locale getLocale()
{
return locale;
}
public String getDebugMsg()
{
if (debugMsg == null)
{
debugMsg = "Can not find entry " + key + " in resource file " + resource + " for the locale " + locale + ".";
if (loader instanceof URLClassLoader)
{
URL[] urls = ((URLClassLoader) loader).getURLs();
debugMsg += " The following entries in the classpath were searched: ";
for (int i = 0; i != urls.length; i++)
{
debugMsg += urls[i] + " ";
}
}
}
return debugMsg;
}
}