@Override
    public void beginEditInterval(int start, int end) throws AlreadyEditingException
    {
        validateInterval(start, end);

        if (editedBy != null)
            throw new AlreadyEditingException(this);

        if (editedIntervals.isEmpty())
            editionStarted();

        for (Interval i : editedIntervals)
            if (i.start < end && start < i.end)
                throw new AlreadyEditingException(this);

        editedIntervals.add(new Interval(start, end));
    }