private static void writeDelimiter(ImapResponseComposer composer, char hierarchyDelimiter) throws IOException { if (hierarchyDelimiter == Character.UNASSIGNED) { composer.nil(); } else { composer.quote(Character.toString(hierarchyDelimiter)); } }
private ImapResponseComposer nillableQuote(ImapResponseComposer composer, String message) throws IOException { if (message == null) { composer.nil(); } else { composer.quote(message); } return composer; }
private ImapResponseComposer nillableQuote(ImapResponseComposer composer, String message) throws IOException { if (message == null) { composer.nil(); } else { composer.quote(message); } return composer; }
private void bodyFldParam(Map<String, String> params, ImapResponseComposer composer, ImapSession session) throws IOException { if (params == null || params.isEmpty()) { composer.nil(); } else { composer.openParen(); final Set<String> keySet = params.keySet(); final Collection<String> names = new TreeSet<>(keySet); for (String name : names) { final String value = params.get(name); if (value == null) { LOGGER.warn("Disposition parameter name has no value."); LOGGER.debug("Disposition parameter {} has no matching value", name); } else { composer.quote(name); composer.quote(value); } } composer.closeParen(); } }
private void encode(List<Namespace> namespaces, ImapResponseComposer composer) throws IOException { if (namespaces == null || namespaces.isEmpty()) { composer.nil(); } else { composer.openParen(); for (NamespaceResponse.Namespace namespace : namespaces) { encode(namespace, composer); } composer.closeParen(); } }
private void encode(List<Namespace> namespaces, ImapResponseComposer composer) throws IOException { if (namespaces == null || namespaces.isEmpty()) { composer.nil(); } else { composer.openParen(); for (NamespaceResponse.Namespace namespace : namespaces) { encode(namespace, composer); } composer.closeParen(); } }
private ImapResponseComposer nillableQuotes(ImapResponseComposer composer, List<String> quotes) throws IOException { if (quotes == null || quotes.size() == 0) { composer.nil(); } else { composer.openParen(); for (final String string : quotes) { nillableQuote(composer,string); } composer.closeParen(); } return composer; }
private ImapResponseComposer nillableQuotes(ImapResponseComposer composer, List<String> quotes) throws IOException { if (quotes == null || quotes.size() == 0) { composer.nil(); } else { composer.openParen(); for (String string : quotes) { nillableQuote(composer,string); } composer.closeParen(); } return composer; }
private void bodyFldParam(final Map<String, String> params, final ImapResponseComposer composer, ImapSession session) throws IOException { if (params == null || params.isEmpty()) { composer.nil(); } else { composer.openParen(); final Set<String> keySet = params.keySet(); final Collection<String> names = new TreeSet<String>(keySet); for (Iterator<String> iter = names.iterator(); iter.hasNext();) { final String name = iter.next(); final String value = params.get(name); if (value == null) { final Logger logger = session.getLog(); logger.warn("Disposition parameter name has no value."); if (logger.isDebugEnabled()) { logger.debug("Disposition parameter " + name + " has no matching value"); } } else { composer.quote(name); composer.quote(value); } } composer.closeParen(); } }
private void encodeAddresses(ImapResponseComposer composer, FetchResponse.Envelope.Address[] addresses) throws IOException { if (addresses == null || addresses.length == 0) { composer.nil(); } else { composer.openParen(); for (FetchResponse.Envelope.Address address : addresses) { encodeAddress(composer, address); } composer.closeParen(); } }
private void encodeAddresses(final ImapResponseComposer composer, final FetchResponse.Envelope.Address[] addresses) throws IOException { if (addresses == null || addresses.length == 0) { composer.nil(); } else { composer.openParen(); final int length = addresses.length; for (int i = 0; i < length; i++) { final FetchResponse.Envelope.Address address = addresses[i]; encodeAddress(composer, address); } composer.closeParen(); } }
@Test public void testAllNullShouldWriteAllNIL() throws Exception { subject.doEncode(new NamespaceResponse(null, null, null), mockComposer, dummySession); InOrder inOrder = Mockito.inOrder(mockComposer); inOrder.verify(mockComposer, times(1)).untagged(); inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND_NAME); inOrder.verify(mockComposer, times(3)).nil(); inOrder.verify(mockComposer, times(1)).end(); }
@Test public void testOneUsersNamespaceShouldWriteNilThenPrefixThenDeliminatorThenNil() throws Exception { final String aPrefix = "A Prefix"; final String aDeliminator = "@"; List<NamespaceResponse.Namespace> namespaces = new ArrayList<>(); namespaces.add(new NamespaceResponse.Namespace(aPrefix, aDeliminator .charAt(0))); subject.doEncode(new NamespaceResponse(null, namespaces, null), mockComposer, dummySession); InOrder inOrder = Mockito.inOrder(mockComposer); inOrder.verify(mockComposer, times(1)).untagged(); inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND_NAME); inOrder.verify(mockComposer, times(1)).nil(); inOrder.verify(mockComposer, times(2)).openParen(); inOrder.verify(mockComposer, times(1)).quote(aPrefix + aDeliminator); inOrder.verify(mockComposer, times(1)).quote(aDeliminator); inOrder.verify(mockComposer, times(2)).closeParen(); inOrder.verify(mockComposer, times(1)).nil(); inOrder.verify(mockComposer, times(1)).end(); }
public static void encodeListingResponse(final String responseTypeName, final ImapResponseComposer composer, final AbstractListingResponse response) throws IOException { final List<String> attributes = getNameAttributes(response); final String name = response.getName(); final char hierarchyDelimiter = response.getHierarchyDelimiter(); composer.untagged(); composer.message(responseTypeName); composer.openParen(); if (attributes != null) { for (Iterator<String> it = attributes.iterator(); it.hasNext();) { final String attribute = it.next(); composer.message(attribute); } } composer.closeParen(); if (hierarchyDelimiter == Character.UNASSIGNED) { composer.nil(); } else { composer.quote(Character.toString(hierarchyDelimiter)); } composer.mailbox(name); composer.end(); }
private ImapResponseComposer bodyFldDsp(Structure structure, ImapResponseComposer composer, ImapSession session) throws IOException { final String disposition = structure.getDisposition(); if (disposition == null) { composer.nil(); } else { composer.openParen(); composer.quote(disposition); final Map<String, String> params = structure.getDispositionParams(); bodyFldParam(params, composer, session); composer.closeParen(); } return composer; }
private ImapResponseComposer bodyFldDsp(final Structure structure, final ImapResponseComposer composer, ImapSession session) throws IOException { final String disposition = structure.getDisposition(); if (disposition == null) { composer.nil(); } else { composer.openParen(); composer.quote(disposition); final Map<String, String> params = structure.getDispositionParams(); bodyFldParam(params, composer, session); composer.closeParen(); } return composer; }
@Test public void testOnePersonalNamespaceShouldWritePrefixThenDeliminatorThenNilNil() throws Exception { final String aPrefix = "A Prefix"; final String aDeliminator = "@"; List<NamespaceResponse.Namespace> namespaces = new ArrayList<>(); namespaces.add(new NamespaceResponse.Namespace(aPrefix, aDeliminator .charAt(0))); subject.doEncode(new NamespaceResponse(namespaces, null, null), mockComposer, dummySession); InOrder inOrder = Mockito.inOrder(mockComposer); inOrder.verify(mockComposer, times(1)).untagged(); inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND_NAME); inOrder.verify(mockComposer, times(2)).openParen(); inOrder.verify(mockComposer, times(1)).quote(aPrefix + aDeliminator); inOrder.verify(mockComposer, times(1)).quote(aDeliminator); inOrder.verify(mockComposer, times(2)).closeParen(); inOrder.verify(mockComposer, times(2)).nil(); inOrder.verify(mockComposer, times(1)).end(); }
@Test public void testOneSharedNamespaceShouldWriteNilThenPrefixThenDeliminatorThenNil() throws Exception { final String aPrefix = "A Prefix"; final String aDeliminator = "@"; List<NamespaceResponse.Namespace> namespaces = new ArrayList<>(); namespaces.add(new NamespaceResponse.Namespace(aPrefix, aDeliminator .charAt(0))); subject.doEncode(new NamespaceResponse(null, null, namespaces), mockComposer, dummySession); InOrder inOrder = Mockito.inOrder(mockComposer); inOrder.verify(mockComposer, times(1)).untagged(); inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND_NAME); inOrder.verify(mockComposer, times(2)).nil(); inOrder.verify(mockComposer, times(2)).openParen(); inOrder.verify(mockComposer, times(1)).quote(aPrefix + aDeliminator); inOrder.verify(mockComposer, times(1)).quote(aDeliminator); inOrder.verify(mockComposer, times(2)).closeParen(); inOrder.verify(mockComposer, times(1)).end(); }
@Test public void testTwoPersonalNamespaceShouldWritePrefixThenDeliminatorThenNilNil() throws Exception { final String aPrefix = "A Prefix"; final String aDeliminator = "@"; final String anotherPrefix = "Another Prefix"; final String anotherDeliminator = "^"; List<NamespaceResponse.Namespace> namespaces = new ArrayList<>(); namespaces.add(new NamespaceResponse.Namespace(aPrefix, aDeliminator .charAt(0))); namespaces.add(new NamespaceResponse.Namespace(anotherPrefix, anotherDeliminator.charAt(0))); subject.doEncode(new NamespaceResponse(namespaces, null, null), mockComposer, dummySession); InOrder inOrder = Mockito.inOrder(mockComposer); inOrder.verify(mockComposer, times(1)).untagged(); inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND_NAME); inOrder.verify(mockComposer, times(2)).openParen(); inOrder.verify(mockComposer, times(1)).quote(aPrefix + aDeliminator); inOrder.verify(mockComposer, times(1)).quote(aDeliminator); inOrder.verify(mockComposer, times(1)).closeParen(); inOrder.verify(mockComposer, times(1)).openParen(); inOrder.verify(mockComposer, times(1)).quote(anotherPrefix + anotherDeliminator); inOrder.verify(mockComposer, times(1)).quote(anotherDeliminator); inOrder.verify(mockComposer, times(2)).closeParen(); inOrder.verify(mockComposer, times(2)).nil(); inOrder.verify(mockComposer, times(1)).end(); }