public void SegmentStart(ISegmentPairProperties properties)
 {
     if (!_tqaDeletion)
     {
         _buffer.SegmentStart(properties);
     }
 }
Beispiel #2
0
        // helper function for creating segment objects
        private ISegment CreateSegment(XmlNode segNode, ISegmentPairProperties pair, bool source)
        {
            int i = 1;

            ISegment segment = ItemFactory.CreateSegment(pair);

            if (source)
            {
                _srcSegmentTagCount = 0;
                if (_totalTagCount < _tmpTotalTagCount)
                {
                    _totalTagCount = _tmpTotalTagCount;
                }
            }
            else
            {
                _totalTagCount = _totalTagCount - _srcSegmentTagCount;
            }


            foreach (XmlNode item in segNode.ChildNodes)
            {
                if (item.NodeType == XmlNodeType.Text)
                {
                    segment.Add(CreateText(item.InnerText));
                }

                if (item.NodeType == XmlNodeType.Element)
                {
                    segment.Add(CreatePhTag(item.Name, item, i, source));
                    i++;
                }
            }
            return(segment);
        }
Beispiel #3
0
        private ISegment CreateSegment(XmlNode segNode, ISegmentPairProperties pair, bool source)
        {
            ISegment segment = ItemFactory.CreateSegment(pair);

            PopulateSegment(segment, segNode, source);

            return(segment);
        }
        // helper function for creating paragraph units
        private IParagraphUnit CreateParagraphUnit(XmlNode xmlUnit)
        {
            // create paragraph unit object
            IParagraphUnit paragraphUnit = ItemFactory.CreateParagraphUnit(LockTypeFlags.Unlocked);


            // create segment pair object
            ISegmentPairProperties segmentPairProperties = ItemFactory.CreateSegmentPairProperties();

            // assign the appropriate confirmation level to the segment pair
            segmentPairProperties.ConfirmationLevel = CreateConfirmationLevel(xmlUnit.Attributes["status"].Value);

            // add source segment to paragraph unit
            ISegment srcSegment = CreateSegment(xmlUnit.SelectSingleNode("source/seg"), segmentPairProperties);

            paragraphUnit.Source.Add(srcSegment);

            // add target segment to paragraph unit if available
            if (xmlUnit.SelectSingleNode("target/seg") != null)
            {
                ISegment trgSegment = CreateSegment(xmlUnit.SelectSingleNode("target/seg"), segmentPairProperties);
                paragraphUnit.Target.Add(trgSegment);
            }

            #region "context"
            // create paragraph unit context
            string id = xmlUnit.SelectSingleNode("./@id").InnerText;
            if (xmlUnit.SelectSingleNode("type/@spec") != null)
            {
                string spec = xmlUnit.SelectSingleNode("type/@spec").InnerText;

                paragraphUnit.Properties.Contexts = CreateContext(spec, id);
            }
            else
            {
                paragraphUnit.Properties.Contexts = CreateContext("Paragraph", id);
            }
            #endregion

            #region "comments"
            // extract comment (if applicable)
            if (xmlUnit.SelectSingleNode("comment") != null)
            {
                paragraphUnit.Properties.Comments = CreateComment(xmlUnit.SelectSingleNode("comment").InnerText);
            }
            #endregion

            return(paragraphUnit);
        }
        // helper function for creating paragraph units
        private IParagraphUnit CreateParagraphUnit(XmlNode xmlUnit)
        {
            // create paragraph unit object
            IParagraphUnit paragraphUnit = ItemFactory.CreateParagraphUnit(LockTypeFlags.Unlocked);

            // create paragraph unit context
            string id = xmlUnit.SelectSingleNode("./@SegID").InnerText;

            paragraphUnit.Properties.Contexts = CreateContext("Paragraph", id);


            foreach (XmlNode item in xmlUnit.SelectNodes("."))
            {
                // create segment pair object
                ISegmentPairProperties segmentPairProperties = ItemFactory.CreateSegmentPairProperties();
                ITranslationOrigin     tuOrg = ItemFactory.CreateTranslationOrigin();

                // assign the appropriate confirmation level to the segment pair
                segmentPairProperties.ConfirmationLevel = CreateConfirmationLevel(item);
                tuOrg.MatchPercent = CreateMatchValue(item);

                // add source segment to paragraph unit
                ISegment srcSegment = CreateSegment(_srcDocument.SelectSingleNode("//Seg[@SegID='" + id + "']"), segmentPairProperties, true);
                paragraphUnit.Source.Add(srcSegment);
                // add target segment to paragraph unit if available
                if (item.SelectSingleNode(".") != null)
                {
                    ISegment trgSegment = CreateSegment(item.SelectSingleNode("."), segmentPairProperties, false);
                    paragraphUnit.Target.Add(trgSegment);
                }
                else
                {
                    item.SelectSingleNode(".").InnerText = "";
                    ISegment trgSegment = CreateSegment(item.SelectSingleNode("."), segmentPairProperties, false);
                    paragraphUnit.Target.Add(trgSegment);
                }

                if (tuOrg.MatchPercent > 0)
                {
                    tuOrg.OriginType = DefaultTranslationOrigin.TranslationMemory;
                }


                segmentPairProperties.TranslationOrigin = tuOrg;
            }

            return(paragraphUnit);
        }
