java.lang.Object
java.lang.Record
org.eclipse.milo.opcua.stack.core.types.builtin.Variant
Record Components:
value - the value this Variant holds.

@NullMarked public record Variant(@Nullable Object value) extends Record
Create a new Variant with a given value.

This constructor offers no type safety and does not verify that value is allowed. See of(Object) for an alternative that will verify the value, or use one of the type-safe static factory methods instead.

Variants can contain arrays of Variants, but they cannot directly contain another Variant.

DiagnosticInfo types only have meaning when returned in a response message with an associated StatusCode and table of strings. As a result, Variants cannot contain instances of DiagnosticInfo.

  • Field Details

    • NULL_VALUE

      public static final Variant NULL_VALUE
  • Constructor Details

    • Variant

      public Variant(@Nullable Object value)
      Creates an instance of a Variant record class.
      Parameters:
      value - the value for the value record component
  • Method Details

    • getValue

      public @Nullable Object getValue()
    • getDataTypeId

      public Optional<ExpandedNodeId> getDataTypeId()
    • getDataType

      public Optional<OpcUaDataType> getDataType()
    • isNull

      public boolean isNull()
    • isNotNull

      public boolean isNotNull()
    • equals

      public boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • hashCode

      public int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • toString

      public String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • of

      public static Variant of(@Nullable Object value)
      Create a Variant containing an arbitrary Object with minimal checks.

      value is only inspected to see if it's an explicitly forbidden type for a Variant to contain, not that is a valid type. Consider using one of the type-safe factory methods if possible.

      Variants can contain arrays of Variants, but they cannot directly contain another Variant.

      DiagnosticInfo types only have meaning when returned in a response message with an associated StatusCode and table of strings. As a result, Variants cannot contain instances of DiagnosticInfo.

      Parameters:
      value - the value the Variant will contain.
      Returns:
      a new Variant containing value.
    • ofNull

      public static Variant ofNull()
      Create an empty Variant, i.e. a Variant with a null value.
      Returns:
      an empty Variant, i.e. a Variant with a null value.
    • ofBoolean

      public static Variant ofBoolean(boolean value)
      Create a Variant containing a Boolean value.
      Parameters:
      value - the boolean value.
      Returns:
      a new Variant containing value.
    • ofBoolean

      public static Variant ofBoolean(Boolean value)
      Create a Variant containing a Boolean value.
      Parameters:
      value - the Boolean value.
      Returns:
      a new Variant containing value.
    • ofSByte

      public static Variant ofSByte(byte value)
      Create a Variant containing a SByte value.
      Parameters:
      value - the SByte value.
      Returns:
      a new Variant containing value.
    • ofSByte

      public static Variant ofSByte(Byte value)
      Create a Variant containing a SByte value.
      Parameters:
      value - the SByte value.
      Returns:
      a new Variant containing value.
    • ofByte

      public static Variant ofByte(UByte value)
      Create a Variant containing a Byte value.
      Parameters:
      value - the Byte value.
      Returns:
      a new Variant containing value.
    • ofInt16

      public static Variant ofInt16(short value)
      Create a Variant containing an Int16 value.
      Parameters:
      value - the Int16 value.
      Returns:
      a new Variant containing value.
    • ofInt16

      public static Variant ofInt16(Short value)
      Create a Variant containing an Int16 value.
      Parameters:
      value - the Int16 value.
      Returns:
      a new Variant containing value.
    • ofUInt16

      public static Variant ofUInt16(UShort value)
      Create a Variant containing a UInt16 value.
      Parameters:
      value - the UInt16 value.
      Returns:
      a new Variant containing value.
    • ofInt32

      public static Variant ofInt32(int value)
      Create a Variant containing an Int32 value.
      Parameters:
      value - the Int32 value.
      Returns:
      a new Variant containing value.
    • ofInt32

      public static Variant ofInt32(Integer value)
      Create a Variant containing an Int32 value.
      Parameters:
      value - the Int32 value.
      Returns:
      a new Variant containing value.
    • ofUInt32

      public static Variant ofUInt32(UInteger value)
      Create a Variant containing a UInt32 value.
      Parameters:
      value - the UInt32 value.
      Returns:
      a new Variant containing value.
    • ofInt64

      public static Variant ofInt64(long value)
      Create a Variant containing an Int64 value.
      Parameters:
      value - the Int64 value.
      Returns:
      a new Variant containing value.
    • ofInt64

      public static Variant ofInt64(Long value)
      Create a Variant containing an Int64 value.
      Parameters:
      value - the Int64 value.
      Returns:
      a new Variant containing value.
    • ofUInt64

      public static Variant ofUInt64(ULong value)
      Create a Variant containing a UInt64 value.
      Parameters:
      value - the UInt64 value.
      Returns:
      a new Variant containing value.
    • ofFloat

      public static Variant ofFloat(float value)
      Create a Variant containing a Float value.
      Parameters:
      value - the Float value.
      Returns:
      a new Variant containing value.
    • ofFloat

      public static Variant ofFloat(Float value)
      Create a Variant containing a Float value.
      Parameters:
      value - the Float value.
      Returns:
      a new Variant containing value.
    • ofDouble

      public static Variant ofDouble(double value)
      Create a Variant containing a Double value.
      Parameters:
      value - the Double value.
      Returns:
      a new Variant containing value.
    • ofDouble

      public static Variant ofDouble(Double value)
      Create a Variant containing a Double value.
      Parameters:
      value - the Double value.
      Returns:
      a new Variant containing value.
    • ofString

      public static Variant ofString(String value)
      Create a Variant containing a String value.
      Parameters:
      value - the String value.
      Returns:
      a new Variant containing value.
    • ofDateTime

      public static Variant ofDateTime(DateTime value)
      Create a Variant containing a DateTime value.
      Parameters:
      value - the DateTime value.
      Returns:
      a new Variant containing value.
    • ofGuid

      public static Variant ofGuid(UUID value)
      Create a Variant containing a Guid value.
      Parameters:
      value - the Guid value.
      Returns:
      a new Variant containing value.
    • ofByteString

      public static Variant ofByteString(ByteString value)
      Create a Variant containing a ByteString value.
      Parameters:
      value - the ByteString value.
      Returns:
      a new Variant containing value.
    • ofXmlElement

      public static Variant ofXmlElement(XmlElement value)
      Create a Variant containing a XmlElement value.
      Parameters:
      value - the XmlElement value.
      Returns:
      a new Variant containing value.
    • ofNodeId

      public static Variant ofNodeId(NodeId value)
      Create a Variant containing a NodeId value.
      Parameters:
      value - the NodeId value.
      Returns:
      a new Variant containing value.
    • ofExpandedNodeId

      public static Variant ofExpandedNodeId(ExpandedNodeId value)
      Create a Variant containing an ExpandedNodeId value.
      Parameters:
      value - the ExpandedNodeId value.
      Returns:
      a new Variant containing value.
    • ofStatusCode

      public static Variant ofStatusCode(StatusCode value)
      Create a Variant containing a StatusCode value.
      Parameters:
      value - the StatusCode value.
      Returns:
      a new Variant containing value.
    • ofQualifiedName

      public static Variant ofQualifiedName(QualifiedName value)
      Create a Variant containing a QualifiedName value.
      Parameters:
      value - the QualifiedName value.
      Returns:
      a new Variant containing value.
    • ofLocalizedText

      public static Variant ofLocalizedText(LocalizedText value)
      Create a Variant containing a LocalizedText value.
      Parameters:
      value - the LocalizedText value.
      Returns:
      a new Variant containing value.
    • ofExtensionObject

      public static Variant ofExtensionObject(ExtensionObject value)
      Create a Variant containing an ExtensionObject value.
      Parameters:
      value - the ExtensionObject value.
      Returns:
      a new Variant containing value.
    • ofDataValue

      public static Variant ofDataValue(DataValue value)
      Create a Variant containing a DataValue value.
      Parameters:
      value - the DataValue value.
      Returns:
      a new Variant containing value.
    • ofBooleanArray

      public static Variant ofBooleanArray(boolean[] value)
      Create a Variant containing a Boolean array value.
      Parameters:
      value - the Boolean array value.
      Returns:
      a new Variant containing value.
    • ofBooleanArray

      public static Variant ofBooleanArray(Boolean[] value)
      Create a Variant containing a Boolean array value.
      Parameters:
      value - the Boolean array value.
      Returns:
      a new Variant containing value.
    • ofSByteArray

      public static Variant ofSByteArray(byte[] value)
      Create a Variant containing a SByte array value.
      Parameters:
      value - the SByte array value.
      Returns:
      a new Variant containing value.
    • ofSByteArray

      public static Variant ofSByteArray(Byte[] value)
      Create a Variant containing a SByte array value.
      Parameters:
      value - the SByte array value.
      Returns:
      a new Variant containing value.
    • ofByteArray

      public static Variant ofByteArray(UByte[] value)
      Create a Variant containing a Byte array value.
      Parameters:
      value - the Byte array value.
      Returns:
      a new Variant containing value.
    • ofInt16Array

      public static Variant ofInt16Array(short[] value)
      Create a Variant containing an Int16 array value.
      Parameters:
      value - the Int16 array value.
      Returns:
      a new Variant containing value.
    • ofInt16Array

      public static Variant ofInt16Array(Short[] value)
      Create a Variant containing an Int16 array value.
      Parameters:
      value - the Int16 array value.
      Returns:
      a new Variant containing value.
    • ofUInt16Array

      public static Variant ofUInt16Array(UShort[] value)
      Create a Variant containing a UInt16 array value.
      Parameters:
      value - the UInt16 array value.
      Returns:
      a new Variant containing value.
    • ofInt32Array

      public static Variant ofInt32Array(int[] value)
      Create a Variant containing an Int32 array value.
      Parameters:
      value - the Int32 array value.
      Returns:
      a new Variant containing value.
    • ofInt32Array

      public static Variant ofInt32Array(Integer[] value)
      Create a Variant containing an Int32 array value.
      Parameters:
      value - the Int32 array value.
      Returns:
      a new Variant containing value.
    • ofUInt32Array

      public static Variant ofUInt32Array(UInteger[] value)
      Create a Variant containing a UInt32 array value.
      Parameters:
      value - the UInt32 array value.
      Returns:
      a new Variant containing value.
    • ofInt64Array

      public static Variant ofInt64Array(long[] value)
      Create a Variant containing an Int64 array value.
      Parameters:
      value - the Int64 array value.
      Returns:
      a new Variant containing value.
    • ofInt64Array

      public static Variant ofInt64Array(Long[] value)
      Create a Variant containing an Int64 array value.
      Parameters:
      value - the Int64 array value.
      Returns:
      a new Variant containing value.
    • ofUInt64Array

      public static Variant ofUInt64Array(ULong[] value)
      Create a Variant containing a UInt64 array value.
      Parameters:
      value - the UInt64 array value.
      Returns:
      a new Variant containing value.
    • ofFloatArray

      public static Variant ofFloatArray(float[] value)
      Create a Variant containing a Float array value.
      Parameters:
      value - the Float array value.
      Returns:
      a new Variant containing value.
    • ofFloatArray

      public static Variant ofFloatArray(Float[] value)
      Create a Variant containing a Float array value.
      Parameters:
      value - the Float array value.
      Returns:
      a new Variant containing value.
    • ofDoubleArray

      public static Variant ofDoubleArray(double[] value)
      Create a Variant containing a Double array value.
      Parameters:
      value - the Double array value.
      Returns:
      a new Variant containing value.
    • ofDoubleArray

      public static Variant ofDoubleArray(Double[] value)
      Create a Variant containing a Double array value.
      Parameters:
      value - the Double array value.
      Returns:
      a new Variant containing value.
    • ofStringArray

      public static Variant ofStringArray(String[] value)
      Create a Variant containing a String array value.
      Parameters:
      value - the String array value.
      Returns:
      a new Variant containing value.
    • ofDateTimeArray

      public static Variant ofDateTimeArray(DateTime[] value)
      Create a Variant containing a DateTime array value.
      Parameters:
      value - the DateTime array value.
      Returns:
      a new Variant containing value.
    • ofGuidArray

      public static Variant ofGuidArray(UUID[] value)
      Create a Variant containing a Guid array value.
      Parameters:
      value - the Guid array value.
      Returns:
      a new Variant containing value.
    • ofByteStringArray

      public static Variant ofByteStringArray(ByteString[] value)
      Create a Variant containing a ByteString array value.
      Parameters:
      value - the ByteString array value.
      Returns:
      a new Variant containing value.
    • ofXmlElementArray

      public static Variant ofXmlElementArray(XmlElement[] value)
      Create a Variant containing a XmlElement array value.
      Parameters:
      value - the XmlElement array value.
      Returns:
      a new Variant containing value.
    • ofNodeIdArray

      public static Variant ofNodeIdArray(NodeId[] value)
      Create a Variant containing a NodeId array value.
      Parameters:
      value - the NodeId array value.
      Returns:
      a new Variant containing value.
    • ofExpandedNodeIdArray

      public static Variant ofExpandedNodeIdArray(ExpandedNodeId[] value)
      Create a Variant containing a ExpandedNodeId array value.
      Parameters:
      value - the ExpandedNodeId array value.
      Returns:
      a new Variant containing value.
    • ofStatusCodeArray

      public static Variant ofStatusCodeArray(StatusCode[] value)
      Create a Variant containing a StatusCode array value.
      Parameters:
      value - the StatusCode array value.
      Returns:
      a new Variant containing value.
    • ofQualifiedNameArray

      public static Variant ofQualifiedNameArray(QualifiedName[] value)
      Create a Variant containing a QualifiedName array value.
      Parameters:
      value - the QualifiedName array value.
      Returns:
      a new Variant containing value.
    • ofLocalizedTextArray

      public static Variant ofLocalizedTextArray(LocalizedText[] value)
      Create a Variant containing a LocalizedText array value.
      Parameters:
      value - the LocalizedText array value.
      Returns:
      a new Variant containing value.
    • ofExtensionObjectArray

      public static Variant ofExtensionObjectArray(ExtensionObject[] value)
      Create a Variant containing an ExtensionObject array value.
      Parameters:
      value - the ExtensionObject array value.
      Returns:
      a new Variant containing value.
    • ofDataValueArray

      public static Variant ofDataValueArray(DataValue[] value)
      Create a Variant containing a DataValue array value.
      Parameters:
      value - the DataValue array value.
      Returns:
      a new Variant containing value.
    • ofVariantArray

      public static Variant ofVariantArray(Variant[] value)
      Create a Variant containing a Variant array value.
      Parameters:
      value - the Variant array value.
      Returns:
      a new Variant containing value.
    • ofMatrix

      public static Variant ofMatrix(Matrix value)
      Create a Variant containing a Matrix value.
      Parameters:
      value - the Matrix value.
      Returns:
      a new Variant containing value.
    • ofEnum

      public static Variant ofEnum(UaEnumeratedType value)
      Create a Variant containing a UaEnumeratedType value.
      Parameters:
      value - the UaEnumeratedType value.
      Returns:
      a new Variant containing value.
    • ofStruct

      public static Variant ofStruct(UaStructuredType value)
      Create a Variant containing a UaStructuredType value.
      Parameters:
      value - the UaStructuredType value.
      Returns:
      a new Variant containing value.
    • ofOptionSetUI

      public static Variant ofOptionSetUI(OptionSetUInteger<?> value)
      Create a Variant containing an OptionSetUInteger value.
      Parameters:
      value - the OptionSetUInteger value.
      Returns:
      a new Variant containing value.
    • value

      public @Nullable Object value()
      Returns the value of the value record component.
      Returns:
      the value of the value record component