Пример #1
0
        public UserDefinedFormatFactory(UserDefinedFactoryParams createParams)
            : base(createParams)
        {
            var formatSpecificNode = createParams.FormatSpecificNode;

            ReadPatterns(formatSpecificNode, patterns);
            var boundsNodes = formatSpecificNode.Elements("bounds").Take(1);
            var beginFinder = BoundFinder.CreateBoundFinder(boundsNodes.Select(n => n.Element("begin")).FirstOrDefault());
            var endFinder   = BoundFinder.CreateBoundFinder(boundsNodes.Select(n => n.Element("end")).FirstOrDefault());

            tempFilesManager = createParams.TempFilesManager;
            fmtInfo          = new Lazy <FormatInfo>(() =>
            {
                Type precompiledUserCode = ReadPrecompiledUserCode(createParams.RootNode);
                FieldsProcessor.InitializationParams fieldsInitParams = new FieldsProcessor.InitializationParams(
                    formatSpecificNode.Element("fields-config"), true, precompiledUserCode);
                MessagesReaderExtensions.XmlInitializationParams extensionsInitData = new MessagesReaderExtensions.XmlInitializationParams(
                    formatSpecificNode.Element("extensions"));
                DejitteringParams?dejitteringParams = DejitteringParams.FromConfigNode(
                    formatSpecificNode.Element("dejitter"));
                TextStreamPositioningParams textStreamPositioningParams = TextStreamPositioningParams.FromConfigNode(
                    formatSpecificNode);
                RotationParams rotationParams = RotationParams.FromConfigNode(
                    formatSpecificNode.Element("rotation"));
                FormatInfo.FormatFlags flags = FormatInfo.FormatFlags.None;
                if (formatSpecificNode.Element("plain-text-search-optimization").AttributeValue("allowed") == "yes")
                {
                    flags |= FormatInfo.FormatFlags.AllowPlainTextSearchOptimization;
                }
                return(new FormatInfo(
                           ReadRe(formatSpecificNode, "head-re", ReOptions.Multiline),
                           ReadRe(formatSpecificNode, "body-re", ReOptions.Singleline),
                           ReadParameter(formatSpecificNode, "encoding"),
                           fieldsInitParams,
                           extensionsInitData,
                           dejitteringParams,
                           textStreamPositioningParams,
                           flags,
                           rotationParams,
                           beginFinder,
                           endFinder
                           ));
            });
            uiKey = ReadParameter(formatSpecificNode, "ui-key");
        }
Пример #2
0
 public FormatInfo(
     LoadedRegex headRe, LoadedRegex bodyRe,
     string encoding, FieldsProcessor.InitializationParams fieldsParams,
     MessagesReaderExtensions.XmlInitializationParams extensionsInitData,
     DejitteringParams?dejitteringParams,
     TextStreamPositioningParams textStreamPositioningParams,
     FormatFlags flags,
     RotationParams rotationParams
     ) :
     base(extensionsInitData)
 {
     this.HeadRe   = headRe;
     this.BodyRe   = bodyRe;
     this.Encoding = encoding;
     this.FieldsProcessorParams       = fieldsParams;
     this.DejitteringParams           = dejitteringParams;
     this.TextStreamPositioningParams = textStreamPositioningParams;
     this.Flags          = flags;
     this.RotationParams = rotationParams;
 }
Пример #3
0
        void IViewEvents.OnTestClicked(bool advancedModeModifierIsHeld)
        {
            XmlDocument tmp     = new XmlDocument();
            XmlNode     root    = tmp.AppendChild(tmp.CreateElement("root"));
            XmlNode     mapping = WriteMappingInternal(root);

            XDocument tmpXDoc = XDocument.Parse(tmp.OuterXml);

            FieldsProcessor.InitializationParams tmpProcessorParams = new FieldsProcessor.InitializationParams(
                tmpXDoc.Element("root").Element("fields-config"), false, null);
            try
            {
                IFieldsProcessor tmpProcessor = new FieldsProcessor(tmpProcessorParams, availableInputFields, null, tempFilesManager, LJTraceSource.EmptyTracer);
                tmpProcessor.Reset();
                alerts.ShowPopup("Test", "Code compiled OK", AlertFlags.Ok);
            }
            catch (BadUserCodeException e)
            {
                HandleProcessorError(e, advancedModeModifierIsHeld);
            }
        }