Advertisement
Guest User

Untitled

a guest
Mar 31st, 2015
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. public Iterator<MimeMessage> createMessages(String hint, Object source, Map<String, Object> parameters)
  2. {
  3. Iterator<MimeMessage> result;
  4. try {
  5. MimeMessageFactory<Object, Iterator<MimeMessage>> factory = MimeMessageFactoryProvider.get(hint,
  6. computeSourceType(source, parameters),
  7. new DefaultParameterizedType(null, Iterator.class, MimeMessage.class),
  8. this.componentManagerProvider.get());
  9. Session session = this.sessionFactory.create(Collections.<String, String>emptyMap());
  10. result = factory.createMessage(session, source, parameters);
  11. } catch (Exception e) {
  12. // No factory found, set an error
  13. // An error occurred, save it and return null
  14. setError(e);
  15. return null;
  16. }
  17.  
  18. return result;
  19. }
  20.  
  21. private Type computeSourceType(Object source, Map<String, Object> parameters)
  22. {
  23. // Find the Type of the MimeMessageFactory to look up. If the type is passed as parameters then use it,
  24. // otherwise try to guess it.
  25. Type sourceType;
  26. Object sourceTypeAsObject = parameters.get("type");
  27. if (sourceTypeAsObject == null) {
  28. // No "type" defined by the user, try to guess it!
  29. // If the passed source extends List then consider that the type is List.
  30. // Then use the class of the first element to construct a generic type
  31. if (source instanceof List) {
  32. List sourceList = (List) source;
  33. if (!sourceList.isEmpty()) {
  34. sourceType = new DefaultParameterizedType(null, List.class, sourceList.get(0).getClass());
  35. } else {
  36. sourceType = List.class;
  37. }
  38. } else {
  39. sourceType = source.getClass();
  40. }
  41. } else {
  42. sourceType = this.converterManager.convert(Type.class, sourceTypeAsObject);
  43. }
  44.  
  45. return sourceType;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement