diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs index 3c001b436f53135563b14093ca367572409e7010..730ef22f1f7cc801f67f2bd1601e0f7061d541b3 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLAuxiliaryDeclarationDataProvider.cs @@ -19,14 +19,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IAuxiliaryDeclarationInputData - public AuxiliaryType Type + public virtual AuxiliaryType Type { get { return _type ?? (_type = BaseNode.LocalName.ParseEnum<AuxiliaryType>()).Value; } } - public IList<string> Technology + public virtual IList<string> Technology { get { if (_technology != null) { diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs index 0303045574034e6dd41b0175f565b34b1efa250c..f72f28048efa59dbce46a9eb6fa2286abe1b4321 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationADASDataProvider.cs @@ -31,22 +31,22 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IAdvancedDriverAssistantSystemDeclarationInputData - public bool EngineStopStart + public virtual bool EngineStopStart { get { return XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_ADAS_EngineStopStart)); } } - public bool EcoRollWitoutEngineStop + public virtual bool EcoRollWitoutEngineStop { get { return XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop)); } } - public bool EcoRollWithEngineStop + public virtual bool EcoRollWithEngineStop { get { return XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart)); } } - public PredictiveCruiseControlType PredictiveCruiseControl + public virtual PredictiveCruiseControlType PredictiveCruiseControl { get { return PredictiveCruiseControlTypeHelper.Parse(GetString(XMLNames.Vehicle_ADAS_PCC)); } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs index 75c8c99488ea9963092ceced97e1a18868ae2147..2e888eb6298d1405839835310539d0606534d958 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAirdragDataProvider.cs @@ -20,7 +20,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IAirdragDeclarationInputData - public SquareMeter AirDragArea + public virtual SquareMeter AirDragArea { get { return ElementExists(XMLNames.AirDrag_DeclaredCdxA) @@ -29,7 +29,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public new CertificationMethod CertificationMethod + public override CertificationMethod CertificationMethod { get { return CertificationMethod.Measured; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs index 92b6847892172da99a4ca84af7b0d1d8028adbfc..b909ab80f09e5c3c7b74d7378b4cdb19b7de361a 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs @@ -26,17 +26,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IAngledriveInputData - public AngledriveType Type + public virtual AngledriveType Type { get { return Vehicle.AngledriveType; } } - public double Ratio + public virtual double Ratio { get { return GetDouble(XMLNames.AngleDrive_Ratio); } } - public TableData LossMap + public virtual TableData LossMap { get { return ReadTableData( @@ -45,7 +45,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public double Efficiency + public virtual double Efficiency { get { throw new VectoException("Efficiency not supported in Declaration Mode!"); } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs index f6f23d39914979520cd3d10236441fc465669d8f..1ec5ab6e902a6e6e8649db8aa8ccd07f6cbab0e9 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAuxiliariesDataProvider.cs @@ -21,12 +21,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IAuxiliariesDeclarationInputData - public bool SavedInDeclarationMode + public virtual bool SavedInDeclarationMode { get { return true; } } - public IList<IAuxiliaryDeclarationInputData> Auxiliaries + public virtual IList<IAuxiliaryDeclarationInputData> Auxiliaries { get { if (_auxiliaries != null) { @@ -52,7 +52,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IXMLAuxiliariesDeclarationInputData - public IXMLComponentReader Reader { protected get; set; } + public virtual IXMLComponentReader Reader { protected get; set; } #endregion } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxleDataProvider.cs index af2db27e1922aad3daa1c75be894aaacb47607eb..4c6550c7fd18efb76220013c66806010930fb0c2 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxleDataProvider.cs @@ -13,9 +13,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V10; - private ITyreDeclarationInputData _tyre; - private bool? _twinTyre; - private AxleType? _axleType; + protected ITyreDeclarationInputData _tyre; + protected bool? _twinTyre; + protected AxleType? _axleType; public XMLDeclarationAxleDataProviderV10(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile) { @@ -24,21 +24,21 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IAxleDeclarationInputData - public bool TwinTyres + public virtual bool TwinTyres { get { return _twinTyre ?? (_twinTyre = XmlConvert.ToBoolean(GetString(XMLNames.AxleWheels_Axles_Axle_TwinTyres))).Value; } } - public AxleType AxleType + public virtual AxleType AxleType { get { return _axleType ?? (_axleType = GetString(XMLNames.AxleWheels_Axles_Axle_AxleType).ParseEnum<AxleType>()).Value; } } - public ITyreDeclarationInputData Tyre + public virtual ITyreDeclarationInputData Tyre { get { return _tyre ?? (_tyre = Reader.Tyre); } } @@ -48,7 +48,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IXMLAxleDeclarationInputData - public IXMLComponentReader Reader { protected get; set; } + public virtual IXMLComponentReader Reader { protected get; set; } #endregion diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs index e9b9dfca67ede900979acd1614ccdda284ec6209..cf5f6847678efec2cb4ee2db4c41979c92fc5f0a 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs @@ -22,12 +22,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IAxleGearInputData - public double Ratio + public virtual double Ratio { get { return GetDouble(XMLNames.Axlegear_Ratio); } } - public TableData LossMap + public virtual TableData LossMap { get { return ReadTableData( @@ -36,12 +36,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public double Efficiency + public virtual double Efficiency { get { throw new VectoException("Efficiency not supported in Declaration Mode!"); } } - public AxleLineType LineType + public virtual AxleLineType LineType { get { var value = GetString(XMLNames.Axlegear_LineType); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs index a460257e7303af0a80c5356e4fc2acd7f9ec5870..3109365eb5cd79a46e3ff4fb5091eb26f92c5b8d 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs @@ -21,7 +21,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { #region Implementation of IAxlesDeclarationInputData - public IList<IAxleDeclarationInputData> AxlesDeclaration + public virtual IList<IAxleDeclarationInputData> AxlesDeclaration { get { if (_axles != null) { @@ -51,13 +51,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { #region Implementation of IXMLResource - public DataSource DataSource { get; } + public virtual DataSource DataSource { get; } #endregion #region Implementation of IXMLAxlesDeclarationInputData - public IXMLComponentReader Reader { protected get; set; } + public virtual IXMLComponentReader Reader { protected get; set; } #endregion } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs index 1c7f41f7bc7ba325767b38ecb383765af1faf8fe..8722547828422f6f4c946ec6caf0c4f71690cd13 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs @@ -32,32 +32,32 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IVehicleComponentsDeclaration - public IAirdragDeclarationInputData AirdragInputData + public virtual IAirdragDeclarationInputData AirdragInputData { get { return _airdragInputData ?? (_airdragInputData = ComponentReader.AirdragInputData); } } - public IGearboxDeclarationInputData GearboxInputData + public virtual IGearboxDeclarationInputData GearboxInputData { get { return _gearboxInputData ?? (_gearboxInputData = ComponentReader.GearboxInputData); } } - public ITorqueConverterDeclarationInputData TorqueConverterInputData + public virtual ITorqueConverterDeclarationInputData TorqueConverterInputData { get { return GearboxInputData.TorqueConverter; } } - public IAxleGearInputData AxleGearInputData + public virtual IAxleGearInputData AxleGearInputData { get { return _axleGearInputData ?? (_axleGearInputData = ComponentReader.AxleGearInputData); } } - public IAngledriveInputData AngledriveInputData + public virtual IAngledriveInputData AngledriveInputData { get { return _angledriveInputData ?? (_angledriveInputData = ComponentReader.AngledriveInputData); } } - public IEngineDeclarationInputData EngineInputData + public virtual IEngineDeclarationInputData EngineInputData { get { return _engineInputData ?? (_engineInputData = ComponentReader.EngineInputData); } } @@ -67,17 +67,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return _auxInputData ?? (_auxInputData = ComponentReader.AuxiliaryData); } } - public IRetarderInputData RetarderInputData + public virtual IRetarderInputData RetarderInputData { get { return _retarderInputData ?? (_retarderInputData = ComponentReader.RetarderInputData); } } - public IPTOTransmissionInputData PTOTransmissionInputData + public virtual IPTOTransmissionInputData PTOTransmissionInputData { get { return _vehicle.PTOTransmissionInputData; } } - public IAxlesDeclarationInputData AxleWheels + public virtual IAxlesDeclarationInputData AxleWheels { get { return _axleWheels ?? (_axleWheels = ComponentReader.AxlesDeclarationInputData); } } @@ -86,7 +86,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IXMLVehicleComponentsDeclaration - public IXMLComponentReader ComponentReader { protected get; set; } + public virtual IXMLComponentReader ComponentReader { protected get; set; } #endregion diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs index 0f4d66e78a3f319cc224b51546ab4e021ce77aef..a6e2083442fd0e83549201e10888aaed8e07fde7 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs @@ -22,17 +22,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IEngineDeclarationInputData - public CubicMeter Displacement + public virtual CubicMeter Displacement { get { return GetDouble(XMLNames.Engine_Displacement).SI(Unit.SI.Cubic.Centi.Meter).Cast<CubicMeter>(); } } - public PerSecond IdleSpeed + public virtual PerSecond IdleSpeed { get { return GetDouble(XMLNames.Engine_IdlingSpeed).RPMtoRad(); } } - public FuelType FuelType + public virtual FuelType FuelType { get { var value = GetString(XMLNames.Engine_FuelType); @@ -47,56 +47,56 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public TableData FuelConsumptionMap + public virtual TableData FuelConsumptionMap { get { return ReadTableData(XMLNames.Engine_FuelConsumptionMap, XMLNames.Engine_FuelConsumptionMap_Entry, AttributeMappings.FuelConsumptionMapMapping); } } - public TableData FullLoadCurve + public virtual TableData FullLoadCurve { get { return ReadTableData(XMLNames.Engine_FullLoadAndDragCurve, XMLNames.Engine_FullLoadCurve_Entry, AttributeMappings.EngineFullLoadCurveMapping); } } - public Watt RatedPowerDeclared + public virtual Watt RatedPowerDeclared { get { return GetDouble(XMLNames.Engine_RatedPower).SI<Watt>(); } } - public PerSecond RatedSpeedDeclared + public virtual PerSecond RatedSpeedDeclared { get { return GetDouble(XMLNames.Engine_RatedSpeed).RPMtoRad(); } } - public NewtonMeter MaxTorqueDeclared + public virtual NewtonMeter MaxTorqueDeclared { get { return GetDouble(XMLNames.Engine_MaxTorque).SI<NewtonMeter>(); } } - public double WHTCMotorway + public virtual double WHTCMotorway { get { return GetDouble(XMLNames.Engine_WHTCMotorway); } } - public double WHTCRural + public virtual double WHTCRural { get { return GetDouble(XMLNames.Engine_WHTCRural); } } - public double WHTCUrban + public virtual double WHTCUrban { get { return GetDouble(XMLNames.Engine_WHTCUrban); } } - public double ColdHotBalancingFactor + public virtual double ColdHotBalancingFactor { get { return GetDouble(XMLNames.Engine_ColdHotBalancingFactor); } } - public double CorrectionFactorRegPer + public virtual double CorrectionFactorRegPer { get { return GetDouble(XMLNames.Engine_CorrectionFactor_RegPer); } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs index 02bb69008f715e78b4f9671aa2ad3c737929c8f4..490d7ad3cbd16cccf8d2c5754a08b6ff00fcfc65 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs @@ -16,7 +16,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V10; protected ITorqueConverterDeclarationInputData _torqueConverter; - private IList<ITransmissionInputData> _gears; + protected IList<ITransmissionInputData> _gears; public XMLDeclarationGearboxDataProviderV10( IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : @@ -38,33 +38,31 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IGearboxDeclarationInputData - public GearboxType Type + public virtual GearboxType Type { get { var value = GetString(XMLNames.Gearbox_TransmissionType); switch (value) { case "MT": - case "SMT": - return GearboxType.MT; - case "AMT": - return GearboxType.AMT; + case "SMT": return GearboxType.MT; + case "AMT": return GearboxType.AMT; case "APT-S": - case "AT - Serial": - return GearboxType.ATSerial; + case "AT - Serial": return GearboxType.ATSerial; case "APT-P": - case "AT - PowerSplit": - return GearboxType.ATPowerSplit; + case "AT - PowerSplit": return GearboxType.ATPowerSplit; } + throw new ArgumentOutOfRangeException("GearboxType", value); } } - public IList<ITransmissionInputData> Gears + public virtual IList<ITransmissionInputData> Gears { get { if (_gears != null) { return _gears; } + _gears = new List<ITransmissionInputData>(); var gearNodes = GetNodes(new[] { XMLNames.Gearbox_Gears, XMLNames.Gearbox_Gears_Gear }); @@ -78,9 +76,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public ITorqueConverterDeclarationInputData TorqueConverter { get { - return _torqueConverter ?? (_torqueConverter = Reader.TorqueConverterInputData); - } } + public virtual ITorqueConverterDeclarationInputData TorqueConverter + { + get { return _torqueConverter ?? (_torqueConverter = Reader.TorqueConverterInputData); } + } #endregion diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs index e4b4cb65b419294a1ee9f480231577cca109171d..635e8770a78e7d47b4d908ed5195d30946d5306c 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs @@ -49,38 +49,47 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration { public const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V10; - internal readonly XmlDocument Document; + protected readonly XmlDocument Document; protected IDeclarationJobInputData JobData; + public XMLDeclarationInputDataProviderV10(XmlDocument xmlDoc, string fileName) : base( + xmlDoc.DocumentElement, fileName) + { + Document = xmlDoc; + SourceType = DataSourceType.XMLFile; + } + #region Overrides of AbstractXMLResource - protected override string SchemaNamespace { get { return NAMESPACE_URI; } } + protected override string SchemaNamespace + { + get { return NAMESPACE_URI; } + } + protected override DataSourceType SourceType { get; } #endregion #region Implementation of IXMLDeclarationInputData - public IXMLDeclarationInputDataReader Reader { protected get; set; } + public virtual IXMLDeclarationInputDataReader Reader { protected get; set; } #endregion - public XMLDeclarationInputDataProviderV10(XmlDocument xmlDoc, string fileName) : base(xmlDoc.DocumentElement, fileName) - { - Document = xmlDoc; - SourceType = DataSourceType.XMLFile; - } - - public IDeclarationJobInputData JobInputData + + public virtual IDeclarationJobInputData JobInputData { get { return JobData ?? (JobData = Reader.JobData); } } - public XElement XMLHash { get; private set; } - + public virtual XElement XMLHash { get; private set; } + } - + public class XMLDeclarationInputDataProviderV20 : XMLDeclarationInputDataProviderV10 + { + public new const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V20; + public XMLDeclarationInputDataProviderV20(XmlDocument xmlDoc, string fileName) : base(xmlDoc, fileName) { } } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs index 243b6597a2a3cf163dc102b9d3951a34e396598e..c5c3d0dfdca6fe494a46a3312a1cc5e615ac368c 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs @@ -8,7 +8,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public class XMLDeclarationJobInputDataProviderV10 : AbstractXMLResource, IXMLDeclarationJobInputData { - private IVehicleDeclarationInputData _vehicle; + protected IVehicleDeclarationInputData _vehicle; public const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V10; @@ -34,24 +34,24 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IDeclarationJobInputData - public bool SavedInDeclarationMode + public virtual bool SavedInDeclarationMode { get { return true; } } - public IVehicleDeclarationInputData Vehicle + public virtual IVehicleDeclarationInputData Vehicle { get { return _vehicle ?? (_vehicle = Reader.CreateVehicle); } } - public string JobName { get { return Vehicle.Identifier; } } + public virtual string JobName { get { return Vehicle.Identifier; } } #endregion #region Implementation of IXMLDeclarationJobInputData - public IXMLJobDataReader Reader { protected get; set; } - public IXMLDeclarationInputData InputData { get; } + public virtual IXMLJobDataReader Reader { protected get; set; } + public virtual IXMLDeclarationInputData InputData { get; } #endregion } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationRetarderDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationRetarderDataProvider.cs index fb091d2f34022b8e1ff2cadfc59e1d91541847be..630df24a9bae6e04452421cd95f44018f291cba5 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationRetarderDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationRetarderDataProvider.cs @@ -23,17 +23,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of IRetarderInputData - public RetarderType Type + public virtual RetarderType Type { get { return Vehicle.RetarderType; } } - public double Ratio + public virtual double Ratio { get { return Vehicle.RetarderRatio; } } - public TableData LossMap + public virtual TableData LossMap { get { return ReadTableData(XMLNames.Retarder_RetarderLossMap, XMLNames.Retarder_RetarderLossMap_Entry, AttributeMappings.RetarderLossmapMapping); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs index d3935aff1370a357d0ba589ea73bdcf9670ddfe4..eb2c79b0a083e6fe715f0479d9372fb5b51c75d3 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs @@ -21,7 +21,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of ITorqueconverterDeclarationInputData - public TableData TCData + public virtual TableData TCData { get { return ReadTableData( diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTyreDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTyreDataProvider.cs index e419cde543e7e3d799aa9dfd3e1069a68cb27128..bd5b7da7e72bd6bc736de1a63d775b990ff5857c 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTyreDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTyreDataProvider.cs @@ -11,9 +11,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V10; - private string _dimension; - private double? _rrc; - private Newton _fzIso; + protected string _dimension; + protected double? _rrc; + protected Newton _fzIso; public XMLDeclarationTyreDataProviderV10( IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : @@ -35,17 +35,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #region Implementation of ITyreDeclarationInputData - public string Dimension + public virtual string Dimension { get { return _dimension ?? (_dimension = GetString(XMLNames.AxleWheels_Axles_Axle_Dimension)); } } - public double RollResistanceCoefficient + public virtual double RollResistanceCoefficient { get { return _rrc ?? (_rrc = GetDouble(XMLNames.AxleWheels_Axles_Axle_RRCDeclared)).Value; } } - public Newton TyreTestLoad + public virtual Newton TyreTestLoad { get { return _fzIso ?? (_fzIso = GetDouble(XMLNames.AxleWheels_Axles_Axle_FzISO).SI<Newton>()); } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs index d7a4da5738ca25b64a68ed0a519a8d3b82227090..11336ae0c6990635fdfc7224243fcf163bcfd6c3 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs @@ -31,9 +31,7 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Xml; -using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; @@ -41,7 +39,6 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader; using TUGraz.VectoCore.InputData.Impl; -using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider @@ -50,16 +47,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V10; - public IXMLComponentReader ComponentReader { protected get; set; } - - public IXMLPTOReader PTOReader { protected get; set; } - - public IXMLADASReader ADASReader { protected get; set; } - - private IVehicleComponentsDeclaration _components; - private IPTOTransmissionInputData _ptoData; - - public XMLDeclarationVehicleDataProviderV10(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(xmlNode, sourceFile) { @@ -67,29 +54,40 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider SourceType = DataSourceType.XMLFile; } - public IXMLDeclarationJobInputData Job { get; } + + public virtual IXMLComponentReader ComponentReader { protected get; set; } + + public virtual IXMLPTOReader PTOReader { protected get; set; } + + public virtual IXMLADASReader ADASReader { protected get; set; } + + protected IVehicleComponentsDeclaration _components; + protected IPTOTransmissionInputData _ptoData; + + + public IXMLDeclarationJobInputData Job { get; } - public string Identifier + public virtual string Identifier { get { return GetAttribute(BaseNode, XMLNames.Component_ID_Attr); } } - public bool ExemptedVehicle + public virtual bool ExemptedVehicle { get { return ElementExists(XMLNames.Vehicle_HybridElectricHDV) && ElementExists(XMLNames.Vehicle_DualFuelVehicle); } } - public string VIN + public virtual string VIN { get { return GetString(XMLNames.Vehicle_VIN); } } - public LegislativeClass LegislativeClass + public virtual LegislativeClass LegislativeClass { get { return GetString(XMLNames.Vehicle_LegislativeClass).ParseEnum<LegislativeClass>(); } } - public VehicleCategory VehicleCategory + public virtual VehicleCategory VehicleCategory { get { var val = GetString(XMLNames.Vehicle_VehicleCategory); @@ -101,18 +99,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public Kilogram CurbMassChassis + public virtual Kilogram CurbMassChassis { get { return GetDouble(XMLNames.Vehicle_CurbMassChassis).SI<Kilogram>(); } } - public Kilogram GrossVehicleMassRating + public virtual Kilogram GrossVehicleMassRating { get { return GetDouble(XMLNames.Vehicle_GrossVehicleMass).SI<Kilogram>(); } } - public IList<ITorqueLimitInputData> TorqueLimits + public virtual IList<ITorqueLimitInputData> TorqueLimits { get { var retVal = new List<ITorqueLimitInputData>(); @@ -132,32 +130,32 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public AxleConfiguration AxleConfiguration + public virtual AxleConfiguration AxleConfiguration { get { return AxleConfigurationHelper.Parse(GetString(XMLNames.Vehicle_AxleConfiguration)); } } - public string ManufacturerAddress + public virtual string ManufacturerAddress { get { return GetString(XMLNames.Component_ManufacturerAddress); } } - public PerSecond EngineIdleSpeed + public virtual PerSecond EngineIdleSpeed { get { return GetDouble(XMLNames.Vehicle_IdlingSpeed).RPMtoRad(); } } - public double RetarderRatio + public virtual double RetarderRatio { get { return GetDouble(XMLNames.Vehicle_RetarderRatio); } } - public IPTOTransmissionInputData PTOTransmissionInputData + public virtual IPTOTransmissionInputData PTOTransmissionInputData { get { return _ptoData ?? (_ptoData = PTOReader.PTOInputData); } } - public RetarderType RetarderType + public virtual RetarderType RetarderType { get { var value = GetString(XMLNames.Vehicle_RetarderType); //.ParseEnum<RetarderType>(); @@ -173,22 +171,22 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public AngledriveType AngledriveType + public virtual AngledriveType AngledriveType { get { return GetString(XMLNames.Vehicle_AngledriveType).ParseEnum<AngledriveType>(); } } - public bool VocationalVehicle + public virtual bool VocationalVehicle { get { return XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_VocationalVehicle)); } } - public bool SleeperCab + public virtual bool SleeperCab { get { return XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_SleeperCab)); } } - public TankSystem? TankSystem + public virtual TankSystem? TankSystem { get { return ElementExists(XMLNames.Vehicle_NgTankSystem) @@ -197,27 +195,27 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public IAdvancedDriverAssistantSystemDeclarationInputData ADAS + public virtual IAdvancedDriverAssistantSystemDeclarationInputData ADAS { get { return ADASReader.ADASInputData; } } - public bool ZeroEmissionVehicle + public virtual bool ZeroEmissionVehicle { get { return XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_ZeroEmissionVehicle)); } } - public bool HybridElectricHDV + public virtual bool HybridElectricHDV { get { return XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_HybridElectricHDV)); } } - public bool DualFuelVehicle + public virtual bool DualFuelVehicle { get { return XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_DualFuelVehicle)); } } - public Watt MaxNetPower1 + public virtual Watt MaxNetPower1 { get { return ElementExists(XMLNames.Vehicle_MaxNetPower1) @@ -226,7 +224,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public Watt MaxNetPower2 + public virtual Watt MaxNetPower2 { get { return ElementExists(XMLNames.Vehicle_MaxNetPower2) @@ -235,7 +233,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider } } - public IVehicleComponentsDeclaration Components + public virtual IVehicleComponentsDeclaration Components { get { return _components ?? (_components = ComponentReader.ComponentInputData); } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs index aa5ef90b44d70c1943575e79593186d8b8222703..44371b7488381b4a8c6ab2c05060efd9ccce2c68 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs @@ -18,7 +18,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider SourceFile = sourceFile; } - public string SourceFile { get; } + public virtual string SourceFile { get; } #region Implementation of ITransmissionInputData @@ -69,6 +69,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider #endregion } + // --------------------------------------------------------------------------------------- + public class XMLGearDataV10 : XMLAbstractGearData, IXMLGearData { public const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V10; diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLADASReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLADASReader.cs index 9014fc86664da38d84b00aea499c0d35236aafd5..221c95dd82f6f5241bf571650e08f0178c550b78 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLADASReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLADASReader.cs @@ -27,17 +27,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl #region Implementation of IXMLADASReader - public IAdvancedDriverAssistantSystemDeclarationInputData ADASInputData + public virtual IAdvancedDriverAssistantSystemDeclarationInputData ADASInputData { get { return _adas ?? (_adas = CreateComponent(XMLNames.Vehicle_ADAS, ADASCreator)); } } #endregion - protected IAdvancedDriverAssistantSystemDeclarationInputData ADASCreator( + protected virtual IAdvancedDriverAssistantSystemDeclarationInputData ADASCreator( string version, XmlNode componentNode, string sourceFile) { return Factory.CreateADASData(version, Vehicle, componentNode, sourceFile); } } + + // --------------------------------------------------------------------------------------- + + public class XMLADASReaderV20 : XMLADASReaderV10 + { + public new const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V20; + + public XMLADASReaderV20(IXMLDeclarationVehicleData vehicle, XmlNode vehicleNode, bool verifyXML) : base(vehicle, vehicleNode, verifyXML) { } + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs index 8a2e710ed0493158f218682b12646d82d283819e..d1433b4f1719c3a757d82012958f63cd996fb426 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs @@ -18,16 +18,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl protected IXMLDeclarationVehicleData Vehicle; - private IVehicleComponentsDeclaration _components; - private IGearboxDeclarationInputData _gearboxInputData; - private IAxleGearInputData _axlegearInputData; - private IAngledriveInputData _angledriveInputData; - private IEngineDeclarationInputData _engineInputData; - private IRetarderInputData _retarderInputData; - private IAxlesDeclarationInputData _axlesInputData; - private IAirdragDeclarationInputData _airdragInputData; - private IAuxiliariesDeclarationInputData _auxiliaryInputData; - private ITorqueConverterDeclarationInputData _torqueConverterInputData; + protected IVehicleComponentsDeclaration _components; + protected IGearboxDeclarationInputData _gearboxInputData; + protected IAxleGearInputData _axlegearInputData; + protected IAngledriveInputData _angledriveInputData; + protected IEngineDeclarationInputData _engineInputData; + protected IRetarderInputData _retarderInputData; + protected IAxlesDeclarationInputData _axlesInputData; + protected IAirdragDeclarationInputData _airdragInputData; + protected IAuxiliariesDeclarationInputData _auxiliaryInputData; + protected ITorqueConverterDeclarationInputData _torqueConverterInputData; [Inject] @@ -45,26 +45,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl #region Implementation of IXMLComponentReader - public IVehicleComponentsDeclaration ComponentInputData + public virtual IVehicleComponentsDeclaration ComponentInputData { get { return _components ?? (_components = CreateComponent(XMLNames.Vehicle_Components, ComponentsCreator)); } } - public IAirdragDeclarationInputData AirdragInputData + public virtual IAirdragDeclarationInputData AirdragInputData { get { return _airdragInputData ?? (_airdragInputData = CreateComponent(XMLNames.Component_AirDrag, AirdragCreator, true)); } } - - public IGearboxDeclarationInputData GearboxInputData + + public virtual IGearboxDeclarationInputData GearboxInputData { get { return _gearboxInputData ?? (_gearboxInputData = CreateComponent(XMLNames.Component_Gearbox, GearboxCreator)); } } - public ITorqueConverterDeclarationInputData TorqueConverterInputData + public virtual ITorqueConverterDeclarationInputData TorqueConverterInputData { get { return _torqueConverterInputData ?? (_torqueConverterInputData = CreateComponent( @@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } } - public ITransmissionInputData CreateGear(XmlNode gearNode) + public virtual ITransmissionInputData CreateGear(XmlNode gearNode) { var version = XMLHelper.GetSchemaVersion(gearNode); try { @@ -84,7 +84,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } } - public IAuxiliaryDeclarationInputData CreateAuxiliary(XmlNode auxNode) + public virtual IAuxiliaryDeclarationInputData CreateAuxiliary(XmlNode auxNode) { var version = XMLHelper.GetSchemaVersion(auxNode); try { @@ -94,7 +94,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } } - public IAxleDeclarationInputData CreateAxle(XmlNode axleNode) + public virtual IAxleDeclarationInputData CreateAxle(XmlNode axleNode) { var version = XMLHelper.GetSchemaVersion(axleNode); try { @@ -109,7 +109,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } - public IAxleGearInputData AxleGearInputData + public virtual IAxleGearInputData AxleGearInputData { get { return _axlegearInputData ?? (_axlegearInputData = CreateComponent(XMLNames.Component_Axlegear, AxlegearCreator)); @@ -117,7 +117,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } - public IAngledriveInputData AngledriveInputData + public virtual IAngledriveInputData AngledriveInputData { get { return _angledriveInputData ?? @@ -125,13 +125,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } } - public IEngineDeclarationInputData EngineInputData + public virtual IEngineDeclarationInputData EngineInputData { get { return _engineInputData ?? (_engineInputData = CreateComponent(XMLNames.Component_Engine, EngineCreator)); } } - public IAuxiliariesDeclarationInputData AuxiliaryData + public virtual IAuxiliariesDeclarationInputData AuxiliaryData { get { return _auxiliaryInputData ?? @@ -140,7 +140,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } - public IRetarderInputData RetarderInputData + public virtual IRetarderInputData RetarderInputData { get { return _retarderInputData ?? @@ -149,36 +149,39 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } - public IAxlesDeclarationInputData AxlesDeclarationInputData + public virtual IAxlesDeclarationInputData AxlesDeclarationInputData { get { return _axlesInputData ?? (_axlesInputData = CreateComponent(XMLNames.Component_AxleWheels, AxleWheelsCreator)); } } - public ITyreDeclarationInputData Tyre + public virtual ITyreDeclarationInputData Tyre { get { return CreateComponent(XMLNames.AxleWheels_Axles_Axle_Tyre, TyreCreator); } } #endregion - protected IAirdragDeclarationInputData AirdragCreator(string version, XmlNode componentNode, string sourceFile) + protected virtual IAirdragDeclarationInputData AirdragCreator( + string version, XmlNode componentNode, string sourceFile) { if (version == null) { return new XMLDeclarationAirdragDataProviderV10(Vehicle, null, sourceFile); } + return Factory.CreateAirdragData(version, Vehicle, componentNode, sourceFile); } - protected IGearboxDeclarationInputData GearboxCreator(string version, XmlNode componentNode, string sourceFile) + protected virtual IGearboxDeclarationInputData GearboxCreator( + string version, XmlNode componentNode, string sourceFile) { var gbx = Factory.CreateGearboxData(version, Vehicle, componentNode, sourceFile); gbx.Reader = Factory.CreateComponentReader(version, Vehicle, componentNode, VerifyXML); return gbx; } - protected ITorqueConverterDeclarationInputData TorqueConverterCreator( + protected virtual ITorqueConverterDeclarationInputData TorqueConverterCreator( string version, XmlNode componentNode, string sourceFile) { if (version == null) { @@ -188,12 +191,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl return Factory.CreateTorqueconverterData(version, Vehicle, componentNode, sourceFile); } - protected IAxleGearInputData AxlegearCreator(string version, XmlNode componentNode, string sourceFile) + protected virtual IAxleGearInputData AxlegearCreator(string version, XmlNode componentNode, string sourceFile) { return Factory.CreateAxlegearData(version, Vehicle, componentNode, sourceFile); } - protected IAngledriveInputData AngledriveCreator(string version, XmlNode componentNode, string sourceFile) + protected virtual IAngledriveInputData AngledriveCreator(string version, XmlNode componentNode, string sourceFile) { if (version == null) { return new XMLDeclarationAngledriveDataProviderV10(Vehicle, componentNode, sourceFile); @@ -202,12 +205,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl return Factory.CreateAngledriveData(version, Vehicle, componentNode, sourceFile); } - protected IEngineDeclarationInputData EngineCreator(string version, XmlNode componentNode, string sourceFile) + protected virtual IEngineDeclarationInputData EngineCreator(string version, XmlNode componentNode, string sourceFile) { return Factory.CreateEngineData(version, Vehicle, componentNode, sourceFile); } - protected IRetarderInputData RetarderCreator(string version, XmlNode componentNode, string sourceFile) + protected virtual IRetarderInputData RetarderCreator(string version, XmlNode componentNode, string sourceFile) { if (version == null) { return new XMLDeclarationRetarderDataProviderV10(Vehicle, componentNode, sourceFile); @@ -216,7 +219,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl return Factory.CreateRetarderData(version, Vehicle, componentNode, sourceFile); } - protected IAxlesDeclarationInputData AxleWheelsCreator(string version, XmlNode componentNode, string sourceFile) + protected virtual IAxlesDeclarationInputData AxleWheelsCreator( + string version, XmlNode componentNode, string sourceFile) { var axles = Factory.CreateAxleWheels(version, Vehicle, componentNode, sourceFile); axles.Reader = Factory.CreateComponentReader(version, Vehicle, componentNode, VerifyXML); @@ -224,13 +228,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } - protected ITyreDeclarationInputData TyreCreator(string version, XmlNode componentNode, string sourceFile) + protected virtual ITyreDeclarationInputData TyreCreator(string version, XmlNode componentNode, string sourceFile) { return Factory.CreateTyre(version, Vehicle, componentNode, sourceFile); } - protected IAuxiliariesDeclarationInputData AuxiliaryCreator(string version, XmlNode componentNode, string sourceFile) + protected virtual IAuxiliariesDeclarationInputData AuxiliaryCreator( + string version, XmlNode componentNode, string sourceFile) { var aux = Factory.CreateAuxiliariesData(version, Vehicle, componentNode, sourceFile); aux.Reader = Factory.CreateComponentReader(version, Vehicle, componentNode, VerifyXML); @@ -238,11 +243,22 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } - protected IVehicleComponentsDeclaration ComponentsCreator(string version, XmlNode componentNode, string sourcefile) + protected virtual IVehicleComponentsDeclaration ComponentsCreator( + string version, XmlNode componentNode, string sourcefile) { var components = Factory.CreateComponentData(version, Vehicle, componentNode, sourcefile); components.ComponentReader = Factory.CreateComponentReader(version, Vehicle, componentNode, VerifyXML); return components; } } + + // --------------------------------------------------------------------------------------- + + public class XMLComponentReaderV20 : XMLComponentReaderV10 + { + public new const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V20; + + public XMLComponentReaderV20(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode, bool verifyXML) : base( + vehicle, componentsNode, verifyXML) { } + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationInputReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationInputReader.cs index a39bd6c35f21fc36d5c33e56939c0e97499bfb4c..75ab7c08f8dcd3a0f846f4b5075730da06423619 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationInputReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationInputReader.cs @@ -11,9 +11,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl { public class XMLDeclarationInputReaderV10 : AbstractComponentReader, IXMLDeclarationInputDataReader { - private XmlNode JobNode; + protected XmlNode JobNode; protected IXMLDeclarationInputData InputData; - private IDeclarationJobInputData _jobData; + protected IDeclarationJobInputData _jobData; public const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V10; @@ -29,19 +29,29 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl #region Implementation of IXMLDeclarationInputReader - public IDeclarationJobInputData JobData + public virtual IDeclarationJobInputData JobData { get { return _jobData ?? (_jobData = CreateComponent(XMLNames.VectoInputDeclaration, JobCreator)); } } #endregion - private IDeclarationJobInputData JobCreator(string version, XmlNode node, string arg3) + protected virtual IDeclarationJobInputData JobCreator(string version, XmlNode node, string arg3) { var job = Factory.CreateJobData(version, BaseNode, InputData, (InputData as IXMLResource).DataSource.SourceFile); - var jobNode = - job.Reader = Factory.CreateJobReader(version, job, JobNode, VerifyXML); + var jobNode = + job.Reader = Factory.CreateJobReader(version, job, JobNode, VerifyXML); return job; } } + + // --------------------------------------------------------------------------------------- + + public class XMLDeclarationInputReaderV20 : XMLDeclarationInputReaderV10 + { + public new const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V20; + + public XMLDeclarationInputReaderV20(IXMLDeclarationInputData inputData, XmlNode baseNode, bool verifyXML) : base(inputData, baseNode, verifyXML) { } + } + } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs index 15cf87b1cc344c8c9bac29f0f3f413be0146b7c9..959a41b7a3248b3ac336e7fdcf085edcb169e0ef 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs @@ -13,13 +13,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl public const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V10; protected IXMLDeclarationJobInputData JobData; - private XmlNode JobNode; - private IVehicleDeclarationInputData _vehicle; + protected XmlNode JobNode; + protected IVehicleDeclarationInputData _vehicle; [Inject] public IDeclarationInjectFactory Factory { protected get; set; } - public XMLJobDataReaderV10(IXMLDeclarationJobInputData jobData, XmlNode jobNode, bool verifyXML) : base (jobData, jobNode, verifyXML) + public XMLJobDataReaderV10(IXMLDeclarationJobInputData jobData, XmlNode jobNode, bool verifyXML) : base( + jobData, jobNode, verifyXML) { JobNode = jobNode; JobData = jobData; @@ -27,15 +28,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl #region Implementation of IXMLJobDataReader - public IVehicleDeclarationInputData CreateVehicle + public virtual IVehicleDeclarationInputData CreateVehicle { get { return _vehicle ?? (_vehicle = CreateComponent(XMLNames.Component_Vehicle, VehicleCreator)); } } - #endregion - private IVehicleDeclarationInputData VehicleCreator(string version, XmlNode vehicleNode, string sourceFile) + protected virtual IVehicleDeclarationInputData VehicleCreator(string version, XmlNode vehicleNode, string sourceFile) { var vehicle = Factory.CreateVehicleData(version, JobData, vehicleNode, sourceFile); vehicle.ComponentReader = Factory.CreateComponentReader(version, vehicle, vehicleNode, VerifyXML); @@ -43,6 +43,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl vehicle.PTOReader = Factory.CreatePTOReader(version, vehicle, vehicleNode, VerifyXML); return vehicle; } + } + + // --------------------------------------------------------------------------------------- + + public class XMLJobDataReaderV20 : XMLJobDataReaderV10 + { + public new const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V20; + public XMLJobDataReaderV20(IXMLDeclarationJobInputData jobData, XmlNode jobNode, bool verifyXML) : base( + jobData, jobNode, verifyXML) { } } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLPTOReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLPTOReader.cs index 62a17a9da3a443539272208b0d8feb4ff416465f..17b0769c6a53f7ee882ac0f56c9cbce67de1ec78 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLPTOReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLPTOReader.cs @@ -16,7 +16,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl public IDeclarationInjectFactory Factory { protected get; set; } protected IXMLDeclarationVehicleData Vehicle; - private IPTOTransmissionInputData _ptoInputData; + protected IPTOTransmissionInputData _ptoInputData; public XMLPTOReaderV10(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, bool verifyXML) : base( @@ -27,16 +27,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl #region Implementation of IXMLPTOReader - public IPTOTransmissionInputData PTOInputData + public virtual IPTOTransmissionInputData PTOInputData { get { return _ptoInputData ?? (_ptoInputData = CreateComponent(XMLNames.Vehicle_PTO, PTOCreator)); } } #endregion - protected IPTOTransmissionInputData PTOCreator(string version, XmlNode componentNode, string sourceFile) + protected virtual IPTOTransmissionInputData PTOCreator(string version, XmlNode componentNode, string sourceFile) { return Factory.CreatePTOData(version, Vehicle, componentNode, sourceFile); } } + + // --------------------------------------------------------------------------------------- + + public class XMLPTOReaderV20 : XMLPTOReaderV10 + { + public new const string NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V20; + + public XMLPTOReaderV20(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, bool verifyXML) : base( + vehicle, componentNode, verifyXML) { } + } }