/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2002-2003 * Sleepycat Software. All rights reserved. * * $Id: SampleViews.java,v 1.2 2004/03/30 01:23:21 jtownsen Exp $ */ package com.sleepycat.examples.bdb.shipment.factory; import com.sleepycat.bdb.collection.StoredSortedValueSet; import com.sleepycat.bdb.collection.StoredSortedMap; import com.sleepycat.bdb.factory.TupleSerialDbFactory; /** * 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) { TupleSerialDbFactory 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.getPartStore(), PartKey.class, true); supplierMap = factory.newSortedMap(db.getSupplierStore(), SupplierKey.class, true); shipmentMap = factory.newSortedMap(db.getShipmentStore(), ShipmentKey.class, true); shipmentByPartMap = factory.newSortedMap(db.getShipmentByPartIndex(), PartKey.class, true); shipmentBySupplierMap = factory.newSortedMap(db.getShipmentBySupplierIndex(), SupplierKey.class, true); supplierByCityMap = factory.newSortedMap(db.getSupplierByCityIndex(), String.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 final StoredSortedMap getSupplierByCityMap() { return supplierByCityMap; } }