📄 store.java
字号:
// You can redistribute this software and/or modify it under the terms of// the Ozone Core License version 1 published by ozone-db.org.//// The original code and portions created by SMB are// Copyright (C) 1997-2000 by SMB GmbH. All rights reserved.//// $Id: Store.java,v 1.10 2000/10/28 16:55:17 daniela Exp $package org.ozoneDB.core;import java.io.*;import org.ozoneDB.DxLib.*;import org.ozoneDB.*;/** * Together with the {@link ObjectContainer} interface this is the Store * back-end API.<p> * * * @author <a href="http://www.softwarebuero.de/">SMB</a> * @version $Revision: 1.10 $Date: 2000/10/28 16:55:17 $ */public interface Store { /** * Aid constructor, because a store is instantiated with 'newInstance', * where we've got no arguments. */ public void init( Env env ); public void startup() throws Exception; public void shutdown() throws Exception; public Object newTransactionData(); /** * Creates a new object container and initializes it with the specified * target object. The new container is immediatly accessible from the calling * transaction via containerByID but it is not joined to this transaction. * It needs to be joined and commited afterwards. * * * @param ta * @param target * @param objID * @param permission * @param name * @return An container-proxy for the created container. */ public ObjectContainer newContainer( Transaction ta, OzoneCompatible target, ObjectID objID, Permissions permissions ) throws Exception; /** * Update lock level of the given container according to the leve of the * containers lock object. */ public void updateLockLevel( Transaction ta, ObjectContainer container ) throws Exception; /** * Prepare the specified transaction for commit. All operations that may * fail during the commit process should be done here. However, this method * must not change any global data structures such as the idTable that * are used by other transactions too.<p> * * The {@link TransactionManager} let this method run exclusivly. However, * {@link prepareCommitTransaction} and {@link commitTransaction} are not * an atomar operation. * * * @param ta Transaction that will be commited. */ public void prepareCommitTransaction( Transaction ta ) throws Exception; public void commitTransaction( Transaction ta ) throws Exception; /** * @param ta ID of the comitting transaction. * @param created * @param modified */ public void abortTransaction( Transaction ta ) throws Exception; public ObjectContainer containerForID( Transaction ta, ObjectID id ) throws Exception; /** * @param name The object name to search for. * @param ta * @return The object container for the name or null. */ public ObjectContainer containerForName( Transaction ta, String name ) throws Exception; /** * @param ta * @param container * @param name */ public void nameContainer( Transaction ta, ObjectContainer container, String name ) throws PermissionDeniedExc; /** * Force the Store to make a guess which objects are used together with the * container with the specified id. * @param id The ObjectID if the container. */ public DxBag clusterOfID( ObjectID id ) throws Exception; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -