KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > store > MapFieldMetaData


1 /*
2  * Created on 18.10.2004
3  */

4 package com.nightlabs.ipanema.store;
5
6 import java.io.Serializable JavaDoc;
7 import java.util.HashMap JavaDoc;
8 import java.util.Map JavaDoc;
9
10 /**
11  * @author Marco Schulze - marco at nightlabs dot de
12  *
13  * @jdo.persistence-capable
14  * identity-type = "application"
15  * persistence-capable-superclass = "ProductFieldMetaData"
16  * detachable = "true"
17  *
18  * @jdo.inheritance strategy = "new-table"
19  */

20 public class MapFieldMetaData
21     extends ProductFieldMetaData
22     implements com.nightlabs.inheritance.MapFieldMetaData, Serializable JavaDoc
23 {
24     /**
25      * key: String key<br/>
26      * value: MapEntryMetaData mapEntryMetaData
27      *
28      * @jdo.field
29      * persistence-modifier="persistent"
30      * collection-type="map"
31      * key-type="java.lang.String"
32      * value-type="MapEntryMetaData"
33      * dependent="true"
34      * mapped-by="mapFieldMetaData"
35      *
36      * @jdo.map-vendor-extension vendor-name="jpox" key="key-field" value="key"
37      * @jdo.map-vendor-extension vendor-name="jpox" key="key-length" value="max 100"
38      */

39     protected Map JavaDoc mapEntryMetaDataMap = new HashMap JavaDoc();
40
41     protected MapFieldMetaData() { }
42
43     /**
44      * @param product
45      * @param fieldName
46      */

47     public MapFieldMetaData(Product product, String JavaDoc fieldName)
48     {
49         super(product, fieldName);
50     }
51
52     /**
53      * @see com.nightlabs.inheritance.MapFieldMetaData#getMapEntryMetaData(java.lang.Object)
54      */

55     public com.nightlabs.inheritance.MapEntryMetaData getMapEntryMetaData(Object JavaDoc key)
56     {
57         if (!(key instanceof String JavaDoc))
58             throw new IllegalArgumentException JavaDoc("This implementation of MapFieldMetaData supports only String keys!");
59
60         String JavaDoc skey = (String JavaDoc)key;
61         
62         MapEntryMetaData memd = (MapEntryMetaData)mapEntryMetaDataMap.get(skey);
63         if (memd == null) {
64             memd = new MapEntryMetaData(this, skey);
65             mapEntryMetaDataMap.put(skey, memd);
66         }
67         return memd;
68     }
69
70     /**
71      * @see com.nightlabs.inheritance.MapFieldMetaData#removeMapEntryMetaData(java.lang.Object)
72      */

73     public void removeMapEntryMetaData(Object JavaDoc key)
74     {
75         mapEntryMetaDataMap.remove(key);
76     }
77
78 }
79
Popular Tags