title: How to set the proper data type when writing to an OPC-UA node in Milo?
body: <p>I am an OPC-UA newbie integrating a non-OPC-UA system to an OPC-UA server using the Milo stack. Part of this includes writing values to Nodes in the OPC-UA server. One of my problems is that values from the other system comes in the form of a Java String and thus needs to be converted to the Node's proper data type. My first brute force proof-of-concept uses the below code in order to create a Variant that I can use to write to the Node (as in the WriteExample.java). The variable <strong>value</strong> is the Java String containing the data to write, e.g. "123" for an Integer or "32.3" for a Double. The solution now includes hard-coding the "types" from the Identifiers class (org.eclipse.milo.opcua.stack.core, see the switch statement) which is not pretty and I am sure there is a better way to do this? 
  Also, how do I proceed if I want to convert and write "123" to a node that is, for example, 
   UInt64?</p>
  
  <pre><code>       try {
              VariableNode node = client.getAddressSpace().createVariableNode(nodeId);
              Object val = new Object();
              Object identifier = node.getDataType().get().getIdentifier();
              UInteger id = UInteger.valueOf(0);
  
              if(identifier instanceof UInteger) {
                  id = (UInteger) identifier;
              }
  
              System.out.println("getIdentifier: " + node.getDataType().get().getIdentifier());
              switch (id.intValue()) {
                  // Based on the Identifiers class in org.eclipse.milo.opcua.stack.core; 
                  case 11: // Double
                      val = Double.valueOf(value);
                      break;
                  case 6: //Int32
                      val = Integer.valueOf(value);
                      break;
              }
  
              DataValue data = new DataValue(new Variant(val),StatusCode.GOOD, null);
              StatusCode status = client.writeValue(nodeId, data).get();
              System.out.println("Wrote DataValue: " + data + " status: " + status);
              returnString = status.toString();
          } catch (Exception e) {
              System.out.println("ERROR: " + e.toString());
          }
  </code></pre>
  
  <p>I've looked at Kevin's response to this thread: <a href="https://stackoverflow.com/questions/58305886/how-do-i-reliably-write-to-a-opc-ua-server">How do I reliably write to a OPC UA server?</a> But I'm still a bit lost... Some small code example would really be helpful.</p>