KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > javax > management > compliance > serialization > support > Comparator


1 /*
2  * Copyright (C) The MX4J Contributors.
3  * All rights reserved.
4  *
5  * This software is distributed under the terms of the MX4J License version 1.0.
6  * See the terms of the MX4J License in the documentation provided with this software.
7  */

8
9 package test.javax.management.compliance.serialization.support;
10
11 import java.lang.reflect.Field JavaDoc;
12 import java.lang.reflect.Method JavaDoc;
13 import java.util.ArrayList JavaDoc;
14 import java.util.Arrays JavaDoc;
15 import java.util.List JavaDoc;
16 import java.util.Vector JavaDoc;
17 import javax.management.AttributeChangeNotification JavaDoc;
18 import javax.management.AttributeChangeNotificationFilter JavaDoc;
19 import javax.management.AttributeList JavaDoc;
20 import javax.management.AttributeValueExp JavaDoc;
21 import javax.management.BadBinaryOpValueExpException JavaDoc;
22 import javax.management.JMRuntimeException JavaDoc;
23 import javax.management.MBeanAttributeInfo JavaDoc;
24 import javax.management.MBeanConstructorInfo JavaDoc;
25 import javax.management.MBeanException JavaDoc;
26 import javax.management.MBeanFeatureInfo JavaDoc;
27 import javax.management.MBeanInfo JavaDoc;
28 import javax.management.MBeanNotificationInfo JavaDoc;
29 import javax.management.MBeanOperationInfo JavaDoc;
30 import javax.management.MBeanParameterInfo JavaDoc;
31 import javax.management.MBeanServerNotification JavaDoc;
32 import javax.management.MBeanTrustPermission JavaDoc;
33 import javax.management.Notification JavaDoc;
34 import javax.management.NotificationFilterSupport JavaDoc;
35 import javax.management.ObjectName JavaDoc;
36 import javax.management.QueryExp JavaDoc;
37 import javax.management.ReflectionException JavaDoc;
38 import javax.management.RuntimeErrorException JavaDoc;
39 import javax.management.RuntimeMBeanException JavaDoc;
40 import javax.management.RuntimeOperationsException JavaDoc;
41 import javax.management.StringValueExp JavaDoc;
42 import javax.management.ValueExp JavaDoc;
43 import javax.management.modelmbean.DescriptorSupport JavaDoc;
44 import javax.management.modelmbean.ModelMBeanAttributeInfo JavaDoc;
45 import javax.management.modelmbean.ModelMBeanConstructorInfo JavaDoc;
46 import javax.management.modelmbean.ModelMBeanInfoSupport JavaDoc;
47 import javax.management.modelmbean.ModelMBeanNotificationInfo JavaDoc;
48 import javax.management.modelmbean.ModelMBeanOperationInfo JavaDoc;
49 import javax.management.monitor.MonitorNotification JavaDoc;
50 import javax.management.relation.MBeanServerNotificationFilter JavaDoc;
51 import javax.management.relation.RelationNotification JavaDoc;
52 import javax.management.relation.RelationTypeSupport JavaDoc;
53 import javax.management.relation.Role JavaDoc;
54 import javax.management.relation.RoleInfo JavaDoc;
55 import javax.management.relation.RoleList JavaDoc;
56 import javax.management.relation.RoleResult JavaDoc;
57 import javax.management.relation.RoleUnresolved JavaDoc;
58 import javax.management.relation.RoleUnresolvedList JavaDoc;
59 import javax.management.timer.TimerNotification JavaDoc;
60
61 /**
62  * @version $Revision: 1.7 $
63  */

