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

Skip to content
Snippets Groups Projects
Commit 8db48402 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

more work on reading VIF

parent c6a09ca7
No related branches found
No related tags found
No related merge requests found
Showing
with 146 additions and 31 deletions
......@@ -87,10 +87,18 @@ namespace TUGraz.VectoCommon.InputData
}
public interface IMultistageBusInputDataProvider : IInputDataProvider
public interface IMultistageBusInputDataProvider : IDeclarationInputDataProvider
{
new IDeclarationMultistageJobInputData JobInputData { get; }
}
public interface IDeclarationMultistageJobInputData
{
IPrimaryVehicleInformationInputDataProvider PrimaryVehicle { get; }
IList<IManufacturingStageInputData> ManufacturingStage { get; }
IList<IManufacturingStageInputData> ManufacturingStages { get; }
}
}
......@@ -30,6 +30,7 @@
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
......@@ -112,7 +113,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
}
public class XMLDeclarationInputDataProviderMultistageV01 : AbstractXMLResource, IXMLDeclarationInputData
public class XMLDeclarationInputDataProviderMultistageV01 : AbstractXMLResource, IXMLMultistageBusInputDataProvider
{
public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
......@@ -120,7 +121,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
protected IDeclarationJobInputData JobData;
protected IDeclarationMultistageJobInputData JobData;
public XMLDeclarationInputDataProviderMultistageV01(XmlDocument xmlDoc, string fileName) : base(xmlDoc.DocumentElement, fileName)
{
......@@ -132,15 +134,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
get { return NAMESPACE_URI; }
}
protected override DataSourceType SourceType { get; }
public IDeclarationJobInputData JobInputData
public IDeclarationMultistageJobInputData JobInputData
{
get { return JobData ?? (JobData = Reader.JobData); }
}
IDeclarationJobInputData IDeclarationInputDataProvider.JobInputData
{
get
{
throw new NotImplementedException();
}
}
public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleData { get; }
public XElement XMLHash { get; }
public IXMLDeclarationInputDataReader Reader { protected get; set; }
public IXMLDeclarationMultistageVehicleBusInputDataReader Reader { protected get; set; }
}
......
using System.Xml;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Linq;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCore.InputData.FileIO.XML.Common;
......@@ -141,5 +142,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public IXMLPrimaryVehicleBusInputData InputData { get; }
}
public class XMLDeclarationMultistageJobInputDataV01 : AbstractXMLResource, IXMLDeclarationMultistageJobInputData
{
public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
public const string XSD_TYPE = "VectoOutputMultistageType";
public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
public XMLDeclarationMultistageJobInputDataV01(XmlNode node, IXMLMultistageBusInputDataProvider inputProvider,
string fileName) : base(node, fileName)
{
InputData = inputProvider;
}
public IPrimaryVehicleInformationInputDataProvider PrimaryVehicle { get; }
public IList<IManufacturingStageInputData> ManufacturingStages { get; }
public IXMLMultistageJobReader Reader { get; set; }
public IXMLMultistageBusInputDataProvider InputData { get; }
protected override XNamespace SchemaNamespace { get; }
protected override DataSourceType SourceType { get; }
}
}
......@@ -19,11 +19,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Factory
IXMLPrimaryVehicleBusInputData CreatePrimaryVehicleBusInputProvider(string version, XmlDocument xmlDoc, string fileName);
IXMLMultistageBusInputDataProvider CreateMultistageInputProvider(string version, XmlDocument xmlDoc,
string fileName);
IXMLDeclarationJobInputData CreateJobData(
string version, XmlNode node, IXMLDeclarationInputData inputProvider, string fileName);
IXMLPrimaryVehicleBusJobInputData CreatePrimaryVehicleJobData(
IXMLDeclarationMultistageJobInputData CreateMultiStageJobData(
string version, XmlNode node, IXMLMultistageBusInputDataProvider inputProvider, string fileName);
IXMLPrimaryVehicleBusJobInputData CreatePrimaryVehicleJobData(
string version, XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider, string fileName);
......@@ -91,9 +96,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Factory
IXMLDeclarationPrimaryVehicleBusInputDataReader CreatePrimaryVehicleBusInputReader(
string version, IXMLPrimaryVehicleBusInputData inputData, XmlNode baseNode);
IXMLDeclarationMultistageVehicleBusInputDataReader CreateMultistageInputReader(string version,
IXMLMultistageBusInputDataProvider inputData, XmlNode baseNode);
IXMLJobDataReader CreateJobReader(
string version, IXMLDeclarationJobInputData jobData, XmlNode jobNode);
IXMLMultistageJobReader CreateMultistageJobReader(
string version, IXMLDeclarationMultistageJobInputData inputData, XmlNode baseNode);
IXMLJobDataReader CreatePrimaryVehicleJobReader(
string version, IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode);
......
......@@ -18,8 +18,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
IApplicationInformation ApplicationInformation { get; }
}
public interface IXMLDeclarationMultistageVehicleBusInputDataReader : IXMLDeclarationPrimaryVehicleBusInputDataReader
public interface IXMLDeclarationMultistageVehicleBusInputDataReader
{
IList<IManufacturingStageInputData> ManufacturingStageInputData { get; }
IDeclarationMultistageJobInputData JobData { get; }
}
public interface IXMLMultistageJobReader
{
}
}
using System.Collections.Generic;
using System.Xml;
using TUGraz.VectoCommon.InputData;
......@@ -19,9 +20,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces
XmlNode ApplicationInformationNode { get; }
}
public interface IXMLMultistageVehicleBusInputData : IMultistageBusInputDataProvider, IXMLResource
public interface IXMLMultistageBusInputDataProvider : IMultistageBusInputDataProvider, IXMLResource
{
IXMLPrimaryVehicleBusInputData PrimaryVehicleInputData { get; }
IXMLDeclarationMultistageVehicleBusInputDataReader MultistageVehicleInputData { get; }
IXMLDeclarationMultistageVehicleBusInputDataReader Reader { set; }
}
}
......@@ -10,6 +10,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces
IXMLDeclarationInputData InputData { get; }
}
public interface IXMLDeclarationMultistageJobInputData : IDeclarationMultistageJobInputData, IXMLResource
{
IXMLMultistageJobReader Reader { set; }
IXMLMultistageBusInputDataProvider InputData { get; }
}
public interface IXMLPrimaryVehicleBusJobInputData : IDeclarationJobInputData, IXMLResource
{
IXMLJobDataReader Reader { set; }
......
using Ninject.Modules;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl;
......@@ -8,12 +9,20 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
{
public override void Load()
{
Bind<IXMLDeclarationInputData>().To<XMLDeclarationInputDataProviderMultistageV01>()
Bind<IXMLMultistageBusInputDataProvider>().To<XMLDeclarationInputDataProviderMultistageV01>()
.Named(XMLDeclarationInputDataProviderMultistageV01.QUALIFIED_XSD_TYPE);
Bind<IXMLDeclarationInputDataReader>().To<XMLDeclarationInputReaderMultistageV01>()
Bind<IXMLDeclarationMultistageJobInputData>().To<XMLDeclarationMultistageJobInputDataV01>()
.Named(XMLDeclarationMultistageJobInputDataV01.QUALIFIED_XSD_TYPE);
Bind<IXMLDeclarationMultistageJobInputData>().To<XMLDeclarationMultistageJobInputDataV01>();
Bind<IXMLDeclarationMultistageVehicleBusInputDataReader>().To<XMLDeclarationInputReaderMultistageV01>()
.Named(XMLDeclarationInputReaderMultistageV01.QUALIFIED_XSD_TYPE);
Bind<IXMLMultistageJobReader>().To<XMLMultistageJobReaderV01>()
.Named(XMLMultistageJobReaderV01.QUALIFIED_XSD_TYPE);
}
}
}
\ No newline at end of file
using System.Xml;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using Ninject;
using TUGraz.VectoCommon.InputData;
......@@ -65,7 +67,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
// ---------------------------------------------------------------------------------------
public class XMLDeclarationInputReaderMultistageV01 : AbstractComponentReader, IXMLDeclarationInputDataReader
public class XMLDeclarationInputReaderMultistageV01 : AbstractComponentReader, IXMLDeclarationMultistageVehicleBusInputDataReader
{
public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
......@@ -77,27 +79,62 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
[Inject]
public IDeclarationInjectFactory Factory { protected get; set; }
protected IDeclarationJobInputData _jobData;
protected IDeclarationMultistageJobInputData _jobData;
protected IXMLMultistageBusInputDataProvider InputData;
protected XmlNode JobNode;
public XMLDeclarationInputReaderMultistageV01(IXMLDeclarationInputData inputData, XmlNode baseNode)
public XMLDeclarationInputReaderMultistageV01(IXMLMultistageBusInputDataProvider inputData, XmlNode baseNode)
: base(inputData, baseNode)
{
JobNode = baseNode;
InputData = inputData;
}
public IDeclarationJobInputData JobData
public IDeclarationMultistageJobInputData JobData
{
get { return _jobData ?? (_jobData = CreateComponent(XMLNames.VectoOuputMultistage, JobCreator)); }
}
protected virtual IDeclarationJobInputData JobCreator(string version, XmlNode node, string arg3)
protected virtual IDeclarationMultistageJobInputData JobCreator(string version, XmlNode node, string arg3)
{
var job = Factory.CreateMultiStageJobData(version, BaseNode, InputData,"foo"); //(InputData as IXMLResource).DataSource.SourceFile);
job.Reader = Factory.CreateMultistageJobReader(version, job, JobNode);
return job;
}
}
// ---------------------------------------------------------------------------------------
public class XMLMultistageJobReaderV01 : AbstractComponentReader, IXMLMultistageJobReader
{
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 IXMLDeclarationMultistageJobInputData InputData;
public XMLMultistageJobReaderV01(IXMLDeclarationMultistageJobInputData inputData, XmlNode baseNode) : base(
inputData, baseNode)
{
//var job = Factory.CreateJobData(version, BaseNode, InputData, (InputData as IXMLResource).DataSource.SourceFile);
//job.Reader = Factory.CreateJobReader(version, job, JobNode);
//return job;
InputData = inputData;
}
return null;
public IPrimaryVehicleInformationInputDataProvider PrimaryVehicle
{
get { return null; }
}
public IList<IManufacturingStageInputData> ManufacturingStages
{
get
{
//InputData.ManufacturingStages.Select(x => CreateComponent(x, ManufacturingStageCreator)).ToList();
return null;
}
}
}
......
......@@ -124,12 +124,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML
}
}
private IInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source)
private IMultistageBusInputDataProvider 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);
var input = DeclarationFactory.CreateMultistageInputProvider(versionNumber, xmlDoc, source);
input.Reader = DeclarationFactory.CreateMultistageInputReader(versionNumber, input, xmlDoc.DocumentElement);
return input;
} catch (Exception e) {
throw new VectoException("Failed to read Declaration job version {0}", e, versionNumber);
......
......@@ -35,8 +35,9 @@ namespace TUGraz.VectoCore.Tests.XML
{
var reader = XmlReader.Create(VIF);
var inputDataProvider = xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
var vehicle = inputDataProvider.PrimaryVehicle.ApplicationInformation;
var vehicle = inputDataProvider.JobInputData.PrimaryVehicle;
var prodStages = inputDataProvider.JobInputData.ManufacturingStages;
}
}
......
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