@Override
    public boolean equals(@Nullable Object o) {
        if (this == o) {
            return true;
        }

        if (!(o instanceof StringMultimapBuilder)) {
            return false;
        }

        final StringMultimapBuilder<?, ?, ?, ?> that = (StringMultimapBuilder<?, ?, ?, ?>) o;
        if (size() != that.size()) {
            return false;
        }
        if (isEmpty() && that.isEmpty()) {
            return true;
        }

        final CONTAINER getters = getters();
        if (getters != null) {
            return getters.equals(that.getters());
        }
        return false;
    }
Makes the current {@link #delegate()} a new {@link #parent()} and clears the current {@link #delegate()}.
Call this method when you create a new object derived from the {@link #delegate()},
so that any further modifications to this builder do not break the immutability of the created object.

@return the {@link #delegate()}
core/src/main/java/com/linecorp/armeria/common/StringMultimapBuilder.java