KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > monitor > alarm > AlarmKey


1 /*
2 * JBoss, Home of Professional Open Source
3 * Copyright 2005, JBoss Inc., and individual contributors as indicated
4 * by the @authors tag. See the copyright.txt in the distribution for a
5 * full listing of individual contributors.
6 *
7 * This is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as
9 * published by the Free Software Foundation; either version 2.1 of
10 * the License, or (at your option) any later version.
11 *
12 * This software is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this software; if not, write to the Free
19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21 */

22 package org.jboss.monitor.alarm;
23
24 import javax.management.ObjectName JavaDoc;
25
26 /**
27  * AlarmKey
28  *
29  * Used to correlate stateful alarms based on mbean+type match.
30  *
31  * @author <a HREF="mailto:dimitris@jboss.org">Dimitris Andreadis</a>
32  * @version $Revision: 37459 $
33  */

34 class AlarmKey
35 {
36    // Private Data --------------------------------------------------
37

38    private String JavaDoc alarmId;
39
40    // Static Helper -------------------------------------------------
41

42    public static AlarmKey createKey(Object JavaDoc mbean, String JavaDoc type)
43    {
44       if (mbean instanceof ObjectName JavaDoc)
45       {
46          return new AlarmKey(mbean.toString(), type);
47       }
48       else if (mbean instanceof String JavaDoc)
49       {
50          return new AlarmKey((String JavaDoc)mbean, type);
51       }
52       else
53       {
54          throw new IllegalArgumentException JavaDoc("Bad non-ObjectName 'mbean' parameter: " + mbean);
55       }
56    }
57    
58    // Constructor ---------------------------------------------------
59

60    public AlarmKey(String JavaDoc mbean, String JavaDoc type)
61    {
62       StringBuffer JavaDoc sbuf = new StringBuffer JavaDoc(256);
63       
64       sbuf.append(mbean).append('+').append(type);
65       
66       alarmId = sbuf.toString();
67    }
68    
69    // Object stuff --------------------------------------------------
70

71    /**
72     * Bases equality on alarmId equality
73     */

74    public boolean equals(Object JavaDoc obj)
75    {
76       if (obj instanceof AlarmKey)
77       {
78          return ((AlarmKey)obj).alarmId.equals(this.alarmId);
79       }
80       else
81       {
82          return false;
83       }
84    }
85    
86    /**
87     * Makes use of alarmId's hashCode
88     */

89    public int hashCode()
90    {
91       return this.alarmId.hashCode();
92    }
93    
94    /**
95     * Pretty prints
96     */

97    public String JavaDoc toString()
98    {
99       StringBuffer JavaDoc sbuf = new StringBuffer JavaDoc(256);
100       
101       sbuf.append("AlarmKey[").append(this.alarmId).append("]");
102       
103       return sbuf.toString();
104    }
105 }
106
Popular Tags