Beispiel #6
0
        // helper function for creating segment objects
        private ISegment CreateSegment(XmlNode segNode, ISegmentPairProperties pair, bool source)
        {
            try
            {
                var segment = ItemFactory.CreateSegment(pair);
                if (source)
                {
                    _srcSegmentTagCount = 0;
                    if (_totalTagCount < _tmpTotalTagCount)
                    {
                        _totalTagCount = _tmpTotalTagCount;
                    }
                }
                else
                {
                    _totalTagCount = _totalTagCount - _srcSegmentTagCount;
                }
                if (segNode != null)
                {
                    foreach (XmlNode item in segNode.ChildNodes)
                    {
                        if (item.NodeType == XmlNodeType.Text)
                        {
                            segment.Add(CreateText(item.InnerText));
                        }

                        if (item.NodeType == XmlNodeType.Element)
                        {
                            segment.Add(CreatePhTag(item.Name, item, source));
                        }

                        if (item.NodeType == XmlNodeType.Whitespace)
                        {
                            segment.Add(CreateText(" "));
                        }
                    }
                }
                return(segment);
            }
            catch (Exception ex)
            {
                Log.Logger.Error($"CreateSegment method: {ex.Message}\n {ex.StackTrace}");
            }
            return(null);
        }
        // helper function for creating segment objects
        private ISegment CreateSegment(XmlNode segNode, ISegmentPairProperties pair)
        {
            ISegment segment = ItemFactory.CreateSegment(pair);

            foreach (XmlNode item in segNode.ChildNodes)
            {
                if (item.NodeType == XmlNodeType.Text)
                {
                    segment.Add(CreateText(item.InnerText));
                }

                if (item.NodeType == XmlNodeType.Element)
                {
                    segment.Add(CreateTagPair(item));
                }
            }
            return(segment);
        }
Beispiel #8
0
        // helper function for creating paragraph units
        private IParagraphUnit CreateParagraphUnit(XmlNode xmlUnit)
        {
            // create paragraph unit object
            IParagraphUnit paragraphUnit = ItemFactory.CreateParagraphUnit(LockTypeFlags.Unlocked);

            // create paragraph unit context

            segId++;
            string id = Convert.ToString(segId);

            paragraphUnit.Properties.Contexts = CreateContext("Paragraph", id);



            // create segment pair object
            ISegmentPairProperties segmentPairProperties = ItemFactory.CreateSegmentPairProperties();
            ITranslationOrigin     tuOrg = ItemFactory.CreateTranslationOrigin();

            // assign the appropriate confirmation level to the segment pair
            segmentPairProperties.ConfirmationLevel = CreateConfirmationLevel(xmlUnit);
            tuOrg.MatchPercent = this.CreateMatchValue();


            // add source segment to paragraph unit
            ISegment srcSegment = CreateSegment(xmlUnit.SelectSingleNode("tuv[1]/seg"), segmentPairProperties);

            paragraphUnit.Source.Add(srcSegment);

            // add target segment to paragraph unit
            ISegment trgSegment = CreateSegment(xmlUnit.SelectSingleNode("tuv[2]/seg"), segmentPairProperties);

            paragraphUnit.Target.Add(trgSegment);


            if (tuOrg.MatchPercent > 0)
            {
                tuOrg.OriginType = DefaultTranslationOrigin.TranslationMemory;
            }

            segmentPairProperties.TranslationOrigin = tuOrg;


            return(paragraphUnit);
        }
