data.modMetadata = mbox.getOperationChangeID(); data.modContent  = mbox.getOperationChangeID();
data.contentChanged(mbox);
    static Contact create(int id, Folder folder, Map attrs, String tags) throws ServiceException {        if (folder == null || !folder.canContain(TYPE_CONTACT))            throw MailServiceException.CANNOT_CONTAIN();        if (attrs == null || attrs.isEmpty())            throw ServiceException.INVALID_REQUEST("contact must have attributes", null);        Mailbox mbox = folder.getMailbox();        mbox.updateContactCount(1);        UnderlyingData data = new UnderlyingData();        data.id          = id;        data.type        = TYPE_CONTACT;        data.folderId    = folder.getId();        data.indexId     = id;        data.date        = mbox.getOperationTimestamp();        data.tags        = Tag.tagsToBitmask(tags);        data.sender      = getFileAsString(attrs);        data.metadata    = encodeMetadata(attrs);        data.modMetadata = mbox.getOperationChangeID();        data.modContent  = mbox.getOperationChangeID();        DbMailItem.create(mbox, data);        Contact con = new Contact(mbox, data);        con.finishCreation(null);        if (con.mAttributes.isEmpty())            throw ServiceException.INVALID_REQUEST("contact must have attributes", null);        return con;    }