1 package mircoders.producer;
7 import mir.generator.*;
8 import mircoders.global.*;
9 import mircoders.localizer.*;
11 public class GeneratingProducerNode implements ProducerNode {
12 private String generatorExpression;
13 private String destinationExpression;
15 public GeneratingProducerNode(String aGenerator, String aDestination) {
16 generatorExpression=aGenerator;
17 destinationExpression=aDestination;
20 public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure {
22 PrintWriter printWriter;
23 String generatorIdentifier;
24 String destinationIdentifier;
29 startTime = System.currentTimeMillis();
32 destinationIdentifier = ParameterExpander.expandExpression( aValueMap, destinationExpression );
33 generatorIdentifier = ParameterExpander.expandExpression( aValueMap, generatorExpression );
35 aLogger.println("Generating " + generatorIdentifier + " into " + destinationIdentifier);
37 printWriter = MirGlobal.localizer().producerTool().openWriter( destinationIdentifier );
38 generator = MirGlobal.localizer().generators().makeGenerator( generatorIdentifier );
39 generator.generate(printWriter, aValueMap, aLogger);
40 MirGlobal.localizer().producerTool().closeWriter( printWriter );
43 aLogger.println(" error while generating: " + t.getMessage());
46 endTime = System.currentTimeMillis();
48 aLogger.println(" Time: " + (endTime-startTime) + " ms<br>");
52 public Set buildVerbSet() {