View Javadoc
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  }