Beispiel #9
0
        // helper function for creating segment objects
        private ISegment CreateSegment(XmlNode segNode, ISegmentPairProperties pair, bool source)
        {
            ISegment segment = ItemFactory.CreateSegment(pair);

            if (source)
            {
                _srcSegment = segment;


                srcSegmentTagCount = 0;
                if (totalTagCount < tmpTotalTagCount)
                {
                    totalTagCount = tmpTotalTagCount;
                }
            }
            else
            {
                _trgSegment   = segment;
                totalTagCount = totalTagCount - srcSegmentTagCount;
            }
            if (segNode != null)
            {
                foreach (XmlNode item in segNode.ChildNodes)
                {
                    if (item.NodeType == XmlNodeType.Text)
                    {
                        segment.Add(CreateText(item.InnerText));
                    }

                    if (item.NodeType == XmlNodeType.Element)
                    {
                        segment.Add(CreatePhTag(item.Name, item, source));
                    }

                    if (item.NodeType == XmlNodeType.Whitespace)
                    {
                        segment.Add(CreateText(" "));
                    }
                }
            }

            return(segment);
        }
Beispiel #10
0
        // helper function for creating paragraph units
        private IParagraphUnit CreateParagraphUnit(XmlNode xmlUnit)
        {
            // create paragraph unit object
            IParagraphUnit paragraphUnit = ItemFactory.CreateParagraphUnit(LockTypeFlags.Unlocked);

            // create paragraph unit context
            var selectSingleNode = xmlUnit.SelectSingleNode("./@blockId");

            if (selectSingleNode != null)
            {
                string id = selectSingleNode.InnerText;
                paragraphUnit.Properties.Contexts = CreateContext(id);
            }


            var xmlNodeList = xmlUnit.SelectNodes("segment");

            if (xmlNodeList != null)
            {
                foreach (XmlNode item in xmlNodeList)
                {
                    // create segment pair object
                    ISegmentPairProperties segmentPairProperties = ItemFactory.CreateSegmentPairProperties();
                    ITranslationOrigin     tuOrg = ItemFactory.CreateTranslationOrigin();

                    // assign the appropriate confirmation level to the segment pair
                    segmentPairProperties.ConfirmationLevel = CreateConfirmationLevel(item);
                    tuOrg.MatchPercent = CreateMatchValue(item);



                    // add source segment to paragraph unit
                    ISegment srcSegment = CreateSegment(item.SelectSingleNode("source"), segmentPairProperties, true);
                    paragraphUnit.Source.Add(srcSegment);
                    // add target segment to paragraph unit if available
                    if (item.SelectSingleNode("target") != null)
                    {
                        ISegment trgSegment = CreateSegment(item.SelectSingleNode("target"), segmentPairProperties, false);
                        paragraphUnit.Target.Add(trgSegment);
                    }
                    else
                    {
                        var singleNode = item.SelectSingleNode("source");
                        if (singleNode != null)
                        {
                            singleNode.InnerText = "";
                        }
                        ISegment trgSegment = CreateSegment(item.SelectSingleNode("source"), segmentPairProperties, false);
                        paragraphUnit.Target.Add(trgSegment);
                    }

                    if (tuOrg.MatchPercent > 0)
                    {
                        tuOrg.OriginType = DefaultTranslationOrigin.TranslationMemory;
                    }


                    segmentPairProperties.TranslationOrigin = tuOrg;

                    //Add comments
                    if (item.SelectSingleNode("comments") != null)
                    {
                        paragraphUnit.Properties.Comments = CreateComment(item.SelectSingleNode("comments"));
                    }
                }
            }

            return(paragraphUnit);
        }
 // enclose each segment in a SPAN tag pair
 public override void SegmentStart(ISegmentPairProperties properties)
 {
     _preview.Write("<span id=\"" + properties.Id.Id + "\" onClick=\"window.external.SelectSegment('" + _paragraphUnitId + "','" + properties.Id.Id + "')\" >");
 }
