use of com.zimbra.cs.redolog.op.FixCalendarItemPriority in project zm-mailbox by Zimbra.
the class Mailbox method fixCalendarItemPriority.
public int fixCalendarItemPriority(OperationContext octxt, CalendarItem calItem) throws ServiceException {
FixCalendarItemPriority redoRecorder = new FixCalendarItemPriority(getId(), calItem.getId());
boolean success = false;
try {
beginTransaction("fixupCalendarItemPriority", octxt, redoRecorder);
int flags = calItem.mData.getFlags() & ~(Flag.BITMASK_HIGH_PRIORITY | Flag.BITMASK_LOW_PRIORITY);
Invite[] invs = calItem.getInvites();
if (invs != null) {
for (Invite cur : invs) {
String method = cur.getMethod();
if (method.equals(ICalTok.REQUEST.toString()) || method.equals(ICalTok.PUBLISH.toString())) {
if (cur.isHighPriority()) {
flags |= Flag.BITMASK_HIGH_PRIORITY;
}
if (cur.isLowPriority()) {
flags |= Flag.BITMASK_LOW_PRIORITY;
}
}
}
}
int numFixed = 0;
if (flags != calItem.mData.getFlags()) {
ZimbraLog.calendar.info("Fixed calendar item " + calItem.getId());
markItemModified(calItem, Change.INVITE);
calItem.mData.setFlags(flags);
calItem.snapshotRevision();
calItem.saveMetadata();
success = true;
numFixed = 1;
}
return numFixed;
} finally {
endTransaction(success);
}
}
Aggregations