1 21 22 package org.continuent.sequoia.controller.cache.parsing; 23 24 import javax.management.NotCompliantMBeanException ; 25 26 import org.continuent.sequoia.common.i18n.Translate; 27 import org.continuent.sequoia.common.jmx.mbeans.ParsingCacheMBean; 28 import org.continuent.sequoia.controller.jmx.AbstractStandardMBean; 29 30 36 public class ParsingCacheControl extends AbstractStandardMBean 37 implements 38 ParsingCacheMBean 39 { 40 private ParsingCache managedCache; 41 private static final int ENTRIES_PER_DUMP = 100; 42 private int numberOfCacheEntries = 0; 43 private int currentDumpIndex = 0; 44 45 51 public ParsingCacheControl(ParsingCache cache) 52 throws NotCompliantMBeanException 53 { 54 super(ParsingCacheMBean.class); 55 this.managedCache = cache; 56 } 57 58 61 public String getAssociatedString() 62 { 63 return "requestfactory"; } 65 66 69 public String dumpCacheConfig() 70 { 71 return managedCache.dumpCacheConfig(); 72 } 73 74 77 public String dumpNextCacheEntries() 78 { 79 StringBuffer ret = new StringBuffer (); 80 if (currentDumpIndex > numberOfCacheEntries) 81 { 82 currentDumpIndex = 0; 84 return null; 85 } 86 if (currentDumpIndex == 0) 87 { 88 numberOfCacheEntries = managedCache.getNumberOfCacheEntries(); 90 ret.append(Translate.get("cache.entries")); } 92 if (numberOfCacheEntries == 0) { 94 currentDumpIndex = 0; 95 return null; 96 } 97 try 98 { 99 ret.append(managedCache.dumpCacheEntries(currentDumpIndex, 100 ENTRIES_PER_DUMP)); 101 currentDumpIndex += ENTRIES_PER_DUMP; 102 } 103 catch (OutOfMemoryError e) 104 { 105 currentDumpIndex = 0; 107 return null; 108 } 109 return ret.toString(); 110 } 111 112 115 public void resetDump() 116 { 117 currentDumpIndex = 0; 118 numberOfCacheEntries = 0; 119 } 120 121 124 public String dumpCurrentlyParsedEntries() 125 { 126 return managedCache.dumpCurrentlyParsedEntries(); 129 } 130 } 131 | Popular Tags |