package com.ibm.sbt.services.client.email;
import java.util.List;
import com.ibm.commons.runtime.Application;
import com.ibm.commons.util.io.json.JsonObject;
/**
* A default implementation of MimeEmailFactory. This uses DefaultMimeEmail as the underlying implementation for MimeEmail.
*
*/
public class DefaultMimeEmailFactory implements MimeEmailFactory {
private static final String EXTENSION_ID = "com.ibm.sbt.core.mimeemailfactory";
private static MimeEmailFactory instance;
private DefaultMimeEmailFactory() {};
@Override
public MimeEmail createMimeEmail(JsonObject json) throws MimeEmailException {
return new DefaultMimeEmail(json);
}
@Override
public MimeEmail createMimeEmail(List<String> to, List<String> cc,
List<String> bcc, String subject, List<MimePart> mimeParts) throws MimeEmailException {
return new DefaultMimeEmail(to, cc, bcc, subject, mimeParts);
}
/**
* Gets an instance of DefaultMimeEmailFactory.
* @return An instance of DefaultMimeEmailFactory.
*/
public static MimeEmailFactory getInstance() {
if(instance == null) {
Application app = Application.getUnchecked();
if (app != null) {
List<Object> factories = app.findServices(EXTENSION_ID);
for(Object o : factories) {
if(o instanceof MimeEmailFactory) {
instance = (MimeEmailFactory)o;
}
}
}
if(instance == null) {
instance = new DefaultMimeEmailFactory();
}
}
return instance;
}
}