1 /*
2 ~ Copyright 2006-2007 Nicolas De Loof.
3 ~
4 ~ Licensed under the Apache License, Version 2.0 (the "License");
5 ~ you may not use this file except in compliance with the License.
6 ~ You may obtain a copy of the License at
7 ~
8 ~ http://www.apache.org/licenses/LICENSE-2.0
9 ~
10 ~ Unless required by applicable law or agreed to in writing, software
11 ~ distributed under the License is distributed on an "AS IS" BASIS,
12 ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ~ See the License for the specific language governing permissions and
14 ~ limitations under the License.
15 */
16 package org.jmonit.monitors;
17
18 import java.util.Collections;
19 import java.util.Set;
20
21 import org.jmonit.Monitor;
22 import org.jmonit.events.MonitoringEvent;
23
24 /**
25 * A convenience stub for testing purpose or to disable monitoring without
26 * breaking the application.
27 *
28 * @author <a href="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a>
29 */
30 public class NullMonitor
31 implements Monitor
32 {
33
34 private String name;
35
36 public NullMonitor( String name )
37 {
38 super();
39 this.name = name;
40 }
41
42 /**
43 * {@inheritDoc}
44 *
45 * @see org.jmonit.Monitor#add(long)
46 */
47 public void add( long value )
48 {
49 // ignored
50 }
51
52 /**
53 * {@inheritDoc}
54 *
55 * @see org.jmonit.Monitor#clear()
56 */
57 public void clear()
58 {
59 // ignored
60 }
61
62 /**
63 * {@inheritDoc}
64 *
65 * @see org.jmonit.Monitor#fireEvent(org.jmonit.events.MonitoringEvent)
66 */
67 public void fireMonitoringEvent( MonitoringEvent event )
68 {
69 // ignored
70 }
71
72 /**
73 * {@inheritDoc}
74 *
75 * @see org.jmonit.Monitor#getFeature(java.lang.Class)
76 */
77 public <T> T getFeature( Class<T> feature )
78 {
79 try
80 {
81 return feature.newInstance();
82 }
83 catch ( Exception e )
84 {
85 return null;
86 }
87 }
88
89 /**
90 * {@inheritDoc}
91 *
92 * @see org.jmonit.Monitor#getFeatures()
93 */
94 public Set<Class> getFeatures()
95 {
96 return Collections.EMPTY_SET;
97 }
98
99 /**
100 * {@inheritDoc}
101 *
102 * @see org.jmonit.Monitor#getName()
103 */
104 public String getName()
105 {
106 return name;
107 }
108
109 /**
110 * {@inheritDoc}
111 *
112 * @see org.jmonit.Monitor#getTags()
113 */
114 public Set<String> getTags()
115 {
116 return Collections.EMPTY_SET;
117 }
118
119 /**
120 * {@inheritDoc}
121 *
122 * @see org.jmonit.Monitor#hasFeatures(java.lang.Class[])
123 */
124 public boolean hasFeatures( Class[] features )
125 {
126 return false;
127 }
128
129 /**
130 * {@inheritDoc}
131 *
132 * @see org.jmonit.Monitor#isFeatureSupported(java.lang.Class)
133 */
134 public boolean isFeatureSupported( Class clazz )
135 {
136 return false;
137 }
138
139 /**
140 * {@inheritDoc}
141 *
142 * @see org.jmonit.Monitor#isTagged(java.lang.String)
143 */
144 public boolean isTagged( String tag )
145 {
146 return false;
147 }
148
149 /**
150 * {@inheritDoc}
151 *
152 * @see org.jmonit.Monitor#monitor(long, java.lang.Object)
153 */
154 public void monitor( long value, Object context )
155 {
156 // ignored
157 }
158
159 /**
160 * {@inheritDoc}
161 *
162 * @see org.jmonit.Monitor#tag(java.lang.String)
163 */
164 public Monitor tag( String tag )
165 {
166 return this;
167 }
168
169 }