package com.fsck.k9.mail.store.imap; import java.util.List; import static com.fsck.k9.mail.store.imap.ImapResponseParser.equalsIgnoreCase; class NamespaceResponse { private String prefix; private String hierarchyDelimiter; private NamespaceResponse(String prefix, String hierarchyDelimiter) { this.prefix = prefix; this.hierarchyDelimiter = hierarchyDelimiter; } public static NamespaceResponse parse(List<ImapResponse> responses) { for (ImapResponse response : responses) { NamespaceResponse prefix = parse(response); if (prefix != null) { return prefix; } } return null; } static NamespaceResponse parse(ImapResponse response) { if (response.size() < 4 || !equalsIgnoreCase(response.get(0), Responses.NAMESPACE)) { return null; } if (!response.isList(1)) { return null; } ImapList personalNamespaces = response.getList(1); if (!personalNamespaces.isList(0)) { return null; } ImapList firstPersonalNamespace = personalNamespaces.getList(0); if (!firstPersonalNamespace.isString(0) || !firstPersonalNamespace.isString(1)) { return null; } String prefix = firstPersonalNamespace.getString(0); String hierarchyDelimiter = firstPersonalNamespace.getString(1); return new NamespaceResponse(prefix, hierarchyDelimiter); } public String getPrefix() { return prefix; } public String getHierarchyDelimiter() { return hierarchyDelimiter; } }