package com.nexr.platform.search.entity.sdp;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.StringWriter;
public class BaseClass {
protected Document document;
private Transformer trans;
public BaseClass() {
try {
TransformerFactory transFactory = TransformerFactory.newInstance();
trans = transFactory.newTransformer();
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
} catch (TransformerConfigurationException e) {
e.printStackTrace();
}
}
protected void setValue(NodeList nodeList, String value) {
if(nodeList.getLength() == 1){
nodeList.item(0).setTextContent(value);
}
}
protected void setCDATAValue(NodeList nodeList, String value) {
if(nodeList.getLength() == 1)
if(document != null) {
Node node = nodeList.item(0);
if(node.hasChildNodes()){
NodeList childNodeList = node.getChildNodes();
for(int i = childNodeList.getLength() - 1; i >= 0; i--) {
node.removeChild(childNodeList.item(i));
}
}
node.appendChild(document.createCDATASection(value));
}
}
protected String toString(Element element) {
StringWriter buffer = new StringWriter();
try {
trans.transform(new DOMSource(element), new StreamResult(buffer));
} catch (TransformerException e) { }
return buffer.toString();
}
public static String generateCData(String methodName, String objectName, String TXID) {
StringBuffer sb = new StringBuffer();
sb.append("End of Flow ");
sb.append(methodName);
sb.append(". Input Message: =");
sb.append("<sdp:sdpmessage xmlns:sdp=\"http://xml.accenture.com/sdp/sdpmessage\">");
sb.append("<sdp:header>");
sb.append("<ns2:servicelabel xmlns:ns2=\"http://xml.accenture.com/sdp/header\">");
sb.append(objectName);
sb.append("</ns2:servicelabel>");
sb.append("</sdp:header>");
sb.append("<sdp:body>");
sb.append("<body:credential xmlns:body=\"http://xml.accenture.com/sdp/body\">");
sb.append("<cred:TXID xmlns:cred=\"http://xml.accenture.com/sdp/core/uum/credential\">");
sb.append(TXID);
sb.append("</cred:TXID>");
sb.append("</body:credential>");
sb.append("<body:party xmlns:body=\"http://xml.accenture.com/sdp/body\">");
sb.append("<par:partyidentificationnumber xmlns:par=\"http://xml.accenture.com/sdp/core/uum/party\"/>");
sb.append("</body:party></sdp:body></sdp:sdpmessage>");
return sb.toString();
}
}