def _registerDefaultElementWriters(self, writer): writer.registerElementWriter(XMLDataTypeWriter(self.version, self.patch)) writer.registerElementWriter(XMLConstantWriter(self.version, self.patch)) writer.registerElementWriter(XMLPortInterfaceWriter(self.version, self.patch)) writer.registerElementWriter(XMLComponentTypeWriter(self.version, self.patch)) writer.registerElementWriter(XMLBehaviorWriter(self.version, self.patch)) writer.registerElementWriter(CodeDataTypeWriter(self.version, self.patch)) writer.registerElementWriter(CodeConstantWriter(self.version, self.patch)) writer.registerElementWriter(CodePortInterfaceWriter(self.version, self.patch)) writer.registerElementWriter(CodeComponentTypeWriter(self.version, self.patch)) writer.registerElementWriter(CodeBehaviorWriter(self.version, self.patch)) writer.registerElementWriter(SignalWriter(self.version, self.patch)) writer.registerElementWriter(XMLModeWriter(self.version, self.patch))
def __init__(self, version): super().__init__(version) self.dataTypeWriter = DataTypeWriter(version) self.constantWriter = ConstantWriter(version) self.componentTypeWriter = ComponentTypeWriter(version) self.behaviorWriter = BehaviorWriter(version) self.portInterfaceWriter = PortInterfaceWriter(version) self.signalWriter = SignalWriter(version) if (self.version >= 3.0) and (self.version < 4.0): self.switcherXML = { 'ArrayDataType': self.dataTypeWriter.writeArrayDataTypeXml, 'BooleanDataType': self.dataTypeWriter.writeBooleanDataTypeXml, 'IntegerDataType': self.dataTypeWriter.writeIntegerTypeXML, 'RealDataType': self.dataTypeWriter.writeRealDataTypeXML, 'RecordDataType': self.dataTypeWriter.writeRecordDataTypeXML, 'StringDataType': self.dataTypeWriter.writeStringTypeXml, 'ApplicationSoftwareComponent': self.componentTypeWriter.writeApplicationSoftwareComponentXML, 'ComplexDeviceDriverComponent': self.componentTypeWriter.writeComplexDeviceDriverComponentXML, 'ServiceComponent': self.componentTypeWriter.writeServiceComponentXML, 'InternalBehavior': self.behaviorWriter.writeInternalBehaviorXML, 'SwcImplementation': self.componentTypeWriter.writeSwcImplementationXML, 'CompuMethodConst': self.dataTypeWriter.writeCompuMethodXML, 'CompuMethodRational': self.dataTypeWriter.writeCompuMethodXML, 'DataTypeUnitElement': self.dataTypeWriter.writeDataTypeUnitElementXML, 'SoftwareAddressMethod': self.portInterfaceWriter.writeSoftwareAddressMethodXML, 'ModeDeclarationGroup': self.portInterfaceWriter.writeModeDeclarationGroupXML, 'SenderReceiverInterface': self.portInterfaceWriter.writeSenderReceiverInterfaceXML, 'ParameterInterface': self.portInterfaceWriter.writeParameterInterfaceXML, 'ClientServerInterface': self.portInterfaceWriter.writeClientServerInterfaceXML, 'Constant': self.constantWriter.writeConstantXML, 'CompositionComponent': self.componentTypeWriter.writeCompositionComponentXML, 'SystemSignal': self.signalWriter.writeSignalXML, 'SYSTEM': None } self.switcherCode = { 'ArrayDataType': self.dataTypeWriter.writeArrayDataTypeCode, 'BooleanDataType': self.dataTypeWriter.writeBooleanDataTypeCode, 'IntegerDataType': self.dataTypeWriter.writeIntegerTypeCode, 'RealDataType': self.dataTypeWriter.writeRealDataTypeCode, 'RecordDataType': self.dataTypeWriter.writeRecordDataTypeCode, 'StringDataType': self.dataTypeWriter.writeStringTypeCode, 'ApplicationSoftwareComponent': self.componentTypeWriter.writeApplicationSoftwareComponentCode, 'ComplexDeviceDriverComponent': self.componentTypeWriter.writeComplexDeviceDriverComponentCode, 'ServiceComponent': self.componentTypeWriter.writeServiceComponentCode, 'ParameterComponent': self.componentTypeWriter.writeParameterComponentCode, 'InternalBehavior': self.behaviorWriter.writeInternalBehaviorCode, 'SwcImplementation': self.componentTypeWriter.writeSwcImplementationCode, 'CompuMethodConst': self.dataTypeWriter.writeCompuMethodCode, 'CompuMethodRational': self.dataTypeWriter.writeCompuMethodCode, 'DataTypeUnitElement': self.dataTypeWriter.writeDataTypeUnitElementCode, 'SoftwareAddressMethod': self.portInterfaceWriter.writeSoftwareAddressMethodCode, 'ModeDeclarationGroup': self.portInterfaceWriter.writeModeDeclarationGroupCode, 'SenderReceiverInterface': self.portInterfaceWriter.writeSenderReceiverInterfaceCode, 'ParameterInterface': self.portInterfaceWriter.writeParameterInterfaceCode, 'ClientServerInterface': self.portInterfaceWriter.writeClientServerInterfaceCode, 'Constant': self.constantWriter.writeConstantCode, 'CompositionComponent': self.componentTypeWriter.writeCompositionComponentCode, 'SYSTEM-SIGNAL': None, 'SYSTEM': None } elif self.version >= 4.0: self.switcherXML = { 'CompuMethodConst': self.dataTypeWriter.writeCompuMethodXML, 'CompuMethodRational': self.dataTypeWriter.writeCompuMethodXML, 'DataConstraint': self.dataTypeWriter.writeDataConstraintXml, 'ImplementationDataType': self.dataTypeWriter.writeImplementationDataTypeXML, 'SwBaseType': self.dataTypeWriter.writeSwBaseTypeXML, 'DataTypeUnitElement': self.dataTypeWriter.writeDataTypeUnitElementXML, 'DataTypeMappingSet': self.dataTypeWriter.writeDataTypeMappingSetXML } self.switcherCode = { 'DataConstraint': self.dataTypeWriter.writeDataConstraintCode, 'ImplementationDataType': self.dataTypeWriter.writeImplementationDataTypeCode } else: raise NotImplementedError("AUTOSAR version not yet supported")