throws ObjectCreationException {
logger.info("Creating new campaign.");
// lookup campaign type services
ICampaignCreator creator = null;
try {
Object[] services = ServiceUtils.getServices(bundleContext, ICampaignCreator.class.getName());
for(Object service : services) {
if(service instanceof ICampaignCreator) {
String campaignType = ((ICampaignCreator)service).getType();
logger.trace("campaignType: " + campaignType);
if(type.equals(campaignType)) {
creator = (ICampaignCreator)service;
break;
}
}
}
}
catch(InvalidSyntaxException e) {
throw new ObjectCreationException(e);
}
if(creator != null) {
AbstractCampaign c = creator.createCampaign();
logger.trace("c: " + c);
if(!empty) {
c.setName(Messages.getString("model.factory.campaign.name.default"));
c.setDescription(Messages.getString("model.factory.campaign.description.default"));