Beispiel #12
0
        private List <IParagraphUnit> CreateParagraphUnit(XmlNode xmlUnit)
        {
            List <IParagraphUnit> units = new List <IParagraphUnit>();

            var xmlNodes = xmlUnit.SelectNodes("x:trans-unit", nsmgr);

            foreach (XmlNode xmlNode in xmlNodes)
            {
                // Create paragraph unit object
                IParagraphUnit paragraphUnit = ItemFactory.CreateParagraphUnit(LockTypeFlags.Unlocked);

                if (xmlNode != null)
                {
                    var id     = xmlNode.Attributes["id"];
                    var paraId = xmlNode.Attributes["m:para-id"];

                    if (id != null && paraId != null)
                    {
                        paragraphUnit.Properties.Contexts = CreateContext(id.Value, paraId.Value);
                    }

                    // Create segment pair object
                    ISegmentPairProperties segmentPairProperties = ItemFactory.CreateSegmentPairProperties();
                    ITranslationOrigin     tuOrg = ItemFactory.CreateTranslationOrigin();

                    // Assign the appropriate confirmation level to the segment pair
                    segmentPairProperties.ConfirmationLevel = CreateConfirmationLevel(xmlNode);
                    tuOrg.MatchPercent = CreateMatchValue(xmlNode);

                    // Add source segment to paragraph unit
                    ISegment srcSegment = CreateSegment(xmlNode.SelectSingleNode("x:source", nsmgr), segmentPairProperties, true);

                    paragraphUnit.Source.Add(srcSegment);

                    // Add target segment to paragraph unit if available
                    if (xmlNode.SelectSingleNode("x:target", nsmgr) != null)
                    {
                        ISegment trgSegment = CreateSegment(xmlNode.SelectSingleNode("x:target", nsmgr), segmentPairProperties, false);

                        // Check if locked
                        var locked = xmlNode.Attributes["m:locked"];
                        if (locked != null && locked.Value == "true")
                        {
                            trgSegment.Properties.IsLocked = true;
                        }

                        // Check if target empty and look for alt-trans
                        if (trgSegment.Count == 0)
                        {
                            var alttrans = xmlNode.SelectSingleNode("x:alt-trans/x:target", nsmgr);
                            if (alttrans != null && !string.IsNullOrWhiteSpace(alttrans.InnerText))
                            {
                                PopulateSegment(trgSegment, alttrans, false);

                                var alttransOrigin = xmlNode.SelectSingleNode("x:alt-trans", nsmgr).Attributes["origin"];
                                if (alttransOrigin != null)
                                {
                                    var origin = alttransOrigin.Value;
                                    if (origin.Contains("machine") || origin.Contains("mt"))
                                    {
                                        tuOrg.OriginType = DefaultTranslationOrigin.MachineTranslation;
                                    }
                                    else if (origin.Contains("tm"))
                                    {
                                        tuOrg.OriginType = DefaultTranslationOrigin.TranslationMemory;
                                    }

                                    tuOrg.OriginSystem = origin;
                                }
                            }
                        }

                        paragraphUnit.Target.Add(trgSegment);
                    }
                    else
                    {
                        var singleNode = xmlNode.SelectSingleNode("x:source", nsmgr);
                        if (singleNode != null)
                        {
                            singleNode.InnerText = "";
                        }
                        ISegment trgSegment = CreateSegment(xmlNode.SelectSingleNode("x:source", nsmgr), segmentPairProperties, false);
                        paragraphUnit.Target.Add(trgSegment);
                    }

                    var transOrigin = xmlNode.Attributes["m:trans-origin"];
                    if (transOrigin.Value != null && transOrigin.Value != "null")
                    {
                        tuOrg.OriginType = transOrigin.Value;
                    }

                    segmentPairProperties.TranslationOrigin = tuOrg;

                    // Add comments
                    if (xmlNode.SelectSingleNode("m:comment", nsmgr) != null)
                    {
                        paragraphUnit.Properties.Comments = CreateComment(xmlNode.SelectSingleNode("m:comment", nsmgr));
                    }
                }

                // Clear any ids on the queue
                tagIds.Clear();

                units.Add(paragraphUnit);
            }

            return(units);
        }
        public void WriteEntry(string segmentId, string source, string target, List <string> comments, ISegmentPairProperties segmentProperties)
        {
            //increase current line number
            _currentLine++;
            UInt32Value color = GetSegmentMatchColor(segmentProperties.TranslationOrigin);

            InsertTextToCell("A", _currentLine, segmentId, color);
            InsertTextToCell("B", _currentLine, source, color);
            InsertTextToCell("C", _currentLine, target, color);

            //Extract comments
            if (comments.Count > 0)
            {
                string commentList = "";
                foreach (string item in comments)
                {
                    commentList += item + "\r\n";
                }
                InsertTextToCell("D", _currentLine, commentList, color);
            }
            else
            {
                //Insert empty cell to wrap other cells
                InsertTextToCell("D", _currentLine, " ", color);
            }
        }
