Class HxmValue
- java.lang.Object
-
- com.hexaly.modeler.HxmValue
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class HxmValue extends java.lang.Object implements java.lang.AutoCloseable
General value container. Any value in a Hexaly Modeler can be contained in an instance of this class (integer, double, boolean, string, HxExpression, module, map, function and also non exposed types like files or dates).
Values come in two types: references and primitive values. Primitive values are integers, doubles, booleans and nil. All other values are references (including modules, functions, maps and strings).
The lifetime of primitive values is automatically managed by the modeler. By contrast, references are managed by a memory counter. Any reference returned by the modeler API must be freed by calling
close()
. To help you, reference values can be grouped together in aHxmReferenceScope
.- Since:
- 10.0
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
asBool()
Returns the value as a boolean.HxmClass
asClass()
Returns the value as aHxmClass
.double
asDouble()
Returns the value as a double.HxExpression
asExpression()
Returns the value as aHxExpression
.HxmFunction
asFunction()
Returns the value as aHxmFunction
.long
asInt()
Returns the value as an integer.HxmMap
asMap()
Returns the value as aHxmMap
.HxmModule
asModule()
Returns the value as aHxmModule
.java.lang.String
asString()
Returns the value as a String.void
close()
Releases the reference.boolean
equals(java.lang.Object obj)
HxmClass
getHxmClass()
Returns the HxmClass associated to this value if it is a reference.HxmType
getType()
Returns the type of the value.int
hashCode()
boolean
isBool()
Returns true if the value is a boolean value.boolean
isClass()
Returns true if the value is an HxmClass.boolean
isDouble()
Returns true if the value is a double value.boolean
isExpression()
Returns true if the value is an HxExpression.boolean
isFunction()
Returns true if the value is a HxmFunction.boolean
isInt()
Returns true if the value is an integer value.boolean
isMap()
Returns true if the value is an HxmMap.boolean
isModule()
Returns true if the value is an HxmModule.boolean
isNil()
Returns true if the value is nil.boolean
isObject()
Returns true if the value is an object.boolean
isString()
Returns true if the value is a string.
-
-
-
Method Detail
-
close
public void close()
Releases the reference. If this value 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 value object is destroyed. It is only destroyed if no more references point to it.
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Since:
- 11.0
-
getType
public HxmType getType()
Returns the type of the value.- Returns:
- Type of the value.
- See Also:
HxmType
-
getHxmClass
public HxmClass getHxmClass()
Returns the HxmClass associated to this value if it is a reference.- Since:
- 13.0
- See Also:
HxmClass
-
isObject
public boolean isObject()
Returns true if the value is an object. Any value that is not nil, a boolean, an integer or a number is an object. In particular, strings, maps, functions or modules are objects.- Since:
- 13.0
-
isInt
public boolean isInt()
Returns true if the value is an integer value.
-
isDouble
public boolean isDouble()
Returns true if the value is a double value.
-
isBool
public boolean isBool()
Returns true if the value is a boolean value.
-
isMap
public boolean isMap()
Returns true if the value is an HxmMap.
-
isModule
public boolean isModule()
Returns true if the value is an HxmModule.
-
isClass
public boolean isClass()
Returns true if the value is an HxmClass.
-
isExpression
public boolean isExpression()
Returns true if the value is an HxExpression.
-
isFunction
public boolean isFunction()
Returns true if the value is a HxmFunction.
-
isString
public boolean isString()
Returns true if the value is a string.
-
isNil
public boolean isNil()
Returns true if the value is nil.
-
asInt
public long asInt()
Returns the value as an integer. The value must be an integer.
-
asDouble
public double asDouble()
Returns the value as a double. The value must be a double.
-
asBool
public boolean asBool()
Returns the value as a boolean. The value must be a boolean.
-
asString
public java.lang.String asString()
Returns the value as a String. The value must be a string.
-
asClass
public HxmClass asClass()
Returns the value as aHxmClass
. The value must be a class.- Since:
- 13.0
-
asFunction
public HxmFunction asFunction()
Returns the value as aHxmFunction
. The value must be a function.
-
asExpression
public HxExpression asExpression()
Returns the value as aHxExpression
. The value must be an expression.
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
-