Ejemplo n.º 1
0
        public void processPackage(string inputFilePath)
        {
            #region ANTLR4 necessary stuff



            var input = new AntlrInputStream(new StreamReader(inputFilePath));


            var lexer = new PlSqlLexer(input);

            var tokens = new CommonTokenStream(lexer);

            var parser = new PlSqlParser(tokens);

            PlSqlParser.Create_package_bodyContext context1 = parser.create_package_body();

            ParseTreeWalker walker = new ParseTreeWalker();

            var bListener = new BODYlistener();

            walker.Walk(bListener, context1);
            #endregion

            //you can start making changes from this point

            var converter   = new JoinLinksConverter(bListener.joinsList);
            var uniqueLinks = converter.MakeUniqueLinksList();



            using (var storage = new StorageContext(StorageContext.constr))
            {
                Dictionary <string, string> linkToText = new Dictionary <string, string>();

                foreach (var link in storage.links.ToList())
                {
                    linkToText.Add(link.toText, "");
                }



                List <Link> linkListToConvert = new List <Link>();

                linkListToConvert.AddRange(uniqueLinks.Where(link => dbObjectNames.ContainsKey(link.firstTable) && dbObjectNames.ContainsKey(link.secondTable) && !linkToText.ContainsKey(link.ToText())));

                LinkDBFormatConverter linkConverter = new LinkDBFormatConverter(linkListToConvert);

                foreach (var link in linkConverter.Result)
                {
                    storage.links.Add(link);
                }


                storage.SaveChanges();
            }
        }
 public override object VisitCreate_package_body([NotNull] PlSqlParser.Create_package_bodyContext context)
 {
     Stop();
     return(base.VisitCreate_package_body(context));
 }