/// <summary>
        /// Charge en mémoire les modèles objet et génère les warnings.
        /// </summary>
        private void LoadObjectModel()
        {
            // Charge le parser.
            IModelParser modelParser = LoadModelParser();

            // Parse le modèle.
            _modelList = modelParser.Parse();

            // Charge les listes de références.
            ICollection <TableInit> staticTableInitList    = LoadTableInitListFromFile(_parameters.StaticListFactoryFileName);
            ICollection <TableInit> referenceTableInitList = LoadTableInitListFromFile(_parameters.ReferenceListFactoryFileName);

            // Génère les warnings pour le modèle.
            List <NVortexMessage> messageList = new List <NVortexMessage>(modelParser.ErrorList);

            messageList.AddRange(CodeChecker.Check(_modelList));
            messageList.AddRange(StaticListChecker.Instance.Check(_modelList, staticTableInitList));
            messageList.AddRange(ReferenceListChecker.Instance.Check(_modelList, referenceTableInitList));
            messageList.AddRange(AbstractSchemaGenerator.CheckAllIdentifiersNames(_modelList));

            NVortexGenerator.Generate(messageList, _parameters.VortexFile, "ClassGenerator");

            if (!CanGenerate(messageList))
            {
                Environment.Exit(-NbErrorMessage(messageList));
            }
        }
        protected void AssertSameParser(Func <IModelParser> parserFunc)
        {
            IModelParser instance1 = parserFunc();
            IModelParser instance2 = parserFunc();

            Assert.That(instance2, Is.SameAs(instance1));
        }
Exemple #3
0
        /// <summary>
        /// Charge en mémoire les modèles objet et génère les warnings.
        /// </summary>
        private void LoadObjectModel()
        {
            // Charge le parser.
            IModelParser modelParser = LoadModelParser();

            // Parse le modèle.
            _modelList = modelParser.Parse();

            // Charge les listes de références.
            ICollection <TableInit> staticTableInitList    = LoadTableInitList(true);
            ICollection <TableInit> referenceTableInitList = LoadTableInitList(false);

            // Génère les warnings pour le modèle.
            List <NVortexMessage> messageList = new List <NVortexMessage>(modelParser.ErrorList);

            messageList.AddRange(CodeChecker.Check(_modelList, _domainList));
            messageList.AddRange(StaticListChecker.Instance.Check(_modelList, staticTableInitList));
            messageList.AddRange(ReferenceListChecker.Instance.Check(_modelList, referenceTableInitList));
            if (GeneratorParameters.GenerateSql)
            {
                _schemaGenerator = LoadSchemaGenerator();
                messageList.AddRange(_schemaGenerator.CheckAllIdentifiersNames(_modelList));
            }

            NVortexGenerator.Generate(messageList, GeneratorParameters.VortexFile, GeneratorParameters.SourceRepository, "ClassGenerator");


            if (!CanGenerate(messageList))
            {
                Environment.Exit(-NbErrorMessage(messageList));
            }
        }
        public void SystemTests()
        {
            IReader reader = new FileReader(@".\Resources\DataDictionary\datadict.rpt");

            IModelParser[] parsers = new IModelParser[] {
                new AccessInformationParser(),
                new DescriptionParser(),
                new DetailsParser(),
                new ModifiedParser(),
                new ModuleParser(),
                new PageHeaderParser(),
                new RecordLengthParser(),
                new RecordParser(),
                new TechnicalInformationParser(),
                new CobolParser(),
                new IgnoreParser(),
            };
            IDataParser dataParser = new DataParser(reader, parsers);

            dataParser.Corrections     = corrections;
            dataParser.OnMissingParser = (line) =>
            {
                throw new InvalidOperationException("No Parser for: " + reader);
            };
            dataParser.Parse();
        }
Exemple #5
0
 public Model(string path)
 {
     Parser    = new ObjParser(path);     // Hardcode obj parser
     Vertices  = new List <Vector3>();
     Normals   = new List <Vector3>();
     TexCoords = new List <Vector2>();
     Faces     = new List <CFace>();
 }
Exemple #6
0
 public RangeReader(
     IApiEngineService <TRelation, TUser> engineService,
     IModelParser modelParser,
     DbContext dbContext)
 {
     this.engineService = engineService;
     this.modelParser   = modelParser;
     this.dbContext     = dbContext;
 }
