merge of localization branch into HEAD. mh and zap
[mir.git] / source / mir / producer / ConditionalProducerNode.java
1 package mir.producer;
2
3 import java.util.*;
4 import java.io.*;
5 import mir.util.*;
6
7 public class ConditionalProducerNode implements ProducerNode {
8   private String condition;
9   private ProducerNode trueNode;
10   private ProducerNode falseNode;
11
12   public ConditionalProducerNode(String aCondition, ProducerNode aTrueNode, ProducerNode aFalseNode) {
13     condition = aCondition;
14     trueNode = aTrueNode;
15     falseNode = aFalseNode;
16   }
17
18   public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure {
19     try {
20       if (ParameterExpander.evaluateBooleanExpression(aValueMap, condition)) {
21         if (trueNode!=null)
22           trueNode.produce(aValueMap, aVerb, aLogger);
23       }
24       else {
25         if (falseNode!=null)
26           falseNode.produce(aValueMap, aVerb, aLogger);
27       }
28     }
29     catch (Exception e) {
30       throw new ProducerFailure(e);
31     }
32   }
33
34   public Set buildVerbSet() {
35     return new HashSet();
36   }
37 }