KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > applications > media > builders > MediaProviders


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10
11 package org.mmbase.applications.media.builders;
12
13 import org.mmbase.module.core.MMObjectNode;
14 import org.mmbase.applications.media.urlcomposers.URLComposerFactory;
15 import org.mmbase.module.core.*;
16 import org.mmbase.util.logging.*;
17 import java.util.*;
18 import java.lang.reflect.Method JavaDoc;
19
20 /**
21  * A MediaProvider builder describes a service that offers a media service. The mediaprovider
22  * is related to the mediasources that are available on the mediaprovider. A mediaprovider can
23  * be online/offline.
24  *
25 * @author Michiel Meeuwissen
26  * @version $Id: MediaProviders.java,v 1.13 2005/01/30 16:46:39 nico Exp $
27  * @since MMBase-1.7
28  */

29 public class MediaProviders extends MMObjectBuilder {
30     private static Logger log = Logging.getLoggerInstance(MediaProviders.class);
31
32     public final static int STATE_ON = 1;
33     public final static int STATE_OFF = 2;
34
35     private URLComposerFactory urlComposerFactory;
36
37     public boolean init() {
38         if (super.init()) {
39             try {
40                 String JavaDoc clazz = getInitParameter("URLComposerFactory");
41                 if (clazz == null) clazz = "org.mmbase.applications.media.urlcomposers.URLComposerFactory";
42                 Method JavaDoc m = Class.forName(clazz).getMethod("getInstance", (Class JavaDoc[])null);
43                 urlComposerFactory = (URLComposerFactory) m.invoke(null, (Object JavaDoc[])null);
44                 return true;
45             } catch (Exception JavaDoc e) {
46                 log.error("Could not get URLComposerFactory because: " + e.toString());
47                 return false;
48             }
49         }
50         return false;
51
52     }
53
54
55     /**
56      * A MediaProvider can provide one or more URL's for every source
57      * @return A List of URLComposer's
58      */

59
60     protected List getURLs(MMObjectNode provider, MMObjectNode source, MMObjectNode fragment, Map info, List urls, Set cacheExpireObjects) {
61         return urlComposerFactory.createURLComposers(provider, source, fragment, info, urls, cacheExpireObjects);
62     }
63
64     protected Object JavaDoc executeFunction(MMObjectNode node, String JavaDoc function, List args) {
65         if (log.isDebugEnabled()) {
66             log.debug("Executing function " + function + " on node " + node.getNumber() + " with argument " + args);
67         }
68
69         if (function.equals("info")) {
70             List empty = new ArrayList();
71             Map info = (Map) super.executeFunction(node, "info", empty);
72             if (args == null || args.size() == 0) {
73                 return info;
74             } else {
75                 return info.get(args.get(0));
76             }
77         }
78         return super.executeFunction(node, function, args);
79     }
80 }
81
Popular Tags