GeneratingProducerNode now alerts the ChangeTracker whenever a file change is made...
authoryossarian <yossarian>
Sat, 11 Nov 2006 15:53:38 +0000 (15:53 +0000)
committeryossarian <yossarian>
Sat, 11 Nov 2006 15:53:38 +0000 (15:53 +0000)
source/mir/producer/GeneratingProducerNode.java

index 5aaf89e..385c7e3 100755 (executable)
  */
 package mir.producer;
 
+import mir.changetracker.ChangeTracker;
+import mir.changetracker.ChangeType;
 import mir.generator.Generator;
 import mir.generator.WriterEngine;
 import mir.log.LoggerWrapper;
 import mir.util.ParameterExpander;
+import mircoders.global.MirGlobal;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -81,7 +84,8 @@ public class GeneratingProducerNode extends AbstractProducerNode {
         destinationIdentifier = ParameterExpander.expandExpression(aValueMap, destinationExpression);
         generatorIdentifier = ParameterExpander.expandExpression(aValueMap, generatorExpression);
         parameters = ParameterExpander.expandExpression(aValueMap, parametersExpression);
-
+        String relPathExpression = "/${article.date.formatted.yyyy}/${article.date.formatted.MM}/${article.id}.shtml";
+        String relativePath = ParameterExpander.expandExpression(aValueMap, relPathExpression);
         mirMap.put("generator", generatorIdentifier);
         mirMap.put("destination", destinationIdentifier);
         mirMap.put("parameters", parameters);
@@ -93,6 +97,7 @@ public class GeneratingProducerNode extends AbstractProducerNode {
 
         endTime = System.currentTimeMillis();
         aLogger.debug("Generated " + generatorIdentifier + " into " + destinationIdentifier + " [" + parameters + "] in " + (endTime - startTime) + " ms");
+        reportChange(relativePath);
       }
       finally {
         mirMap.put("generator", oldGenerator);
@@ -104,4 +109,9 @@ public class GeneratingProducerNode extends AbstractProducerNode {
       aLogger.error("  error while generating", t);
     }
   }
+
+       private void reportChange(String aPath) {
+               ChangeTracker changeTracker = MirGlobal.getChangeEngine().getTracker();
+               changeTracker.addChange(aPath, ChangeType.MODIFICATION);
+       }
 }
\ No newline at end of file