package comp314.interfaces;
import java.util.ArrayList;
/** Data Store Interface.
*
* @author David Goodwin
*/
public interface IDataItem {
/** Loads the DataItem from the specified location.
* @param location The location to load from
*/
void load(String location);
/** Saves the DataItem. The location is obtained
* from the result of a previous save(String) or
* load(String) operation.
*/
void save();
/** Saves the DataItem to the specified location.
* @param location The location to save to.
*/
void save(String location);
/** Gets the specified sample image.
* @param number The number of the sample image.
* @return The requested sample image
*/
IData getImage(int number);
/** Adds a sample image.
* @param theImage The sample image to add
*/
void addImage(ITextImage theImage);
/** Removes the specified image.
* @param number The image to remove
*/
void removeImage(int number);
/** Returns the number of sample images.
* @return The number of sample images
*/
int getImageCount();
/** Gets a stored value. Key is the key under
* which the data was previously saved. The
* default value is what is returned if the key
* does not exist. This means that there is no need
* to check the key exists first.
* @param key The items key. Keys are in a tree. For
* example, "features/featureA" or "ASCIIvalue"
* @param sDefaultValue What to return if the key
* doesn't exist.
* @return The value for the specified key if it
* exists, otherwise default_value.
*/
String getValue(String key, String sDefaultValue);
/** Stores the specified value under the specified
* key.
* @param key The key to save the value under
* @param value The value to store
*/
void setValue(String key, String value);
/** Removes the specified key.
* @param key The key to remove.
*/
void removeKey(String key);
/** Returns a list of all keys under the specified
* key.
* @param key The specified key. "" is the root key.
* @return The list of keys under the specified key.
*/
ArrayList<String> listKeys(String key);
/**
* Gets the uid of the item.
* @return String containing the uid.
*/
String getUid();
/**
* Sets the unique identifier of the item.
* @param uid A unique string.
*/
void setUid(String uid);
}