From 7766f09c66945626ee883ad1a6710c2fe18dfef3 Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Sun, 11 Apr 2010 22:09:04 +0200 Subject: Handle x-daml-magic URL (this should go away eventually, of course). --- org/madore/damlengine/Resolver.java | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'org/madore/damlengine/Resolver.java') diff --git a/org/madore/damlengine/Resolver.java b/org/madore/damlengine/Resolver.java index 80f8afb..103659c 100644 --- a/org/madore/damlengine/Resolver.java +++ b/org/madore/damlengine/Resolver.java @@ -1,5 +1,6 @@ package org.madore.damlengine; +import java.io.StringReader; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; @@ -111,6 +112,27 @@ public final class Resolver return systemId; } + protected String damlMagic(String uri) { + if ( uri.equals("x-daml-magic://daml/weblog/doindex.xml") ) + return "IGNORE"; + else if ( uri.equals("x-daml-magic://daml/weblog/domaxentries.xml") ) + return "INCLUDE"; + else if ( uri.equals("x-daml-magic://daml/weblog/maxentries.xml") ) + return "20"; + else if ( uri.equals("x-daml-magic://daml/weblog/domonth.xml") ) + return "IGNORE"; + else if ( uri.equals("x-daml-magic://daml/weblog/month.xml") ) + return ""; + else if ( uri.equals("x-daml-magic://daml/weblog/docategory.xml") ) + return "IGNORE"; + else if ( uri.equals("x-daml-magic://daml/weblog/category-en.xml") ) + return ""; + else if ( uri.equals("x-daml-magic://daml/weblog/category-fr.xml") ) + return ""; + else + return null; + } + // Interface LSResourceResolver public LSInput resolveResource(String type, @@ -118,6 +140,10 @@ public final class Resolver String publicId, String systemId, String baseURI) { + String str = damlMagic(systemId); + if ( str != null ) + return new DOMInputImpl(publicId, systemId, baseURI, + str, "UTF-8"); String resolved = resolve(namespaceURI, publicId, systemId, baseURI); return new DOMInputImpl(publicId, resolved, baseURI); } @@ -126,6 +152,12 @@ public final class Resolver public InputSource resolveEntity(String publicId, String systemId) throws SAXException { + String str = damlMagic(systemId); + if ( str != null ) { + InputSource source = new InputSource(new StringReader(str)); + source.setPublicId(publicId); + return source; + } String resolved = resolve(null, publicId, systemId, null); InputSource source = new InputSource(resolved); source.setPublicId(publicId); @@ -137,6 +169,12 @@ public final class Resolver public InputSource resolveEntity(String name, String publicId, String baseURI, String systemId) throws SAXException { + String str = damlMagic(systemId); + if ( str != null ) { + InputSource source = new InputSource(new StringReader(str)); + source.setPublicId(publicId); + return source; + } String resolved = resolve(null, publicId, systemId, baseURI); InputSource source = new InputSource(resolved); source.setPublicId(publicId); -- cgit v1.2.3