Skip to content

Commit 9da382b

Browse files
committed
~ inspection fixups for switches
1 parent f535815 commit 9da382b

File tree

1 file changed

+61
-125
lines changed

1 file changed

+61
-125
lines changed

opc-ua-sdk/sdk-core/src/main/java/org/eclipse/milo/opcua/sdk/core/types/DynamicStructCodec.java

Lines changed: 61 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -98,18 +98,12 @@ public Class<DynamicStruct> getType() {
9898
@Override
9999
public DynamicStruct decodeType(EncodingContext context, UaDecoder decoder)
100100
throws UaSerializationException {
101-
switch (definition.getStructureType()) {
102-
case Structure:
103-
case StructureWithOptionalFields:
104-
case StructureWithSubtypedValues:
105-
return decodeStruct(decoder);
106-
case Union:
107-
case UnionWithSubtypedValues:
108-
return decodeUnion(decoder);
109-
default:
110-
throw new IllegalArgumentException(
111-
"unhandled StructureType: " + definition.getStructureType());
112-
}
101+
102+
return switch (definition.getStructureType()) {
103+
case Structure, StructureWithOptionalFields, StructureWithSubtypedValues ->
104+
decodeStruct(decoder);
105+
case Union, UnionWithSubtypedValues -> decodeUnion(decoder);
106+
};
113107
}
114108

115109
@Override
@@ -307,9 +301,7 @@ private Object decodeFieldValue(UaDecoder decoder, StructureField field) {
307301
Object value;
308302

309303
Object hint = fieldHints.get(field);
310-
if (hint instanceof BuiltinDataType) {
311-
BuiltinDataType builtinDataType = (BuiltinDataType) hint;
312-
304+
if (hint instanceof BuiltinDataType builtinDataType) {
313305
value = decoder.decodeMatrix(fieldName, builtinDataType);
314306
} else {
315307
TypeHint typeHint = (TypeHint) hint;
@@ -436,121 +428,65 @@ private boolean fieldAllowsSubtyping(StructureField field) {
436428
private static Object decodeBuiltinDataType(
437429
UaDecoder decoder, String fieldName, BuiltinDataType builtinDataType) {
438430

439-
switch (builtinDataType) {
440-
case Boolean:
441-
return decoder.decodeBoolean(fieldName);
442-
case SByte:
443-
return decoder.decodeSByte(fieldName);
444-
case Byte:
445-
return decoder.decodeByte(fieldName);
446-
case Int16:
447-
return decoder.decodeInt16(fieldName);
448-
case UInt16:
449-
return decoder.decodeUInt16(fieldName);
450-
case Int32:
451-
return decoder.decodeInt32(fieldName);
452-
case UInt32:
453-
return decoder.decodeUInt32(fieldName);
454-
case Int64:
455-
return decoder.decodeInt64(fieldName);
456-
case UInt64:
457-
return decoder.decodeUInt64(fieldName);
458-
case Float:
459-
return decoder.decodeFloat(fieldName);
460-
case Double:
461-
return decoder.decodeDouble(fieldName);
462-
case String:
463-
return decoder.decodeString(fieldName);
464-
case DateTime:
465-
return decoder.decodeDateTime(fieldName);
466-
case Guid:
467-
return decoder.decodeGuid(fieldName);
468-
case ByteString:
469-
return decoder.decodeByteString(fieldName);
470-
case XmlElement:
471-
return decoder.decodeXmlElement(fieldName);
472-
case NodeId:
473-
return decoder.decodeNodeId(fieldName);
474-
case ExpandedNodeId:
475-
return decoder.decodeExpandedNodeId(fieldName);
476-
case StatusCode:
477-
return decoder.decodeStatusCode(fieldName);
478-
case QualifiedName:
479-
return decoder.decodeQualifiedName(fieldName);
480-
case LocalizedText:
481-
return decoder.decodeLocalizedText(fieldName);
482-
case ExtensionObject:
483-
return decoder.decodeExtensionObject(fieldName);
484-
case DataValue:
485-
return decoder.decodeDataValue(fieldName);
486-
case Variant:
487-
return decoder.decodeVariant(fieldName);
488-
case DiagnosticInfo:
489-
return decoder.decodeDiagnosticInfo(fieldName);
490-
default:
491-
// Shouldn't happen
492-
throw new RuntimeException("unhandled BuiltinDataType: " + builtinDataType);
493-
}
431+
return switch (builtinDataType) {
432+
case Boolean -> decoder.decodeBoolean(fieldName);
433+
case SByte -> decoder.decodeSByte(fieldName);
434+
case Byte -> decoder.decodeByte(fieldName);
435+
case Int16 -> decoder.decodeInt16(fieldName);
436+
case UInt16 -> decoder.decodeUInt16(fieldName);
437+
case Int32 -> decoder.decodeInt32(fieldName);
438+
case UInt32 -> decoder.decodeUInt32(fieldName);
439+
case Int64 -> decoder.decodeInt64(fieldName);
440+
case UInt64 -> decoder.decodeUInt64(fieldName);
441+
case Float -> decoder.decodeFloat(fieldName);
442+
case Double -> decoder.decodeDouble(fieldName);
443+
case String -> decoder.decodeString(fieldName);
444+
case DateTime -> decoder.decodeDateTime(fieldName);
445+
case Guid -> decoder.decodeGuid(fieldName);
446+
case ByteString -> decoder.decodeByteString(fieldName);
447+
case XmlElement -> decoder.decodeXmlElement(fieldName);
448+
case NodeId -> decoder.decodeNodeId(fieldName);
449+
case ExpandedNodeId -> decoder.decodeExpandedNodeId(fieldName);
450+
case StatusCode -> decoder.decodeStatusCode(fieldName);
451+
case QualifiedName -> decoder.decodeQualifiedName(fieldName);
452+
case LocalizedText -> decoder.decodeLocalizedText(fieldName);
453+
case ExtensionObject -> decoder.decodeExtensionObject(fieldName);
454+
case DataValue -> decoder.decodeDataValue(fieldName);
455+
case Variant -> decoder.decodeVariant(fieldName);
456+
case DiagnosticInfo -> decoder.decodeDiagnosticInfo(fieldName);
457+
};
494458
}
495459

496460
private static Object decodeBuiltinDataTypeArray(
497461
UaDecoder decoder, String fieldName, BuiltinDataType builtinDataType) {
498462

499-
switch (builtinDataType) {
500-
case Boolean:
501-
return decoder.decodeBooleanArray(fieldName);
502-
case SByte:
503-
return decoder.decodeSByteArray(fieldName);
504-
case Byte:
505-
return decoder.decodeByteArray(fieldName);
506-
case Int16:
507-
return decoder.decodeInt16Array(fieldName);
508-
case UInt16:
509-
return decoder.decodeUInt16Array(fieldName);
510-
case Int32:
511-
return decoder.decodeInt32Array(fieldName);
512-
case UInt32:
513-
return decoder.decodeUInt32Array(fieldName);
514-
case Int64:
515-
return decoder.decodeInt64Array(fieldName);
516-
case UInt64:
517-
return decoder.decodeUInt64Array(fieldName);
518-
case Float:
519-
return decoder.decodeFloatArray(fieldName);
520-
case Double:
521-
return decoder.decodeDoubleArray(fieldName);
522-
case String:
523-
return decoder.decodeStringArray(fieldName);
524-
case DateTime:
525-
return decoder.decodeDateTimeArray(fieldName);
526-
case Guid:
527-
return decoder.decodeGuidArray(fieldName);
528-
case ByteString:
529-
return decoder.decodeByteStringArray(fieldName);
530-
case XmlElement:
531-
return decoder.decodeXmlElementArray(fieldName);
532-
case NodeId:
533-
return decoder.decodeNodeIdArray(fieldName);
534-
case ExpandedNodeId:
535-
return decoder.decodeExpandedNodeIdArray(fieldName);
536-
case StatusCode:
537-
return decoder.decodeStatusCodeArray(fieldName);
538-
case QualifiedName:
539-
return decoder.decodeQualifiedNameArray(fieldName);
540-
case LocalizedText:
541-
return decoder.decodeLocalizedTextArray(fieldName);
542-
case ExtensionObject:
543-
return decoder.decodeExtensionObjectArray(fieldName);
544-
case DataValue:
545-
return decoder.decodeDataValueArray(fieldName);
546-
case Variant:
547-
return decoder.decodeVariantArray(fieldName);
548-
case DiagnosticInfo:
549-
return decoder.decodeDiagnosticInfoArray(fieldName);
550-
default:
551-
// Shouldn't happen
552-
throw new RuntimeException("unhandled BuiltinDataType: " + builtinDataType);
553-
}
463+
return switch (builtinDataType) {
464+
case Boolean -> decoder.decodeBooleanArray(fieldName);
465+
case SByte -> decoder.decodeSByteArray(fieldName);
466+
case Byte -> decoder.decodeByteArray(fieldName);
467+
case Int16 -> decoder.decodeInt16Array(fieldName);
468+
case UInt16 -> decoder.decodeUInt16Array(fieldName);
469+
case Int32 -> decoder.decodeInt32Array(fieldName);
470+
case UInt32 -> decoder.decodeUInt32Array(fieldName);
471+
case Int64 -> decoder.decodeInt64Array(fieldName);
472+
case UInt64 -> decoder.decodeUInt64Array(fieldName);
473+
case Float -> decoder.decodeFloatArray(fieldName);
474+
case Double -> decoder.decodeDoubleArray(fieldName);
475+
case String -> decoder.decodeStringArray(fieldName);
476+
case DateTime -> decoder.decodeDateTimeArray(fieldName);
477+
case Guid -> decoder.decodeGuidArray(fieldName);
478+
case ByteString -> decoder.decodeByteStringArray(fieldName);
479+
case XmlElement -> decoder.decodeXmlElementArray(fieldName);
480+
case NodeId -> decoder.decodeNodeIdArray(fieldName);
481+
case ExpandedNodeId -> decoder.decodeExpandedNodeIdArray(fieldName);
482+
case StatusCode -> decoder.decodeStatusCodeArray(fieldName);
483+
case QualifiedName -> decoder.decodeQualifiedNameArray(fieldName);
484+
case LocalizedText -> decoder.decodeLocalizedTextArray(fieldName);
485+
case ExtensionObject -> decoder.decodeExtensionObjectArray(fieldName);
486+
case DataValue -> decoder.decodeDataValueArray(fieldName);
487+
case Variant -> decoder.decodeVariantArray(fieldName);
488+
case DiagnosticInfo -> decoder.decodeDiagnosticInfoArray(fieldName);
489+
};
554490
}
555491

556492
private static void encodeBuiltinDataType(

0 commit comments

Comments
 (0)