1 10 package org.mmbase.module.builders; 11 12 import java.util.*; 13 14 import org.mmbase.cache.Cache; 15 import org.mmbase.module.core.*; 16 import org.mmbase.util.*; 17 import org.mmbase.util.logging.*; 18 19 26 public class People extends MMObjectBuilder { 27 28 private static Logger log = Logging.getLoggerInstance(People.class.getName()); 29 30 33 private Cache peopleCache = new Cache(100) { 34 public String getName() { return "PeopleCache"; } 35 public String getDescription() { return "Cache for most active people"; } 36 }; 37 38 55 public String replace(scanpage sp, StringTokenizer tok) { 56 if (tok.hasMoreTokens()) { 57 String cmd=tok.nextToken(); 58 if (cmd.equals("number")) { 59 int i=getNumber(sp.getSessionName()); 60 if (i!=-1) { 61 return ""+i; 62 } 63 } 64 } 65 return ""; 66 } 67 68 74 public int getNumber(String key) { 75 Integer n=(Integer )peopleCache.get(key); 76 if (n!=null) { 77 log.debug("People - "+key+" people found in cache."); 78 return n.intValue(); 79 } 80 Users bul=(Users)mmb.getMMObject("users"); 82 if (bul!=null) { 83 int i=bul.getNumber(key); 84 if (i!=-1) { 85 MMObjectNode node=getNode(i); 87 Enumeration e=node.getRelatedNodes("people").elements(); 88 if (e.hasMoreElements()) { 89 MMObjectNode node2=(MMObjectNode)e.nextElement(); 90 if (node2!=null) { 91 int number=node2.getNumber(); 92 peopleCache.put(key,new Integer (number)); 93 return number; 94 } 95 } 96 } 97 } 98 return -1; 99 } 100 101 105 public void flushCache(String key) { 106 if(key!=null) 108 peopleCache.remove(key); 109 } 110 } 111 | Popular Tags |