package org.sharegov.cirm.process; import static org.sharegov.cirm.OWL.dataProperty; import static org.sharegov.cirm.OWL.individual; import static org.sharegov.cirm.OWL.objectProperty; import java.util.ArrayList; import org.semanticweb.owlapi.model.OWLNamedIndividual; import org.sharegov.cirm.BOUtils; import org.sharegov.cirm.BOntology; import org.sharegov.cirm.legacy.CirmMessage; import org.sharegov.cirm.legacy.MessageManager; import org.sharegov.cirm.utils.ThreadLocalStopwatch; public class CreateNewSREmail implements ApprovalSideEffect { @Override public void execute(ApprovalProcess approvalProcess) { String type = approvalProcess.getSr().at("type").asString(); BOntology bontology = approvalProcess.getBOntology(); OWLNamedIndividual emailTemplate = objectProperty(individual(type), "legacy:hasEmailTemplate"); ArrayList<BOntology> withMetadata = new ArrayList<BOntology>(); if (emailTemplate != null) { try { BOntology withMeta = BOUtils.addMetaDataAxioms(bontology); withMetadata.add(withMeta); approvalProcess.setWithMetadata(withMetadata); CirmMessage msg = MessageManager.get().createMessageFromTemplate( withMeta, dataProperty(individual(type), "legacy:hasLegacyCode"), emailTemplate); msg.addExplanation("createNewKOSR SR template " + emailTemplate.getIRI().getFragment()); approvalProcess.getEmailsToSend().add(msg); } catch (Throwable t) { ThreadLocalStopwatch.error("Error createNewKOSR - Failed to create email for " + bontology.getObjectId()); } } } }