summaryrefslogtreecommitdiffstats
path: root/org/madore/damlengine/DamlEngine.java
diff options
context:
space:
mode:
Diffstat (limited to 'org/madore/damlengine/DamlEngine.java')
-rw-r--r--org/madore/damlengine/DamlEngine.java30
1 files changed, 24 insertions, 6 deletions
diff --git a/org/madore/damlengine/DamlEngine.java b/org/madore/damlengine/DamlEngine.java
index a0299ad..4826cf1 100644
--- a/org/madore/damlengine/DamlEngine.java
+++ b/org/madore/damlengine/DamlEngine.java
@@ -81,8 +81,10 @@ public final class DamlEngine {
}
public static final class IncantDOM {
- static DOMImplementation domi;
+ static ThreadLocal<DOMImplementation> pdomi
+ = new ThreadLocal<DOMImplementation>();
public static DOMImplementation getDOMI() {
+ DOMImplementation domi = pdomi.get();
if ( domi == null ) {
DOMImplementationSource source
= new DOMImplementationSourceImpl();
@@ -90,6 +92,7 @@ public final class DamlEngine {
if ( domi == null )
throw new MissingResourceException("failed to obtain DOM implementation",
"org.w3c.dom.ls.DOMImplementationLS", "");
+ pdomi.set(domi);
}
return domi;
}
@@ -112,20 +115,28 @@ public final class DamlEngine {
}
public static void processDocument(Document doc,
- Context.WeblogSelectionContext wsc) {
+ Context.WeblogSelectionContext wsc,
+ Context.DynamicContext dc) {
TodoDeque todoDeque = new TodoDeque();
Context ctx = new Context(doc);
ctx.wsc = wsc;
+ ctx.dc = dc;
todoDeque.registerAtEnd(new RootTodo(ctx));
todoDeque.dispatchLoop();
}
+ public static void processDocument(Document doc,
+ Context.WeblogSelectionContext wsc) {
+ processDocument(doc, wsc, null);
+ }
+
public static void processDocument(Document doc) {
- processDocument(doc, null);
+ processDocument(doc, null, null);
}
public static void fullProcess(InputStream in, OutputStream out,
- Context.WeblogSelectionContext wsc)
+ Context.WeblogSelectionContext wsc,
+ Context.DynamicContext dc)
throws Exception {
final DOMImplementationLS domils
@@ -139,7 +150,7 @@ public final class DamlEngine {
LSInput input = domils.createLSInput();
input.setByteStream(in);
Document doc = par.parse(input);
- processDocument(doc, wsc);
+ processDocument(doc, wsc, dc);
doc.normalizeDocument();
Unparser unparser
= new Unparser(doc, new OutputStreamWriter(out, "UTF-8"),
@@ -148,11 +159,18 @@ public final class DamlEngine {
}
+ public static void fullProcess(InputStream in, OutputStream out,
+ Context.WeblogSelectionContext wsc)
+ throws Exception {
+ fullProcess(in, out, wsc, null);
+ }
+
public static void fullProcess(InputStream in, OutputStream out)
throws Exception {
- fullProcess(in, out, null);
+ fullProcess(in, out, null, null);
}
+ public static boolean runAsServlet = false;
public static Properties appProps;
public static Path basePath;
public static Path templatePath;