Author: norman
Date: Fri Apr 29 16:35:35 2011
New Revision: 1097876
URL: http://svn.apache.org/viewvc?rev=1097876&view=rev
Log:
Allow to support User Flags. See MAILBOX-63
Modified:
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearches.java
Modified:
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearches.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearches.java?rev=1097876&r1=1097875&r2=1097876&view=diff
==============================================================================
---
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearches.java
(original)
+++
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearches.java
Fri Apr 29 16:35:35 2011
@@ -119,6 +119,9 @@ public class MessageSearches {
} else if (criterion instanceof SearchQuery.FlagCriterion) {
result = matches((SearchQuery.FlagCriterion) criterion, message,
recentMessageUids);
+ } else if (criterion instanceof SearchQuery.CustomFlagCriterion) {
+ result = matches((SearchQuery.CustomFlagCriterion) criterion,
message,
+ recentMessageUids);
} else if (criterion instanceof SearchQuery.TextCriterion) {
result = matches((SearchQuery.TextCriterion) criterion, message);
} else if (criterion instanceof SearchQuery.AllCriterion) {
@@ -259,6 +262,14 @@ public class MessageSearches {
return result;
}
+ private boolean matches(SearchQuery.CustomFlagCriterion criterion,
+ Message<?> message, final Collection<Long> recentMessageUids) {
+ final SearchQuery.BooleanOperator operator = criterion.getOperator();
+ final boolean isSet = operator.isSet();
+ final String flag = criterion.getFlag();
+ final boolean result = isSet == message.createFlags().contains(flag);
+ return result;
+ }
private boolean matches(SearchQuery.UidCriterion criterion, Message<?>
message) {
final SearchQuery.InOperator operator = criterion.getOperator();
final NumericRange[] ranges = operator.getRange();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]