6fe50d5597551486d404c71186d99fbc0a86c21b
[yangtools.git] / third-party / triemap / src / main / java / org / opendaylight / yangtools / triemap / EntryUtil.java
1 /*
2  * (C) Copyright 2017 Pantheon Technologies, s.r.o. and others.
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.opendaylight.yangtools.triemap;
17
18 import java.util.Map.Entry;
19
20 /**
21  * Utility methods for implementing {@link Entry} contract.
22  *
23  * @author Robert Varga
24  */
25 final class EntryUtil {
26     private EntryUtil() {
27         throw new UnsupportedOperationException();
28     }
29
30     /**
31      * Utility implementing {@link Entry#equals(Object)}.
32      */
33     static boolean equal(final Object obj, final Object key, final Object value) {
34         if (!(obj instanceof Entry)) {
35             return false;
36         }
37
38         final Entry<?,?> e = (Entry<?,?>)obj;
39         return key.equals(e.getKey()) && value.equals(e.getValue());
40     }
41
42     /**
43      * Utility implementing {@link Entry#hashCode()}.
44      */
45     static int hash(final Object key, final Object value) {
46         return key.hashCode() ^ value.hashCode();
47     }
48
49     /**
50      * Utility implementing {@link Entry#toString()}.
51      */
52     static String string(final Object key, final Object value) {
53         return key + "=" + value;
54     }
55 }