##### Coverage Report - org.apache.commons.configuration.StrictConfigurationComparator

Classes in this File | Line Coverage | Branch Coverage | Complexity

StrictConfigurationComparator

100% | 17/17

100% | 6/6

6.0;6

1

     /*

2

      * Licensed to the Apache Software Foundation (ASF) under one or more

3

      * contributor license agreements.  See the NOTICE file distributed with

4

      * this work for additional information regarding copyright ownership.

5

      * The ASF licenses this file to You under the Apache License, Version 2.0

6

      * (the "License"); you may not use this file except in compliance with

7

      * the License.  You may obtain a copy of the License at

8

      *

9

      *     http://www.apache.org/licenses/LICENSE-2.0

10

      *

11

      * Unless required by applicable law or agreed to in writing, software

12

      * distributed under the License is distributed on an "AS IS" BASIS,

13

      * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

14

      * See the License for the specific language governing permissions and

15

      * limitations under the License.

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

12

         {

38

12

         }

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

23

             if (a == null && b == null)

52

             {

53

1

                 return true;

54

             }

55

22

             else if (a == null || b == null)

56

             {

57

2

                 return false;

58

             }

59

60

77

             for (Iterator keys = a.getKeys(); keys.hasNext();)

61

             {

62

38

                 String key = (String) keys.next();

63

38

                 Object value = a.getProperty(key);

64

38

                 if (!value.equals(b.getProperty(key)))

65

                 {

66

1

                     return false;

67

                 }

68

             }

69

70

75

             for (Iterator keys = b.getKeys(); keys.hasNext();)

71

             {

72

38

                 String key = (String) keys.next();

73

38

                 Object value = b.getProperty(key);

74

38

                 if (!value.equals(a.getProperty(key)))

75

                 {

76

1

                     return false;

77

                 }

78

             }

79

80

18

             return true;

81

         }

82

     }