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

Skip to content
Snippets Groups Projects
Commit 9606a8de authored by Harald MARTINI's avatar Harald MARTINI
Browse files

Added Static Method to GetElements in Completed Bus GroupWriters,

Updated XMLMultistageBusReport and XMLPrimaryBusVehicleReport to use GroupWriters
parent 3d9cf026
No related branches found
No related tags found
No related merge requests found
Showing with 109 additions and 90 deletions
......@@ -248,6 +248,8 @@ namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter
CreateExemptedElements();
return;
}
throw new NotImplementedException("Old Implementation");
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_ManufacturerAddress,
_inputData.ManufacturerAddress));
......@@ -413,34 +415,28 @@ namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter
private void CreateExemptedElements()
{
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_ManufacturerAddress,
_inputData.ManufacturerAddress));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_VIN, _inputData.VIN));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Date, XMLExtension.ToXmlFormat(DateTime.Today)));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_LegislativeCategory, _inputData.LegislativeClass.ToXMLFormat()));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.CorrectedActualMass, _inputData.CurbMassChassis?.ToXMLFormat(0)));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_TPMLM,
_inputData.GrossVehicleMassRating?.ToXMLFormat(0)));
// ReSharper disable once CoVariantArrayConversion
_Xelement.Add(_groupWriterFactory
.GetVehicleDeclarationGroupWriter(GroupNames.Vehicle_CompletedBus_GeneralParametersSequenceGroup,
_defaultNamespace).GetGroupElements(_inputData));
_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model));
_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Vehicle_LegislativeCategory, _inputData.LegislativeClass.ToXMLFormat()));
_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.CorrectedActualMass, _inputData.CurbMassChassis?.ToXMLFormat(0)));
_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Vehicle_TPMLM,
_inputData.GrossVehicleMassRating?.ToXMLFormat(0)));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_RegisteredClass, _inputData.RegisteredClass.ToXMLFormat()));
_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Vehicle_RegisteredClass, _inputData.RegisteredClass.ToXMLFormat()));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengerSeatsLowerDeck, _inputData.NumberPassengerSeatsLowerDeck));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengersStandingLowerDeck, _inputData.NumberPassengersStandingUpperDeck));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengerSeatsUpperDeck, _inputData.NumberPassengerSeatsUpperDeck));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengersStandingUpperDeck, _inputData.NumberPassengersStandingUpperDeck));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_BodyworkCode, _inputData.VehicleCode.ToXMLFormat()));
_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_LowEntry, _inputData.LowEntry));
_Xelement.Add(_groupWriterFactory.GetVehicleDeclarationGroupWriter(GroupNames.Vehicle_CompletedBus_PassengerCountSequenceGroup, _defaultNamespace).GetGroupElements(_inputData));
_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Vehicle_BodyworkCode, _inputData.VehicleCode.ToXMLFormat()));
//_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_HeighIntegratedBody, _inputData.Height?.ConvertToMilliMeter()));
_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Bus_LowEntry, _inputData.LowEntry));
_Xelement.DescendantsAndSelf().Where(e => e.Value.IsNullOrEmpty()).Remove();
_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Bus_HeightIntegratedBody, _inputData.Height?.ConvertToMilliMeter()));
}
#endregion
......
......@@ -16,6 +16,7 @@ using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.CompletedBus;
using TUGraz.VectoCore.Utils;
using TUGraz.VectoHashing;
......@@ -26,8 +27,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
protected override XElement GetVehicleElement(string vehicleId)
{
return new XElement(tns + XMLNames.Tag_Vehicle,
new XAttribute("xmlns", v210),
new XAttribute(xsi + XMLNames.Attr_Type, "Vehicle_Exempted_CompletedBusType"),
new XAttribute("xmlns", v210),
new XAttribute(XMLNames.Component_ID_Attr, vehicleId),
new XElement(v210 + XMLNames.Component_Manufacturer, _vehicleInputData.Manufacturer),
new XElement(v210 + XMLNames.Component_ManufacturerAddress, _vehicleInputData.ManufacturerAddress),
......@@ -222,10 +223,20 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
new XElement(tns + XMLNames.Report_DataWrap,
new XAttribute(xsi + XMLNames.Attr_Type, "BusManufacturingStageDataType"),
new XAttribute(XMLNames.Component_ID_Attr, multistageId),
new XAttribute("xmlns", tns),
GetHashPreviousStageElement(),
GetVehicleElement(vehicleId),
GetApplicationInformation()));
//TODO:REMOVE
try {
var vehicleElement = GetVehicleElement(vehicleId);
Debug.WriteLine(vehicleElement.ToString());
#pragma warning disable 168
} catch (Exception e) {
#pragma warning restore 168
//
}
var sigXElement = GetSignatureElement(stage);
stage.LastNode.Parent.Add(sigXElement);
return stage;
......@@ -255,50 +266,26 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
protected virtual XElement GetVehicleElement(string vehicleId)
{
//CHeck airdrag entry
GetAirdragModifiedMultistageEntry();
return new XElement(tns + XMLNames.Tag_Vehicle,
new XAttribute("xmlns", v210),
new XAttribute(xsi + XMLNames.Attr_Type, "Vehicle_Conventional_CompletedBusDeclarationType"),
new XAttribute(XMLNames.Component_ID_Attr, vehicleId),
new XElement(v210 + XMLNames.Component_Manufacturer, _vehicleInputData.Manufacturer),
new XElement(v210 + XMLNames.Component_ManufacturerAddress, _vehicleInputData.ManufacturerAddress),
new XElement(v210 + XMLNames.Vehicle_VIN, _vehicleInputData.VIN),
new XElement(v210 + XMLNames.Component_Date,
XmlConvert.ToString(_vehicleInputData.Date, XmlDateTimeSerializationMode.Utc)),
_vehicleInputData.Model != null
? new XElement(v210 + XMLNames.Component_Model, _vehicleInputData.Model) : null,
_vehicleInputData.LegislativeClass != null
? new XElement(v210 + XMLNames.Vehicle_LegislativeCategory, _vehicleInputData.LegislativeClass.ToXMLFormat()) : null,
_vehicleInputData.CurbMassChassis != null
? new XElement(v210 + XMLNames.CorrectedActualMass, _vehicleInputData.CurbMassChassis.ToXMLFormat(0)) : null,
_vehicleInputData.GrossVehicleMassRating != null
? new XElement(v210 + XMLNames.TPMLM, _vehicleInputData.GrossVehicleMassRating.ToXMLFormat(0)) : null,
GetAirdragModifiedMultistageEntry(),
_vehicleInputData.TankSystem != null
? new XElement(v210 + XMLNames.Vehicle_NgTankSystem, _vehicleInputData.TankSystem.ToString()) : null,
_vehicleInputData.RegisteredClass != null
? new XElement(v210 + XMLNames.Vehicle_RegisteredClass, _vehicleInputData.RegisteredClass.ToXMLFormat()) : null,
_vehicleInputData.NumberPassengerSeatsLowerDeck != null
? new XElement(v210 + XMLNames.Bus_NumberPassengerSeatsLowerDeck, _vehicleInputData.NumberPassengerSeatsLowerDeck) : null,
_vehicleInputData.NumberPassengersStandingLowerDeck != null
? new XElement(v210 + XMLNames.Bus_NumberPassengersStandingLowerDeck, _vehicleInputData.NumberPassengersStandingLowerDeck) : null,
_vehicleInputData.NumberPassengerSeatsUpperDeck != null
? new XElement(v210 + XMLNames.Bus_NumberPassengerSeatsUpperDeck, _vehicleInputData.NumberPassengerSeatsUpperDeck) : null,
_vehicleInputData.NumberPassengersStandingUpperDeck != null
? new XElement(v210 + XMLNames.Bus_NumberPassengersStandingUpperDeck, _vehicleInputData.NumberPassengersStandingUpperDeck) : null,
new XAttribute("xmlns", v210),
CompletedBusGeneralParametersWriterV2_10_2.GetGroupElements(_vehicleInputData, v210),
CompletedBusParametersWriterV2_10_2.GetGroupElements(_vehicleInputData, v210),
_vehicleInputData.TankSystem != null
? new XElement(v210 + XMLNames.Vehicle_NgTankSystem, _vehicleInputData.TankSystem.ToString())
: null,
CompletedBusPassengerCountWriter_V2_10_2.GetGroupElements(_vehicleInputData, v210),
_vehicleInputData.VehicleCode != null
? new XElement(v210 + XMLNames.Vehicle_BodyworkCode, _vehicleInputData.VehicleCode.ToXMLFormat()) : null,
_vehicleInputData.LowEntry != null
? new XElement(v210 + XMLNames.Bus_LowEntry, _vehicleInputData.LowEntry) : null,
_vehicleInputData.Height != null
? new XElement(v210 + XMLNames.Bus_HeightIntegratedBody, _vehicleInputData.Height.ConvertToMilliMeter().ToXMLFormat(0)) : null,
_vehicleInputData.Length != null
? new XElement(v210 + XMLNames.Bus_VehicleLength, _vehicleInputData.Length.ConvertToMilliMeter().ToXMLFormat(0)) : null,
_vehicleInputData.Width != null
? new XElement(v210 + XMLNames.Bus_VehicleWidth, _vehicleInputData.Width.ConvertToMilliMeter().ToXMLFormat(0)) : null,
_vehicleInputData.EntranceHeight != null
? new XElement(v210 + XMLNames.Bus_EntranceHeight, _vehicleInputData.EntranceHeight.ConvertToMilliMeter().ToXMLFormat(0)) : null,
_vehicleInputData.DoorDriveTechnology != null
? new XElement(v210 + XMLNames.Bus_DoorDriveTechnology, _vehicleInputData.DoorDriveTechnology.ToXMLFormat()) : null,
? new XElement(v210 + XMLNames.Vehicle_BodyworkCode, _vehicleInputData.VehicleCode.ToXMLFormat())
: null,
_vehicleInputData.LowEntry != null
? new XElement(v210 + XMLNames.Bus_LowEntry, _vehicleInputData.LowEntry)
: null,
CompletedBusDimensionsWriter_V2_10_2.GetGroupElements(_vehicleInputData, v210),
new XElement(v210 + XMLNames.Bus_VehicleDeclarationType, _vehicleInputData.VehicleDeclarationType.GetLabel()),
GetADAS(_vehicleInputData.ADAS),
GetBusVehicleComponents(_vehicleInputData.Components)
......
......@@ -151,7 +151,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
GetTorqueLimits(modelData),
VehicleComponents(modelData, fuelModes)
);
InputDataIntegrity = new XElement(tns + XMLNames.Report_InputDataSignature,
modelData.InputDataHash == null ? XMLHelper.CreateDummySig(di) : new XElement(modelData.InputDataHash));
}
......
......@@ -8,6 +8,7 @@ using Castle.Components.DictionaryAdapter;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.CompletedBus
{
......@@ -15,16 +16,28 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Comple
{
public CompletedBusDimensionsWriter_V2_10_2(XNamespace writerNamespace) : base(writerNamespace) { }
public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
public static XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle, XNamespace writerNamespace)
{
if (vehicle.IsAnyNull(vehicle.Height, vehicle.Length, vehicle.Width, vehicle.EntranceHeight)) {
return new XElement[0];
}
return new XElement[] {
new XElement(_writerNamespace + XMLNames.Bus_HeightIntegratedBody,
new XElement(writerNamespace + XMLNames.Bus_HeightIntegratedBody,
vehicle.Height.ConvertToMilliMeter()),
new XElement(_writerNamespace + XMLNames.Bus_VehicleLength, vehicle.Length.ConvertToMilliMeter()),
new XElement(_writerNamespace + XMLNames.Bus_VehicleWidth, vehicle.Width.ConvertToMilliMeter()),
new XElement(_writerNamespace + XMLNames.Bus_EntranceHeight,
new XElement(writerNamespace + XMLNames.Bus_VehicleLength, vehicle.Length.ConvertToMilliMeter()),
new XElement(writerNamespace + XMLNames.Bus_VehicleWidth, vehicle.Width.ConvertToMilliMeter()),
new XElement(writerNamespace + XMLNames.Bus_EntranceHeight,
vehicle.EntranceHeight.ConvertToMilliMeter())
};
}
#region Implementation of IVehicleDeclarationGroupWriter
public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
{
return GetGroupElements(vehicle, _writerNamespace);
}
#endregion
}
}
......@@ -22,13 +22,18 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Comple
#region Overrides of GroupWriter
public XElement[] GetGroupElements(IVehicleDeclarationInputData inputData)
{
return GetGroupElements(inputData, _writerNamespace);
}
public static XElement[] GetGroupElements(IVehicleDeclarationInputData inputData, XNamespace writerNamespace)
{
return new XElement[] {
new XElement(_writerNamespace + XMLNames.Component_Manufacturer, inputData.Manufacturer),
new XElement(_writerNamespace + XMLNames.Component_ManufacturerAddress,
inputData.ManufacturerAddress),
new XElement(_writerNamespace + XMLNames.Vehicle_VIN, inputData.VIN),
new XElement(_writerNamespace + XMLNames.Component_Date, inputData.Date.ToXmlFormat())
new XElement(writerNamespace + XMLNames.Component_Manufacturer, inputData.Manufacturer),
new XElement(writerNamespace + XMLNames.Component_ManufacturerAddress,
inputData.ManufacturerAddress),
new XElement(writerNamespace + XMLNames.Vehicle_VIN, inputData.VIN),
new XElement(writerNamespace + XMLNames.Component_Date, inputData.Date.ToXmlFormat())
};
}
......
......@@ -15,45 +15,52 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Comple
{
public CompletedBusParametersWriterV2_10_2(XNamespace writerNamespace) : base(writerNamespace) { }
#region Overrides of GroupWriter
public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
public static XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle, XNamespace writerNamespace)
{
var elements = new List<XElement>();
if (vehicle.Model != null) {
elements.Add( new XElement(_writerNamespace + XMLNames.Component_Model,
elements.Add(new XElement(writerNamespace + XMLNames.Component_Model,
vehicle.Model));
}
if (vehicle.LegislativeClass != null) {
elements.Add(new XElement(_writerNamespace + XMLNames.Vehicle_LegislativeCategory,
elements.Add(new XElement(writerNamespace + XMLNames.Vehicle_LegislativeCategory,
vehicle.LegislativeClass.ToXMLFormat()));
}
if (vehicle.CurbMassChassis != null) {
elements.Add(new XElement(_writerNamespace + XMLNames.CorrectedActualMass,
elements.Add(new XElement(writerNamespace + XMLNames.CorrectedActualMass,
vehicle.CurbMassChassis.ToXMLFormat(0)));
}
if (vehicle.GrossVehicleMassRating != null) {
elements.Add(new XElement(_writerNamespace + XMLNames.Vehicle_TPMLM,
elements.Add(new XElement(writerNamespace + XMLNames.Vehicle_TPMLM,
vehicle.GrossVehicleMassRating.ToXMLFormat(0)));
}
if (vehicle.AirdragModifiedMultistage != null) {
elements.Add(new XElement(_writerNamespace + XMLNames.Bus_AirdragModifiedMultistage,
vehicle.AirdragModifiedMultistage));
elements.Add(new XElement(writerNamespace + XMLNames.Bus_AirdragModifiedMultistage,
vehicle.AirdragModifiedMultistage));
}
if (vehicle.RegisteredClass != null) {
elements.Add(new XElement(_writerNamespace + XMLNames.Vehicle_RegisteredClass,
elements.Add(new XElement(writerNamespace + XMLNames.Vehicle_RegisteredClass,
vehicle.RegisteredClass.ToXMLFormat()));
}
return elements.ToArray();
}
#endregion
#region Implementation of IVehicleDeclarationGroupWriter
public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
{
return GetGroupElements(vehicle, _writerNamespace);
}
#endregion
}
}
......@@ -7,6 +7,7 @@ using System.Xml.Linq;
using Castle.Components.DictionaryAdapter;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.CompletedBus
{
......@@ -15,29 +16,39 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Comple
public CompletedBusPassengerCountWriter_V2_10_2(XNamespace writerNamespace) : base(writerNamespace) { }
#region Implementation of IGroupWriter
public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
public static XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle, XNamespace writerNamespace)
{
if (vehicle.IsAnyNull(vehicle.NumberPassengersStandingLowerDeck, vehicle.NumberPassengersStandingUpperDeck,
vehicle.NumberPassengerSeatsLowerDeck, vehicle.NumberPassengerSeatsUpperDeck)) {
return new XElement[0];
}
return new XElement[] {
new XElement(_writerNamespace + XMLNames.Bus_NumberPassengerSeatsLowerDeck,
new XElement(writerNamespace + XMLNames.Bus_NumberPassengerSeatsLowerDeck,
vehicle.NumberPassengerSeatsLowerDeck),
new XElement(_writerNamespace + XMLNames.Bus_NumberPassengersStandingLowerDeck,
new XElement(writerNamespace + XMLNames.Bus_NumberPassengersStandingLowerDeck,
vehicle.NumberPassengersStandingLowerDeck),
new XElement(_writerNamespace + XMLNames.Bus_NumberPassengerSeatsUpperDeck,
new XElement(writerNamespace + XMLNames.Bus_NumberPassengerSeatsUpperDeck,
vehicle.NumberPassengerSeatsUpperDeck),
new XElement(_writerNamespace + XMLNames.Bus_NumberPassengersStandingUpperDeck,
new XElement(writerNamespace + XMLNames.Bus_NumberPassengersStandingUpperDeck,
vehicle.NumberPassengersStandingUpperDeck),
};
}
#endregion
#region Implementation of IVehicleDeclarationGroupWriter
public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
{
return GetGroupElements(vehicle, _writerNamespace);
}
#endregion
}
}
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