public CodeLine(int index, int iFrom, int iDest, final CodeFile file)
    {
        this.index = index;
        this.code = file.getCode();
        // [from, dest)
        this.from = iFrom < 0 ? 0 : iFrom;
        this.dest = iDest < iFrom ? iFrom : iDest;

        int fromValid = this.from;
        int destValid = this.dest;
        for (int i = fromValid; i < iDest; ++i)
        {
            char c = code.charAt(i);
            if (isEmpty(c))
                ++fromValid;
            else
                break;
        }
        for (int i = destValid - 1; i >= fromValid; --i)
        {
            char c = code.charAt(i);
            if (isEmpty(c))
                --destValid;
            else
                break;
        }
    }