data.modMetadata = mbox.getOperationChangeID(); data.modContent  = mbox.getOperationChangeID();
data.contentChanged(mbox);
    static Tag create(Mailbox mbox, int id, String name, byte color)    throws ServiceException {        if (id < TAG_ID_OFFSET || id >= TAG_ID_OFFSET + MAX_TAG_COUNT)            throw MailServiceException.INVALID_ID(id);        Folder tagFolder = mbox.getFolderById(Mailbox.ID_FOLDER_TAGS);        if (tagFolder == null)            throw MailServiceException.NO_SUCH_FOLDER(Mailbox.ID_FOLDER_TAGS);        name = validateTagName(name);        try {            // if we can successfully get a tag with that name, we've got a naming conflict            mbox.getTagByName(name);            throw MailServiceException.ALREADY_EXISTS(name);        } catch (MailServiceException.NoSuchItemException nsie) {}        UnderlyingData data = new UnderlyingData();        data.id          = id;        data.type        = MailItem.TYPE_TAG;        data.folderId    = tagFolder.getId();        data.date        = mbox.getOperationTimestamp();        data.subject     = name;        data.metadata    = encodeMetadata(color);        data.modMetadata = mbox.getOperationChangeID();        data.modContent  = mbox.getOperationChangeID();        DbMailItem.create(mbox, data);        Tag tag = new Tag(mbox, data);        tag.finishCreation(null);        return tag;    }