📄 index.java
字号:
package org.garret.perst;
import java.util.Iterator;
/**
* Interface of object index.
* Index is used to provide fast access to the object by key.
* Object in the index are stored ordered by key value.
* It is possible to select object using exact value of the key or
* select set of objects which key belongs to the specified interval
* (each boundary can be specified or unspecified and can be inclusive or exclusive)
* Key should be of scalar, String, java.util.Date or peristent object type.
*/
public interface Index extends GenericIndex {
/**
* Put new object in the index.
* @param key object key
* @param obj object associated with this key. Object can be not yet peristent, in this case
* its forced to become persistent by assigning OID to it.
* @return <code>true</code> if object is successfully inserted in the index,
* <code>false</code> if index was declared as unique and there is already object with such value
* of the key in the index.
*/
public boolean put(Key key, IPersistent obj);
/**
* Associate new value with the key. If there is already object with such key in the index,
* then it will be removed from the index and new value associated with this key.
* @param key object key
* @param obj object associated with this key. Object can be not yet peristent, in this case
* its forced to become persistent by assigning OID to it.
* @return object previously associated with this key, <code>null</code> if there was no such object
*/
public IPersistent set(Key key, IPersistent obj);
/**
* Remove object with specified key from the index
* @param key value of the key of removed object
* @param obj object removed from the index
* @exception StorageError(StorageError.KEY_NOT_FOUND) exception if there is no such key in the index
*/
public void remove(Key key, IPersistent obj);
/**
* Remove key from the unique index.
* @param key value of removed key
* @return removed object
* @exception StorageError(StorageError.KEY_NOT_FOUND) exception if there is no such key in the index,
* or StorageError(StorageError.KEY_NOT_UNIQUE) if index is not unique.
*/
public IPersistent remove(Key key);
/**
* Put new object in the string index.
* @param key string key
* @param obj object associated with this key. Object can be not yet peristent, in this case
* its forced to become persistent by assigning OID to it.
* @return <code>true</code> if object is successfully inserted in the index,
* <code>false</code> if index was declared as unique and there is already object with such value
* of the key in the index.
*/
public boolean put(String key, IPersistent obj);
/**
* Associate new value with string key. If there is already object with such key in the index,
* then it will be removed from the index and new value associated with this key.
* @param key string key
* @param obj object associated with this key. Object can be not yet peristent, in this case
* its forced to become persistent by assigning OID to it.
* @return object previously associated with this key, <code>null</code> if there was no such object
*/
public IPersistent set(String key, IPersistent obj);
/**
* Remove object with specified string key from the index
* @param key value of the key of removed object
* @param obj object removed from the index
* @exception StorageError(StorageError.KEY_NOT_FOUND) exception if there is no such key in the index
*/
public void remove(String key, IPersistent obj);
/**
* Remove key from the unique string index.
* @param key value of removed key
* @return removed object
* @exception StorageError(StorageError.KEY_NOT_FOUND) exception if there is no such key in the index,
* or StorageError(StorageError.KEY_NOT_UNIQUE) if index is not unique.
*/
public IPersistent remove(String key);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -