sb.append("("); // start of flag_list Flags.Flag[] sf = flags.getSystemFlags(); // get the system flags boolean first = true; for (int i = 0; i < sf.length; i++) {
StringBuilder sb = new StringBuilder("("); // start of flag_list Flags.Flag[] sf = flags.getSystemFlags(); // get the system flags boolean first = true; for (int i = 0; i < sf.length; i++) {
Flags.Flag[] sf = flags.getSystemFlags();
Flags.Flag[] sf = flags.getSystemFlags();
/** * Gets the flag filtered on. * * @return the flag, not null */ public Flag getFlag() { // safe because the Flags(Flag) does system flags, // and James code also constructs FlagCriterion only with system flags return flag.getSystemFlags()[0]; }
public static final HumanReadableText permanentFlags(Flags flags) { String text; if (flags.getSystemFlags() != null && flags.getSystemFlags().length > 0) { text = "Limited"; } else { text = "No permanent flags permitted"; } return new HumanReadableText("org.apache.james.imap.PERMANENT_FLAGS", text); }
/** * Gets an iterator for the system flags changed. * * @return <code>Flags.Flag</code> <code>Iterator</code>, not null */ public Iterator<Flags.Flag> systemFlagIterator() { return Arrays.asList(modifiedFlags.getSystemFlags()).iterator(); }
public static final HumanReadableText permanentFlags(Flags flags) { String text; if (flags.getSystemFlags() != null && flags.getSystemFlags().length > 0) { text = "Limited"; } else { text = "No permanent flags permitted"; } return new HumanReadableText("org.apache.james.imap.PERMANENT_FLAGS", text); }
protected Argument flag(FlagTerm term) throws SearchException { boolean set = term.getTestSet(); Argument result = new Argument(); Flags flags = term.getFlags(); Flags.Flag[] sf = flags.getSystemFlags(); String[] uf = flags.getUserFlags(); if (sf.length == 0 && uf.length == 0) throw new SearchException("Invalid FlagTerm"); for (int i = 0; i < sf.length; i++) { if (sf[i] == Flags.Flag.DELETED) result.writeAtom(set ? "DELETED": "UNDELETED"); else if (sf[i] == Flags.Flag.ANSWERED) result.writeAtom(set ? "ANSWERED": "UNANSWERED"); else if (sf[i] == Flags.Flag.DRAFT) result.writeAtom(set ? "DRAFT": "UNDRAFT"); else if (sf[i] == Flags.Flag.FLAGGED) result.writeAtom(set ? "FLAGGED": "UNFLAGGED"); else if (sf[i] == Flags.Flag.RECENT) result.writeAtom(set ? "RECENT": "OLD"); else if (sf[i] == Flags.Flag.SEEN) result.writeAtom(set ? "SEEN": "UNSEEN"); } for (int i = 0; i < uf.length; i++) { result.writeAtom(set ? "KEYWORD" : "UNKEYWORD"); result.writeAtom(uf[i]); } return result; }
protected Argument flag(FlagTerm term) throws SearchException { boolean set = term.getTestSet(); Argument result = new Argument(); Flags flags = term.getFlags(); Flags.Flag[] sf = flags.getSystemFlags(); String[] uf = flags.getUserFlags(); if (sf.length == 0 && uf.length == 0) throw new SearchException("Invalid FlagTerm"); for (int i = 0; i < sf.length; i++) { if (sf[i] == Flags.Flag.DELETED) result.writeAtom(set ? "DELETED": "UNDELETED"); else if (sf[i] == Flags.Flag.ANSWERED) result.writeAtom(set ? "ANSWERED": "UNANSWERED"); else if (sf[i] == Flags.Flag.DRAFT) result.writeAtom(set ? "DRAFT": "UNDRAFT"); else if (sf[i] == Flags.Flag.FLAGGED) result.writeAtom(set ? "FLAGGED": "UNFLAGGED"); else if (sf[i] == Flags.Flag.RECENT) result.writeAtom(set ? "RECENT": "OLD"); else if (sf[i] == Flags.Flag.SEEN) result.writeAtom(set ? "SEEN": "UNSEEN"); } for (int i = 0; i < uf.length; i++) { result.writeAtom(set ? "KEYWORD" : "UNKEYWORD"); result.writeAtom(uf[i]); } return result; }
public boolean flagsChanged() { if (modifiedFlags.getSystemFlags().length > 0 || modifiedFlags.getUserFlags().length > 0) { return true; } else { return false; } }
public Keywords fromFlags(Flags flags) { return fromSet(Stream.concat( Stream.of(flags.getUserFlags()) .flatMap(this::asKeyword), Stream.of(flags.getSystemFlags()) .map(Keyword::fromFlag)) .collect(Guavate.toImmutableSet())); }
public static boolean flagsChanged(Flags flagsOld, Flags flagsNew) { Flags modifiedFlags = new Flags(); addModifiedSystemFlags(flagsOld, flagsNew, modifiedFlags); addModifiedUserFlags(flagsOld, flagsNew, modifiedFlags); if (modifiedFlags.getSystemFlags().length > 0 || modifiedFlags.getUserFlags().length > 0) { return true; } else { return false; } }
@Test public void applyStateShouldReturnNewFlagsWhenKeywords() { ImmutableMap<String, Boolean> keywords = ImmutableMap.of( "$Answered", true, "$Flagged", true); UpdateMessagePatch testee = UpdateMessagePatch.builder() .keywords(keywords) .build(); Flags isSeen = new Flags(Flags.Flag.SEEN); assertThat(testee.applyToState(isSeen).getSystemFlags()) .containsExactly(Flags.Flag.ANSWERED, Flags.Flag.FLAGGED); }
@Test public void applyStateShouldReturnFlagsWithDeletedFlagWhenKeywordsDoNotContainDeletedButOriginFlagsHaveDeleted() { ImmutableMap<String, Boolean> keywords = ImmutableMap.of( "$Answered", Keyword.FLAG_VALUE); UpdateMessagePatch testee = UpdateMessagePatch.builder() .keywords(keywords) .build(); Flags isSeen = new Flags(Flags.Flag.DELETED); assertThat(testee.applyToState(isSeen).getSystemFlags()) .containsOnly(Flags.Flag.DELETED, Flags.Flag.ANSWERED); }
@Test public void applyStateShouldReturnRemoveFlagsWhenKeywords() { UpdateMessagePatch testee = UpdateMessagePatch.builder() .keywords(ImmutableMap.of()) .build(); Flags isSeen = new Flags(Flags.Flag.SEEN); assertThat(testee.applyToState(isSeen).getSystemFlags()).isEmpty(); }
@Test public void applyStateShouldReturnFlagsWithoutUserFlagWhenKeywordsContainForwarded() { ImmutableMap<String, Boolean> keywords = ImmutableMap.of( "$Answered", Keyword.FLAG_VALUE, FORWARDED, Keyword.FLAG_VALUE); UpdateMessagePatch testee = UpdateMessagePatch.builder() .keywords(keywords) .build(); Flags isSeen = new Flags(Flags.Flag.SEEN); assertThat(testee.applyToState(isSeen).getSystemFlags()) .doesNotContain(Flags.Flag.USER); }
@Test public void applyToStateShouldResetSpecifiedOldKeywords() { UpdateMessagePatch testee = UpdateMessagePatch.builder() .isAnswered(false) .build(); Flags isSeen = new Flags(Flags.Flag.ANSWERED); assertThat(testee.applyToState(isSeen).getSystemFlags()) .containsExactly(); }
@Test public void applyToStateShouldNotResetSystemFlagsWhenUsingOldKeywords() { UpdateMessagePatch testee = UpdateMessagePatch.builder() .isAnswered(true) .build(); Flags isSeen = new Flags(Flags.Flag.SEEN); assertThat(testee.applyToState(isSeen).getSystemFlags()) .containsExactly(Flags.Flag.ANSWERED, Flags.Flag.SEEN); }
@Test public void applyToStateShouldNotModifySpecifiedOldKeywordsWhenAlreadySet() { UpdateMessagePatch testee = UpdateMessagePatch.builder() .isAnswered(true) .build(); Flags isSeen = new Flags(Flags.Flag.ANSWERED); assertThat(testee.applyToState(isSeen).getSystemFlags()) .containsExactly(Flags.Flag.ANSWERED); }