Exemple #7
0
 public Model(IModelParser modelParser)
 {
     Name = modelParser.ModelName;
     Materials.AddRange(modelParser.Materials);
     Meshes.AddRange(modelParser.Meshes);
     SubMeshes.AddRange(modelParser.SubMeshes);
     Root.Nodes.AddRange(modelParser.Groups);
     Root.Name = modelParser.ModelName;
 }
Exemple #8
0
 public PermissionHandler(
     string RequesterID,
     IModelParser modelParser,
     IApiEngineService <TRelation, TUser> EngineService,
     DbContext DbContext)
 {
     this.RequesterID   = RequesterID;
     this.DbContext     = DbContext;
     this.modelParser   = modelParser;
     this.EngineService = EngineService;
 }
Exemple #9
0
        public NeutronGeneralAPI(
            DbContext dbContext,
            UserManager <TUser> userManager,
            IModelParser modelParser,
            IApiEngineService <TRelation, TUser> engineService)
        {
            this.UserManager   = userManager;
            this.dbContext     = dbContext;
            this.ModelParser   = modelParser;
            this.EngineService = engineService;

            this.Utils = new APIUtils();
        }
        protected static void AssertDoesNotParse(string[] cases, IModelParser modelParser)
        {
            foreach (string line in cases)
            {
                bool        isMissing  = false;
                Reader      reader     = Reader.CreateStringReader(line);
                IDataParser dataParser = new DataParser(reader, new[] { modelParser });
                dataParser.OnMissingParser = s => isMissing = true;
                dataParser.Parse();

                Assert.That(dataParser.Results, Is.Empty, "Results should be empty: {0}", line);
                Assert.That(isMissing, Is.True, "It should not parse line: {0}", line);
            }
        }
        protected static IDataParser CreateDataParser(IReader reader, IModelParser modelParser, params IModelParser[] optionalParsers)
        {
            List <IModelParser> parsers = new List <IModelParser> {
                modelParser
            };

            parsers.AddRange(optionalParsers);
            IDataParser dataParser = new DataParser(reader, parsers.ToArray());

            dataParser.OnMissingParser = line =>
            {
                throw new InvalidOperationException("No Parser for: " + reader);
            };
            return(dataParser);
        }
Exemple #12
0
        private static void Main(string[] args)
        {
            if (args.Length == 0 || string.IsNullOrEmpty(args[0]))
            {
                Console.Error.WriteLine("Input file is required");
                return;
            }

            IKernel kernel = new StandardKernel();

            kernel.Bind <IFileSystem>().To <FileSystem>();
            kernel.Bind <IModelParser>().To <ModelParser>();
            kernel.Bind <IModelToObjParser>().To <ModelToObjParser>();
            kernel.Bind <ISectionHeaderParser>().To <SectionHeaderParser>();
            kernel.Bind <ISectionParser>().To <SectionParser>();
            kernel.Bind <IObjParser>().To <ObjParser>();

            string input  = args[0];
            string output = input.Replace(".model", ".obj");

            if (args.Length > 1 && !string.IsNullOrEmpty(args[1]))
            {
                output = args[1];
            }

            IModelParser modelParser = kernel.Get <IModelParser>();
            FileManager  fileManager = new FileManager();
            Stopwatch    stopwatch   = Stopwatch.StartNew();

            modelParser.WriteToOutput(input, output);
            long newMs = stopwatch.ElapsedMilliseconds;

            stopwatch.Restart();
            fileManager.Open(input, output: output);
            stopwatch.Stop();
            Console.WriteLine($"Converting model the old way took {stopwatch.ElapsedMilliseconds}ms");
            Console.WriteLine($"Converting model the new way took {newMs}ms");
            Console.Read();
        }
 protected override void OnSetUp()
 {
     parser = new TechnicalInformationParser();
     base.OnSetUp();
 }
 protected override void OnSetUp()
 {
     parser = new AccessInformationParser();
     base.OnSetUp();
 }
