/*- * 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:20 jtownsen Exp $ */ package com.sleepycat.examples.bdb.shipment.basic; import com.sleepycat.bdb.bind.DataBinding; import com.sleepycat.bdb.bind.serial.SerialBinding; import com.sleepycat.bdb.collection.StoredEntrySet; import com.sleepycat.bdb.collection.StoredMap; /** * SampleViews defines the data bindings and collection views for the sample * database. * * @author Mark Hayes */ public class SampleViews { private StoredMap partMap; private StoredMap supplierMap; private StoredMap shipmentMap; /** * Create the data bindings and collection views. */ public SampleViews(SampleDatabase db) { // Create the data bindings. // In this sample, the stored keys and values are used directly rather // than mapping them to separate objects. Therefore, no binding classes // are defined here and the SerialBinding class is used. // DataBinding partKeyBinding = new SerialBinding(db.getPartKeyFormat()); DataBinding partValueBinding = new SerialBinding(db.getPartValueFormat()); DataBinding supplierKeyBinding = new SerialBinding(db.getSupplierKeyFormat()); DataBinding supplierValueBinding = new SerialBinding(db.getSupplierValueFormat()); DataBinding shipmentKeyBinding = new SerialBinding(db.getShipmentKeyFormat()); DataBinding shipmentValueBinding = new SerialBinding(db.getShipmentValueFormat()); // Create map views for all stores and indices. // StoredSortedMap is not used since the stores and indices are // ordered by serialized key objects, which do not provide a very // useful ordering. // partMap = new StoredMap(db.getPartStore(), partKeyBinding, partValueBinding, true); supplierMap = new StoredMap(db.getSupplierStore(), supplierKeyBinding, supplierValueBinding, true); shipmentMap = new StoredMap(db.getShipmentStore(), shipmentKeyBinding, shipmentValueBinding, true); } // The views returned below can be accessed using the java.util.Map or // java.util.Set interfaces, or using the StoredMap and StoredEntrySet // classes, which provide additional methods. The entry sets could be // obtained directly from the Map.entrySet() 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 final StoredMap getPartMap() { return partMap; } /** * Return a map view of the supplier storage container. */ public final StoredMap getSupplierMap() { return supplierMap; } /** * Return a map view of the shipment storage container. */ public final StoredMap getShipmentMap() { return shipmentMap; } /** * Return an entry set view of the part storage container. */ public final StoredEntrySet getPartEntrySet() { return (StoredEntrySet) partMap.entrySet(); } /** * Return an entry set view of the supplier storage container. */ public final StoredEntrySet getSupplierEntrySet() { return (StoredEntrySet) supplierMap.entrySet(); } /** * Return an entry set view of the shipment storage container. */ public final StoredEntrySet getShipmentEntrySet() { return (StoredEntrySet) shipmentMap.entrySet(); } }