示例#1
0
 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))
示例#2
0
 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")