private static int GetDataTypePrecedence(BuiltInType type)
{
switch (type)
{
case BuiltInType.Double: { return 18; }
case BuiltInType.Float: { return 17; }
case BuiltInType.Int64: { return 16; }
case BuiltInType.UInt64: { return 15; }
case BuiltInType.Int32: { return 14; }
case BuiltInType.UInt32: { return 13; }
case BuiltInType.StatusCode: { return 12; }
case BuiltInType.Int16: { return 11; }
case BuiltInType.UInt16: { return 10; }
case BuiltInType.SByte: { return 9; }
case BuiltInType.Byte: { return 8; }
case BuiltInType.Boolean: { return 7; }
case BuiltInType.Guid: { return 6; }
case BuiltInType.String: { return 5; }
case BuiltInType.ExpandedNodeId: { return 4; }
case BuiltInType.NodeId: { return 3; }
case BuiltInType.LocalizedText: { return 2; }
case BuiltInType.QualifiedName: { return 1; }
}
return 0;
}