- public void addJob(String aProducerFactory, String aVerb) {
- producerJobQueue.appendJob(new ProducerJob(aProducerFactory, aVerb), aProducerFactory+"."+aVerb);
+ public void addJob(String aProducerFactory, String aVerb) throws ProducerEngineExc, ProducerEngineFailure {
+ ProducerFactory factory;
+
+ try {
+ factory = MirGlobal.localizer().producers().getFactoryForName( aProducerFactory );
+ }
+ catch (MirLocalizerExc e) {
+ throw new ProducerEngineFailure(e);
+ }
+
+ if (factory==null)
+ throw new ProducerEngineExc("Unknown producer: " + aProducerFactory);
+
+ if (!factory.allowVerb(aVerb))
+ throw new ProducerEngineExc("illegal producer/verb combination: " + aProducerFactory+"::"+aVerb);
+
+ producerJobQueue.appendJob(
+ new ProducerJob(aProducerFactory, aVerb), aProducerFactory+"."+aVerb);