64 public class Comparator
65 {
66    public void compareAndQueryExp(Object JavaDoc o1, Object JavaDoc o2) throws Exception JavaDoc
67    {
68       compareQueryExp(o1, o2);
69    }
70
71    public void compareAttributeChangeNotification(Object JavaDoc o1, Object JavaDoc o2)
72    {
73       compareNotification(o1, o2);
74
75       AttributeChangeNotification JavaDoc n1 = (AttributeChangeNotification JavaDoc)o1;
76       AttributeChangeNotification JavaDoc n2 = (AttributeChangeNotification JavaDoc)o2;
77
78       if (!n1.getAttributeName().equals(n2.getAttributeName())) throw new RuntimeException JavaDoc();
79       if (!n1.getAttributeType().equals(n2.getAttributeType())) throw new RuntimeException JavaDoc();
80       if (!n1.getNewValue().equals(n2.getNewValue())) throw new RuntimeException JavaDoc();
81       if (!n1.getOldValue().equals(n2.getOldValue())) throw new RuntimeException JavaDoc();
82    }
83
84    public void compareAttributeChangeNotificationFilter(Object JavaDoc o1, Object JavaDoc o2)
85    {
86       AttributeChangeNotificationFilter JavaDoc f1 = (AttributeChangeNotificationFilter JavaDoc)o1;
87       AttributeChangeNotificationFilter JavaDoc f2 = (AttributeChangeNotificationFilter JavaDoc)o2;
88
89       if (!f1.getEnabledAttributes().equals(f2.getEnabledAttributes())) throw new RuntimeException JavaDoc();
90    }
91
92    public void compareAttributeList(Object JavaDoc o1, Object JavaDoc o2)
93    {
94       AttributeList JavaDoc a1 = (AttributeList JavaDoc)o1;
95       AttributeList JavaDoc a2 = (AttributeList JavaDoc)o2;
96       // It's enough AttributeList.equals()
97
if (!a1.equals(a2)) throw new RuntimeException JavaDoc();
98    }
99
100    public void compareAttributeNotFoundException(Object JavaDoc o1, Object JavaDoc o2)
101    {
102       compareOperationsException(o1, o2);
103    }
104
105    public void compareAttributeValueExp(Object JavaDoc o1, Object JavaDoc o2)
106    {
107       AttributeValueExp JavaDoc val1 = (AttributeValueExp JavaDoc)o1;
108       AttributeValueExp JavaDoc val2 = (AttributeValueExp JavaDoc)o2;
109
110       if (!val1.getAttributeName().equals(val2.getAttributeName())) throw new RuntimeException JavaDoc();
111    }
112
113    public void compareBadAttributeValueExpException(Object JavaDoc o1, Object JavaDoc o2)
114    {
115       // No way to compare them
116
}
117
118    public void compareBadBinaryOpValueExpException(Object JavaDoc o1, Object JavaDoc o2)
119    {
120       BadBinaryOpValueExpException JavaDoc b1 = (BadBinaryOpValueExpException JavaDoc)o1;
121       BadBinaryOpValueExpException JavaDoc b2 = (BadBinaryOpValueExpException JavaDoc)o2;
122       compareStringValueExp(b1.getExp(), b2.getExp());
123    }
124
125    public void compareBadStringOperationException(Object JavaDoc o1, Object JavaDoc o2)
126    {
127       // No way to compare them
128
}
129
130    public void compareBetweenQueryExp(Object JavaDoc o1, Object JavaDoc o2) throws Exception JavaDoc
131    {
132       compareQueryExp(o1, o2);
133    }
134
135    public void compareBinaryOpValueExp(Object JavaDoc o1, Object JavaDoc o2) throws Exception JavaDoc
136    {
137       ValueExp JavaDoc val1 = (ValueExp JavaDoc)o1;
138       ValueExp JavaDoc val2 = (ValueExp JavaDoc)o2;
139
140       compareNumericValueExp(val1.apply(null), val2.apply(null));
141    }
142
143    public void compareBinaryRelQueryExp(Object JavaDoc o1, Object JavaDoc o2) throws Exception JavaDoc
144    {
145       compareQueryExp(o1, o2);
146    }
147
148    public void compareBooleanValueExp(Object JavaDoc o1, Object JavaDoc o2) throws Exception JavaDoc
149    {
150       Field JavaDoc field = o1.getClass().getDeclaredField("val");
151       field.setAccessible(true);
152       boolean res1 = field.getBoolean(o1);
153       boolean res2 = field.getBoolean(o2);
154       if (!res1 || !res2) throw new RuntimeException JavaDoc();
155    }
156
157    public void compareClassAttributeValueExp(Object JavaDoc o1, Object JavaDoc o2)
158    {
159       // Nothing to compare
160
}
161
162    public void compareInQueryExp(Object JavaDoc o1, Object JavaDoc o2) throws Exception JavaDoc
163    {
164       compareQueryExp(o1, o2);
165    }
166
167    public void compareInstanceAlreadyExistsException(Object JavaDoc o1, Object JavaDoc o2)
168    {
169       compareOperationsException(o1, o2);
170    }
171
172    public void compareInstanceNotFoundException(Object JavaDoc o1, Object JavaDoc o2)
173    {
174       compareOperationsException(o1, o2);
175    }
176
177    public void compareIntrospectionException(Object JavaDoc o1, Object JavaDoc o2)
178    {
179       compareOperationsException(o1, o2);
180    }
181
182    public void compareInvalidApplicationException(Object JavaDoc o1, Object JavaDoc o2)
183    {
184       // No way to compare them
185
}
186
187    public void compareInvalidAttributeValueException(Object JavaDoc o1, Object JavaDoc o2)
188    {
189       compareOperationsException(o1, o2);
190    }
191
192    public void compareJMException(Object JavaDoc o1, Object JavaDoc o2)
193    {
194       compareException(o1, o2);
195    }
196
197    public void compareError(Object JavaDoc o1, Object JavaDoc o2)
198    {
199       Error JavaDoc x1 = (Error JavaDoc)o1;
200       Error JavaDoc x2 = (Error JavaDoc)o2;
201       if (!x1.getMessage().equals(x2.getMessage())) throw new RuntimeException JavaDoc();
202    }
203
204    public void compareException(Object JavaDoc o1, Object JavaDoc o2)
205    {
206       Exception JavaDoc x1 = (Exception JavaDoc)o1;
207       Exception JavaDoc x2 = (Exception JavaDoc)o2;
208       if (!x1.getMessage().equals(x2.getMessage())) throw new RuntimeException JavaDoc();
209    }
210
211    public void compareJMRuntimeException(Object JavaDoc o1, Object JavaDoc o2)
212    {
213       JMRuntimeException JavaDoc x1 = (JMRuntimeException JavaDoc)o1;
214       JMRuntimeException JavaDoc x2 = (JMRuntimeException JavaDoc)o2;
215       if (!x1.getMessage().equals(x2.getMessage())) throw new RuntimeException JavaDoc();
216    }
217
218    public void compareListenerNotFoundException(Object JavaDoc o1, Object JavaDoc o2)
219    {
220       compareOperationsException(o1, o2);
221    }
222
223    public void compareMalformedObjectNameException(Object JavaDoc o1, Object JavaDoc o2)
224    {
225       compareOperationsException(o1, o2);
226    }
227
228    public void compareMatchQueryExp(Object JavaDoc o1, Object JavaDoc o2) throws Exception JavaDoc
229    {
230       // Cannot be compared, require MBeanServer
231
}
232
233    public void compareMBeanAttributeInfo(Object JavaDoc o1, Object JavaDoc o2)
234    {
235       compareMBeanFeatureInfo(o1, o2);
236
237       MBeanAttributeInfo JavaDoc a1 = (MBeanAttributeInfo JavaDoc)o1;
238       MBeanAttributeInfo JavaDoc a2 = (MBeanAttributeInfo JavaDoc)o2;
239
240       if (!a1.getType().equals(a2.getType())) throw new RuntimeException JavaDoc();
241       if (a1.isReadable() != a2.isReadable()) throw new RuntimeException JavaDoc();
242       if (a1.isWritable() != a2.isWritable()) throw new RuntimeException JavaDoc();
243       if (a1.isIs() != a2.isIs()) throw new RuntimeException JavaDoc();
244    }
245
246    public void compareMBeanConstructorInfo(Object JavaDoc o1, Object JavaDoc o2)
247    {
248       compareMBeanFeatureInfo(o1, o2);
249
250       MBeanConstructorInfo JavaDoc c1 = (MBeanConstructorInfo JavaDoc)o1;
251       MBeanConstructorInfo JavaDoc c2 = (MBeanConstructorInfo JavaDoc)o2;
252
253       MBeanParameterInfo JavaDoc[] p1 = c1.getSignature();
254       MBeanParameterInfo JavaDoc[] p2 = c2.getSignature();
255
256       if (p1.length != p2.length) throw new RuntimeException JavaDoc();
257       for (int i = 0; i < p1.length; ++i)
258       {
259          compareMBeanParameterInfo(p1[i], p2[i]);
260       }
261    }
262
263    public void compareMBeanException(Object JavaDoc o1, Object JavaDoc o2)
264    {
265       compareJMException(o1, o2);
266
267       MBeanException JavaDoc x1 = (MBeanException JavaDoc)o1;
268       MBeanException JavaDoc x2 = (MBeanException JavaDoc)o2;
269
270       Exception JavaDoc xx1 = x1.getTargetException();
271       Exception JavaDoc xx2 = x2.getTargetException();
272       compareException(xx1, xx2);
273    }
274
275    public void compareMBeanFeatureInfo(Object JavaDoc o1, Object JavaDoc o2)
276    {
277       MBeanFeatureInfo JavaDoc f1 = (MBeanFeatureInfo JavaDoc)o1;
278       MBeanFeatureInfo JavaDoc f2 = (MBeanFeatureInfo JavaDoc)o2;
279
280       if (!f1.getName().equals(f2.getName())) throw new RuntimeException JavaDoc();
281       if (!f1.getDescription().equals(f2.getDescription())) throw new RuntimeException JavaDoc();
282    }
283
284    public void compareMBeanInfo(Object JavaDoc o1, Object JavaDoc o2)
285    {
286       MBeanInfo JavaDoc i1 = (MBeanInfo JavaDoc)o1;
287       MBeanInfo JavaDoc i2 = (MBeanInfo JavaDoc)o2;
288
289       if (!i1.getClassName().equals(i2.getClassName())) throw new RuntimeException JavaDoc();
290       if (!i1.getDescription().equals(i2.getDescription())) throw new RuntimeException JavaDoc();
291
292       MBeanAttributeInfo JavaDoc[] a1 = i1.getAttributes();
293       MBeanAttributeInfo JavaDoc[] a2 = i2.getAttributes();
294       if (a1.length != a2.length) throw new RuntimeException JavaDoc();
295       for (int i = 0; i < a1.length; ++i)
296       {
297          compareMBeanAttributeInfo(a1[i], a2[i]);
298       }
299
300       MBeanConstructorInfo JavaDoc[] c1 = i1.getConstructors();
301       MBeanConstructorInfo JavaDoc[] c2 = i2.getConstructors();
302       if (c1.length != c2.length) throw new RuntimeException JavaDoc();
303       for (int i = 0; i < c1.length; ++i)
304       {
305          compareMBeanConstructorInfo(c1[i], c2[i]);
306       }
307
308       MBeanNotificationInfo JavaDoc[] n1 = i1.getNotifications();
309       MBeanNotificationInfo JavaDoc[] n2 = i2.getNotifications();
310       if (n1.length != n2.length) throw new RuntimeException JavaDoc();
311       for (int i = 0; i < n1.length; ++i)
312       {
313          compareMBeanNotificationInfo(n1[i], n2[i]);
314       }
315
316       MBeanOperationInfo JavaDoc[] op1 = i1.getOperations();
317       MBeanOperationInfo JavaDoc[] op2 = i2.getOperations();
318       if (op1.length != op2.length) throw new RuntimeException JavaDoc();
319       for (int i = 0; i < op1.length; ++i)
320       {
321          compareMBeanOperationInfo(op1[i], op2[i]);
322       }
323    }
324
325    public void compareMBeanNotificationInfo(Object JavaDoc o1, Object JavaDoc o2)
326    {
327       compareMBeanFeatureInfo(o1, o2);
328
329       MBeanNotificationInfo JavaDoc n1 = (MBeanNotificationInfo JavaDoc)o1;
330       MBeanNotificationInfo JavaDoc n2 = (MBeanNotificationInfo JavaDoc)o2;
331
332       String JavaDoc[] t1 = n1.getNotifTypes();
333       String JavaDoc[] t2 = n2.getNotifTypes();
334
335       if (t1.length != t2.length) throw new RuntimeException JavaDoc();
336       for (int i = 0; i < t1.length; ++i)
337       {
338          if (!t1[i].equals(t2[i])) throw new RuntimeException JavaDoc();
339       }
340    }
341
342    public void compareMBeanOperationInfo(Object JavaDoc o1, Object JavaDoc o2)
343    {
344       compareMBeanFeatureInfo(o1, o2);
345
346       MBeanOperationInfo JavaDoc op1 = (MBeanOperationInfo JavaDoc)o1;
347       MBeanOperationInfo JavaDoc op2 = (MBeanOperationInfo JavaDoc)o2;
348
349       if (op1.getImpact() != op2.getImpact()) throw new RuntimeException JavaDoc();
350       if (!op1.getReturnType().equals(op2.getReturnType())) throw new RuntimeException JavaDoc();
351
352       MBeanParameterInfo JavaDoc[] p1 = op1.getSignature();
353       MBeanParameterInfo JavaDoc[] p2 = op2.getSignature();
354
355       if (p1.length != p2.length) throw new RuntimeException JavaDoc();
356       for (int i = 0; i < p1.length; ++i)
357       {
358          compareMBeanParameterInfo(p1[i], p2[i]);
359       }
360    }
361
362    public void compareMBeanParameterInfo(Object JavaDoc o1, Object JavaDoc o2)
363    {
364       compareMBeanFeatureInfo(o1, o2);
365
366       MBeanParameterInfo JavaDoc p1 = (MBeanParameterInfo JavaDoc)o1;
367       MBeanParameterInfo JavaDoc p2 = (MBeanParameterInfo JavaDoc)o2;
368
369       if (!p1.getType().equals(p2.getType())) throw new RuntimeException JavaDoc();
370    }
371
372    public void compareMBeanRegistrationException(Object JavaDoc o1, Object JavaDoc o2)
373    {
374       compareMBeanException(o1, o2);
375    }
376
377    public void compareMBeanServerNotification(Object JavaDoc o1, Object JavaDoc o2)
378    {
379       compareNotification(o1, o2);
380       ObjectName JavaDoc obj1 = ((MBeanServerNotification JavaDoc)o1).getMBeanName();
381       ObjectName JavaDoc obj2 = ((MBeanServerNotification JavaDoc)o2).getMBeanName();
382       if (!obj1.equals(obj2)) throw new RuntimeException JavaDoc();
383    }
384
385    public void compareMBeanTrustPermission(Object JavaDoc o1, Object JavaDoc o2)
386    {
387       MBeanTrustPermission JavaDoc p1 = (MBeanTrustPermission JavaDoc)o1;
388       MBeanTrustPermission JavaDoc p2 = (MBeanTrustPermission JavaDoc)o2;
389       if (!p1.getName().equals(p2.getName())) throw new RuntimeException JavaDoc();
390    }
391
392    public void compareNotCompliantMBeanException(Object JavaDoc o1, Object JavaDoc o2)
393    {
394       compareOperationsException(o1, o2);
395    }
396
397    public void compareNotification(Object JavaDoc o1, Object JavaDoc o2)
398    {
399       Notification JavaDoc n1 = (Notification JavaDoc)o1;
400       Notification JavaDoc n2 = (Notification JavaDoc)o2;
401
402       if (!n1.getSource().equals(n2.getSource())) throw new RuntimeException JavaDoc();
403       if (!n1.getType().equals(n2.getType())) throw new RuntimeException JavaDoc();
404       if (n1.getSequenceNumber() != n2.getSequenceNumber()) throw new RuntimeException JavaDoc();
405       if (!n1.getUserData().equals(n2.getUserData())) throw new RuntimeException JavaDoc();
406       if (!n1.getMessage().equals(n2.getMessage())) throw new RuntimeException JavaDoc();
407    }
408
409    public void compareNotificationFilterSupport(Object JavaDoc o1, Object JavaDoc o2)
410    {
411       NotificationFilterSupport JavaDoc f1 = (NotificationFilterSupport JavaDoc)o1;
412       NotificationFilterSupport JavaDoc f2 = (NotificationFilterSupport JavaDoc)o2;
413
414       Vector JavaDoc types1 = f1.getEnabledTypes();
415       Vector JavaDoc types2 = f2.getEnabledTypes();
416       if (!types1.containsAll(types2) || !types2.containsAll(types1)) throw new RuntimeException JavaDoc();
417    }
418
419    public void compareNotQueryExp(Object JavaDoc o1, Object JavaDoc o2) throws Exception JavaDoc
420    {
421       compareQueryExp(o1, o2);
422    }
423
424    public void compareNumericValueExp(Object JavaDoc o1, Object JavaDoc o2) throws Exception JavaDoc
425    {
426       Method JavaDoc method = o1.getClass().getDeclaredMethod("longValue", new Class JavaDoc[0]);
427       method.setAccessible(true);
428       Object JavaDoc res1 = method.invoke(o1, new Object JavaDoc[0]);
429       Object JavaDoc res2 = method.invoke(o2, new Object JavaDoc[0]);
430       if (!res1.equals(res2)) throw new RuntimeException JavaDoc();
431    }
432
433    public void compareOperationsException(Object JavaDoc o1, Object JavaDoc o2)
434    {
435       compareJMException(o1, o2);
436    }
437
438    public void compareOrQueryExp(Object JavaDoc o1, Object JavaDoc o2) throws Exception JavaDoc
439    {
440       compareQueryExp(o1, o2);
441    }
442
443    public void compareQualifiedAttributeValueExp(Object JavaDoc o1, Object JavaDoc o2)
444    {
445       compareAttributeValueExp(o1, o2);
446    }
447
448    public void compareQueryExp(Object JavaDoc o1, Object JavaDoc o2) throws Exception JavaDoc
449    {
450       QueryExp JavaDoc exp1 = (QueryExp JavaDoc)o1;
451       QueryExp JavaDoc exp2 = (QueryExp JavaDoc)o2;
452
453       if (!exp1.apply(null)) throw new RuntimeException JavaDoc();
454       if (!exp2.apply(null)) throw new RuntimeException JavaDoc();
455    }
456
457    public void compareReflectionException(Object JavaDoc o1, Object JavaDoc o2)
458    {
459       compareJMException(o1, o2);
460
461       ReflectionException JavaDoc x1 = (ReflectionException JavaDoc)o1;
462       ReflectionException JavaDoc x2 = (ReflectionException JavaDoc)o2;
463
464       Exception JavaDoc xx1 = x1.getTargetException();
465       Exception JavaDoc xx2 = x2.getTargetException();
466       compareException(xx1, xx2);
467    }
468
469    public void compareRuntimeErrorException(Object JavaDoc o1, Object JavaDoc o2)
470    {
471       compareJMRuntimeException(o1, o2);
472
473       RuntimeErrorException JavaDoc x1 = (RuntimeErrorException JavaDoc)o1;
474       RuntimeErrorException JavaDoc x2 = (RuntimeErrorException JavaDoc)o2;
475
476       Error JavaDoc e1 = x1.getTargetError();
477       Error JavaDoc e2 = x2.getTargetError();
478       compareError(e1, e2);
479    }
480
481    public void compareRuntimeMBeanException(Object JavaDoc o1, Object JavaDoc o2)
482    {
483       compareJMRuntimeException(o1, o2);
484
485       RuntimeMBeanException JavaDoc x1 = (RuntimeMBeanException JavaDoc)o1;
486       RuntimeMBeanException JavaDoc x2 = (RuntimeMBeanException JavaDoc)o2;
487
488       RuntimeException JavaDoc e1 = x1.getTargetException();
489       RuntimeException JavaDoc e2 = x2.getTargetException();
490       compareException(e1, e2);
491    }
492
493    public void compareRuntimeOperationsException(Object JavaDoc o1, Object JavaDoc o2)
494    {
495       compareJMRuntimeException(o1, o2);
496
497       RuntimeOperationsException JavaDoc x1 = (RuntimeOperationsException JavaDoc)o1;
498       RuntimeOperationsException JavaDoc x2 = (RuntimeOperationsException JavaDoc)o2;
499
500       RuntimeException JavaDoc e1 = x1.getTargetException();
501       RuntimeException JavaDoc e2 = x2.getTargetException();
502       compareException(e1, e2);
503    }
504
505    public void compareServiceNotFoundException(Object JavaDoc o1, Object JavaDoc o2)
506    {
507       compareOperationsException(o1, o2);
508    }
509
510    public void compareStringValueExp(Object JavaDoc o1, Object JavaDoc o2)
511    {
512       StringValueExp JavaDoc s1 = (StringValueExp JavaDoc)o1;
513       StringValueExp JavaDoc s2 = (StringValueExp JavaDoc)o2;
514       if (!s1.getValue().equals(s2.getValue())) throw new RuntimeException JavaDoc();
515    }
516
517
518    //
519
// MODELMBEAN package
520
//
521
public void compareDescriptorSupport(Object JavaDoc o1, Object JavaDoc o2)
522    {
523       DescriptorSupport JavaDoc s1 = (DescriptorSupport JavaDoc)o1;
524       DescriptorSupport JavaDoc s2 = (DescriptorSupport JavaDoc)o2;
525
526       String JavaDoc[] names1 = s1.getFieldNames();
527       String JavaDoc[] names2 = s2.getFieldNames();
528       Object JavaDoc[] values1 = s1.getFieldValues(names1);
529       Object JavaDoc[] values2 = s2.getFieldValues(names2);
530
531       ArrayList JavaDoc list1 = new ArrayList JavaDoc(Arrays.asList(names1));
532       ArrayList JavaDoc list2 = new ArrayList JavaDoc(Arrays.asList(names2));
533       if (!list1.containsAll(list2) || !list2.containsAll(list1)) throw new RuntimeException JavaDoc();
534
535       list1 = new ArrayList JavaDoc(Arrays.asList(values1));
536       list2 = new ArrayList JavaDoc(Arrays.asList(values2));
537       if (!list1.containsAll(list2) || !list2.containsAll(list1)) throw new RuntimeException JavaDoc();
538    }
539
540    public void compareInvalidTargetObjectTypeException(Object JavaDoc o1, Object JavaDoc o2)
541    {
542       // No way to compare them
543
}
544
545    public void compareModelMBeanAttributeInfo(Object JavaDoc o1, Object JavaDoc o2)
546    {
547       compareMBeanAttributeInfo(o1, o2);
548       ModelMBeanAttributeInfo JavaDoc a1 = (ModelMBeanAttributeInfo JavaDoc)o1;
549       ModelMBeanAttributeInfo JavaDoc a2 = (ModelMBeanAttributeInfo JavaDoc)o2;
550       compareDescriptorSupport(a1.getDescriptor(), a2.getDescriptor());
551    }
552
553    public void compareModelMBeanConstructorInfo(Object JavaDoc o1, Object JavaDoc o2)
554    {
555       compareMBeanConstructorInfo(o1, o2);
556
557       ModelMBeanConstructorInfo JavaDoc a1 = (ModelMBeanConstructorInfo JavaDoc)o1;
558       ModelMBeanConstructorInfo JavaDoc a2 = (ModelMBeanConstructorInfo JavaDoc)o2;
559       compareDescriptorSupport(a1.getDescriptor(), a2.getDescriptor());
560    }
561
562    public void compareModelMBeanInfoSupport(Object JavaDoc o1, Object JavaDoc o2) throws MBeanException JavaDoc
563    {
564       compareMBeanInfo(o1, o2);
565
566       ModelMBeanInfoSupport JavaDoc i1 = (ModelMBeanInfoSupport JavaDoc)o1;
567       ModelMBeanInfoSupport JavaDoc i2 = (ModelMBeanInfoSupport JavaDoc)o2;
568       compareDescriptorSupport(i1.getMBeanDescriptor(), i2.getMBeanDescriptor());
569    }
570
571    public void compareModelMBeanNotificationInfo(Object JavaDoc o1, Object JavaDoc o2)
572    {
573       compareMBeanNotificationInfo(o1, o2);
574
575       ModelMBeanNotificationInfo JavaDoc n1 = (ModelMBeanNotificationInfo JavaDoc)o1;
576       ModelMBeanNotificationInfo JavaDoc n2 = (ModelMBeanNotificationInfo JavaDoc)o2;
577       compareDescriptorSupport(n1.getDescriptor(), n2.getDescriptor());
578    }
579
580    public void compareModelMBeanOperationInfo(Object JavaDoc o1, Object JavaDoc o2)
581    {
582       compareMBeanOperationInfo(o1, o2);
583
584       ModelMBeanOperationInfo JavaDoc op1 = (ModelMBeanOperationInfo JavaDoc)o1;
585       ModelMBeanOperationInfo JavaDoc op2 = (ModelMBeanOperationInfo JavaDoc)o2;
586       compareDescriptorSupport(op1.getDescriptor(), op2.getDescriptor());
587    }
588
589    public void compareXMLParseException(Object JavaDoc o1, Object JavaDoc o2)
590    {
591       // Cannot be compared: JMXRI adds a custom message in addition to the one
592
// provided to the XMLParseException constructor.
593
// compareException(o1, o2);
594
}
595
596
597    //
598
// MONITOR package
599
//
600
public void compareMonitorNotification(Object JavaDoc o1, Object JavaDoc o2)
601    {
602       compareNotification(o1, o2);
603
604       MonitorNotification JavaDoc n1 = (MonitorNotification JavaDoc)o1;
605       MonitorNotification JavaDoc n2 = (MonitorNotification JavaDoc)o2;
606
607       if (!n1.getDerivedGauge().equals(n2.getDerivedGauge())) throw new RuntimeException JavaDoc();
608       if (!n1.getObservedAttribute().equals(n2.getObservedAttribute())) throw new RuntimeException JavaDoc();
609       if (!n1.getObservedObject().equals(n2.getObservedObject())) throw new RuntimeException JavaDoc();
610       if (!n1.getTrigger().equals(n2.getTrigger())) throw new RuntimeException JavaDoc();
611    }
612
613    public void compareMonitorSettingException(Object JavaDoc o1, Object JavaDoc o2)
614    {
615       compareJMRuntimeException(o1, o2);
616    }
617
618
619    //
620
// OPENMBEANS package
621
//
622
public void compareInvalidKeyException(Object JavaDoc o1, Object JavaDoc o2)
623    {
624       compareException(o1, o2);
625    }
626
627    public void compareInvalidOpenTypeException(Object JavaDoc o1, Object JavaDoc o2)
628    {
629       compareException(o1, o2);
630    }
631
632    public void compareKeyAlreadyExistsException(Object JavaDoc o1, Object JavaDoc o2)
633    {
634       compareException(o1, o2);
635    }
636
637    public void compareOpenDataException(Object JavaDoc o1, Object JavaDoc o2)
638    {
639       compareJMException(o1, o2);
640    }
641
642    //
643
// RELATION package
644
//
645
public void compareInvalidRelationIdException(Object JavaDoc o1, Object JavaDoc o2)
646    {
647       compareRelationException(o1, o2);
648    }
649
650    public void compareInvalidRelationServiceException(Object JavaDoc o1, Object JavaDoc o2)
651    {
652       compareRelationException(o1, o2);
653    }
654
655    public void compareInvalidRelationTypeException(Object JavaDoc o1, Object JavaDoc o2)
656    {
657       compareRelationException(o1, o2);
658    }
659
660    public void compareInvalidRoleInfoException(Object JavaDoc o1, Object JavaDoc o2)
661    {
662       compareRelationException(o1, o2);
663    }
664
665    public void compareInvalidRoleValueException(Object JavaDoc o1, Object JavaDoc o2)
666    {
667       compareRelationException(o1, o2);
668    }
669
670    public void compareMBeanServerNotificationFilter(Object JavaDoc o1, Object JavaDoc o2)
671    {
672       compareNotificationFilterSupport(o1, o2);
673
674       MBeanServerNotificationFilter JavaDoc f1 = (MBeanServerNotificationFilter JavaDoc)o1;
675       MBeanServerNotificationFilter JavaDoc f2 = (MBeanServerNotificationFilter JavaDoc)o2;
676       Vector JavaDoc names1 = null;
677       try
678       {
679          names1 = f1.getEnabledObjectNames();
680       }
681       catch (NullPointerException JavaDoc ignored)
682       {
683          // JMX RI throws this
684
}
685       Vector JavaDoc names2 = null;
686       try
687       {
688          names2 = f2.getEnabledObjectNames();
689       }
690       catch (NullPointerException JavaDoc ignored)
691       {
692          // JMX RI throws this
693
}
694       if (names1 != null && (!names1.containsAll(names2) || !names2.containsAll(names1))) throw new RuntimeException JavaDoc();
695       if (names1 == null && names2 != null) throw new RuntimeException JavaDoc();
696
697       Vector JavaDoc names3 = null;
698       try
699       {
700          names3 = f1.getDisabledObjectNames();
701       }
702       catch (NullPointerException JavaDoc ignored)
703       {
704          // JMX RI throws this
705
}
706       Vector JavaDoc names4 = null;
707       try
708       {
709          names4 = f1.getDisabledObjectNames();
710       }
711       catch (NullPointerException JavaDoc ignored)
712       {
713          // JMX RI throws this
714
}
715       if (names3 != null && (!names3.containsAll(names4) || !names4.containsAll(names3))) throw new RuntimeException JavaDoc();
716       if (names3 == null && names4 != null) throw new RuntimeException JavaDoc();
717    }
718
719    public void compareRelationException(Object JavaDoc o1, Object JavaDoc o2)
720    {
721       compareJMException(o1, o2);
722    }
723
724    public void compareRelationNotFoundException(Object JavaDoc o1, Object JavaDoc o2)
725    {
726       compareRelationException(o1, o2);
727    }
728
729    public void compareRelationNotification(Object JavaDoc o1, Object JavaDoc o2)
730    {
731       compareNotification(o1, o2);
732
733       RelationNotification JavaDoc n1 = (RelationNotification JavaDoc)o1;
734       RelationNotification JavaDoc n2 = (RelationNotification JavaDoc)o2;
735
736       if (!n1.getMBeansToUnregister().equals(n2.getMBeansToUnregister())) throw new RuntimeException JavaDoc();
737       List JavaDoc news1 = n1.getNewRoleValue();
738       List JavaDoc news2 = n2.getNewRoleValue();
739       if (news1.size() != news2.size()) throw new RuntimeException JavaDoc();
740       if (!n1.getObjectName().equals(n2.getObjectName())) throw new RuntimeException JavaDoc();
741       List JavaDoc olds1 = n1.getOldRoleValue();
742       List JavaDoc olds2 = n2.getOldRoleValue();
743       if (olds1.size() != olds2.size()) throw new RuntimeException JavaDoc();
744       if (!n1.getRelationId().equals(n2.getRelationId())) throw new RuntimeException JavaDoc();
745       if (!n1.getRelationTypeName().equals(n2.getRelationTypeName())) throw new RuntimeException JavaDoc();
746       if (!n1.getRoleName().equals(n2.getRoleName())) throw new RuntimeException JavaDoc();
747    }
748
749    public void compareRelationServiceNotRegisteredException(Object JavaDoc o1, Object JavaDoc o2)
750    {
751       compareRelationException(o1, o2);
752    }
753
754    public void compareRelationTypeNotFoundException(Object JavaDoc o1, Object JavaDoc o2)
755    {
756       compareRelationException(o1, o2);
757    }
758
759    public void compareRelationTypeSupport(Object JavaDoc o1, Object JavaDoc o2)
760    {
761       RelationTypeSupport JavaDoc r1 = (RelationTypeSupport JavaDoc)o1;
762       RelationTypeSupport JavaDoc r2 = (RelationTypeSupport JavaDoc)o2;
763
764       if (!r1.getRelationTypeName().equals(r2.getRelationTypeName())) throw new RuntimeException JavaDoc();
765       List JavaDoc infos1 = r1.getRoleInfos();
766       List JavaDoc infos2 = r2.getRoleInfos();
767       // RoleInfo does not override equals() so List.equals() fails; just use size() here
768
if (infos1.size() != infos2.size()) throw new RuntimeException JavaDoc();
769    }
770
771    public void compareRole(Object JavaDoc o1, Object JavaDoc o2)
772    {
773       Role JavaDoc r1 = (Role JavaDoc)o1;
774       Role JavaDoc r2 = (Role JavaDoc)o2;
775
776       if (!r1.getRoleName().equals(r2.getRoleName())) throw new RuntimeException JavaDoc();
777       if (!r1.getRoleValue().equals(r2.getRoleValue())) throw new RuntimeException JavaDoc();
778    }
779
780    public void compareRoleInfo(Object JavaDoc o1, Object JavaDoc o2)
781    {
782       RoleInfo JavaDoc r1 = (RoleInfo JavaDoc)o1;
783       RoleInfo JavaDoc r2 = (RoleInfo JavaDoc)o2;
784
785       if (!r1.getDescription().equals(r2.getDescription())) throw new RuntimeException JavaDoc();
786       if (r1.getMaxDegree() != r2.getMaxDegree()) throw new RuntimeException JavaDoc();
787       if (r1.getMinDegree() != r2.getMinDegree()) throw new RuntimeException JavaDoc();
788       if (!r1.getName().equals(r2.getName())) throw new RuntimeException JavaDoc();
789       if (!r1.getRefMBeanClassName().equals(r2.getRefMBeanClassName())) throw new RuntimeException JavaDoc();
790       if (!r1.isReadable() || !r2.isReadable()) throw new RuntimeException JavaDoc();
791       if (!r1.isWritable() || !r2.isWritable()) throw new RuntimeException JavaDoc();
792    }
793
794    public void compareRoleInfoNotFoundException(Object JavaDoc o1, Object JavaDoc o2)
795    {
796       compareRelationException(o1, o2);
797    }
798
799    public void compareRoleList(Object JavaDoc o1, Object JavaDoc o2)
800    {
801       RoleList JavaDoc l1 = (RoleList JavaDoc)o1;
802       RoleList JavaDoc l2 = (RoleList JavaDoc)o2;
803
804       // Role does not override equals() so List.equals() fails; just use size() here
805
if (l1.size() != l2.size()) throw new RuntimeException JavaDoc();
806    }
807
808    public void compareRoleNotFoundException(Object JavaDoc o1, Object JavaDoc o2)
809    {
810       compareRelationException(o1, o2);
811    }
812
813    public void compareRoleResult(Object JavaDoc o1, Object JavaDoc o2)
814    {
815       RoleResult JavaDoc r1 = (RoleResult JavaDoc)o1;
816       RoleResult JavaDoc r2 = (RoleResult JavaDoc)o2;
817
818       compareRoleList(r1.getRoles(), r2.getRoles());
819       compareRoleUnresolvedList(r1.getRolesUnresolved(), r2.getRolesUnresolved());
820    }
821
822    public void compareRoleUnresolved(Object JavaDoc o1, Object JavaDoc o2)
823    {
824       RoleUnresolved JavaDoc r1 = (RoleUnresolved JavaDoc)o1;
825       RoleUnresolved JavaDoc r2 = (RoleUnresolved JavaDoc)o2;
826
827       if (r1.getProblemType() != r2.getProblemType()) throw new RuntimeException JavaDoc();
828       if (!r1.getRoleName().equals(r2.getRoleName())) throw new RuntimeException JavaDoc();
829       if (!r1.getRoleValue().equals(r2.getRoleValue())) throw new RuntimeException JavaDoc();
830    }
831
832    public void compareRoleUnresolvedList(Object JavaDoc o1, Object JavaDoc o2)
833    {
834       RoleUnresolvedList JavaDoc l1 = (RoleUnresolvedList JavaDoc)o1;
835       RoleUnresolvedList JavaDoc l2 = (RoleUnresolvedList JavaDoc)o2;
836
837       // RoleUnresolved does not override equals() so List.equals() fails; just use size() here
838
if (l1.size() != l2.size()) throw new RuntimeException JavaDoc();
839    }
840
841
842    //
843
// TIMER package
844
//
845
public void compareTimerNotification(Object JavaDoc o1, Object JavaDoc o2)
846    {
847       compareNotification(o1, o2);
848
849       TimerNotification JavaDoc n1 = (TimerNotification JavaDoc)o1;
850       TimerNotification JavaDoc n2 = (TimerNotification JavaDoc)o2;
851
852       if (!n1.getNotificationID().equals(n2.getNotificationID())) throw new RuntimeException JavaDoc();
853    }
854 }
855
Popular Tags