- if field_type is None or not isinstance(field_type, CTFWriter.FieldType):
- raise TypeError("Invalid field_type. Type must be a FieldType-derived class.")
-
- if isinstance(field_type, CTFWriter.FieldTypeInteger):
- return CTFWriter.FieldInteger(field_type)
- elif isinstance(field_type, CTFWriter.FieldTypeEnumeration):
- return CTFWriter.FieldEnumeration(field_type)
- elif isinstance(field_type, CTFWriter.FieldTypeFloatingPoint):
- return CTFWriter.FieldFloatingPoint(field_type)
- elif isinstance(field_type, CTFWriter.FieldTypeStructure):
- return CTFWriter.FieldStructure(field_type)
- elif isinstance(field_type, CTFWriter.FieldTypeVariant):
- return CTFWriter.FieldVariant(field_type)
- elif isinstance(field_type, CTFWriter.FieldTypeArray):
- return CTFWriter.FieldArray(field_type)
- elif isinstance(field_type, CTFWriter.FieldTypeSequence):
- return CTFWriter.FieldSequence(field_type)
- elif isinstance(field_type, CTFWriter.FieldTypeString):
- return CTFWriter.FieldString(field_type)
+ if field_type is None or not isinstance(field_type, CTFWriter.FieldDeclaration):
+ raise TypeError("Invalid field_type. Type must be a FieldDeclaration-derived class.")
+
+ if isinstance(field_type, CTFWriter.IntegerFieldDeclaration):
+ return CTFWriter.IntegerField(field_type)
+ elif isinstance(field_type, CTFWriter.EnumerationFieldDeclaration):
+ return CTFWriter.EnumerationField(field_type)
+ elif isinstance(field_type, CTFWriter.FloatFieldDeclaration):
+ return CTFWriter.FloatFieldingPoint(field_type)
+ elif isinstance(field_type, CTFWriter.StructureFieldDeclaration):
+ return CTFWriter.StructureField(field_type)
+ elif isinstance(field_type, CTFWriter.VariantFieldDeclaration):
+ return CTFWriter.VariantField(field_type)
+ elif isinstance(field_type, CTFWriter.ArrayFieldDeclaration):
+ return CTFWriter.ArrayField(field_type)
+ elif isinstance(field_type, CTFWriter.SequenceFieldDeclaration):
+ return CTFWriter.SequenceField(field_type)
+ elif isinstance(field_type, CTFWriter.StringFieldDeclaration):
+ return CTFWriter.StringField(field_type)