Beispiel #14
0
        // helper function for creating segment objects
        private ISegment CreateSegment(XmlNode segNode, ISegmentPairProperties pair, bool source)
        {
            int i = 1;

            ISegment segment = ItemFactory.CreateSegment(pair);

           
            if (source)
            {
                _srcSegmentTagCount = 0;
                if (_totalTagCount < _tmpTotalTagCount)
                {
                    _totalTagCount = _tmpTotalTagCount;
                }
            }
            else
            {
                _totalTagCount = _totalTagCount - _srcSegmentTagCount;
            }


            foreach (XmlNode item in segNode.ChildNodes)
            {
                if (item.NodeType == XmlNodeType.Text)
                {
                    segment.Add(CreateText(item.InnerText));
                }

                if (item.NodeType == XmlNodeType.Element)
                {
                    segment.Add(CreatePhTag(item.Name, item, i, source));
                    i++;
                }
            }
            return segment;
        }
        public void SetUp()
        {
            _itemFactoryMock       = A.Fake <IDocumentItemFactory>();
            _propertiesFactoryMock = A.Fake <IPropertiesFactory>();

            _paragraphUnitMock = A.Fake <IParagraphUnit>();
            A.CallTo(() => _itemFactoryMock.CreateParagraphUnit(A <LockTypeFlags> .Ignored)).Returns(_paragraphUnitMock);

            _paragraphSourceMock = A.Fake <IParagraph>();
            A.CallTo(() => _paragraphUnitMock.Source).Returns(_paragraphSourceMock);

            _paragraphTargetMock = A.Fake <IParagraph>();
            A.CallTo(() => _paragraphUnitMock.Target).Returns(_paragraphTargetMock);

            _segmentPairPropertiesMock = A.Fake <ISegmentPairProperties>();
            A.CallTo(() => _itemFactoryMock.CreateSegmentPairProperties()).Returns(_segmentPairPropertiesMock);

            _translationOriginMmock = A.Fake <ITranslationOrigin>();
            A.CallTo(() => _itemFactoryMock.CreateTranslationOrigin()).Returns(_translationOriginMmock);

            _sourceSegment0Mock = A.Fake <ISegment>();
            _targetSegment0Mock = A.Fake <ISegment>();
            _sourceSegment1Mock = A.Fake <ISegment>();
            _targetSegment1Mock = A.Fake <ISegment>();
            _sourceSegment2Mock = A.Fake <ISegment>();
            _targetSegment2Mock = A.Fake <ISegment>();
            _sourceSegment3Mock = A.Fake <ISegment>();
            _targetSegment3Mock = A.Fake <ISegment>();
            A.CallTo(() => _itemFactoryMock.CreateSegment(A <ISegmentPairProperties> .Ignored))
            .ReturnsNextFromSequence(
                _sourceSegment0Mock, _targetSegment0Mock,
                _sourceSegment1Mock, _targetSegment1Mock,
                _sourceSegment2Mock, _targetSegment2Mock,
                _sourceSegment3Mock, _targetSegment3Mock
                );

            var textPropertiesMsgidMock = A.Fake <ITextProperties>();

            A.CallTo(() => _propertiesFactoryMock.CreateTextProperties("message id")).Returns(textPropertiesMsgidMock);

            var textPropertiesMsgidPluralMock = A.Fake <ITextProperties>();

            A.CallTo(() => _propertiesFactoryMock.CreateTextProperties("message id plural"))
            .Returns(textPropertiesMsgidPluralMock);

            var textPropertiesMsgstrMock = A.Fake <ITextProperties>();

            A.CallTo(() => _propertiesFactoryMock.CreateTextProperties("message string"))
            .Returns(textPropertiesMsgstrMock);

            var textPropertiesMsgstr0Mock = A.Fake <ITextProperties>();

            A.CallTo(() => _propertiesFactoryMock.CreateTextProperties("message string 0"))
            .Returns(textPropertiesMsgstr0Mock);

            var textPropertiesMsgstr1Mock = A.Fake <ITextProperties>();

            A.CallTo(() => _propertiesFactoryMock.CreateTextProperties("message string 1"))
            .Returns(textPropertiesMsgstr1Mock);

            var textPropertiesMsgstr2Mock = A.Fake <ITextProperties>();

            A.CallTo(() => _propertiesFactoryMock.CreateTextProperties("message string 2"))
            .Returns(textPropertiesMsgstr2Mock);

            _textMsgidMock = A.Fake <IText>();
            A.CallTo(() => _itemFactoryMock.CreateText(textPropertiesMsgidMock)).Returns(_textMsgidMock);

            _textMsgidPluralMock = A.Fake <IText>();
            A.CallTo(() => _itemFactoryMock.CreateText(textPropertiesMsgidPluralMock)).Returns(_textMsgidPluralMock);

            _textMsgstrMock = A.Fake <IText>();
            A.CallTo(() => _itemFactoryMock.CreateText(textPropertiesMsgstrMock)).Returns(_textMsgstrMock);

            _textMsgstr0Mock = A.Fake <IText>();
            A.CallTo(() => _itemFactoryMock.CreateText(textPropertiesMsgstr0Mock)).Returns(_textMsgstr0Mock);

            _textMsgstr1Mock = A.Fake <IText>();
            A.CallTo(() => _itemFactoryMock.CreateText(textPropertiesMsgstr1Mock)).Returns(_textMsgstr1Mock);

            _textMsgstr2Mock = A.Fake <IText>();
            A.CallTo(() => _itemFactoryMock.CreateText(textPropertiesMsgstr2Mock)).Returns(_textMsgstr2Mock);
        }
        public void WriteEntry(string segmentId, string source, string target, List<string> comments, ISegmentPairProperties segmentProperties)
        {
            //increase current line number
            _currentLine++;
            UInt32Value color = GetSegmentMatchColor(segmentProperties.TranslationOrigin);

            InsertTextToCell("A", _currentLine, segmentId, color);
            InsertTextToCell("B", _currentLine, source, color);
            InsertTextToCell("C", _currentLine, target, color);

            //Extract comments
            if (comments.Count > 0)
            {
                string commentList = "";
                foreach (string item in comments)
                {
                    commentList += item + "\r\n";
                }
                InsertTextToCell("D", _currentLine, commentList, color);
            }
            else
            {
                //Insert empty cell to wrap other cells
                InsertTextToCell("D", _currentLine, " ", color);
            }
        }
