source: josm/trunk/src/org/openstreetmap/josm/data/osm/Hash.java@ 11294

Last change on this file since 11294 was 9243, checked in by Don-vip, 8 years ago

javadoc update

  • Property svn:eol-style set to native
File size: 1.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.osm;
3
4/**
5 * An interface allowing injection of hashcode and equality implementation
6 * based on some inner state of an object for a set.
7 * It supports two type parameters to implement effective foreign key implementation
8 * inside (@link Storage}, but for basic use, both type parameters are the same.
9 *
10 * For use cases, see {@link Storage}.
11 * @author nenik
12 * @param <K> type for hashCode and first equals parameter
13 * @param <T> type for second equals parameter
14 */
15public interface Hash<K, T> {
16
17 /**
18 * Get hashcode for given instance, based on some inner state of the
19 * instance. The returned hashcode should remain constant over the time,
20 * so it should be based on some instance invariant.
21 *
22 * @param k the object to compute hashcode for
23 * @return computed hashcode
24 */
25 int getHashCode(K k);
26
27 /**
28 * Compare two instances for semantic or lookup equality. For use cases
29 * where it compares different types, refer to {@link Storage}.
30 *
31 * @param k the object to compare
32 * @param t the object to compare
33 * @return true if the objects are semantically equivalent, or if k
34 * uniquely identifies t in given class.
35 */
36 boolean equals(K k, T t);
37}
Note: See TracBrowser for help on using the repository browser.