}
    protected void callback() throws ServiceException {        StringBuilder successes = new StringBuilder();                // iterate over the local items and perform the requested operation        for (int id : mIds) {            switch (mOp) {                case UPDATE:                    if (!mIidFolder.belongsTo(getMailbox()))                        throw ServiceException.INVALID_REQUEST("cannot move item between mailboxes", null);                                        if (mIidFolder.getId() > 0)                        getMailbox().move(getOpCtxt(), id, mType, mIidFolder.getId(), mTcon);                    if (mTags != null || mFlags != null)                        getMailbox().setTags(getOpCtxt(), id, mType, mFlags, mTags, mTcon);                    if (mColor >= 0)                        getMailbox().setColor(getOpCtxt(), id, mType, mColor);                    if (mFields != null)                        getMailbox().modifyContact(getOpCtxt(), id, mFields, true);                    break;                default:                    throw ServiceException.INVALID_REQUEST("unknown operation: " + mOp, null);            }                        successes.append(successes.length() > 0 ? "," : "").append(mZc.formatItemId(id));        }        mResult = successes.toString();    }