Beispiel #17
0
        // helper function for creating segment objects
        private ISegment CreateSegment(XmlNode segNode, ISegmentPairProperties pair)
        {
            int i = 1;

            ISegment segment = ItemFactory.CreateSegment(pair);

            foreach (XmlNode item in segNode.ChildNodes)
            {
                if (item.NodeType == XmlNodeType.Text)
                {
                    segment.Add(CreateText(item.InnerText));
                }

                if (item.NodeType == XmlNodeType.Element)
                {
                    segment.Add(CreatePhTag(item.Name, item, i));
                    i++;
                }
            }
            return segment;
        }
Beispiel #18
0
        private void SwitchTranslation(ISegmentPair segmentPair, ISegment updatedSegment, ISegmentPairProperties updatedProperties)
        {
            segmentPair.Target.Clear();
            foreach (var item in updatedSegment)
            {
                segmentPair.Target.Add(item.Clone() as IAbstractMarkupData);
            }

            _studioDocument.UpdateSegmentPair(segmentPair);


            segmentPair.Properties.ConfirmationLevel = updatedProperties.ConfirmationLevel;
            segmentPair.Properties.TranslationOrigin = updatedProperties.TranslationOrigin?.Clone() as ITranslationOrigin;
            segmentPair.Properties.IsLocked          = updatedProperties.IsLocked;
            _studioDocument.UpdateSegmentPairProperties(segmentPair, segmentPair.Properties);
        }
Beispiel #19
0
 // enclose each segment in a SPAN tag pair
 public override void SegmentStart(ISegmentPairProperties properties)
 {
     _preview.Write("<span>");
 }
 public ISegment CreateSegment(ISegmentPairProperties segmentPairProperties)
 {
     return(ItemFactory.CreateSegment(segmentPairProperties));
 }