Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Iterator<MimeMessage> createMessages(String hint, Object source, Map<String, Object> parameters)
- {
- Iterator<MimeMessage> result;
- try {
- MimeMessageFactory<Object, Iterator<MimeMessage>> factory = MimeMessageFactoryProvider.get(hint,
- computeSourceType(source, parameters),
- new DefaultParameterizedType(null, Iterator.class, MimeMessage.class),
- this.componentManagerProvider.get());
- Session session = this.sessionFactory.create(Collections.<String, String>emptyMap());
- result = factory.createMessage(session, source, parameters);
- } catch (Exception e) {
- // No factory found, set an error
- // An error occurred, save it and return null
- setError(e);
- return null;
- }
- return result;
- }
- private Type computeSourceType(Object source, Map<String, Object> parameters)
- {
- // Find the Type of the MimeMessageFactory to look up. If the type is passed as parameters then use it,
- // otherwise try to guess it.
- Type sourceType;
- Object sourceTypeAsObject = parameters.get("type");
- if (sourceTypeAsObject == null) {
- // No "type" defined by the user, try to guess it!
- // If the passed source extends List then consider that the type is List.
- // Then use the class of the first element to construct a generic type
- if (source instanceof List) {
- List sourceList = (List) source;
- if (!sourceList.isEmpty()) {
- sourceType = new DefaultParameterizedType(null, List.class, sourceList.get(0).getClass());
- } else {
- sourceType = List.class;
- }
- } else {
- sourceType = source.getClass();
- }
- } else {
- sourceType = this.converterManager.convert(Type.class, sourceTypeAsObject);
- }
- return sourceType;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement