1 package de.fhdw.wtf.persistence.meta;
2
3 /**
4 * A class to represent an association between an owning user type and a object and a hashmap-object.
5 *
6 */
7 public class MapAssociation extends Association {
8
9 /**
10 * When the association is a map, then the keyType is the type of the map-key, in every other circumstance null.
11 */
12 private final Type keyType;
13
14 /**
15 * Getter of the map-key type of the association.
16 *
17 * @return Provides the map-key type of the association or null when no map-key type is set.
18 */
19 public Type getKeyType() {
20 return this.keyType;
21 }
22
23 /**
24 * Constructor for a new association. It should only be calles by the class facade or unit tests because the Ids are
25 * provided by the database.
26 *
27 * @param id
28 * The Id of the association in the database.
29 * @param name
30 * The name of the UnidirectionalAssociation.
31 * @param owner
32 * The Owner type of the association.
33 * @param target
34 * The target type of the association.
35 * @param keyType
36 * The hashmap-key type of the association.
37 * @param essential
38 * true if map values can be empty
39 */
40 public MapAssociation(final long id,
41 final String name,
42 final UserType owner,
43 final Type target,
44 final Type keyType,
45 final boolean essential) {
46 super(id, name, owner, target, essential, true);
47 this.keyType = keyType;
48 }
49
50 @Override
51 public boolean isTheSameAs(final java.lang.Object other) {
52 if (other instanceof MapAssociation) {
53 return super.isTheSameAs(other);
54 }
55 return false;
56 }
57 }