mirror of
https://github.com/berkeleydb/je.git
synced 2024-11-15 01:46:24 +00:00
167 lines
5.4 KiB
Java
167 lines
5.4 KiB
Java
|
/*-
|
|||
|
* Copyright (C) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
|
|||
|
*
|
|||
|
* This file was distributed by Oracle as part of a version of Oracle Berkeley
|
|||
|
* DB Java Edition made available at:
|
|||
|
*
|
|||
|
* http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
|
|||
|
*
|
|||
|
* Please see the LICENSE file included in the top-level directory of the
|
|||
|
* appropriate version of Oracle Berkeley DB Java Edition for a copy of the
|
|||
|
* license and additional information.
|
|||
|
*/
|
|||
|
|
|||
|
package collections.ship.index;
|
|||
|
|
|||
|
import com.sleepycat.bind.EntryBinding;
|
|||
|
import com.sleepycat.bind.serial.ClassCatalog;
|
|||
|
import com.sleepycat.bind.serial.SerialBinding;
|
|||
|
import com.sleepycat.collections.StoredEntrySet;
|
|||
|
import com.sleepycat.collections.StoredSortedMap;
|
|||
|
|
|||
|
/**
|
|||
|
* 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) {
|
|||
|
|
|||
|
// Create the data bindings.
|
|||
|
// In this sample, the stored key and data entries are used directly
|
|||
|
// rather than mapping them to separate objects. Therefore, no binding
|
|||
|
// classes are defined here and the SerialBinding class is used.
|
|||
|
//
|
|||
|
ClassCatalog catalog = db.getClassCatalog();
|
|||
|
EntryBinding partKeyBinding =
|
|||
|
new SerialBinding(catalog, PartKey.class);
|
|||
|
EntryBinding partDataBinding =
|
|||
|
new SerialBinding(catalog, PartData.class);
|
|||
|
EntryBinding supplierKeyBinding =
|
|||
|
new SerialBinding(catalog, SupplierKey.class);
|
|||
|
EntryBinding supplierDataBinding =
|
|||
|
new SerialBinding(catalog, SupplierData.class);
|
|||
|
EntryBinding shipmentKeyBinding =
|
|||
|
new SerialBinding(catalog, ShipmentKey.class);
|
|||
|
EntryBinding shipmentDataBinding =
|
|||
|
new SerialBinding(catalog, ShipmentData.class);
|
|||
|
EntryBinding cityKeyBinding =
|
|||
|
new SerialBinding(catalog, String.class);
|
|||
|
|
|||
|
// 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 StoredSortedMap(db.getPartDatabase(),
|
|||
|
partKeyBinding, partDataBinding, true);
|
|||
|
supplierMap =
|
|||
|
new StoredSortedMap(db.getSupplierDatabase(),
|
|||
|
supplierKeyBinding, supplierDataBinding, true);
|
|||
|
shipmentMap =
|
|||
|
new StoredSortedMap(db.getShipmentDatabase(),
|
|||
|
shipmentKeyBinding, shipmentDataBinding, true);
|
|||
|
shipmentByPartMap =
|
|||
|
new StoredSortedMap(db.getShipmentByPartDatabase(),
|
|||
|
partKeyBinding, shipmentDataBinding, true);
|
|||
|
shipmentBySupplierMap =
|
|||
|
new StoredSortedMap(db.getShipmentBySupplierDatabase(),
|
|||
|
supplierKeyBinding, shipmentDataBinding, true);
|
|||
|
supplierByCityMap =
|
|||
|
new StoredSortedMap(db.getSupplierByCityDatabase(),
|
|||
|
cityKeyBinding, supplierDataBinding, true);
|
|||
|
}
|
|||
|
|
|||
|
// The views returned below can be accessed using the java.util.Map or
|
|||
|
// java.util.Set interfaces, or using the StoredSortedMap 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 StoredSortedMap getPartMap() {
|
|||
|
|
|||
|
return partMap;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Return a map view of the supplier storage container.
|
|||
|
*/
|
|||
|
public final StoredSortedMap getSupplierMap() {
|
|||
|
|
|||
|
return supplierMap;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Return a map view of the shipment storage container.
|
|||
|
*/
|
|||
|
public final StoredSortedMap 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();
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 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;
|
|||
|
}
|
|||
|
}
|