added PDFGenerate, which wraps up PDFGeneratingProducerNode with an
[mir.git] / source / mircoders / producer / reader / SupplementalProducerNodeBuilders.java
index 6e7a60b..2630d0d 100755 (executable)
@@ -45,6 +45,7 @@ public class SupplementalProducerNodeBuilders {
     aBuilderLibrary.registerBuilder("ModifyContent", ContentModifyingProducerNodeBuilder.class);
     aBuilderLibrary.registerBuilder("MarkContent", ContentMartkingProducerNodeBuilder.class);
     aBuilderLibrary.registerBuilder("PDFPreFormat", PDFPreFormattingProducerNodeBuilder.class);
+    aBuilderLibrary.registerBuilder("PDFGenerate", PDFGeneratingProducerNodeBuilder.class);
   }
 
   public static class ContentMartkingProducerNodeBuilder extends DefaultProducerNodeBuilders.AbstractProducerNodeBuilder {
@@ -140,6 +141,37 @@ public class SupplementalProducerNodeBuilders {
     };
   }
 
+public static class PDFGeneratingProducerNodeBuilder extends DefaultProducerNodeBuilders.AbstractProducerNodeBuilder {
+    private final static String   MARKER_KEY_ATTRIBUTE = DefaultProducerNodeBuilders.KEY_ATTRIBUTE;
+    private final static String   PDF_GENERATOR_ATTRIBUTE = "generator";
+    private final static String   PDF_DESTINATION_ATTRIBUTE = "destination";
+    private final static String   PDF_STYLESHEET_ATTRIBUTE = "stylesheet";
+    private final static String[] MARKER_REQUIRED_ATTRIBUTES = {PDF_GENERATOR_ATTRIBUTE,PDF_DESTINATION_ATTRIBUTE,PDF_STYLESHEET_ATTRIBUTE  };
+    private final static String[] MARKER_OPTIONAL_ATTRIBUTES = {};
+    private final static String[] MARKER_SUBNODES = {};
+
+    private String generator;
+    private String destination;
+    private String stylesheet;
+
+
+    public PDFGeneratingProducerNodeBuilder() {
+      super(MARKER_SUBNODES);
+    }
+
+    public void setAttributes(Map anAttributes) throws ProducerConfigExc {
+      ReaderTool.checkAttributes(anAttributes, MARKER_REQUIRED_ATTRIBUTES, MARKER_OPTIONAL_ATTRIBUTES);
+
+      generator = (String) anAttributes.get(PDF_GENERATOR_ATTRIBUTE);
+      destination = (String) anAttributes.get(PDF_DESTINATION_ATTRIBUTE);
+      stylesheet = (String) anAttributes.get(PDF_STYLESHEET_ATTRIBUTE);
+    };
+
+    public ProducerNode constructNode() {
+      return new PDFGeneratingProducerNode(generator,destination,stylesheet);
+    };
+  }
+
 
 /*
   TODO: