using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AIProofread.core
{
    public abstract class CorrectionRangeAbstract
    {
        protected List<char> chars = new List<char>();

        public abstract string Text { get; set; }

        public abstract int Start { get; set; }

        public abstract int End { get; set; }

        public abstract int Count { get; }

        public CorrectionRangeAbstract(string text, int _s, int _e = -1)
        {
            Start = _s;
            End = _e;
        }

        public CorrectionRangeAbstract()
        {
        }

        public abstract int GetStartPosition(bool containUnvisibleCharacter);

        public abstract int GetEndPosition(bool containUnvisibleCharacter);

        public override string ToString()
        {
            return $"{Text}|{Start},{End}";
        }
    }
}

