Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 1a3d5066 authored by Markus QUARITSCH's avatar Markus QUARITSCH
Browse files

reading multistage - binding first class

parent f95ff158
No related branches found
No related tags found
No related merge requests found
......@@ -102,6 +102,7 @@ namespace VECTO3GUI.ViewModel.Adapter.Declaration
public PerSecond EngineIdleSpeed { get { return ViewModel.IdlingSpeed; } }
public bool VocationalVehicle { get; }
public bool SleeperCab { get; }
public bool AirdragModifiedMultistage { get; }
public TankSystem? TankSystem { get; }
public IAdvancedDriverAssistantSystemDeclarationInputData ADAS { get; }
public bool ZeroEmissionVehicle { get; }
......@@ -121,6 +122,7 @@ namespace VECTO3GUI.ViewModel.Adapter.Declaration
public Meter Width { get; }
public Meter EntranceHeight { get; }
public ConsumerTechnology DoorDriveTechnology { get; }
public StateOfCompletion StateOfCompletion { get; }
public IAirdragDeclarationInputData AirdragInputData { get {
return GetComponentViewModel<IAirdragViewModel>(Component.Airdrag)?.ModelData;
......
......@@ -112,6 +112,37 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
}
public class XMLDeclarationInputDataProviderMultistageV01 : AbstractXMLResource, IXMLDeclarationInputData
{
public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
public const string XSD_TYPE = "VectoOuputMultistageType";
public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
protected IDeclarationJobInputData JobData;
public XMLDeclarationInputDataProviderMultistageV01(XmlDocument xmlDoc, string fileName) : base(xmlDoc.DocumentElement, fileName)
{
}
protected override XNamespace SchemaNamespace
{
get { return NAMESPACE_URI; }
}
protected override DataSourceType SourceType { get; }
public IDeclarationJobInputData JobInputData
{
get { return JobData ?? (JobData = Reader.JobData); }
}
public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleData { get; }
public XElement XMLHash { get; }
public IXMLDeclarationInputDataReader Reader { protected get; set; }
}
// ---------------------------------------------------------------------------------------
......
using Ninject.Modules;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
{
public class XMLDeclarationInputDataMultistageV01InjectModule : NinjectModule
{
public override void Load()
{
Bind<IXMLDeclarationInputData>().To<XMLDeclarationInputDataProviderMultistageV01>()
.Named(XMLDeclarationInputDataProviderMultistageV01.QUALIFIED_XSD_TYPE);
}
}
}
\ No newline at end of file
......@@ -22,7 +22,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
new XMLDeclarationInputDataV23InjectModule(),
new XMLDeclarationInputDataV26InjectModule(),
new XMLDeclarationPrimaryVehicleBusV01InjectModule(),
new XMLDeclarationInputDataV28InjectModule()
new XMLDeclarationInputDataV28InjectModule(),
new XMLDeclarationInputDataMultistageV01InjectModule(),
});
#endregion
......
......@@ -114,6 +114,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML
case XmlDocumentType.DeclarationJobData: return ReadDeclarationJob(xmlDoc, source);
case XmlDocumentType.EngineeringJobData: return ReadEngineeringJob(xmlDoc, source);
case XmlDocumentType.PrimaryVehicleBusOutputData: return ReadPrimaryVehicleDeclarationJob(xmlDoc, source);
case XmlDocumentType.MultistageOutputData: return ReadMultistageDeclarationJob(xmlDoc, source);
case XmlDocumentType.EngineeringComponentData:
case XmlDocumentType.DeclarationComponentData:
case XmlDocumentType.ManufacturerReport:
......@@ -123,6 +124,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML
}
}
private IInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source)
{
var versionNumber = XMLHelper.GetXsdType(xmlDoc.DocumentElement?.SchemaInfo.SchemaType);
try {
var input = DeclarationFactory.CreateInputProvider(versionNumber, xmlDoc, source);
input.Reader = DeclarationFactory.CreateInputReader(versionNumber, input, xmlDoc.DocumentElement);
return input;
} catch (Exception e) {
throw new VectoException("Failed to read Declaration job version {0}", e, versionNumber);
}
}
private IEngineeringInputDataProvider ReadEngineeringJob(XmlDocument xmlDoc, string source)
{
var versionNumber = XMLHelper.GetXsdType(xmlDoc.DocumentElement?.SchemaInfo.SchemaType);
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Franz Kober (Technische Universität Graz) -->
<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.4" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:common="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd">
<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" schemaLocation="VectoOutputDefinitions.xsd"/>
<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.xsd"/>
......@@ -9,16 +9,10 @@
<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3_DEV.xsd"/>
<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" schemaLocation="VectoDeclarationDefinitions.2.6_Buses.xsd"/>
<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" schemaLocation="VectoDeclarationDefinitions.2.8_Stage.xsd"/>
<xs:element name="VectoOuputMultistage">
<xs:element name="VectoOuputMultistage" type="vif:VectoOuputMultistageType">
<xs:annotation>
<xs:documentation>Comment describing your root element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="PrimaryVehicle" type="vif:PrimaryVehicleType"/>
<xs:element name="ManufacturingStage" type="vif:ManufacturingStageType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="AbstractAngledriveDataPIFType" abstract="true"/>
<xs:complexType name="AbstractAxlegearDataPIFType" abstract="true"/>
......@@ -572,4 +566,10 @@
<xs:enumeration value="Coach"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="VectoOuputMultistageType">
<xs:sequence>
<xs:element name="PrimaryVehicle" type="vif:PrimaryVehicleType"/>
<xs:element name="ManufacturingStage" type="vif:ManufacturingStageType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
......@@ -54,6 +54,7 @@ namespace TUGraz.VectoCore.Utils
case "VectoInputEngineering": return XmlDocumentType.EngineeringJobData;
case "VectoComponentEngineering": return XmlDocumentType.EngineeringComponentData;
case "VectoOutputPrimaryVehicle": return XmlDocumentType.PrimaryVehicleBusOutputData;
case "VectoOuputMultistage": return XmlDocumentType.MultistageOutputData;
}
return null;
......
......@@ -189,6 +189,7 @@
<Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLTorqueConverterDeclarationInputData.cs" />
<Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLTyreDeclarationInputData.cs" />
<Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLVehicleComponentsDeclaration.cs" />
<Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataMultistageV01InjectModule.cs" />
<Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV20InjectModule.cs" />
<Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV21InjectModule.cs" />
<Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV22InjectModule.cs" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment