1 10 package org.mmbase.module.builders; 11 12 import java.util.*; 13 14 import org.mmbase.module.builders.vwms.*; 15 import org.mmbase.module.core.*; 16 import org.mmbase.util.logging.*; 17 18 38 public class NetFileSrv extends MMObjectBuilder { 39 40 private static Logger log = Logging.getLoggerInstance(NetFileSrv.class.getName()); 42 43 46 Hashtable service2bot=new Hashtable(); 47 48 54 public String getGUIIndicator(MMObjectNode node) { 55 String str=node.getStringValue("service"); 56 str+="/"+node.getStringValue("subservice"); 57 if (str.length()>15) { 58 return str.substring(0,12)+"..."; 59 } else { 60 return str; 61 } 62 } 63 64 72 public boolean fileChange(String number,String ctype) { 73 try { 74 log.debug(number+" "+ctype); 75 MMObjectNode node=getNode(number); 76 String service=node.getStringValue("service"); 77 String subservice=node.getStringValue("subservice"); 78 String servicestr=service+"/"+subservice; 79 Object bot=service2bot.get(servicestr); 80 if (bot!=null) { 81 if (bot instanceof VwmServiceInterface){ 82 ((VwmServiceInterface)bot).fileChange(number,ctype); 83 } else { 84 log.warn("Bot for "+servicestr+" is not a VwmServiceInterface."); 85 } 86 } else { 87 bot=getAttachedBot(service,subservice); 89 if (bot!=null) { 90 service2bot.put(servicestr,bot); 91 if (bot instanceof VwmServiceInterface) { 92 ((VwmServiceInterface)bot).fileChange(number,ctype); 93 } else { 94 log.warn("Bot for "+servicestr+" is not a VwmServiceInterface."); 95 } 96 } 97 } 98 } catch (Exception e) { 99 log.error("FileChange Exception : "+e); 100 log.error(Logging.stackTrace(e)); 101 } 102 return true; 103 } 104 105 106 116 public boolean fileChange(String service,String subservice,String filename) { 117 String servicestr=service+"/"+subservice; 118 Object bot=service2bot.get(servicestr); 119 if (bot!=null) { 120 if (bot instanceof VwmServiceInterface) ((VwmServiceInterface)bot).fileChange(service,subservice,filename); 121 } else { 122 bot=getAttachedBot(service,subservice); 124 if (bot!=null) { 125 service2bot.put(servicestr,bot); 126 if (bot instanceof VwmServiceInterface) ((VwmServiceInterface)bot).fileChange(service,subservice,filename); 127 } 128 } 129 return true; 130 } 131 132 142 public Object getAttachedBot(String service,String subservice) { 143 Enumeration e=search("WHERE service='"+service+"' AND subservice='"+subservice+"'"); 144 145 if(!e.hasMoreElements()) { 146 log.error("No entry with service="+service+" and subservice="+subservice+" found in netfilesrv"); 147 } 148 while (e.hasMoreElements()) { 149 MMObjectNode node=(MMObjectNode)e.nextElement(); 150 int number=node.getIntValue("number"); 151 Enumeration f=mmb.getInsRel().getRelated(""+number,"vwms"); 152 153 if(!f.hasMoreElements()) { 154 log.error("No Vwms related to the service="+service+" and subservice="+subservice+" found in netfilesrv"); 155 } 156 while (f.hasMoreElements()) { 157 MMObjectNode vwmnode=(MMObjectNode)f.nextElement(); 158 Vwms vwms=(Vwms)mmb.getMMObject("vwms"); 159 if (vwms!=null) { 160 String name=vwmnode.getStringValue("name"); 161 VwmServiceInterface vwm=(VwmServiceInterface)vwms.getVwm(name); 162 if (vwm!=null) { 163 return vwm; 164 } else { 165 log.error("Vwms "+name+" not loaded."); 166 } 167 } else { 168 log.error("Builder vwms not loaded."); 169 } 170 } 171 } 172 return new Object (); } 174 } 175 | Popular Tags |