Package com.hexaly.modeler
Class HxmMap
- java.lang.Object
-
- com.hexaly.modeler.HxmMap
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.lang.Iterable<HxmMap.Entry>
public class HxmMap extends java.lang.Object implements java.lang.Iterable<HxmMap.Entry>, java.lang.AutoCloseable
An HxmMap is a data structure mapping keys to values. A map is both an associative table and an array. Setting a value to an existing key will overwrite any value previously set for that key. When used as an array-like structure, adding a new unkeyed element to an HxmMap withaddValue(HxmValue)
automatically assigns an integer key to the element equal to the largest integer key already present plus one, or zero if no integer key exists. Most of the functions below exist in multiple versions: Values and keys can be manipulated through their native type (like int, double, String,HxmMap
,HxmFunction
...) or manipulated with anHxmValue
which is a container that can hold any type of value. Using the native type is more convenient and results in less overhead most of the time.HxmValue
should only be used when you don't know the type of the manipulated value. The iterators returned by the methoditerator()
follow the fail-fast convention: if the map is structurally modified after the creation of an iterator (by using the methods add, set, unset or clear), the iterator will throw an exception. In other words, you can't modify a map while you are iterating over it.- Since:
- 10.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
HxmMap.Entry
AnHxmMap
entry (key, value) pair.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addBool(boolean value)
Adds the given boolean value to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.void
addDouble(double value)
Adds the given double value to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.void
addExpression(HxExpression expr)
Adds the givenHxExpression
to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.void
addFunction(HxmFunction function)
Adds the givenHxmFunction
to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.void
addInt(long value)
Adds the given integer value to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.void
addMap(HxmMap map)
Adds the givenHxmMap
to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.void
addModule(HxmModule module)
Adds the givenHxmModule
to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.void
addString(java.lang.String str)
Adds the given String value to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.void
addValue(HxmValue value)
Adds the given value to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.HxmValue
asValue()
Returns the map as anHxmValue
.void
clear()
Erases all elements from the map.void
close()
Releases the reference.long
count()
Returns the number of elements in the map.boolean
equals(java.lang.Object obj)
boolean
getBool(long key)
Returns the boolean value associated with the given key.boolean
getBool(HxmValue key)
Returns the boolean value associated with the given key.boolean
getBool(java.lang.String key)
Returns the boolean value associated with the given key.double
getDouble(long key)
Returns the double value associated with the given key.double
getDouble(HxmValue key)
Returns the double value associated with the given key.double
getDouble(java.lang.String key)
Returns the double value associated with the given key.HxExpression
getExpression(long key)
Returns theHxExpression
associated with the given key.HxExpression
getExpression(HxmValue key)
Returns theHxExpression
associated with the given key.HxExpression
getExpression(java.lang.String key)
Returns theHxExpression
associated with the given key.HxmFunction
getFunction(long key)
Returns theHxmFunction
associated with the given key.HxmFunction
getFunction(HxmValue key)
Returns theHxmFunction
associated with the given key.HxmFunction
getFunction(java.lang.String key)
Returns theHxmFunction
associated with the given key.long
getInt(long key)
Returns the integer value associated with the given key.long
getInt(HxmValue key)
Returns the integer value associated with the given key.long
getInt(java.lang.String key)
Returns the integer value associated with the given key.HxmMap
getMap(long key)
Returns theHxmMap
associated with the given key.HxmMap
getMap(HxmValue key)
Returns theHxmMap
associated with the given key.HxmMap
getMap(java.lang.String key)
Returns theHxmMap
associated with the given key.HxmModule
getModule(long key)
Returns theHxmModule
associated with the given key.HxmModule
getModule(HxmValue key)
Returns theHxmModule
associated with the given key.HxmModule
getModule(java.lang.String key)
Returns theHxmModule
associated with the given key.java.lang.String
getString(long key)
Returns the String value associated with the given key.java.lang.String
getString(HxmValue key)
Returns the String value associated with the given key.java.lang.String
getString(java.lang.String key)
Returns the String value associated with the given key.HxmValue
getValue(long key)
Returns the value associated with the given key as anHxmValue
.HxmValue
getValue(HxmValue key)
Returns the value associated with the given key as anHxmValue
.HxmValue
getValue(java.lang.String key)
Returns the value associated with the given key as anHxmValue
.int
hashCode()
boolean
isDefined(int key)
Returns true if the given key is defined in the map.boolean
isDefined(HxmValue key)
Returns true if the given key is defined in the map.boolean
isDefined(java.lang.String key)
Returns true if the given key is defined in the map.java.util.Iterator<HxmMap.Entry>
iterator()
Returns a read-only iterator over the contents of this map.void
setBool(long key, boolean value)
Associates the boolean value to the given key in the map.void
setBool(HxmValue key, boolean value)
Associates the boolean value to the given key in the map.void
setBool(java.lang.String key, boolean value)
Associates the boolean value to the given key in the map.void
setDouble(long key, double value)
Associates the double value to the given key in the map.void
setDouble(HxmValue key, double value)
Associates the double value to the given key in the map.void
setDouble(java.lang.String key, double value)
Associates the double value to the given key in the map.void
setExpression(long key, HxExpression expr)
Associates theHxExpression
to the given key in the map.void
setExpression(HxmValue key, HxExpression expr)
Associates theHxExpression
to the given key in the map.void
setExpression(java.lang.String key, HxExpression expr)
Associates theHxExpression
to the given key in the map.void
setFunction(long key, HxmFunction function)
Associates theHxmFunction
to the given key in the map.void
setFunction(HxmValue key, HxmFunction function)
Associates theHxmFunction
to the given key in the map.void
setFunction(java.lang.String key, HxmFunction function)
Associates theHxmFunction
to the given key in the map.void
setInt(long key, long value)
Associates the integer value to the given key in the map.void
setInt(HxmValue key, long value)
Associates the integer value to the given key in the map.void
setInt(java.lang.String key, long value)
Associates the integer value to the given key in the map.void
setMap(long key, HxmMap map)
Associates theHxmMap
to the given key in the map.void
setMap(HxmValue key, HxmMap map)
Associates theHxmMap
to the given key in the map.void
setMap(java.lang.String key, HxmMap map)
Associates theHxmMap
to the given key in the map.void
setModule(long key, HxmModule module)
Associates theHxmModule
to the given key in the map.void
setModule(HxmValue key, HxmModule module)
Associates theHxmModule
to the given key in the map.void
setModule(java.lang.String key, HxmModule module)
Associates theHxmModule
to the given key in the map.void
setString(long key, java.lang.String str)
Associates the String value to the given key in the map.void
setString(HxmValue key, java.lang.String str)
Associates the String value to the given key in the map.void
setString(java.lang.String key, java.lang.String str)
Associates the String value to the given key in the map.void
setValue(long key, HxmValue value)
Associates theHxmValue
to the given key.void
setValue(HxmValue key, HxmValue value)
Associates theHxmValue
to the given key in the map.void
setValue(java.lang.String key, HxmValue value)
Associates theHxmValue
to the given key in the map.void
unset(long key)
Unsets the given key in the map if present.void
unset(HxmValue key)
Unsets the given key in the map if present.void
unset(java.lang.String key)
Unsets the given key in the map if present.
-
-
-
Method Detail
-
close
public void close()
Releases the reference. If this map was already released, returns immediately and does nothing. Invoking any method on this object after this operation will throw an exception.
Note: Releasing a reference does not necessarily imply that the underlying map object is destroyed. It is only destroyed if no more references point to it.
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Since:
- 11.5
-
count
public long count()
Returns the number of elements in the map.
-
clear
public void clear()
Erases all elements from the map. After this call,count()
returns zero.
-
addValue
public void addValue(HxmValue value)
Adds the given value to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.- Parameters:
value
- Value to add in the map.
-
addInt
public void addInt(long value)
Adds the given integer value to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.- Parameters:
value
- Integer value to add in the map.
-
addDouble
public void addDouble(double value)
Adds the given double value to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.- Parameters:
value
- Double value to add in the map.
-
addBool
public void addBool(boolean value)
Adds the given boolean value to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.- Parameters:
value
- Boolean value to add in the map.
-
addExpression
public void addExpression(HxExpression expr)
Adds the givenHxExpression
to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.- Parameters:
expr
- HxExpression to add in the map.
-
addMap
public void addMap(HxmMap map)
Adds the givenHxmMap
to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.- Parameters:
map
- Map to add in the map.
-
addModule
public void addModule(HxmModule module)
Adds the givenHxmModule
to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.- Parameters:
module
- Module to add in the map.
-
addString
public void addString(java.lang.String str)
Adds the given String value to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.- Parameters:
str
- String value to add in the map.
-
addFunction
public void addFunction(HxmFunction function)
Adds the givenHxmFunction
to the map with a key corresponding to the largest integer key present in the map plus one, or zero if no integer key exists.- Parameters:
function
- Function to add in the map.
-
getValue
public HxmValue getValue(java.lang.String key)
Returns the value associated with the given key as anHxmValue
. If no value is associated with the key, an HxmValue representing nil is returned.- Parameters:
key
- String key- Returns:
- HxmValue associated with the key.
-
getInt
public long getInt(java.lang.String key)
Returns the integer value associated with the given key. The value must exist and must be an integer.- Parameters:
key
- String key.- Returns:
- Integer value associated with the key.
-
getDouble
public double getDouble(java.lang.String key)
Returns the double value associated with the given key. The value must exist and must be a double.- Parameters:
key
- String key.- Returns:
- Double value associated with the key.
-
getBool
public boolean getBool(java.lang.String key)
Returns the boolean value associated with the given key. The value must exist and must be a boolean.- Parameters:
key
- String key.- Returns:
- Boolean value associated with the key.
-
getString
public java.lang.String getString(java.lang.String key)
Returns the String value associated with the given key. The value must exist and must be a String.- Parameters:
key
- String key.- Returns:
- String value associated with the key.
-
getModule
public HxmModule getModule(java.lang.String key)
Returns theHxmModule
associated with the given key. The value must exist and must be a module.- Parameters:
key
- String key.- Returns:
- Module associated with the key.
-
getFunction
public HxmFunction getFunction(java.lang.String key)
Returns theHxmFunction
associated with the given key. The value must exist and must be a function.- Parameters:
key
- String key.- Returns:
- Function associated with the key.
-
getMap
public HxmMap getMap(java.lang.String key)
Returns theHxmMap
associated with the given key. The value must exist and must be a map.- Parameters:
key
- String key.- Returns:
- Map associated with the key.
-
getExpression
public HxExpression getExpression(java.lang.String key)
Returns theHxExpression
associated with the given key. The value must exist and must be an expression.- Parameters:
key
- String key.- Returns:
- Expression associated with the key.
-
setValue
public void setValue(java.lang.String key, HxmValue value)
Associates theHxmValue
to the given key in the map. If the value is nil, this has the same effect asunset(java.lang.String)
. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- String key.value
- HxmValue to set.
-
setInt
public void setInt(java.lang.String key, long value)
Associates the integer value to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- String key.value
- Integer value to set.
-
setDouble
public void setDouble(java.lang.String key, double value)
Associates the double value to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- String key.value
- Double value to set.
-
setBool
public void setBool(java.lang.String key, boolean value)
Associates the boolean value to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- String key.value
- Boolean value to set.
-
setString
public void setString(java.lang.String key, java.lang.String str)
Associates the String value to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- String key.str
- String value to set.
-
setModule
public void setModule(java.lang.String key, HxmModule module)
Associates theHxmModule
to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- String key.module
- Module to set.
-
setFunction
public void setFunction(java.lang.String key, HxmFunction function)
Associates theHxmFunction
to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- String key.function
- Function to set.
-
setMap
public void setMap(java.lang.String key, HxmMap map)
Associates theHxmMap
to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- String key.map
- Map to set.
-
setExpression
public void setExpression(java.lang.String key, HxExpression expr)
Associates theHxExpression
to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- String key.expr
- Expression to set.
-
getValue
public HxmValue getValue(long key)
Returns the value associated with the given key as anHxmValue
. If no value is associated with the key, an HxmValue representing nil is returned.- Parameters:
key
- Integer key- Returns:
- HxmValue associated with the key.
-
getInt
public long getInt(long key)
Returns the integer value associated with the given key. The value must exist and must be an integer.- Parameters:
key
- Integer key.- Returns:
- Integer value associated with the key.
-
getDouble
public double getDouble(long key)
Returns the double value associated with the given key. The value must exist and must be a double.- Parameters:
key
- Integer key.- Returns:
- Double value associated with the key.
-
getBool
public boolean getBool(long key)
Returns the boolean value associated with the given key. The value must exist and must be a boolean.- Parameters:
key
- Integer key.- Returns:
- Boolean value associated with the key.
-
getString
public java.lang.String getString(long key)
Returns the String value associated with the given key. The value must exist and must be a String.- Parameters:
key
- Integer key.- Returns:
- String value associated with the key.
-
getModule
public HxmModule getModule(long key)
Returns theHxmModule
associated with the given key. The value must exist and must be a module.- Parameters:
key
- Integer key.- Returns:
- Module associated with the key.
-
getFunction
public HxmFunction getFunction(long key)
Returns theHxmFunction
associated with the given key. The value must exist and must be a function.- Parameters:
key
- Integer key.- Returns:
- Function associated with the key.
-
getMap
public HxmMap getMap(long key)
Returns theHxmMap
associated with the given key. The value must exist and must be a map.- Parameters:
key
- Integer key.- Returns:
- Map associated with the key.
-
getExpression
public HxExpression getExpression(long key)
Returns theHxExpression
associated with the given key. The value must exist and must be an expression.- Parameters:
key
- Integer key.- Returns:
- Expression associated with the key.
-
setValue
public void setValue(long key, HxmValue value)
Associates theHxmValue
to the given key. If the HxmValue is nil, this has the same effect asunset(java.lang.String)
. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- Integer key.value
- HxmValue to set.
-
setInt
public void setInt(long key, long value)
Associates the integer value to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- Integer key.value
- Integer value to set.
-
setDouble
public void setDouble(long key, double value)
Associates the double value to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- Integer key.value
- Double value to set.
-
setBool
public void setBool(long key, boolean value)
Associates the boolean value to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- Integer key.value
- Boolean value to set.
-
setString
public void setString(long key, java.lang.String str)
Associates the String value to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- Integer key.str
- String value to set.
-
setModule
public void setModule(long key, HxmModule module)
Associates theHxmModule
to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- Integer key.module
- Module to set.
-
setFunction
public void setFunction(long key, HxmFunction function)
Associates theHxmFunction
to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- Integer key.function
- Function to set.
-
setMap
public void setMap(long key, HxmMap map)
Associates theHxmMap
to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- Integer key.map
- Map to set.
-
setExpression
public void setExpression(long key, HxExpression expr)
Associates theHxExpression
to the given key in the map. If the map already contained an association for the key, the previous value is replaced.- Parameters:
key
- Integer key.expr
- Expression to set.
-
getValue
public HxmValue getValue(HxmValue key)
Returns the value associated with the given key as anHxmValue
. If no value is associated with the key, an HxmValue representing nil is returned.- Parameters:
key
- HxmValue key- Returns:
- Value associated with the key.
-
getInt
public long getInt(HxmValue key)
Returns the integer value associated with the given key. The value must exist and must be an integer.- Parameters:
key
- HxmValue key.- Returns:
- Integer value associated with the key.
-
getDouble
public double getDouble(HxmValue key)
Returns the double value associated with the given key. The value must exist and must be a double.- Parameters:
key
- HxmValue key.- Returns:
- Double value associated with the key.
-
getBool
public boolean getBool(HxmValue key)
Returns the boolean value associated with the given key. The value must exist and must be a boolean.- Parameters:
key
- HxmValue key.- Returns:
- Boolean value associated with the key.
-
getString
public java.lang.String getString(HxmValue key)
Returns the String value associated with the given key. The value must exist and must be a String.- Parameters:
key
- HxmValue key.- Returns:
- String value associated with the key.
-
getModule
public HxmModule getModule(HxmValue key)
Returns theHxmModule
associated with the given key. The value must exist and must be a module.- Parameters:
key
- HxmValue key.- Returns:
- Module associated with the key.
-
getFunction
public HxmFunction getFunction(HxmValue key)
Returns theHxmFunction
associated with the given key. The value must exist and must be a function.- Parameters:
key
- HxmValue key.- Returns:
- Function associated with the key.
-
getMap
public HxmMap getMap(HxmValue key)
Returns theHxmMap
associated with the given key. The value must exist and must be a map.- Parameters:
key
- HxmValue key.- Returns:
- Map associated with the key.
-
getExpression
public HxExpression getExpression(HxmValue key)
Returns theHxExpression
associated with the given key. The value must exist and must be an expression.- Parameters:
key
- HxmValue key.- Returns:
- Expression associated with the key.
-
setValue
public void setValue(HxmValue key, HxmValue value)
Associates theHxmValue
to the given key in the map. If the HxmValue is nil, this has the same effect asunset(java.lang.String)
. If the map already contained an association for the key, the previous value is replaced. The key must not be nil.- Parameters:
key
- HxmValue key.value
- HxmValue to set.
-
setInt
public void setInt(HxmValue key, long value)
Associates the integer value to the given key in the map. If the map already contained an association for the key, the previous value is replaced. The key must not be nil.- Parameters:
key
- HxmValue key.value
- Integer value to set.
-
setDouble
public void setDouble(HxmValue key, double value)
Associates the double value to the given key in the map. If the map already contained an association for the key, the previous value is replaced. The key must not be nil.- Parameters:
key
- HxmValue key.value
- Double value to set.
-
setBool
public void setBool(HxmValue key, boolean value)
Associates the boolean value to the given key in the map. If the map already contained an association for the key, the previous value is replaced. The key must not be nil.- Parameters:
key
- HxmValue key.value
- Boolean value to set.
-
setString
public void setString(HxmValue key, java.lang.String str)
Associates the String value to the given key in the map. If the map already contained an association for the key, the previous value is replaced. The key must not be nil.- Parameters:
key
- HxmValue key.str
- String value to set.
-
setModule
public void setModule(HxmValue key, HxmModule module)
Associates theHxmModule
to the given key in the map. If the map already contained an association for the key, the previous value is replaced. The key must not be nil.- Parameters:
key
- HxmValue key.module
- Module to set.
-
setFunction
public void setFunction(HxmValue key, HxmFunction function)
Associates theHxmFunction
to the given key in the map. If the map already contained an association for the key, the previous value is replaced. The key must not be nil.- Parameters:
key
- HxmValue key.function
- Function to set.
-
setMap
public void setMap(HxmValue key, HxmMap map)
Associates theHxmMap
to the given key in the map. If the map already contained an association for the key, the previous value is replaced. The key must not be nil.- Parameters:
key
- HxmValue key.map
- Map to set.
-
setExpression
public void setExpression(HxmValue key, HxExpression expr)
Associates theHxExpression
to the given key in the map. If the map already contained an association for the key, the previous value is replaced. The key must not be nil.- Parameters:
key
- HxmValue key.expr
- Expression to set.
-
unset
public void unset(java.lang.String key)
Unsets the given key in the map if present. If the key doesn't exist in the map do nothing.- Parameters:
key
- String key.
-
unset
public void unset(long key)
Unsets the given key in the map if present. If the key doesn't exist in the map do nothing.- Parameters:
key
- Integer key.
-
unset
public void unset(HxmValue key)
Unsets the given key in the map if present. If the key doesn't exist in the map do nothing. The key must not be nil.- Parameters:
key
- HxmValue key.
-
isDefined
public boolean isDefined(java.lang.String key)
Returns true if the given key is defined in the map.- Parameters:
key
- String key.
-
isDefined
public boolean isDefined(int key)
Returns true if the given key is defined in the map.- Parameters:
key
- Integer key.
-
isDefined
public boolean isDefined(HxmValue key)
Returns true if the given key is defined in the map.- Parameters:
key
- HxmValue key.
-
iterator
public java.util.Iterator<HxmMap.Entry> iterator()
Returns a read-only iterator over the contents of this map. The optional remove() operation is not supported.- Specified by:
iterator
in interfacejava.lang.Iterable<HxmMap.Entry>
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
-