some new files / some changes here and there for localized producers
[mir.git] / source / mircoders / global / ProducerEngine.java
1 package mircoders.global;
2
3 import java.util.*;
4 import java.io.*;
5 import mir.producer.*;
6 import mir.util.*;
7
8 public class ProducerEngine {
9   private Map producers;
10   private List Queue;
11   private Thread queueThread;
12
13   void ProducerEngine() {
14     producers = MirGlobal.localizer().producers().factories();
15     Queue = new Vector();
16
17 //    queueThread = new Thread(
18   }
19
20   void addTask(String aProducerFactory, String aVerb) {
21     produceNow(aProducerFactory, aVerb, new PrintWriter(new NullWriter()));
22   }
23
24   void produceNow(String aProducerFactory, String aVerb, PrintWriter aLogger) {
25     try {
26       aLogger.println("Producing <" + aProducerFactory + "," + aVerb + "><br>");
27
28       ProducerFactory factory = (ProducerFactory) producers.get(aProducerFactory);
29
30       if (factory == null )
31         throw new Exception("No producer factory '"+aProducerFactory+"' present.");
32
33       Producer producer = factory.makeProducer(aVerb);
34
35       producer.produce(aLogger);
36     }
37     catch (Throwable e) {
38       try {
39         aLogger.println("exception occurred:<br>");
40         aLogger.println(e.getMessage());
41         e.printStackTrace(aLogger);
42       }
43       catch (Throwable f) {
44       }
45     }
46   }
47
48   private class ProducerQueueItem {
49     String factory;
50     String verb;
51
52     public ProducerQueueItem(String aFactory, String aVerb) {
53       factory = aFactory;
54       verb = aVerb;
55     }
56
57     public String getVerb() {
58       return verb;
59     }
60
61     public String getFactory() {
62       return factory;
63     }
64   }
65
66   private class ProducerQueue implements Runnable {
67     public void run() {
68       while (false) {
69       }
70     }
71   }
72
73 }