Imported Upstream version 5.3.21
[platform/upstream/libdb.git] / examples / java / src / collections / ship / basic / SampleViews.java
1 /*-
2  * See the file LICENSE for redistribution information.
3  *
4  * Copyright (c) 2002, 2012 Oracle and/or its affiliates.  All rights reserved.
5  *
6  * $Id$
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 }