|
|
@@ -27,18 +27,25 @@ class ITable { |
|
|
public:
|
|
|
|
|
|
/**
|
|
|
+ * Determines whether the given key is in this table.
|
|
|
+ *
|
|
|
* @param key the key to search for
|
|
|
* @return true if the table as a value assigned to the given key
|
|
|
*/
|
|
|
virtual bool ContainsKey(std::string key) = 0;
|
|
|
|
|
|
/**
|
|
|
+ * Determines whether there exists a non-empty subtable for this key
|
|
|
+ * in this table.
|
|
|
+ *
|
|
|
* @param key the key to search for
|
|
|
* @return true if there is a subtable with the key which contains at least one key/subtable of its own
|
|
|
*/
|
|
|
virtual bool ContainsSubTable(std::string key) = 0;
|
|
|
|
|
|
/**
|
|
|
+ * Gets the subtable in this table for the given name.
|
|
|
+ *
|
|
|
* @param key the name of the table relative to this one
|
|
|
* @return a sub table relative to this one
|
|
|
*/
|
|
|
@@ -47,13 +54,15 @@ class ITable { |
|
|
|
|
|
/**
|
|
|
* Gets the value associated with a key as an object
|
|
|
+ *
|
|
|
* @param key the key of the value to look up
|
|
|
* @return the value associated with the given key
|
|
|
* @throws TableKeyNotDefinedException if there is no value associated with the given key
|
|
|
*/
|
|
|
virtual EntryValue GetValue(std::string key) = 0;
|
|
|
/**
|
|
|
* Put a value in the table
|
|
|
+ *
|
|
|
* @param key the key to be assigned to
|
|
|
* @param value the value that will be assigned
|
|
|
* @throws IllegalArgumentException when the value is not supported by the table
|
|
|
@@ -66,17 +75,22 @@ class ITable { |
|
|
|
|
|
/**
|
|
|
* Put a number in the table
|
|
|
+ *
|
|
|
* @param key the key to be assigned to
|
|
|
* @param value the value that will be assigned
|
|
|
*/
|
|
|
virtual void PutNumber(std::string key, double value) = 0;
|
|
|
/**
|
|
|
+ * Gets the number associated with the given name.
|
|
|
+ *
|
|
|
* @param key the key to look up
|
|
|
* @return the value associated with the given key
|
|
|
* @throws TableKeyNotDefinedException if there is no value associated with the given key
|
|
|
*/
|
|
|
virtual double GetNumber(std::string key) = 0;
|
|
|
/**
|
|
|
+ * Gets the number associated with the given name.
|
|
|
+ *
|
|
|
* @param key the key to look up
|
|
|
* @param defaultValue the value to be returned if no value is found
|
|
|
* @return the value associated with the given key or the given default value if there is no value associated with the key
|
|
|
@@ -85,17 +99,24 @@ class ITable { |
|
|
|
|
|
/**
|
|
|
* Put a std::string& in the table
|
|
|
+ *
|
|
|
* @param key the key to be assigned to
|
|
|
* @param value the value that will be assigned
|
|
|
*/
|
|
|
virtual void PutString(std::string key, std::string value) = 0;
|
|
|
+
|
|
|
/**
|
|
|
+ * Gets the string associated with the given name.
|
|
|
+ *
|
|
|
* @param key the key to look up
|
|
|
* @return the value associated with the given key
|
|
|
* @throws TableKeyNotDefinedException if there is no value associated with the given key
|
|
|
*/
|
|
|
virtual std::string GetString(std::string key) = 0;
|
|
|
+
|
|
|
/**
|
|
|
+ * Gets the string associated with the given name.
|
|
|
+ *
|
|
|
* @param key the key to look up
|
|
|
* @param defaultValue the value to be returned if no value is found
|
|
|
* @return the value associated with the given key or the given default value if there is no value associated with the key
|
|
|
@@ -104,53 +125,64 @@ class ITable { |
|
|
|
|
|
/**
|
|
|
* Put a boolean in the table
|
|
|
+ *
|
|
|
* @param key the key to be assigned to
|
|
|
* @param value the value that will be assigned
|
|
|
*/
|
|
|
virtual void PutBoolean(std::string key, bool value) = 0;
|
|
|
+
|
|
|
/**
|
|
|
+ * Gets the boolean associated with the given name.
|
|
|
+ *
|
|
|
* @param key the key to look up
|
|
|
* @return the value associated with the given key
|
|
|
* @throws TableKeyNotDefinedException if there is no value associated with the given key
|
|
|
*/
|
|
|
virtual bool GetBoolean(std::string key) = 0;
|
|
|
+
|
|
|
/**
|
|
|
+ * Gets the boolean associated with the given name.
|
|
|
+ *
|
|
|
* @param key the key to look up
|
|
|
* @param defaultValue the value to be returned if no value is found
|
|
|
* @return the value associated with the given key or the given default value if there is no value associated with the key
|
|
|
*/
|
|
|
virtual bool GetBoolean(std::string key, bool defaultValue) = 0;
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
* Add a listener for changes to the table
|
|
|
+ *
|
|
|
* @param listener the listener to add
|
|
|
*/
|
|
|
virtual void AddTableListener(ITableListener* listener) = 0;
|
|
|
+
|
|
|
/**
|
|
|
* Add a listener for changes to the table
|
|
|
+ *
|
|
|
* @param listener the listener to add
|
|
|
* @param immediateNotify if true then this listener will be notified of all current entries (marked as new)
|
|
|
*/
|
|
|
virtual void AddTableListener(ITableListener* listener, bool immediateNotify) = 0;
|
|
|
|
|
|
/**
|
|
|
* Add a listener for changes to a specific key the table
|
|
|
+ *
|
|
|
* @param key the key to listen for
|
|
|
* @param listener the listener to add
|
|
|
* @param immediateNotify if true then this listener will be notified of all current entries (marked as new)
|
|
|
*/
|
|
|
virtual void AddTableListener(std::string key, ITableListener* listener, bool immediateNotify) = 0;
|
|
|
+
|
|
|
/**
|
|
|
* This will immediately notify the listener of all current sub tables
|
|
|
+ *
|
|
|
* @param listener
|
|
|
*/
|
|
|
virtual void AddSubTableListener(ITableListener* listener) = 0;
|
|
|
+
|
|
|
/**
|
|
|
* Remove a listener from receiving table events
|
|
|
+ *
|
|
|
* @param listener the listener to be removed
|
|
|
*/
|
|
|
virtual void RemoveTableListener(ITableListener* listener) = 0;
|
|
|
|