KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > continuent > sequoia > common > jmx > monitoring > cache > AbstractCacheStatsDataCollector


1 /**
2  * Sequoia: Database clustering technology.
3  * Copyright (C) 2002-2004 French National Institute For Research In Computer
4  * Science And Control (INRIA).
5  * Contact: sequoia@continuent.org
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  * Initial developer(s): Nicolas Modrzyk.
20  * Contributor(s):
21  */

22
23 package org.continuent.sequoia.common.jmx.monitoring.cache;
24
25 import org.continuent.sequoia.common.exceptions.DataCollectorException;
26 import org.continuent.sequoia.common.jmx.monitoring.AbstractDataCollector;
27 import org.continuent.sequoia.controller.cache.result.AbstractResultCache;
28 import org.continuent.sequoia.controller.core.Controller;
29 import org.continuent.sequoia.controller.monitoring.datacollector.DataCollector;
30 import org.continuent.sequoia.controller.virtualdatabase.VirtualDatabase;
31
32 /**
33  * Abstract template to factor code for cache collectors
34  *
35  * @author <a HREF="mailto:Nicolas.Modrzyk@inrialpes.fr">Nicolas Modrzyk </a>
36  */

37 public abstract class AbstractCacheStatsDataCollector
38     extends AbstractDataCollector
39 {
40   private String JavaDoc virtualDatabaseName;
41
42   /**
43    * new collector
44    *
45    * @param virtualDatabaseName database accessed to get data
46    */

47   public AbstractCacheStatsDataCollector(String JavaDoc virtualDatabaseName)
48   {
49     super();
50     this.virtualDatabaseName = virtualDatabaseName;
51   }
52
53   /**
54    * @see org.continuent.sequoia.common.jmx.monitoring.AbstractDataCollector#collectValue()
55    */

56   public long collectValue() throws DataCollectorException
57   {
58     VirtualDatabase vdb = ((Controller) controller)
59         .getVirtualDatabase(virtualDatabaseName);
60     AbstractResultCache cache = vdb.getRequestManager().getResultCache();
61     if (cache == null)
62       throw new DataCollectorException(DataCollector.NO_CACHE_ENABLED);
63     return this.getValue(cache);
64   }
65
66   /**
67    * We have the cache object so let's get the value we want from ot
68    *
69    * @param cache as an object to allow it through RMI, but IS a
70    * <code>AbstractResultCache</code>
71    * @return the collected value
72    */

73   public abstract long getValue(Object JavaDoc cache);
74
75   /**
76    * @see org.continuent.sequoia.common.jmx.monitoring.AbstractDataCollector#getTargetName()
77    */

78   public String JavaDoc getTargetName()
79   {
80     return virtualDatabaseName;
81   }
82 }
83
Popular Tags