summaryrefslogtreecommitdiff
path: root/examples_java/src/collections/ship/factory/SampleViews.java
diff options
context:
space:
mode:
Diffstat (limited to 'examples_java/src/collections/ship/factory/SampleViews.java')
-rw-r--r--examples_java/src/collections/ship/factory/SampleViews.java142
1 files changed, 142 insertions, 0 deletions
diff --git a/examples_java/src/collections/ship/factory/SampleViews.java b/examples_java/src/collections/ship/factory/SampleViews.java
new file mode 100644
index 0000000..bb03d8a
--- /dev/null
+++ b/examples_java/src/collections/ship/factory/SampleViews.java
@@ -0,0 +1,142 @@
+/*-
+ * See the file LICENSE for redistribution information.
+ *
+ * Copyright (c) 2002-2009 Oracle. All rights reserved.
+ *
+ * $Id$
+ */
+
+package collections.ship.factory;
+
+import com.sleepycat.collections.StoredSortedMap;
+import com.sleepycat.collections.StoredSortedValueSet;
+import com.sleepycat.collections.TupleSerialFactory;
+
+/**
+ * SampleViews defines the data bindings and collection views for the sample
+ * database.
+ *
+ * @author Mark Hayes
+ */
+public class SampleViews {
+
+ private StoredSortedMap partMap;
+ private StoredSortedMap supplierMap;
+ private StoredSortedMap shipmentMap;
+ private StoredSortedMap shipmentByPartMap;
+ private StoredSortedMap shipmentBySupplierMap;
+ private StoredSortedMap supplierByCityMap;
+
+ /**
+ * Create the data bindings and collection views.
+ */
+ public SampleViews(SampleDatabase db) {
+
+ // Use the TupleSerialFactory for a Serial/Tuple-based database
+ // where marshalling interfaces are used.
+ //
+ TupleSerialFactory factory = db.getFactory();
+
+ // Create map views for all stores and indices.
+ // StoredSortedMap is used since the stores and indices are ordered
+ // (they use the DB_BTREE access method).
+ //
+ partMap =
+ factory.newSortedMap(db.getPartDatabase(),
+ PartKey.class, Part.class, true);
+ supplierMap =
+ factory.newSortedMap(db.getSupplierDatabase(),
+ SupplierKey.class, Supplier.class, true);
+ shipmentMap =
+ factory.newSortedMap(db.getShipmentDatabase(),
+ ShipmentKey.class, Shipment.class, true);
+ shipmentByPartMap =
+ factory.newSortedMap(db.getShipmentByPartDatabase(),
+ PartKey.class, Shipment.class, true);
+ shipmentBySupplierMap =
+ factory.newSortedMap(db.getShipmentBySupplierDatabase(),
+ SupplierKey.class, Shipment.class, true);
+ supplierByCityMap =
+ factory.newSortedMap(db.getSupplierByCityDatabase(),
+ String.class, Supplier.class, true);
+ }
+
+ // The views returned below can be accessed using the java.util.Map or
+ // java.util.Set interfaces, or using the StoredMap and StoredValueSet
+ // classes, which provide additional methods. The entity sets could be
+ // obtained directly from the Map.values() method but convenience methods
+ // are provided here to return them in order to avoid down-casting
+ // elsewhere.
+
+ /**
+ * Return a map view of the part storage container.
+ */
+ public StoredSortedMap getPartMap() {
+
+ return partMap;
+ }
+
+ /**
+ * Return a map view of the supplier storage container.
+ */
+ public StoredSortedMap getSupplierMap() {
+
+ return supplierMap;
+ }
+
+ /**
+ * Return a map view of the shipment storage container.
+ */
+ public StoredSortedMap getShipmentMap() {
+
+ return shipmentMap;
+ }
+
+ /**
+ * Return an entity set view of the part storage container.
+ */
+ public StoredSortedValueSet getPartSet() {
+
+ return (StoredSortedValueSet) partMap.values();
+ }
+
+ /**
+ * Return an entity set view of the supplier storage container.
+ */
+ public StoredSortedValueSet getSupplierSet() {
+
+ return (StoredSortedValueSet) supplierMap.values();
+ }
+
+ /**
+ * Return an entity set view of the shipment storage container.
+ */
+ public StoredSortedValueSet getShipmentSet() {
+
+ return (StoredSortedValueSet) shipmentMap.values();
+ }
+
+ /**
+ * Return a map view of the shipment-by-part index.
+ */
+ public StoredSortedMap getShipmentByPartMap() {
+
+ return shipmentByPartMap;
+ }
+
+ /**
+ * Return a map view of the shipment-by-supplier index.
+ */
+ public StoredSortedMap getShipmentBySupplierMap() {
+
+ return shipmentBySupplierMap;
+ }
+
+ /**
+ * Return a map view of the supplier-by-city index.
+ */
+ public StoredSortedMap getSupplierByCityMap() {
+
+ return supplierByCityMap;
+ }
+}