Exemple #15
0
 protected override void OnSetUp()
 {
     parser = new TechnicalInformationParser();
     base.OnSetUp();
 }
 protected ParserTestFixture(Func <IModelParser> parserFunc)
 {
     modelParser = parserFunc();
 }
 protected override void OnSetUp()
 {
     parser = new PageHeaderParser();
     base.OnSetUp();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DataParser"/> class.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="parsers">The parsers.</param>
 public DataParser(IReader reader, IModelParser[] parsers)
 {
     this.reader = reader;
     this.parsers = parsers;
 }
Exemple #19
0
 protected override void OnSetUp()
 {
     parser = new DetailsParser();
     base.OnSetUp();
 }
Exemple #20
0
 public Physical(IModelParser modelParser)
     : base(modelParser)
 {
 }
Exemple #21
0
        public IModel Parse(IReader reader)
        {
            IModelParser parser = parsers.FirstOrDefault(p => p.Matches(reader));

            return(parser != null?parser.Parse(reader) : null);
        }
        public void HierarchySystemTests()
        {
            IReader reader = new FileReader(@".\Resources\DataDictionary\datadict.rpt");
            IModelParser[] parsers = new IModelParser[] {
                    new AccessInformationParser(),
                    new DescriptionParser(),
                    new DetailsParser(),
                    new ModifiedParser(),
                    new ModuleParser(),
                    new PageHeaderParser(),
                    new RecordLengthParser(),
                    new RecordParser(),
                    new TechnicalInformationParser(),
                    CobolParser.CobolHierarchy(),
                    new IgnoreParser(),
                };
            IDataParser dataParser = new DataParser(reader, parsers);
            dataParser.Corrections = corrections;
            dataParser.OnMissingParser = (line) =>
            {
                throw new InvalidOperationException("No Parser for: " + reader);
            };
            dataParser.Parse();

            string typename = GetType().Name;
            string directory = Path.Combine(".", typename);

            if (!Directory.Exists(directory))
            {
                Directory.CreateDirectory(directory);
            }

            foreach (IModel model in dataParser.Results)
            {
                HierarchyModel hiearchyModel = model as HierarchyModel;
                if (hiearchyModel != null)
                {
                    ClassModel classModel = hiearchyModel.Model as ClassModel;
                    if (classModel != null)
                    {
                        ModelXmlFormatter formatter = new ModelXmlFormatter(model);
                        string xml = formatter.Render();
                        string objectName = classModel.Data;

                        string fileName = directory + @"\" + objectName + ".xml";
                        if (File.Exists(fileName))
                        {
                            File.Delete(fileName);
                        }

                        Assert.That(File.Exists(fileName), Is.False);
                        using (StreamWriter writer = new StreamWriter(fileName))
                        {
                            writer.Write(xml);
                        }
                    }
                }
            }
        }
 public HierarchyParser(IModelParser modelParser, params IModelParser[] childrenParser)
 {
     this.modelParser = modelParser;
     this.childrenParser = new CombinationParser(childrenParser);
 }
 public void HeaderSystemTests()
 {
     IReader reader = new FileReader(@".\Resources\DataDictionary\datadict.rpt");
     IModelParser[] parsers = new IModelParser[] {
             new PageHeaderParser(),
             new AccessInformationParser(),
             new DescriptionParser(),
             new DetailsParser(),
             new ModifiedParser(),
             new ModuleParser(),
             new RecordLengthParser(),
             new RecordParser(),
             new TechnicalInformationParser(),
             CobolParser.CobolHierarchy(),
             new IgnoreParser(),
         };
     IDataParser dataParser = new DataParser(reader, parsers);
     dataParser.Corrections = corrections;
     dataParser.OnMissingParser = (line) =>
     {
         throw new InvalidOperationException("No Parser for: " + reader);
     };
     dataParser.Parse();
 }
Exemple #25
0
        /// <summary>
        /// Parses the data
        /// </summary>
        public void Parse()
        {
            while (!reader.EndOfFile)
            {
                IReader      currentReader = reader;
                IModelParser parser        = FindParser(reader, parsers);

                // Try fixing by trimming the lines
                if (parser == null)
                {
                    currentReader = new TrimReader(reader);
                    parser        = FindParser(currentReader, parsers);
                }

                // Try fixing by adding a prefix
                if (parser == null)
                {
                    currentReader = new AddPrefixReader(reader, " ");
                    parser        = FindParser(currentReader, parsers);
                }

                // Try fixing trimming off 1 char
                if (parser == null)
                {
                    currentReader = new TrimLeftReader(reader, 1);
                    parser        = FindParser(currentReader, parsers);
                }

                // Try fixing by replacing known Corrections
                if (parser == null)
                {
                    if (Corrections != null)
                    {
                        currentReader = new LookupReader(reader, Corrections);
                        parser        = FindParser(currentReader, parsers);
                    }
                }

                // Still no Parser found so raise OnMissingParser event
                if (parser == null)
                {
                    if (OnMissingParser != null)
                    {
                        if (OnMissingParser(reader.PeekNext()))
                        {
                            reader.ReadLine();
                        }
                    }
                }

                if (parser != null)
                {
                    int    lineNo = currentReader.LineNumber;
                    IModel model  = parser.Parse(currentReader);
                    if (model != null)
                    {
                        results.Add(model);
                    }
                    else if (lineNo == currentReader.LineNumber)
                    {
                        currentReader.ReadLine();
                    }
                }
            }
        }
        public void HierarchySystemTests()
        {
            IReader reader = new FileReader(@".\Resources\DataDictionary\datadict.rpt");

            IModelParser[] parsers = new IModelParser[] {
                new AccessInformationParser(),
                new DescriptionParser(),
                new DetailsParser(),
                new ModifiedParser(),
                new ModuleParser(),
                new PageHeaderParser(),
                new RecordLengthParser(),
                new RecordParser(),
                new TechnicalInformationParser(),
                CobolParser.CobolHierarchy(),
                new IgnoreParser(),
            };
            IDataParser dataParser = new DataParser(reader, parsers);

            dataParser.Corrections     = corrections;
            dataParser.OnMissingParser = (line) =>
            {
                throw new InvalidOperationException("No Parser for: " + reader);
            };
            dataParser.Parse();

            string typename  = GetType().Name;
            string directory = Path.Combine(".", typename);

            if (!Directory.Exists(directory))
            {
                Directory.CreateDirectory(directory);
            }

            foreach (IModel model in dataParser.Results)
            {
                HierarchyModel hiearchyModel = model as HierarchyModel;
                if (hiearchyModel != null)
                {
                    ClassModel classModel = hiearchyModel.Model as ClassModel;
                    if (classModel != null)
                    {
                        ModelXmlFormatter formatter  = new ModelXmlFormatter(model);
                        string            xml        = formatter.Render();
                        string            objectName = classModel.Data;

                        string fileName = directory + @"\" + objectName + ".xml";
                        if (File.Exists(fileName))
                        {
                            File.Delete(fileName);
                        }

                        Assert.That(File.Exists(fileName), Is.False);
                        using (StreamWriter writer = new StreamWriter(fileName))
                        {
                            writer.Write(xml);
                        }
                    }
                }
            }
        }
Exemple #27
0
 public WordDocumentGenerator(IModelParser modelParser)
 {
     _modelParser = modelParser;
 }
 protected override void OnSetUp()
 {
     parser = new AccessInformationParser();
     base.OnSetUp();
 }
 protected override void OnSetUp()
 {
     parser = new PageHeaderParser();
     base.OnSetUp();
 }
 protected override void OnSetUp()
 {
     parser = new DetailsParser();
     base.OnSetUp();
 }
Exemple #31
0
        public static Boolean ExecuteXmlModel(String filePath, Boolean isWithParameter)
        {
            try
            {
                String _filePath = filePath;
                if (!File.Exists(_filePath))
                {
                    return(false);
                }
                //解析文件
                IModelParser parser = InstanceManager.Instance.NewParser;
                if (null == parser)
                {
                    return(false);
                }
                parser.File = filePath;
                Boolean _isStepByStep = parser.IsStepByStepMode;
                //建立地理空间处理模型
                Graph gpm = new Graph();
                ProcessDescription[] processes = parser.ProcessList;

//                List<ProcessDescription> processQueue = null;
//                if (_isStepByStep)
//                {
//                    processQueue = new List<ProcessDescription>();
//                    //从空间处理列表查找SpatialProcess
//                    IProcessListParser processListParser = InstanceManager.Instance.ProcessListParser;
//                    if (null == processListParser)
//                    {
//                        return false;
//                    }

//                    ProcessDefineDescription processDefine = null;
//                    //ProcessDescription item = null;
//                    List<ParaItem> parameters = null;
//                    //ParaItem parameter = null;
//                    foreach (ProcessDescription process in processes)
//                    {
//                        //如果是开始结点,就不添加到列表中
//                        if (process.Name.Equals(_XMLTag.g_ValueStart))
//                        {
//                            continue;
//                        }

//                        processDefine = processListParser.GetProcess(process.Name);
//                        //item = new ProcessDescription(processDefine.Name, process.Id, processDefine.Caption, processDefine.Description);
//                        parameters = new List<ParaItem>();
//                        foreach (ParaItem paraitem in processDefine.Inputs)
//                        {
//                            if (IsParameterInProcess(process, paraitem.Name))
//                            {
////                                paraitem.Value = GetVariable(process, paraitem.Name);
//                                parameters.Add(paraitem);
//                            }
//                        }
//                        item.Inputs = parameters;
//                        processQueue.Add(item);
//                    }
//                }
//                else
//                {
                foreach (ProcessDescription process in processes)
                {
                    gpm.CreateNode(process.Id, process);
                }
                //}
                LinkDescription[] links = parser.LinkList;
                foreach (LinkDescription link in links)
                {
                    gpm.Link(gpm.NodeById(link.FromId), gpm.NodeById(link.ToId), link);
                }

                IModelJob job = InstanceManager.Instance.ProcessManager.CreateJob("xmlModel") as IModelJob;
                if (null == job)
                {
                    return(false);
                }
                job.JobValue = gpm;

                if (!isWithParameter)
                {
                    if (_isStepByStep)
                    {
                        ModelParameterWizardForm wizard = new ModelParameterWizardForm();
                        //List<ProcessDescription> processQueue = new List<ProcessDescription>();
                        ////从空间处理列表查找SpatialProcess
                        //IProcessListParser processListParser = InstanceManager.Instance.ProcessListParser;
                        //if (null == processListParser)
                        //{
                        //    return false;
                        //}

                        //ProcessDefineDescription processDefine = null;
                        //ProcessDescription item = null;
                        //List<ParaItem> parameters = null;
                        ////ParaItem parameter = null;
                        //foreach (ProcessDescription process in parser.ProcessList)
                        //{
                        //    //如果是开始结点,就不添加到列表中
                        //    if (process.Name.Equals(_XMLTag.g_ValueStart))
                        //    {
                        //        continue;
                        //    }

                        //    processDefine = processListParser.GetProcess(process.Name);
                        //    item = new ProcessDescription(processDefine.Name, process.Id, processDefine.Caption, processDefine.Description);
                        //    parameters = new List<ParaItem>();
                        //    foreach (ParaItem paraitem in processDefine.Inputs)
                        //    {
                        //        if (IsParameterInProcess(process, paraitem.Name))
                        //        {
                        //            paraitem.Value = GetVariable(process, paraitem.Name);
                        //            parameters.Add(paraitem);
                        //        }
                        //    }
                        //    item.Inputs = parameters;
                        //    processQueue.Add(item);
                        //}

//                        wizard.ProcessQueue = processQueue;
                        wizard.ProcessQueue = processes;
                        if (wizard.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            List <ParameterSet> paras = wizard.ParameterSetList; //这个地方速度慢
                            if (!job.SetParameters(paras.ToArray()))
                            {
                                throw new Exception("设置参数失败");
                            }
                        }
                        else
                        {
                            wizard.Close();
                            return(false);
                        }
                    }
                }
                else
                {
                    throw new NotImplementedException("该场景未实现");
                }

                return(job.Execute());
            }
            catch (Exception ex)
            {
                IRunningLogger logger = InstanceManager.Instance.Context.GetVariable("RunningStatusLogger") as IRunningLogger;
                if (null != logger)
                {
                    logger.Error(_LOG, ex.Message);
                }
            }

            return(false);
        }
 protected override void OnSetUp()
 {
     parser = new ModuleParser();
     base.OnSetUp();
 }
Exemple #33
0
 protected override void OnSetUp()
 {
     parser = new ModuleParser();
     base.OnSetUp();
 }
Exemple #34
0
 public Unit(IModelParser modelParser)
     : base(modelParser)
 {
 }
Exemple #35
0
 public Repository(IGremlinPersistence gremlinPersistence, IQueryBuilder queryBuilder, IModelParser modelParser)
 {
     _gremlinPersistence = gremlinPersistence;
     _queryBuilder       = queryBuilder;
     _modelParser        = modelParser;
 }
 public HierarchyParser(IModelParser modelParser, params IModelParser[] childrenParser)
 {
     this.modelParser    = modelParser;
     this.childrenParser = new CombinationParser(childrenParser);
 }