KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > collections > ship > basic > SampleViews


1 /*-
2  * See the file LICENSE for redistribution information.
3  *
4  * Copyright (c) 2002,2006 Oracle. All rights reserved.
5  *
6  * $Id: SampleViews.java,v 1.14 2006/10/30 21:13:55 bostic Exp $
7  */

8
9 package collections.ship.basic;
10
11 import com.sleepycat.bind.EntryBinding;
12 import com.sleepycat.bind.serial.ClassCatalog;
13 import com.sleepycat.bind.serial.SerialBinding;
14 import com.sleepycat.collections.StoredEntrySet;
15 import com.sleepycat.collections.StoredMap;
16
17 /**
18  * SampleViews defines the data bindings and collection views for the sample
19  * database.
20  *
21  * @author Mark Hayes
22  */

23 public class SampleViews {
24
25     private StoredMap partMap;
26     private StoredMap supplierMap;
27     private StoredMap shipmentMap;
28
29     /**
30      * Create the data bindings and collection views.
31      */

32     public SampleViews(SampleDatabase db) {
33
34         // In this sample, the stored key and data entries are used directly
35
// rather than mapping them to separate objects. Therefore, no binding
36
// classes are defined here and the SerialBinding class is used.
37
//
38
ClassCatalog catalog = db.getClassCatalog();
39         EntryBinding partKeyBinding =
40             new SerialBinding(catalog, PartKey.class);
41         EntryBinding partDataBinding =
42             new SerialBinding(catalog, PartData.class);
43         EntryBinding supplierKeyBinding =
44             new SerialBinding(catalog, SupplierKey.class);
45         EntryBinding supplierDataBinding =
46             new SerialBinding(catalog, SupplierData.class);
47         EntryBinding shipmentKeyBinding =
48             new SerialBinding(catalog, ShipmentKey.class);
49         EntryBinding shipmentDataBinding =
50             new SerialBinding(catalog, ShipmentData.class);
51
52         // Create map views for all stores and indices.
53
// StoredSortedMap is not used since the stores and indices are
54
// ordered by serialized key objects, which do not provide a very
55
// useful ordering.
56
//
57
partMap =
58             new StoredMap(db.getPartDatabase(),
59                           partKeyBinding, partDataBinding, true);
60         supplierMap =
61             new StoredMap(db.getSupplierDatabase(),
62                           supplierKeyBinding, supplierDataBinding, true);
63         shipmentMap =
64             new StoredMap(db.getShipmentDatabase(),
65                           shipmentKeyBinding, shipmentDataBinding, true);
66     }
67
68     // The views returned below can be accessed using the java.util.Map or
69
// java.util.Set interfaces, or using the StoredMap and StoredEntrySet
70
// classes, which provide additional methods. The entry sets could be
71
// obtained directly from the Map.entrySet() method, but convenience
72
// methods are provided here to return them in order to avoid down-casting
73
// elsewhere.
74

75     /**
76      * Return a map view of the part storage container.
77      */

78     public final StoredMap getPartMap() {
79
80         return partMap;
81     }
82
83     /**
84      * Return a map view of the supplier storage container.
85      */

86     public final StoredMap getSupplierMap() {
87
88         return supplierMap;
89     }
90
91     /**
92      * Return a map view of the shipment storage container.
93      */

94     public final StoredMap getShipmentMap() {
95
96         return shipmentMap;
97     }
98
99     /**
100      * Return an entry set view of the part storage container.
101      */

102     public final StoredEntrySet getPartEntrySet() {
103
104         return (StoredEntrySet) partMap.entrySet();
105     }
106
107     /**
108      * Return an entry set view of the supplier storage container.
109      */

110     public final StoredEntrySet getSupplierEntrySet() {
111
112         return (StoredEntrySet) supplierMap.entrySet();
113     }
114
115     /**
116      * Return an entry set view of the shipment storage container.
117      */

118     public final StoredEntrySet getShipmentEntrySet() {
119
120         return (StoredEntrySet) shipmentMap.entrySet();
121     }
122 }
123
Popular Tags