1 package mircoders.producer;
9 import mir.generator.*;
11 import mir.entity.adapter.*;
12 //import mircoders.global.*;
13 //import mircoders.localizer.*;
14 import mircoders.entity.*;
15 import mircoders.storage.*;
17 public class MediaGeneratingProducerNode implements ProducerNode {
18 private String mediaEntityKey;
20 public MediaGeneratingProducerNode(String aMediaEntityKey) {
21 mediaEntityKey = aMediaEntityKey;
24 public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure {
27 Entity currentMediaType;
28 MirMedia currentMediaHandler;
31 data = ParameterExpander.findValueForKey( aValueMap, mediaEntityKey );
33 if (!(data instanceof EntityAdapter)) {
34 throw new ProducerFailure("MediaGeneratingProducerNode: value of '"+mediaEntityKey+"' is not an EntityAdapter, but an " + data.getClass().getName(), null);
37 entity = ((EntityAdapter) data).getEntity();
38 if (! (entity instanceof EntityUploadedMedia)) {
39 throw new ProducerFailure("MediaGeneratingProducerNode: value of '"+mediaEntityKey+"' is not an uploaded media EntityAdapter, but a " + entity.getClass().getName() + " adapter", null);
42 currentMediaType = DatabaseUploadedMedia.getInstance().getMediaType(entity);
44 currentMediaHandler = MediaHelper.getHandler( currentMediaType );
45 currentMediaHandler.produce(entity,currentMediaType);
46 entity.setValueForProperty("publish_server", currentMediaHandler.getPublishHost());
47 entity.setValueForProperty("icon_is_produced", "1");
48 entity.setValueForProperty("is_produced", "1");
52 aLogger.println("Error while generating media: " + t.getMessage());
53 t.printStackTrace(aLogger);
55 throw new ProducerFailure(t.getMessage(), t);
59 public Set buildVerbSet() {