/sitebricks-mail/src/main/java/com/google/sitebricks/mail/imap/ListFoldersExtractor.java
http://github.com/dhanji/sitebricks · Java · 40 lines · 27 code · 8 blank · 5 comment · 4 complexity · 23f38ab1e3deaedbf1f25612b1065bda MD5 · raw file
- package com.google.sitebricks.mail.imap;
- import com.google.common.collect.ImmutableList;
- import java.util.List;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- /**
- * @author dhanji@gmail.com (Dhanji R. Prasanna)
- */
- class ListFoldersExtractor implements Extractor<List<String>> {
- private static final Pattern QUOTES = Pattern.compile("(\".*\")");
- private static final String ROOT_PREFIX = "\"/\"";
- @Override
- public List<String> extract(List<String> messages) {
- ImmutableList.Builder<String> builder = ImmutableList.builder();
- for (String message : messages) {
- Matcher matcher = QUOTES.matcher(message);
- if (matcher.find()) {
- String group = matcher.group(1);
- if (group.startsWith(ROOT_PREFIX)) {
- group = group.substring(ROOT_PREFIX.length()).trim();
- }
- // Strip quotes.
- if (group.startsWith("\"")) {
- group = group.substring(1, group.length() - 1);
- }
- // Generally remove leading "/" and stripquotes
- builder.add(group);
- }
- }
- return builder.build();
- }
- }