1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.configuration;
19
20 import java.util.Iterator;
21
22 /***
23 * Strict comparator for configurations.
24 *
25 * @since 1.0
26 *
27 * @author <a href="mailto:herve.quiroz@esil.univ-mrs.fr">Herve Quiroz</a>
28 * @author <a href="mailto:shapira@mpi.com">Yoav Shapira</a>
29 * @version $Revision: 439648 $, $Date: 2006-09-02 22:42:10 +0200 (Sa, 02 Sep 2006) $
30 */
31 public class StrictConfigurationComparator implements ConfigurationComparator
32 {
33 /***
34 * Create a new strict comparator.
35 */
36 public StrictConfigurationComparator()
37 {
38 }
39
40 /***
41 * Compare two configuration objects.
42 *
43 * @param a the first configuration
44 * @param b the second configuration
45 * @return true if keys from a are found in b and keys from b are
46 * found in a and for each key in a, the corresponding value
47 * is the sale in for the same key in b
48 */
49 public boolean compare(Configuration a, Configuration b)
50 {
51 if (a == null && b == null)
52 {
53 return true;
54 }
55 else if (a == null || b == null)
56 {
57 return false;
58 }
59
60 for (Iterator keys = a.getKeys(); keys.hasNext();)
61 {
62 String key = (String) keys.next();
63 Object value = a.getProperty(key);
64 if (!value.equals(b.getProperty(key)))
65 {
66 return false;
67 }
68 }
69
70 for (Iterator keys = b.getKeys(); keys.hasNext();)
71 {
72 String key = (String) keys.next();
73 Object value = b.getProperty(key);
74 if (!value.equals(a.getProperty(key)))
75 {
76 return false;
77 }
78 }
79
80 return true;
81 }
82 }