yet another rewrite of the producers...
[mir.git] / source / mircoders / producer / ContentProducer.java
index 5790063..99902a5 100755 (executable)
@@ -12,11 +12,10 @@ import mir.generator.*;
 import mircoders.localizer.*;
 import mircoders.global.*;
 import mircoders.entity.*;
+import mircoders.entity.adapter.*;
 
 import org.apache.struts.util.MessageResources;
 
-// @todo ML: the file that gets generated should be better configurable
-
 public class ContentProducer implements mir.producer.Producer {
 
   private String generatorIdentifier;
@@ -39,7 +38,7 @@ public class ContentProducer implements mir.producer.Producer {
     outputFileExpression = anOutputFileExpression;
   }
 
-  public void produce( PrintWriter aLogger ) throws ProducerException {
+  public void produce( PrintWriter aLogger ) throws ProducerFailure {
     EntityContent content;
 
     Map generationValues = new HashMap();
@@ -60,7 +59,7 @@ public class ContentProducer implements mir.producer.Producer {
 
       while (browser.hasNext()) {
         content = (EntityContent) browser.next();
-        dataMap.put("content", content);
+        dataMap.put("content", ContentAdapterDefinition.getInstance().makeEntityAdapter(content));
 
         String date = content.getValue("date");
 
@@ -76,21 +75,14 @@ public class ContentProducer implements mir.producer.Producer {
         aLogger.println("fileName = " + fileName);
 
         try {
-          File file = new File(fileName);
+          aLogger.println("generating: " + fileName);
 
-          File dir = new File(file.getParent());
-          if (!dir.exists()){
-            dir.mkdirs();
-          }
+          PrintWriter printWriter = MirGlobal.localizer().producerTool().openWriter(fileName);
 
-          FileWriter fileWriter = new FileWriter(file);
-          PrintWriter printWriter = new PrintWriter(fileWriter);
+          generator.generate(printWriter, generationValues, aLogger);
 
-          aLogger.println("generating: " + fileName);
+          MirGlobal.localizer().producerTool().closeWriter(printWriter);
 
-          generator.generate(printWriter, generationValues, aLogger);
-          printWriter.close();
-          fileWriter.close();
           content.setProduced(true);
 
           aLogger.println("done generating: " + fileName);