1
2
3
4
5
6
7 package org.mule.transport.email.config;
8
9 import org.mule.config.spring.handlers.AbstractMuleNamespaceHandler;
10 import org.mule.config.spring.parsers.assembly.configuration.SimplePropertyConfiguration;
11 import org.mule.config.spring.parsers.assembly.configuration.ValueMap;
12 import org.mule.config.spring.parsers.specific.MessageProcessorDefinitionParser;
13 import org.mule.transport.email.transformers.EmailMessageToString;
14 import org.mule.transport.email.transformers.MimeMessageToRfc822ByteArray;
15 import org.mule.transport.email.transformers.ObjectToMimeMessage;
16 import org.mule.transport.email.transformers.Rfc822ByteArraytoMimeMessage;
17 import org.mule.transport.email.transformers.StringToEmailMessage;
18
19 import java.util.HashMap;
20 import java.util.Map;
21
22 import javax.mail.Flags;
23
24 public class EmailNamespaceHandler extends AbstractMuleNamespaceHandler
25 {
26 protected static ValueMap DEFAULT_PROCESS_MESSAGE_ACTION;
27
28 static
29 {
30 Map<String, Flags.Flag> mapping = new HashMap<String, Flags.Flag>();
31 mapping.put("ANSWERED", Flags.Flag.ANSWERED);
32 mapping.put("DELETED", Flags.Flag.DELETED);
33 mapping.put("DRAFT", Flags.Flag.DRAFT);
34 mapping.put("FLAGGED", Flags.Flag.FLAGGED);
35 mapping.put("RECENT", Flags.Flag.RECENT);
36 mapping.put("SEEN", Flags.Flag.SEEN);
37 mapping.put("USER", Flags.Flag.USER);
38 mapping.put("NONE", null);
39 DEFAULT_PROCESS_MESSAGE_ACTION = new SimplePropertyConfiguration.IndentityMapValueMap(mapping);
40 }
41
42 public void init()
43 {
44 registerBeanDefinitionParser("email-to-string-transformer", new MessageProcessorDefinitionParser(EmailMessageToString.class));
45 registerBeanDefinitionParser("string-to-email-transformer", new MessageProcessorDefinitionParser(StringToEmailMessage.class));
46 registerBeanDefinitionParser("object-to-mime-transformer", new MessageProcessorDefinitionParser(ObjectToMimeMessage.class));
47 registerBeanDefinitionParser("mime-to-bytes-transformer", new MessageProcessorDefinitionParser(MimeMessageToRfc822ByteArray.class));
48 registerBeanDefinitionParser("bytes-to-mime-transformer", new MessageProcessorDefinitionParser(Rfc822ByteArraytoMimeMessage.class));
49 }
50 }