public static EDLController createEDLController( EDocLiteAssociation edlAssociation, EDLGlobalConfig edlGlobalConfig, DocumentRouteHeaderValue document) { EDLController edlController = createEDLController(edlAssociation, edlGlobalConfig); try { Document defaultDom = edlController.getDefaultDOM(); Document documentDom = XmlHelper.readXml(document.getDocContent()); // get the data node and import it into our default DOM Element documentData = (Element) documentDom.getElementsByTagName(EDLXmlUtils.DATA_E).item(0); if (documentData != null) { Element defaultDomEDL = EDLXmlUtils.getEDLContent(defaultDom, false); Element defaultDomData = (Element) defaultDomEDL.getElementsByTagName(EDLXmlUtils.DATA_E).item(0); defaultDomEDL.replaceChild(defaultDom.importNode(documentData, true), defaultDomData); } if (LOG.isDebugEnabled()) { LOG.debug( "Created default Node from document id " + document.getDocumentId() + " content " + XmlJotter.jotNode(defaultDom)); } } catch (Exception e) { throw new WorkflowRuntimeException( "Problems creating controller for EDL " + edlAssociation.getEdlName() + " document " + document.getDocumentId(), e); } return edlController; }
public static EDLController createEDLController( EDocLiteAssociation edlAssociation, EDLGlobalConfig edlGlobalConfig) { EDLController edlController = new EDLController(); edlController.setEdocLiteAssociation(edlAssociation); try { edlController.setEdlGlobalConfig(edlGlobalConfig); edlController.setDefaultDOM(getDefaultDOM(edlAssociation)); loadConfigProcessors(edlController, edlGlobalConfig); loadPreProcessors(edlController, edlGlobalConfig); loadPostProcessor(edlController, edlGlobalConfig); loadStateComponents(edlController, edlGlobalConfig); loadStyle(edlController); } catch (Exception e) { String edl = null; if (edlAssociation != null) { edl = edlAssociation.getEdlName(); } String message = "Error creating controller for EDL" + (edl == null ? "" : ": " + edl); LOG.error(message, e); throw new WorkflowRuntimeException("Problems creating controller for EDL: " + edl, e); } return edlController; }
private static synchronized void loadConfigProcessors( final EDLController edlController, final EDLGlobalConfig edlGlobalConfig) throws Exception { EDocLiteAssociation edlAssociation = edlController.getEdocLiteAssociation(); // these are classes mapped to the conf element from the edlconfig. Document document = getEDLService().getDefinitionXml(edlAssociation); Element definitionElement = (Element) document.getFirstChild(); Map configProcessorMappings = new LinkedHashMap(); edlController.setEdlGlobalConfig(edlGlobalConfig); NodeList edlDefinitionNodes = definitionElement.getChildNodes(); for (int i = 0; i < edlDefinitionNodes.getLength(); i++) { Node definitionNode = edlDefinitionNodes.item(i); Class configProcessorClass = edlGlobalConfig.getConfigProcessor(definitionNode); if (configProcessorClass != null) { configProcessorMappings.put(definitionNode, configProcessorClass); } } edlController.setConfigProcessors( cloneConfigMap(configProcessorMappings, edlController.getDefaultDOM())); }
private static synchronized void loadStateComponents( EDLController edlController, EDLGlobalConfig edlGlobalConfig) { edlController.setStateComponents( cloneConfigMap(edlGlobalConfig.getStateComponents(), edlController.getDefaultDOM())); }
private static synchronized void loadPostProcessor( EDLController edlController, EDLGlobalConfig edlGlobalConfig) { edlController.setPostProcessors( cloneConfigMap(edlGlobalConfig.getPostProcessors(), edlController.getDefaultDOM())); }
private static synchronized void loadStyle(EDLController edlController) throws Exception { EDocLiteService edlService = getEDLService(); final Templates styleSheet = edlService.getStyleAsTranslet(edlController.getEdocLiteAssociation().getStyle()); edlController.setStyle(styleSheet); }