// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: packimports(3) fieldsfirst lnc
// Source File Name: StandardURIResolver.java
package com.icl.saxon;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.transform.*;
import javax.xml.transform.sax.SAXSource;
import org.xml.sax.InputSource;
import org.xml.sax.helpers.XMLFilterImpl;
// Referenced classes of package com.icl.saxon:
// IDFilter, TransformerFactoryImpl
public class StandardURIResolver
implements URIResolver
{
private TransformerFactoryImpl factory;
protected StandardURIResolver()
{
/* 25*/ this(null);
}
public StandardURIResolver(TransformerFactoryImpl transformerfactoryimpl)
{
/* 22*/ factory = null;
/* 29*/ factory = transformerfactoryimpl;
}
public Source resolve(String s, String s1)
throws TransformerException
{
/* 44*/ String s2 = s;
/* 45*/ String s3 = null;
/* 46*/ int i = s.indexOf('#');
/* 47*/ if(i >= 0)
{
/* 48*/ s2 = s.substring(0, i);
/* 49*/ s3 = s.substring(i + 1);
}
URL url;
/* 55*/ try
{
/* 55*/ if(s1 == null)
{
/* 56*/ url = new URL(s2);
} else
{
/* 60*/ URL url1 = new URL(s1);
/* 61*/ url = s2.length() != 0 ? new URL(url1, s2) : url1;
}
}
/* 70*/ catch(MalformedURLException malformedurlexception)
{
/* 70*/ String s4 = tryToExpand(s1);
/* 71*/ if(!s4.equals(s1))
/* 72*/ return resolve(s, s4);
/* 75*/ else
/* 75*/ throw new TransformerException("Malformed URL [" + s2 + "] - base [" + s1 + "]", malformedurlexception);
}
/* 79*/ SAXSource saxsource = new SAXSource();
/* 80*/ saxsource.setInputSource(new InputSource(url.toString()));
/* 82*/ if(s3 != null)
{
/* 83*/ IDFilter idfilter = new IDFilter(s3);
org.xml.sax.XMLReader xmlreader;
/* 85*/ if(factory == null)
/* 87*/ try
{
/* 87*/ xmlreader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
}
/* 89*/ catch(Exception exception)
{
/* 89*/ throw new TransformerException(exception);
}
/* 92*/ else
/* 92*/ xmlreader = factory.getSourceParser();
/* 94*/ idfilter.setParent(xmlreader);
/* 95*/ saxsource.setXMLReader(idfilter);
}
/* 97*/ return saxsource;
}
private String tryToExpand(String s)
{
/* 108*/ if(s == null)
/* 109*/ s = "";
String s2;
/* 112*/ try
{
/* 112*/ URL url = new URL(s);
/* 113*/ return s;
}
/* 115*/ catch(MalformedURLException malformedurlexception)
{
/* 115*/ String s1 = System.getProperty("user.dir");
/* 116*/ if(s1.startsWith("/"))
/* 117*/ s1 = "file://" + s1;
/* 119*/ else
/* 119*/ s1 = "file:///" + s1;
/* 121*/ if(!s1.endsWith("/") && !s.startsWith("/"))
/* 122*/ s1 = s1 + "/";
/* 124*/ s2 = s1 + s;
}
/* 126*/ try
{
/* 126*/ URL url1 = new URL(s2);
/* 128*/ return s2;
}
/* 131*/ catch(MalformedURLException malformedurlexception1)
{
/* 131*/ return s;
}
}
}