KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * Created on 29.10.2004
3  */

4 package com.nightlabs.ipanema.accounting;
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 = "ProductInfoFieldMetaData"
16  * detachable = "true"
17  *
18  * @jdo.inheritance strategy = "new-table"
19  */

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

40     protected Map JavaDoc mapEntryMetaDataMap = new HashMap JavaDoc();
41
42     protected MapFieldMetaData() { }
43
44     public MapFieldMetaData(ProductInfo productInfo, String JavaDoc fieldName)
45     {
46         super(productInfo, fieldName);
47     }
48
49     /**
50      * @see com.nightlabs.inheritance.MapFieldMetaData#getMapEntryMetaData(java.lang.Object)
51      */

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

70     public void removeMapEntryMetaData(Object JavaDoc key)
71     {
72         mapEntryMetaDataMap.remove(key);
73     }
74 }
75
Popular Tags