/// <summary> /// Creates a new Token Pair /// </summary> public TokenPair(IComparable type, CharacterLocation tokenLocation, IMorestachioExpression expression, EmbeddedInstructionOrigin isEmbeddedToken = EmbeddedInstructionOrigin.Self) : this(type, null, tokenLocation, expression, null, isEmbeddedToken) { }
/// <summary> /// Creates a new Token Pair /// </summary> public TokenPair(IComparable type, string value, CharacterLocation tokenLocation, EmbeddedInstructionOrigin isEmbeddedToken = EmbeddedInstructionOrigin.Self) : this(type, value, tokenLocation, null, null, isEmbeddedToken) { }
/// <inheritdoc /> protected override void DeSerializeXml(XmlReader reader) { base.DeSerializeXml(reader); reader.ReadStartElement(); //<TextOperation> AssertElement(reader, "TextOperation"); var embeddedState = reader.GetAttribute(nameof(EmbeddedInstructionOrigin)); if (!string.IsNullOrEmpty(embeddedState)) { EmbeddedInstructionOrigin = (EmbeddedInstructionOrigin)Enum.Parse(typeof(EmbeddedInstructionOrigin), embeddedState); } var attribute = reader.GetAttribute(nameof(ITextOperation.TextOperationType)); switch (attribute) { case "LineBreak": Operation = new AppendLineBreakTextOperation(); break; case "TrimLineBreaks": Operation = new TrimLineBreakTextOperation(); break; default: throw new InvalidOperationException($"The TextOperation '{attribute}' is invalid"); } Operation.ReadXml(reader); reader.ReadEndElement(); //</TextOperation> }
/// <summary> /// /// </summary> public TextEditDocumentItem(CharacterLocation location, ITextOperation operation, EmbeddedInstructionOrigin embeddedInstructionOrigin, IEnumerable <ITokenOption> tagCreationOptions) : base(location, tagCreationOptions) { Operation = operation ?? throw new ArgumentNullException(nameof(operation)); EmbeddedInstructionOrigin = embeddedInstructionOrigin; }
/// <summary> /// Creates a new Token Pair /// </summary> public TokenPair(IComparable type, string value, CharacterLocation tokenLocation, IMorestachioExpression expression, IEnumerable <ITokenOption> tokenOptions, EmbeddedInstructionOrigin isEmbeddedToken = EmbeddedInstructionOrigin.Self) { Type = type; MorestachioExpression = expression; var tokenOps = tokenOptions?.ToArray(); if (tokenOps?.Length > 0) { TokenOptions = tokenOps; } else { TokenOptions = null; } IsEmbeddedToken = isEmbeddedToken; TokenLocation = tokenLocation; Value = value; }
/// <inheritdoc /> protected TextEditDocumentItem(SerializationInfo info, StreamingContext c) : base(info, c) { EmbeddedInstructionOrigin = (EmbeddedInstructionOrigin)info.GetValue(nameof(EmbeddedInstructionOrigin), typeof(EmbeddedInstructionOrigin)); Operation = info.GetValue(nameof(Operation), typeof(ITextOperation)) as ITextOperation; }