Commit cd7fe39e authored by wansari's avatar wansari

W15ESUN013 Changed for updating mapping logic for xml in genericMapperNew2


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@98610 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 1c44492e
...@@ -3,9 +3,8 @@ package ibase.webitm.ejb.wms; ...@@ -3,9 +3,8 @@ package ibase.webitm.ejb.wms;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.PrintWriter; import java.io.StringReader;
import java.io.StringWriter; import java.io.StringWriter;
import java.rmi.RemoteException;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
...@@ -16,16 +15,18 @@ import java.text.SimpleDateFormat; ...@@ -16,16 +15,18 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.HashMap; import java.util.HashMap;
import java.util.logging.FileHandler; import java.util.Iterator;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
import javax.ejb.Stateless; import javax.ejb.Stateless;
import javax.naming.InitialContext; import javax.naming.InitialContext;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.rpc.ParameterMode; import javax.xml.rpc.ParameterMode;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.apache.axis.client.Call; import org.apache.axis.client.Call;
import org.apache.axis.client.Service; import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType; import org.apache.axis.encoding.XMLType;
...@@ -35,11 +36,10 @@ import org.w3c.dom.Element; ...@@ -35,11 +36,10 @@ import org.w3c.dom.Element;
import org.w3c.dom.Node; import org.w3c.dom.Node;
import org.w3c.dom.NodeList; import org.w3c.dom.NodeList;
import org.w3c.dom.Text; import org.w3c.dom.Text;
import ibase.system.config.AppConnectParm; import ibase.system.config.AppConnectParm;
import ibase.system.config.ConnDriver; import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants; import ibase.utility.CommonConstants;
import ibase.utility.EMail; import ibase.utility.E12GenericUtility;
import ibase.utility.GenericUtility; import ibase.utility.GenericUtility;
import ibase.webitm.ejb.ActionHandlerEJB; import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB; import ibase.webitm.ejb.ITMDBAccessEJB;
...@@ -49,8 +49,7 @@ import ibase.webitm.ejb.dis.DistCommon; ...@@ -49,8 +49,7 @@ import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.ejb.dis.InvAllocTraceBean; import ibase.webitm.ejb.dis.InvAllocTraceBean;
import ibase.webitm.utility.ITMException; import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator; import ibase.webitm.utility.TransIDGenerator;
import ibase.webitm.utility.wms.CommonWmsUtil;
//import ibase.webitm.utility.wms.SorderInsertSchedule;
@Stateless @Stateless
public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal,SapSorderEJBRemote public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal,SapSorderEJBRemote
...@@ -82,6 +81,7 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal, ...@@ -82,6 +81,7 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal,
try try
{ {
System.out.println("***********************Inside SapSorderEJB**************************");
String defaultPath = null; String defaultPath = null;
if( CommonConstants.APPLICATION_CONTEXT != null ) if( CommonConstants.APPLICATION_CONTEXT != null )
...@@ -101,8 +101,7 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal, ...@@ -101,8 +101,7 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal,
conn = connDriver.getConnectDB("DriverITM"); conn = connDriver.getConnectDB("DriverITM");
genericUtility = GenericUtility.getInstance(); genericUtility = GenericUtility.getInstance();
xmlString = xmlString == null ? "" :xmlString.trim(); xmlString = xmlString == null ? "" :xmlString.trim();
System.out.println("xmlString in uploadSalesOrder----->["+xmlString+"]"); System.out.println("xml String in SapSorderEJB["+xmlString+"]");
if(xmlString.length() > 0) if(xmlString.length() > 0)
{ {
...@@ -112,7 +111,7 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal, ...@@ -112,7 +111,7 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal,
//orderXml = setExtraData (orderXml,userName,conn); //this will set site code,chg_term,chg_user //orderXml = setExtraData (orderXml,userName,conn); //this will set site code,chg_term,chg_user
orderXml = ChangeDate(orderXml); //orderXml = ChangeDate(orderXml);
String xslFileName = getXSLFileName( objName+"_sapTemplate.xsl" );//file name should be obj_name_xsl String xslFileName = getXSLFileName( objName+"_sapTemplate.xsl" );//file name should be obj_name_xsl
/*String xslFileName = "/home/user/jboss-5.1.0.GA/server/default/deploy/" /*String xslFileName = "/home/user/jboss-5.1.0.GA/server/default/deploy/"
...@@ -121,265 +120,32 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal, ...@@ -121,265 +120,32 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal,
//String transformXsl = (ibase.webitm.utility.GenericUtility.getInstance()).transformToString( xslFileName, sorderXml,"/home/user/jboss-5.1.0.GA/server/default/deploy/ibase.ear/ibase.war/webitm/xsl/Standard/WIZARD", "Output", ".xml" ); //String transformXsl = (ibase.webitm.utility.GenericUtility.getInstance()).transformToString( xslFileName, sorderXml,"/home/user/jboss-5.1.0.GA/server/default/deploy/ibase.ear/ibase.war/webitm/xsl/Standard/WIZARD", "Output", ".xml" );
String transformXsl = (ibase.webitm.utility.GenericUtility.getInstance()).transformToString( xslFileName, orderXml,defaultPath+"/xsl/Standard/Transform", "Output", ".xml" ); String transformXsl = (ibase.webitm.utility.GenericUtility.getInstance()).transformToString( xslFileName, orderXml,defaultPath+"/xsl/Standard/Transform", "Output", ".xml" );
System.out.println("After Transformation = "+transformXsl); System.out.println("After Transformation = "+ transformXsl);
//String mappedXml = sorderMapper(transformXsl,orderXml,conn);
String mappedXml = genericMapperNew2(transformXsl,orderXml,objName,conn);
String mappedXml = sorderMapper(transformXsl,orderXml,conn);
mappedXml = "<?xml version="+1.0+" encoding=UTF-"+8+"?>"+mappedXml; mappedXml = "<?xml version="+1.0+" encoding=UTF-"+8+"?>"+mappedXml;
System.out.println("Mapped XML Received="+mappedXml); System.out.println("Mapped XML Received="+ mappedXml);
batchNo = generateTranId( "I-BL", siteCode, userName, conn );//need to be checked login site and userId batchNo = generateTranId( "I-BL", siteCode, userName, conn );//need to be checked login site and userId
System.out.println("BatchNo = "+batchNo); System.out.println("BatchNo = "+batchNo);
insertBatchLoad(batchNo,"W_SORDER",userName, conn); //insertBatchLoad(batchNo,"W_SORDER",userName, conn);
insertBatchLoad(batchNo,"W_"+objName.toUpperCase(),userName, conn);
conn.commit(); conn.commit();
//ApplyMaster(batchNo,sorderXml,conn); //ApplyMaster(batchNo,sorderXml,conn);
//ApplyMaster(batchNo,transformXsl,conn); //ApplyMaster(batchNo,transformXsl,conn);
//String result = ApplyMaster(batchNo,mappedXml,conn);//Changed by wasim on 18-09-2015 to pass client IP and userName //String result = ApplyMaster(batchNo,mappedXml,conn);//Changed by wasim on 18-09-2015 to pass client IP and userName
String result = ApplyMaster(batchNo,mappedXml,xtraParams,conn); String result = ApplyMaster(batchNo,mappedXml,xtraParams,conn);
status = result; status = result;
/*dom = genericUtility.parseString(xmlString);
headerValuesMap = getSorderHdrData(dom);
if(headerValuesMap != null && headerValuesMap.size() > 0)
{
custCodeH = checkNull(headerValuesMap.get("cust_code"));
siteCode = checkNull(headerValuesMap.get("site_code"));
this.siteCodeG = siteCode;
System.out.println("CustCodeH----siteCode----->>["+custCodeH+"] ["+siteCode+"]");
sql = "SELECT COUNT(*) FROM CUSTOMER WHERE CUST_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCodeH);
rs = pstmt.executeQuery();
if(rs.next())
{
count = rs.getInt(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(custCodeH.length() == 0)
{
custTranId = checkNull( generateTranId( "w_customer", siteCode, currDateStr, conn) );
System.out.println("custTranId ---------->>["+custTranId+"]");
if(custTranId.length() > 0)
{
headerValuesMap.put("cust_code", custTranId);
String custStr = insertInCustomerMaster (headerValuesMap, xtraParams,conn);
System.out.println("custStr11---->>["+custStr+"]");
if("Success".equalsIgnoreCase(custStr))
{
conn.commit();
}
}
}
else if(count == 0 && custCodeH.length() > 0)
{
String custStr = insertInCustomerMaster (headerValuesMap, xtraParams,conn);
System.out.println("custStr---->>["+custStr+"]");
headerValuesMap.put("cust_code", custCodeH);
if("Success".equalsIgnoreCase(custStr))
{
conn.commit();
}
}
else
{
System.out.println("Existing customer found..............");
}
}
else
{
System.out.println("headerValesMap is null...............");
}
System.out.println("custCodeH@@---------->>["+custCodeH+"]");
newCustCode = headerValuesMap.get("cust_code").toString();
System.out.println("newCustCode@@---------->>["+newCustCode+"]");
setNodeValue(dom, "cust_code", newCustCode);
setNodeValue(dom, "cust_code__dlv", newCustCode);
setNodeValue(dom, "cust_code__bil", newCustCode);
System.out.println("siteCodeG------>>["+siteCodeG+"]");
xmlString = genericUtility.serializeDom(dom);
ErrSaleOrder = genericUtility.getColumnValue("sale_order", dom);
System.out.println("ErrSaleOrder------>>["+ErrSaleOrder+"]");
//headerValuesMap = getSorderHdrData(dom);
//System.out.println("After getSorderHdrData headerValuesMap------>>"+headerValuesMap); UNIT
System.out.println("xmlString Before save data------>>["+xmlString+"]");
retString=saveData(this.siteCodeG, xmlString, conn);
System.out.println("Before retString------>>["+retString+"]");
if(retString != null && retString.indexOf("Success") > -1)
{
conn.commit();
System.out.println("retString.indexOf(Success) > -1)");
System.out.println("Transaction committed successfully........");
String[] arrayForTranId = retString.split("<TranID>");
int endIndex = arrayForTranId[1].indexOf("</TranID>");
saleOrderNo = arrayForTranId[1].substring(0,endIndex);
System.out.println("saleOrderNo------>>>["+saleOrderNo+"]");
//Changed by wasim on 03-07-2015 to check tax_amount with megento server [START]
sql="SELECT VAR_VALUE FROM DISPARM WHERE VAR_NAME = 'IS_ORDER_CHECK' ";
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
if(rs.next())
{
orderCheck = rs.getString("VAR_VALUE");
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
if(orderCheck.equals("Y"))
{
sql=" SELECT SUM(TAX_AMT) AS TAXAMOUNT FROM TAXTRAN T,TAX X WHERE T.TRAN_ID = ? "+
" AND T.TRAN_CODE = 'S-ORD' AND TRIM(T.TAX_CODE) = TRIM(X.TAX_CODE) AND X.TAX_TYPE ='S' ";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, saleOrderNo);
rs=pstmt.executeQuery();
if(rs.next())
{
taxAmt = rs.getInt("TAXAMOUNT");
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
System.out.println("Tax Amount is ="+taxAmt);
sql=" SELECT UDF__NUM2 FROM SORDER WHERE SALE_ORDER = ?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, saleOrderNo);
rs=pstmt.executeQuery();
if(rs.next())
{
taxAmtMagento = rs.getInt("UDF__NUM2");
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
System.out.println("Tax Amount from Magento is ="+taxAmtMagento);
if(taxAmt == taxAmtMagento)
{
retString = confirmSaleOrder("sorder",saleOrderNo,xtraParams,"",conn);
System.out.println("After retString------>>["+retString+"]");
if(retString !=null && retString.indexOf("PRCSTATUS") > -1)
{
//deleteUnconfirmRecord(saleOrderMagentoG, conn);
//rowsDoneCnt++;
sql="select line_no,item_code,quantity from sorddet where sale_order=? order by line_no";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, saleOrderNo);
rs=pstmt.executeQuery();
while(rs.next())
{
lineNoS=rs.getString(1);
itemCodeS=checkNull(rs.getString(2));
quantityS=rs.getDouble(3);
//stock allocation
retString=sorderAllocate(saleOrderNo, lineNoS, itemCodeS, quantityS,"", conn );
System.out.println("errorString sorderAllocate---->>["+retString+"]");
if(retString != null && retString.length() > 0)
{
isError = true;
writeLogAndSendMail(saleOrderNo,retString,conn);
//return retString;
}
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
if(retString == null || retString.length() == 0)
{
retString = "Success "+saleOrderNo;
return retString;
}
}
else
{
isError = true;
writeLogAndSendMail(saleOrderNo,retString,conn);
//return retString; //Error could not return to Magento server
}
}
else
{
isError = true;
System.out.println("Unconfimed order generated, Tax Amount does not match with magento server.");
retString = itmDBAccessEJB.getErrorString("","VTTAXMGTO","","",conn);
writeLogAndSendMail(saleOrderNo,retString,conn);
//return retString; //Error could not return to Magento server
}
}
retString = confirmSaleOrder("sorder",saleOrderNo,xtraParams,"",conn);
System.out.println("After retString------>>["+retString+"]");
if(retString !=null && retString.indexOf("PRCSTATUS") > -1)
{
//deleteUnconfirmRecord(saleOrderMagentoG, conn);
//rowsDoneCnt++;
sql="select line_no,item_code,quantity from sorddet where sale_order=? order by line_no";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, saleOrderNo);
rs=pstmt.executeQuery();
while(rs.next())
{
lineNoS=rs.getString(1);
itemCodeS=checkNull(rs.getString(2));
quantityS=rs.getDouble(3);
//stock allocation
retString=sorderAllocate(saleOrderNo, lineNoS, itemCodeS, quantityS,"", conn );
System.out.println("errorString sorderAllocate---->>["+retString+"]");
if(retString != null && retString.length() > 0)
{
return retString;
}
}
rs.close();
rs=null;
pstmt.close();
pstmt=null;
if(retString == null || retString.length() == 0)
{
retString = "Success "+saleOrderNo;
return retString;
}
}
else
{
return retString;
}
//Changed by wasim on 03-07-2015 to check tax_amount with megento server [END]
}
else
{
writeLogAndSendMail(ErrSaleOrder,retString,conn);
System.out.println("Sale order not save...............rollback");
isError = true;
conn.rollback();
return retString;
//throw new Exception(retString);
}*/
} }
else else
{ {
System.out.println("sale order xml is blank or null..................."); System.out.println("sale order xml is blank or null...................");
} }
} }
catch(Exception e) catch(Exception e)
{ {
...@@ -2777,14 +2543,6 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal, ...@@ -2777,14 +2543,6 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal,
ResultSet rs = null; ResultSet rs = null;
try try
{ {
//dom = genericUtility.parseString(xml.toString());
//String depOrdNum = genericUtility.getColumnValue("depositoryOrderNumber", dom);
/*dom2 = genericUtility.parseString(status.toString());
String msg = genericUtility.getColumnValue("message", dom2);
String descr = genericUtility.getColumnValue("description", dom2);
String trace = genericUtility.getColumnValue("trace", dom2);*/
//sql = "SELECT SALE_ORDER FROM SORDER WHERE UDF__STR2 = ?"; //sql = "SELECT SALE_ORDER FROM SORDER WHERE UDF__STR2 = ?";
sql = "SELECT TRAN_ID__REF FROM BATCHLOAD WHERE BATCH_ID = ?";//Changed by wasim to get sorder from bathcload on 28-09-2015 sql = "SELECT TRAN_ID__REF FROM BATCHLOAD WHERE BATCH_ID = ?";//Changed by wasim to get sorder from bathcload on 28-09-2015
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
...@@ -2793,49 +2551,21 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal, ...@@ -2793,49 +2551,21 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal,
if ( rs.next() ) if ( rs.next() )
{ {
saleOrder = checkNullAndTrim(rs.getString("TRAN_ID__REF")); saleOrder = checkNullAndTrim(rs.getString("TRAN_ID__REF"));
}
rs.close();rs = null; System.out.println("Sale Order number is = "+saleOrder);
pstmt.close();pstmt = null;
System.out.println("Sale Order number is = "+saleOrder);
sql = "SELECT H.SALE_ORDER,H.ORDER_DATE,H.CUST_CODE__DLV,H.REMARKS,H.TOT_AMT,H.TAX_AMT, SUM(D.QUANTITY) AS QUANTITY "
+ " FROM SORDER H,SORDDET D WHERE H.SALE_ORDER = ? AND H.SALE_ORDER = D.SALE_ORDER "
+ " GROUP BY H.SALE_ORDER,H.ORDER_DATE,H.CUST_CODE__DLV,H.REMARKS,H.TOT_AMT,H.TAX_AMT ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, saleOrder);
rs = pstmt.executeQuery();
if ( rs.next() )
{
sb.append("<root>\r\n"); sb.append("<root>\r\n");
/*sb.append("<MESSAGE>").append("<![CDATA["+msg+"]]>").append("</MESSAGE>\r\n"); sb.append("<MESSAGE>").append("<![CDATA[Transaction saved successfully......]]>").append("</MESSAGE>\r\n");
sb.append("<DESCRIPTION>").append("<![CDATA["+descr+"]]>").append("</DESCRIPTION>\r\n"); sb.append("<TRAN_ID>").append("<![CDATA["+saleOrder+"]]>").append("</TRAN_ID>\r\n");
sb.append("<TRACE>").append("<![CDATA["+trace+"]]>").append("</TRACE>\r\n");*/
sb.append("<MESSAGE>").append("Transaction saved successfully......").append("</MESSAGE>\r\n");
sb.append("<SALE_ORDER>").append("<![CDATA["+checkNullAndTrim(rs.getString("SALE_ORDER"))+"]]>").append("</SALE_ORDER>\r\n");
sb.append("<ORDER_DATE>").append("<![CDATA["+checkNullAndTrim(rs.getString("ORDER_DATE"))+"]]>").append("</ORDER_DATE>\r\n");
sb.append("<QUANTITY>").append("<![CDATA["+checkNullAndTrim(rs.getString("QUANTITY"))+"]]>").append("</QUANTITY>\r\n");
sb.append("<CUST_CODE__DLV>").append("<![CDATA["+checkNullAndTrim(rs.getString("CUST_CODE__DLV"))+"]]>").append("</CUST_CODE__DLV>\r\n");
sb.append("<REMARKS>").append("<![CDATA["+checkNullAndTrim(rs.getString("REMARKS"))+"]]>").append("</REMARKS>\r\n");
sb.append("<TOT_AMT>").append("<![CDATA["+checkNullAndTrim(rs.getString("TOT_AMT"))+"]]>").append("</TOT_AMT>\r\n");
sb.append("<TAX_AMT>").append("<![CDATA["+checkNullAndTrim(rs.getString("TAX_AMT"))+"]]>").append("</TAX_AMT>\r\n");
sb.append("</root>"); sb.append("</root>");
} }
else else
{ {
System.out.println("No sale order made"); System.out.println("No batch id made");
return status; return status;
} }
rs.close();rs = null; rs.close();rs = null;
pstmt.close();pstmt = null; pstmt.close();pstmt = null;
/*String xslFileName = getXSLFileName("response.xsl");
System.out.println("Response XSL File Name="+xslFileName);
String transformXsl = (ibase.webitm.utility.GenericUtility.getInstance()).transformToString( xslFileName, xml,contextPath+"/webitm/xsl/Standard/Transform", "Output", ".xml" );
System.out.println("After Transformation Response= "+transformXsl);*/
} }
catch(Exception e) catch(Exception e)
{ {
...@@ -3000,4 +2730,1192 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal, ...@@ -3000,4 +2730,1192 @@ public class SapSorderEJB extends ActionHandlerEJB implements SapSorderEJBLocal,
return userInfoStr.toString(); return userInfoStr.toString();
} }
//Samadhan
public String genericMapper(String xml,String clientXml,String objName,Connection conn) throws Exception
{
System.out.println("Inside Generic Mapper...................");
String mappedXml = "";
Document mapperDom = null,clientDom = null,transformDom = null;
NodeList mapperParentNodeList = null;
NodeList mapperFieldsNodeList = null;
Node mapperParentNode = null;
Node mapperFieldNode = null;
String mapperFieldNodeName = null;
int mapperFieldsNodeListLen;
int ctr =0 ;
FileInputStream genericMapFis = null;
ArrayList mappingSqlParam =new ArrayList();
ArrayList totalMatchNodeArr = new ArrayList();
ArrayList clientNode = new ArrayList();
String mappingSql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String columnName = "";
NodeList matchNodeList = null;
Node xmlParentNode = null;
NodeList xmlchildNodeList = null;
int xmlchildNodeListLength = 0;
try
{
String defaultPath = null;
if( CommonConstants.APPLICATION_CONTEXT != null )
{
defaultPath = CommonConstants.APPLICATION_CONTEXT + File.separator;
}
GenericUtility genericUtility = GenericUtility.getInstance();
File genericMapFile = new File(defaultPath+"/setting/generic_map.xml");
StringBuffer mapperStrBuf = new StringBuffer();
genericMapFis = new FileInputStream(genericMapFile);
System.out.println("Total file size to read (in bytes) : "+ genericMapFis.available());
int content;
while ((content = genericMapFis.read()) != -1)
{
mapperStrBuf.append((char) content);
}
System.out.println("Generic Mapper XML file is= "+mapperStrBuf);
mapperDom = genericUtility.parseString(mapperStrBuf.toString());
clientDom = genericUtility.parseString(clientXml.toString());
transformDom = genericUtility.parseString(xml.toString());
mapperParentNodeList = mapperDom.getElementsByTagName(objName);
mapperParentNode = mapperParentNodeList.item(0);
mapperFieldsNodeList = mapperParentNode.getChildNodes();
mapperFieldsNodeListLen = mapperFieldsNodeList.getLength();
System.out.println("@@Mapper Fields Node Length ="+mapperFieldsNodeListLen);
for(ctr=0;ctr<mapperFieldsNodeListLen;ctr++)
{
mapperFieldNode = mapperFieldsNodeList.item(ctr);
mapperFieldNodeName = mapperFieldNode.getNodeName();
if (!(mapperFieldNode instanceof Text))
{
System.out.println("Mapper Field Node Name = "+mapperFieldNodeName);
matchNodeList = transformDom.getElementsByTagName(mapperFieldNodeName);
System.out.println("Match Fields NodeList Length="+matchNodeList.getLength());
if(matchNodeList.getLength() > 1)
{
for(int y=0;y<matchNodeList.getLength();y++)
{
System.out.println("Client Node Value="+matchNodeList.item(y).getChildNodes().item(0).getNodeValue());
System.out.println("Client Node Name="+matchNodeList.item(y).getNodeName());
totalMatchNodeArr.add(matchNodeList.item(y).getChildNodes().item(0).getNodeValue());
}
}
for(int i = 1; i <= mapperFieldNode.getChildNodes().getLength(); i++)
{
Node mapperFieldChildNodes = mapperFieldNode.getChildNodes().item(i);
if (!(mapperFieldChildNodes instanceof Text))
{
if(mapperFieldChildNodes != null)
{
System.out.println("Mapper Fields Child Node Name= "+mapperFieldChildNodes.getNodeName());
if(mapperFieldChildNodes.getNodeName().equalsIgnoreCase("sql_input"))
{
for(int j = 1; j <= mapperFieldChildNodes.getChildNodes().getLength(); j++)
{
Node sqlChildNode = mapperFieldChildNodes.getChildNodes().item(j);
if (!(sqlChildNode instanceof Text))
{
if(sqlChildNode != null)
{
System.out.println("SQL Params="+sqlChildNode.getNodeName());
System.out.println("SQL Input="+sqlChildNode.getChildNodes().item(0).getNodeValue());
mappingSqlParam.add(sqlChildNode.getChildNodes().item(0).getNodeValue());
}
}
}
}
else
{
mappingSql = mapperFieldChildNodes.getChildNodes().item(0).getNodeValue();
System.out.println("Mapping SQL Query= "+mappingSql);
}
}
}
}
System.out.println("Mapping Field is= "+mapperFieldNodeName);
System.out.println("Mapping SQL is= "+mappingSql);
System.out.println("Mapping SQL Parameters are");
for (Iterator<String> iter = mappingSqlParam.iterator() ; iter.hasNext(); )
{
System.out.println("\t"+iter.next());
}
for(int y=0; y<matchNodeList.getLength(); y++)
{
pstmt = conn.prepareStatement(mappingSql);
int count = 1;
for(Object sqlParamIter : mappingSqlParam)
{
if(matchNodeList.getLength() > 1)
{
String sqlParamValue = totalMatchNodeArr.get(y).toString();
System.out.println("SQL Param Value from client DOM is = "+sqlParamValue);
pstmt.setString(count++, sqlParamValue.trim());
}
else
{
String[] splitSqlParam = sqlParamIter.toString().split(":");
String sqlParamValue = "";
System.out.println("SQL Param Hierarchy ="+splitSqlParam.length);
if(splitSqlParam.length > 1)
{
NodeList curentNodeList = clientDom.getElementsByTagName(splitSqlParam[0]);
Node splitNode = curentNodeList.item(0);
NodeList currNodeChildList = splitNode.getChildNodes();
int pos = 1;
System.out.println("searching node = "+splitSqlParam[pos]);
for(int paramNodeLevel = 0; paramNodeLevel<currNodeChildList.getLength(); paramNodeLevel++)
{
String name = currNodeChildList.item(paramNodeLevel).getNodeName();
System.out.println("getting node from client dom = "+name);
if(name.equalsIgnoreCase(splitSqlParam[pos]))
{
System.out.println("Node Found pos="+pos);
if((pos+1)==splitSqlParam.length)
{
sqlParamValue = currNodeChildList.item(paramNodeLevel).getChildNodes().item(0).getNodeValue();
break;
}
else
{
currNodeChildList = currNodeChildList.item(paramNodeLevel).getChildNodes();
pos++;
paramNodeLevel=0;
//continue;
}
}
}
System.out.println("Read Value from client DOM="+sqlParamValue);
pstmt.setString(count++, sqlParamValue.trim());
}
else
{
sqlParamValue = genericUtility.getColumnValue(sqlParamIter.toString(), clientDom);
System.out.println("Read Value from client DOM="+sqlParamValue);
pstmt.setString(count++, sqlParamValue.trim());
}
}
}
rs = pstmt.executeQuery();
if (rs.next())
{
String value = checkNullAndTrim(rs.getString(mapperFieldNodeName));
System.out.println(mapperFieldNodeName+"="+value);
if(matchNodeList.getLength() > 1)
{
matchNodeList.item(y).getChildNodes().item(0).setNodeValue(value);
}
else
{
setNodeValue(transformDom,mapperFieldNodeName,value);
}
}
if(rs != null) {rs.close();rs = null;}
if(pstmt != null) {pstmt.close();pstmt = null;}
}
mappingSqlParam.clear();
totalMatchNodeArr.clear();
}
}
mappedXml = genericUtility.serializeDom(transformDom);//returning final xml after mapping
}
catch(Exception e)
{
e.printStackTrace();
throw new Exception(e);
}
finally
{
System.out.println("@@Inside genericMapper finally");
try
{
if (genericMapFis != null)
genericMapFis.close();
if(rs != null) {rs.close();rs = null;}
if(pstmt != null) {pstmt.close();pstmt = null;}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
return mappedXml;
}
public String genericMapperNew(String xml,String clientXml,String objName,Connection conn) throws Exception
{
System.out.println("Inside Generic Mapper...................");
String mappedXml = "";
Document mapperDom = null,clientDom = null,transformDom = null;
NodeList mapperParentNodeList = null;
NodeList mapperFieldsNodeList = null;
NodeList mapperDetailNodeList = null;
NodeList transformFieldList = null;
Node mapperParentNode = null;
Node mapperFieldNode = null;
Node mapperDetailNode = null;
Node matchNode = null;
String currentMapperDetail = "";
String currentTransformDetail = "";
String mapperFieldNodeName = null;
int mapperFieldsNodeListLen;
int ctr =0 ;
FileInputStream genericMapFis = null;
ArrayList mappingSqlParam =new ArrayList();
ArrayList totalMatchNodeArr = new ArrayList();
ArrayList clientNode = new ArrayList();
String mappingSql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String columnName = "";
NodeList matchNodeList = null;
Node xmlParentNode = null;
NodeList xmlchildNodeList = null;
int xmlchildNodeListLength = 0;
Element element= null;
try
{
String defaultPath = null;
if( CommonConstants.APPLICATION_CONTEXT != null )
{
defaultPath = CommonConstants.APPLICATION_CONTEXT + File.separator;
}
GenericUtility genericUtility = GenericUtility.getInstance();
File genericMapFile = new File(defaultPath+"/setting/generic_map.xml");
StringBuffer mapperStrBuf = new StringBuffer();
genericMapFis = new FileInputStream(genericMapFile);
System.out.println("Total file size to read (in bytes) : "+ genericMapFis.available());
int content;
while ((content = genericMapFis.read()) != -1)
{
mapperStrBuf.append((char) content);
}
System.out.println("Generic Mapper XML file is= "+mapperStrBuf);
mapperDom = genericUtility.parseString(mapperStrBuf.toString());
clientDom = genericUtility.parseString(clientXml.toString());
transformDom = genericUtility.parseString(xml.toString());
mapperParentNodeList = mapperDom.getElementsByTagName(objName);
mapperParentNode = mapperParentNodeList.item(0);
mapperDetailNodeList = mapperParentNode.getChildNodes();
System.out.println("@@Mapper Detail Node Length ="+mapperDetailNodeList.getLength());
for(int ctrDtl = 0; ctrDtl<mapperDetailNodeList.getLength();ctrDtl++)
{
mapperDetailNode = mapperDetailNodeList.item(ctrDtl);
if (!(mapperDetailNode instanceof Text))
{
currentMapperDetail = mapperDetailNodeList.item(ctrDtl).getNodeName();
System.out.println("Mapper Current Detail Node ="+currentMapperDetail);
mapperFieldsNodeList = mapperDetailNodeList.item(ctrDtl).getChildNodes();
mapperFieldsNodeListLen = mapperFieldsNodeList.getLength();
System.out.println("@@Mapper Fields Node Length ="+mapperFieldsNodeListLen);
transformFieldList = transformDom.getElementsByTagName(currentMapperDetail);
for(ctr=0;ctr<mapperFieldsNodeListLen;ctr++)
{
mapperFieldNode = mapperFieldsNodeList.item(ctr);
mapperFieldNodeName = mapperFieldNode.getNodeName();
if (!(mapperFieldNode instanceof Text))
{
System.out.println("Mapper Field Node Name = "+mapperFieldNodeName);
matchNodeList = transformFieldList.item(0).getChildNodes();
element = (Element) transformFieldList.item(0);
for(int cntTran = 0;cntTran<matchNodeList.getLength();cntTran++)
{
matchNode = matchNodeList.item(cntTran);
if(mapperFieldNodeName.equalsIgnoreCase(matchNode.getNodeName()))
{
System.out.println("Match Fields node Name="+matchNode.getNodeName());
for(int i = 1; i <= mapperFieldNode.getChildNodes().getLength(); i++)
{
Node mapperFieldChildNodes = mapperFieldNode.getChildNodes().item(i);
if (!(mapperFieldChildNodes instanceof Text))
{
if(mapperFieldChildNodes != null)
{
System.out.println("Mapper Fields Child Node Name= "+mapperFieldChildNodes.getNodeName());
if(mapperFieldChildNodes.getNodeName().equalsIgnoreCase("sql_input"))
{
for(int j = 1; j <= mapperFieldChildNodes.getChildNodes().getLength(); j++)
{
Node sqlChildNode = mapperFieldChildNodes.getChildNodes().item(j);
if (!(sqlChildNode instanceof Text))
{
if(sqlChildNode != null)
{
System.out.println("SQL Params="+sqlChildNode.getNodeName());
System.out.println("SQL Input="+sqlChildNode.getChildNodes().item(0).getNodeValue());
mappingSqlParam.add(sqlChildNode.getChildNodes().item(0).getNodeValue());
}
}
}
}
else
{
mappingSql = mapperFieldChildNodes.getChildNodes().item(0).getNodeValue();
System.out.println("Mapping SQL Query= "+mappingSql);
}
}
}
}
System.out.println("Mapping Field is= "+mapperFieldNodeName);
System.out.println("Mapping SQL is= "+mappingSql);
System.out.println("Mapping SQL Parameters are");
for (Iterator<String> iter = mappingSqlParam.iterator() ; iter.hasNext(); )
{
System.out.println("\t"+iter.next());
}
pstmt = conn.prepareStatement(mappingSql);
int count = 1;
for(Object sqlParamIter : mappingSqlParam)
{
String[] splitSqlParam = sqlParamIter.toString().split(":");
String sqlParamValue = "";
System.out.println("SQL Param Hierarchy ="+splitSqlParam.length);
if(splitSqlParam.length > 1)
{
NodeList curentNodeList = clientDom.getElementsByTagName(splitSqlParam[0]);
Node splitNode = curentNodeList.item(0);
NodeList currNodeChildList = splitNode.getChildNodes();
int pos = 1;
System.out.println("searching node = "+splitSqlParam[pos]);
for(int paramNodeLevel = 0; paramNodeLevel<currNodeChildList.getLength(); paramNodeLevel++)
{
String name = currNodeChildList.item(paramNodeLevel).getNodeName();
System.out.println("getting node from client dom = "+name);
if(name.equalsIgnoreCase(splitSqlParam[pos]))
{
System.out.println("Node Found pos="+pos);
if((pos+1)==splitSqlParam.length)
{
sqlParamValue = currNodeChildList.item(paramNodeLevel).getChildNodes().item(0).getNodeValue();
break;
}
else
{
currNodeChildList = currNodeChildList.item(paramNodeLevel).getChildNodes();
pos++;
paramNodeLevel=0;
//continue;
}
}
}
System.out.println("Read Value from client DOM="+sqlParamValue);
pstmt.setString(count++, sqlParamValue.trim());
}
else
{
sqlParamValue = genericUtility.getColumnValue(sqlParamIter.toString(), clientDom);
System.out.println("Read Value from client DOM="+sqlParamValue);
pstmt.setString(count++, sqlParamValue.trim());
}
}
rs = pstmt.executeQuery();
if (rs.next())
{
String value = checkNullAndTrim(rs.getString(mapperFieldNodeName));
System.out.println(mapperFieldNodeName+"="+value);
matchNode.setNodeValue(value);
System.out.println("Element:"+element);
//Node fieldNode = element.getElementsByTagName(mapperFieldNodeName).item(0).getFirstChild();
//fieldNode.setNodeValue(value);
}
if(rs != null) {rs.close();rs = null;}
if(pstmt != null) {pstmt.close();pstmt = null;}
mappingSqlParam.clear();
totalMatchNodeArr.clear();
}
}
mappedXml = genericUtility.serializeDom(transformDom);//returning final xml after mapping
}
}
}
}
}
catch(Exception e)
{
e.printStackTrace();
throw new Exception(e);
}
finally
{
System.out.println("@@Inside genericMapper finally");
try
{
if (genericMapFis != null)
genericMapFis.close();
if(rs != null) {rs.close();rs = null;}
if(pstmt != null) {pstmt.close();pstmt = null;}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
return mappedXml;
}
public String genericMapperNew1(String xml,String clientXml,String objName,Connection conn) throws Exception
{
System.out.println("Inside Generic Mapper...................");
String mappedXml = "";
Document mapperDom = null,clientDom = null,transformDom = null;
NodeList mapperParentNodeList = null;
NodeList mapperFieldsNodeList = null;
NodeList mapperDetailNodeList = null;
NodeList transformFieldList = null;
Node mapperParentNode = null;
Node mapperFieldNode = null;
Node mapperDetailNode = null;
Node matchNode = null;
String currentMapperDetail = "";
String currentTransformDetail = "";
String mapperFieldNodeName = null;
int mapperFieldsNodeListLen;
int ctr =0 ;
FileInputStream genericMapFis = null;
ArrayList mappingSqlParam =new ArrayList();
ArrayList totalMatchNodeArr = new ArrayList();
ArrayList clientNode = new ArrayList();
String mappingSql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String columnName = "";
NodeList matchNodeList = null;
Node xmlParentNode = null;
NodeList xmlchildNodeList = null;
int xmlchildNodeListLength = 0;
Element element= null;
try
{
String defaultPath = null;
if( CommonConstants.APPLICATION_CONTEXT != null )
{
defaultPath = CommonConstants.APPLICATION_CONTEXT + File.separator;
}
GenericUtility genericUtility = GenericUtility.getInstance();
File genericMapFile = new File(defaultPath+"/setting/generic_map.xml");
StringBuffer mapperStrBuf = new StringBuffer();
genericMapFis = new FileInputStream(genericMapFile);
System.out.println("Total file size to read (in bytes) : "+ genericMapFis.available());
int content;
while ((content = genericMapFis.read()) != -1)
{
mapperStrBuf.append((char) content);
}
System.out.println("Generic Mapper XML file is= "+mapperStrBuf);
mapperDom = genericUtility.parseString(mapperStrBuf.toString());
clientDom = genericUtility.parseString(clientXml.toString());
transformDom = genericUtility.parseString(xml.toString());
mapperParentNodeList = mapperDom.getElementsByTagName(objName);
mapperParentNode = mapperParentNodeList.item(0);
mapperDetailNodeList = mapperParentNode.getChildNodes();
System.out.println("@@Mapper Detail Node Length ="+mapperDetailNodeList.getLength());
for(int ctrDtl = 0; ctrDtl<mapperDetailNodeList.getLength();ctrDtl++)
{
mapperDetailNode = mapperDetailNodeList.item(ctrDtl);
if (!(mapperDetailNode instanceof Text))
{
currentMapperDetail = mapperDetailNodeList.item(ctrDtl).getNodeName();
System.out.println("Mapper Current Detail Node ="+currentMapperDetail);
mapperFieldsNodeList = mapperDetailNodeList.item(ctrDtl).getChildNodes();
mapperFieldsNodeListLen = mapperFieldsNodeList.getLength();
System.out.println("@@Mapper Fields Node Length ="+mapperFieldsNodeListLen);
transformFieldList = transformDom.getElementsByTagName(currentMapperDetail);
for(ctr=0;ctr<mapperFieldsNodeListLen;ctr++)
{
mapperFieldNode = mapperFieldsNodeList.item(ctr);
mapperFieldNodeName = mapperFieldNode.getNodeName();
if (!(mapperFieldNode instanceof Text))
{
System.out.println("Mapper Field Node Name = "+mapperFieldNodeName);
for(int cnt=0; cnt<transformFieldList.getLength();cnt++)
{
element = (Element) transformFieldList.item(cnt);
Node name = element.getElementsByTagName(mapperFieldNodeName).item(0).getFirstChild();
for(int i = 1; i <= mapperFieldNode.getChildNodes().getLength(); i++)
{
Node mapperFieldChildNodes = mapperFieldNode.getChildNodes().item(i);
if (!(mapperFieldChildNodes instanceof Text))
{
if(mapperFieldChildNodes != null)
{
System.out.println("Mapper Fields Child Node Name= "+mapperFieldChildNodes.getNodeName());
if(mapperFieldChildNodes.getNodeName().equalsIgnoreCase("sql_input"))
{
for(int j = 1; j <= mapperFieldChildNodes.getChildNodes().getLength(); j++)
{
Node sqlChildNode = mapperFieldChildNodes.getChildNodes().item(j);
if (!(sqlChildNode instanceof Text))
{
if(sqlChildNode != null)
{
System.out.println("SQL Params="+sqlChildNode.getNodeName());
System.out.println("SQL Input="+sqlChildNode.getChildNodes().item(0).getNodeValue());
mappingSqlParam.add(sqlChildNode.getChildNodes().item(0).getNodeValue());
}
}
}
}
else
{
mappingSql = mapperFieldChildNodes.getChildNodes().item(0).getNodeValue();
System.out.println("Mapping SQL Query= "+mappingSql);
}
}
}
}
name.setNodeValue(name.getNodeValue().toUpperCase());
}
matchNodeList = transformFieldList.item(0).getChildNodes();
element = (Element) transformFieldList.item(0);
for(int cntTran = 0;cntTran<matchNodeList.getLength();cntTran++)
{
matchNode = matchNodeList.item(cntTran);
if(mapperFieldNodeName.equalsIgnoreCase(matchNode.getNodeName()))
{
System.out.println("Match Fields node Name="+matchNode.getNodeName());
for(int i = 1; i <= mapperFieldNode.getChildNodes().getLength(); i++)
{
Node mapperFieldChildNodes = mapperFieldNode.getChildNodes().item(i);
if (!(mapperFieldChildNodes instanceof Text))
{
if(mapperFieldChildNodes != null)
{
System.out.println("Mapper Fields Child Node Name= "+mapperFieldChildNodes.getNodeName());
if(mapperFieldChildNodes.getNodeName().equalsIgnoreCase("sql_input"))
{
for(int j = 1; j <= mapperFieldChildNodes.getChildNodes().getLength(); j++)
{
Node sqlChildNode = mapperFieldChildNodes.getChildNodes().item(j);
if (!(sqlChildNode instanceof Text))
{
if(sqlChildNode != null)
{
System.out.println("SQL Params="+sqlChildNode.getNodeName());
System.out.println("SQL Input="+sqlChildNode.getChildNodes().item(0).getNodeValue());
mappingSqlParam.add(sqlChildNode.getChildNodes().item(0).getNodeValue());
}
}
}
}
else
{
mappingSql = mapperFieldChildNodes.getChildNodes().item(0).getNodeValue();
System.out.println("Mapping SQL Query= "+mappingSql);
}
}
}
}
System.out.println("Mapping Field is= "+mapperFieldNodeName);
System.out.println("Mapping SQL is= "+mappingSql);
System.out.println("Mapping SQL Parameters are");
for (Iterator<String> iter = mappingSqlParam.iterator() ; iter.hasNext(); )
{
System.out.println("\t"+iter.next());
}
pstmt = conn.prepareStatement(mappingSql);
int count = 1;
for(Object sqlParamIter : mappingSqlParam)
{
String[] splitSqlParam = sqlParamIter.toString().split(":");
String sqlParamValue = "";
System.out.println("SQL Param Hierarchy ="+splitSqlParam.length);
if(splitSqlParam.length > 1)
{
NodeList curentNodeList = clientDom.getElementsByTagName(splitSqlParam[0]);
Node splitNode = curentNodeList.item(0);
NodeList currNodeChildList = splitNode.getChildNodes();
int pos = 1;
System.out.println("searching node = "+splitSqlParam[pos]);
for(int paramNodeLevel = 0; paramNodeLevel<currNodeChildList.getLength(); paramNodeLevel++)
{
String name = currNodeChildList.item(paramNodeLevel).getNodeName();
System.out.println("getting node from client dom = "+name);
if(name.equalsIgnoreCase(splitSqlParam[pos]))
{
System.out.println("Node Found pos="+pos);
if((pos+1)==splitSqlParam.length)
{
sqlParamValue = currNodeChildList.item(paramNodeLevel).getChildNodes().item(0).getNodeValue();
break;
}
else
{
currNodeChildList = currNodeChildList.item(paramNodeLevel).getChildNodes();
pos++;
paramNodeLevel=0;
//continue;
}
}
}
System.out.println("Read Value from client DOM="+sqlParamValue);
pstmt.setString(count++, sqlParamValue.trim());
}
else
{
sqlParamValue = genericUtility.getColumnValue(sqlParamIter.toString(), clientDom);
System.out.println("Read Value from client DOM="+sqlParamValue);
pstmt.setString(count++, sqlParamValue.trim());
}
}
rs = pstmt.executeQuery();
if (rs.next())
{
String value = checkNullAndTrim(rs.getString(mapperFieldNodeName));
System.out.println(mapperFieldNodeName+"="+value);
matchNode.setNodeValue(value);
System.out.println("Element:"+element);
//Node fieldNode = element.getElementsByTagName(mapperFieldNodeName).item(0).getFirstChild();
//fieldNode.setNodeValue(value);
}
if(rs != null) {rs.close();rs = null;}
if(pstmt != null) {pstmt.close();pstmt = null;}
mappingSqlParam.clear();
totalMatchNodeArr.clear();
}
}
mappedXml = genericUtility.serializeDom(transformDom);//returning final xml after mapping
}
}
}
}
}
catch(Exception e)
{
e.printStackTrace();
throw new Exception(e);
}
finally
{
System.out.println("@@Inside genericMapper finally");
try
{
if (genericMapFis != null)
genericMapFis.close();
if(rs != null) {rs.close();rs = null;}
if(pstmt != null) {pstmt.close();pstmt = null;}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
return mappedXml;
}
public String genericMapperNew2(String xml,String clientXml,String objName,Connection conn) throws Exception
{
System.out.println("Inside Generic Mapper...................");
String mappedXml = "";
Document mapperDom = null,clientDom = null,transformDom = null,tempTransDom = null;
NodeList mapperParentNodeList = null;
NodeList mapperFieldsNodeList = null;
NodeList mapperDetailNodeList = null;
NodeList transformFieldList = null;
Node mapperParentNode = null;
Node mapperFieldNode = null;
Node mapperDetailNode = null;
Node matchNode = null;
String currentMapperDetail = "";
String currentTransformDetail = "";
String mapperFieldNodeName = null;
int mapperFieldsNodeListLen;
int ctr =0 ;
FileInputStream genericMapFis = null;
ArrayList mappingSqlParam =new ArrayList();
ArrayList mappingSqlParamType =new ArrayList();
ArrayList totalMatchNodeArr = new ArrayList();
ArrayList clientNode = new ArrayList();
String mappingSql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String columnName = "";
NodeList matchNodeList = null;
Node xmlParentNode = null;
NodeList xmlchildNodeList = null;
int xmlchildNodeListLength = 0;
Element element= null;
String domId = "";
try
{
String defaultPath = null;
if( CommonConstants.APPLICATION_CONTEXT != null )
{
defaultPath = CommonConstants.APPLICATION_CONTEXT + File.separator;
}
GenericUtility genericUtility = GenericUtility.getInstance();
File genericMapFile = new File(defaultPath+"/setting/generic_map.xml");
StringBuffer mapperStrBuf = new StringBuffer();
genericMapFis = new FileInputStream(genericMapFile);
System.out.println("Total file size to read (in bytes) : "+ genericMapFis.available());
int content;
while ((content = genericMapFis.read()) != -1)
{
mapperStrBuf.append((char) content);
}
System.out.println("Generic Mapper XML file is= "+mapperStrBuf);
mapperDom = genericUtility.parseString(mapperStrBuf.toString());
clientDom = genericUtility.parseString(clientXml.toString());
transformDom = genericUtility.parseString(xml.toString());
tempTransDom = genericUtility.parseString(xml.toString());
mapperParentNodeList = mapperDom.getElementsByTagName(objName);
mapperParentNode = mapperParentNodeList.item(0);
mapperDetailNodeList = mapperParentNode.getChildNodes();
System.out.println("@@Mapper Detail Node Length ="+mapperDetailNodeList.getLength());
for(int ctrDtl = 0; ctrDtl<mapperDetailNodeList.getLength();ctrDtl++)
{
mapperDetailNode = mapperDetailNodeList.item(ctrDtl);
if (!(mapperDetailNode instanceof Text))
{
currentMapperDetail = mapperDetailNodeList.item(ctrDtl).getNodeName();
System.out.println("Mapper Current Detail Node ="+currentMapperDetail);
mapperFieldsNodeList = mapperDetailNodeList.item(ctrDtl).getChildNodes();
mapperFieldsNodeListLen = mapperFieldsNodeList.getLength();
System.out.println("@@Mapper Fields Node Length ="+mapperFieldsNodeListLen);
transformFieldList = transformDom.getElementsByTagName(currentMapperDetail);
for(ctr=0;ctr<mapperFieldsNodeListLen;ctr++)
{
mapperFieldNode = mapperFieldsNodeList.item(ctr);
mapperFieldNodeName = mapperFieldNode.getNodeName();
if (!(mapperFieldNode instanceof Text))
{
System.out.println("Mapper Field Node Name = "+mapperFieldNodeName);
for(int cnt=0; cnt<transformFieldList.getLength();cnt++)
{
Node curDetail = transformFieldList.item(cnt);
domId = curDetail.getAttributes().getNamedItem("domID").getNodeValue();
element = (Element) transformFieldList.item(cnt);
Node transformNode = element.getElementsByTagName(mapperFieldNodeName).item(0);
System.out.println("Current Dom Id = "+domId);
System.out.println("Current Element = "+element);
for(int i = 1; i <= mapperFieldNode.getChildNodes().getLength(); i++)
{
Node mapperFieldChildNodes = mapperFieldNode.getChildNodes().item(i);
if (!(mapperFieldChildNodes instanceof Text))
{
if(mapperFieldChildNodes != null)
{
if(mapperFieldChildNodes.getNodeName().equalsIgnoreCase("sql_input"))
{
for(int j = 1; j < mapperFieldChildNodes.getChildNodes().getLength(); j++)
{
NodeList sqlChildNodeList = mapperFieldChildNodes.getChildNodes().item(j).getChildNodes();
for(int cntParam = 0;cntParam < sqlChildNodeList.getLength();cntParam++)
{
Node sqlChildNode = sqlChildNodeList.item(cntParam);
if (!(sqlChildNode instanceof Text))
{
if(sqlChildNode.getNodeName().equalsIgnoreCase("sql_input_col_name"))
{
System.out.println("SQL Input="+sqlChildNode.getChildNodes().item(0).getNodeValue());
mappingSqlParam.add(sqlChildNode.getChildNodes().item(0).getNodeValue());
}
if(sqlChildNode.getNodeName().equalsIgnoreCase("sql_input_type"))
{
System.out.println("SQL Input Type="+sqlChildNode.getChildNodes().item(0).getNodeValue());
mappingSqlParamType.add(sqlChildNode.getChildNodes().item(0).getNodeValue());
}
}
}
}
}
else
{
mappingSql = mapperFieldChildNodes.getChildNodes().item(0).getNodeValue();
System.out.println("Mapping SQL Query= "+mappingSql);
}
}
}
}
System.out.println("Mapping Field is= "+mapperFieldNodeName);
System.out.println("Mapping SQL is= "+mappingSql);
System.out.println("Mapping SQL Parameters are");
for (Iterator<String> iter = mappingSqlParam.iterator() ; iter.hasNext(); )
{
System.out.println("\t"+iter.next());
}
pstmt = conn.prepareStatement(mappingSql);
int count = 1;
for(Object sqlParamIter : mappingSqlParam)
{
String sqlParamValue = getNodeValue(sqlParamIter.toString(), domId, tempTransDom);
String dataType = mappingSqlParamType.get(count-1).toString();
String val = sqlParamValue.trim();
int prepCount = count++;
if((dataType.toUpperCase().indexOf("STRING") != -1) || (dataType.toUpperCase().indexOf("CHAR") != -1) || (dataType.toUpperCase().indexOf("VARCHAR") != -1))
{
pstmt.setString(prepCount, String.valueOf(val));
}
else if((dataType.toUpperCase().indexOf("DECIMAL") != -1) || (dataType.toUpperCase().indexOf("DOUBLE") != -1) || (dataType.toUpperCase().indexOf("NUMBER") != -1) || (dataType.toUpperCase().indexOf("LONG") != -1))
{
pstmt.setDouble(prepCount, Double.valueOf(val).doubleValue());
}
else if((dataType.toUpperCase().indexOf("DATETIME") != -1) || (dataType.toUpperCase().indexOf("TIMESTAMP") != -1))
{
String dbDateStr = getValidDateTimeString(val, getApplDateFormat(), getDBDateFormat());
pstmt.setTimestamp(prepCount, java.sql.Timestamp.valueOf(dbDateStr));
}
else if(dataType.toUpperCase().indexOf("DATE") != -1 )
{
String dbDateStr = getValidDateString(val, getApplDateFormat(), getDBDateFormat());
pstmt.setDate(prepCount, java.sql.Date.valueOf(dbDateStr));
}
}
rs = pstmt.executeQuery();
if (rs.next())
{
String value = checkNullAndTrim(rs.getString(1));
System.out.println(mapperFieldNodeName+"="+value);
//matchNode.setNodeValue(value);
System.out.println("Element:"+element);
System.out.println("TransformNode:"+transformNode);
/*if(transformNode != null)
{
System.out.println("TransformNode:"+transformNode.getNodeName());
transformNode.setNodeValue(value);
}*/
Node colValueNode = transformNode.getFirstChild();
if(colValueNode != null && colValueNode.getNodeValue() != null)
{
colValueNode.setNodeValue(value);
}
else
{
CDATASection cDataSection = transformDom.createCDATASection(value);
transformNode.appendChild(cDataSection);
}
System.out.println(mapperFieldNodeName+" mapping done!!!!!!!!!!!!!!!!\n\n\n");
System.out.println("********************************************************");
}
if(rs != null) {rs.close();rs = null;}
if(pstmt != null) {pstmt.close();pstmt = null;}
mappingSqlParam.clear();
totalMatchNodeArr.clear();
}
}
}
mappedXml = genericUtility.serializeDom(transformDom);//returning final xml after mapping
}
}
}
catch(Exception e)
{
e.printStackTrace();
throw new Exception(e);
}
finally
{
System.out.println("@@Inside genericMapper finally");
try
{
if (genericMapFis != null)
genericMapFis.close();
if(rs != null) {rs.close();rs = null;}
if(pstmt != null) {pstmt.close();pstmt = null;}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
return mappedXml;
}
private static void updateElementValue(Document doc) {
NodeList employees = doc.getElementsByTagName("Employee");
Element emp = null;
//loop for each employee
for(int i=0; i<employees.getLength();i++)
{
emp = (Element) employees.item(i);
Node name = emp.getElementsByTagName("name").item(0).getFirstChild();
name.setNodeValue(name.getNodeValue().toUpperCase());
}
}
private String getNodeValue(String fieldName,String domId,Document tempDom)
{
String[] fieldArr = fieldName.split("\\.");
String formNo = fieldArr[1];
String rowNo = fieldArr[2];
String parameterName = fieldArr[3];
if("X".equalsIgnoreCase(rowNo))
{
rowNo = domId;
}
String actualValue ="";
try
{
actualValue = new E12GenericUtility().getColumnValue(parameterName,tempDom,formNo,rowNo);
} catch (ITMException e) {
e.printStackTrace();
}
return actualValue;
}
public String prettyXMLFormat(String input, int indent)
{
try
{
Source xmlInput = new StreamSource(new StringReader(input));
StringWriter stringWriter = new StringWriter();
StreamResult xmlOutput = new StreamResult(stringWriter);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformerFactory.setAttribute("indent-number", indent);
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(xmlInput, xmlOutput);
return xmlOutput.getWriter().toString();
} catch (Exception e) {
throw new RuntimeException(e); // simple exception handling, please review it
}
}
private String getApplDateFormat()throws ITMException,Exception
{
String dateFormatStr = null;
try
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(CommonConstants.APPLICATION_CONTEXT + File.separator + "setting" + File.separator + "DateFormat.xml");
NodeList nlDateFormat = doc.getElementsByTagName("APPL_DATE_FORMAT");
Node ndDateFormat = nlDateFormat.item(0);
dateFormatStr = ndDateFormat.getFirstChild().getNodeValue();
}
catch(Exception e)
{
System.out.println("Exception :SapSorderEJB :getApplDateFormat :==>\n"+e);
throw new ITMException(e);
}
return dateFormatStr;
}
private String getDBDateFormat()throws ITMException, Exception
{
String dateFormatStr = null;
try
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(CommonConstants.APPLICATION_CONTEXT + File.separator + "setting" + File.separator + "DateFormat.xml");
NodeList nlDateFormat = doc.getElementsByTagName("DB_DATE_FORMAT");
Node ndDateFormat = nlDateFormat.item(0);
dateFormatStr = ndDateFormat.getFirstChild().getNodeValue();
System.out.println("dateFormatStr:"+dateFormatStr);
}
catch(Exception e)
{
System.out.println("Exception :SapSorderEJB :getDBDateFormat :==>\n"+e);
throw new ITMException(e);
}
return dateFormatStr;
}
private String getValidDateTimeString(String dateTimeStr, String sourceDateTimeFormat, String targetDateTimeFormat) throws ITMException
{
System.out.println("Getting the valid datetime string for dateTimeStr :"+dateTimeStr+": which is in format :"+sourceDateTimeFormat);
Object date = null;
String retDateStr = "";
try
{
if (!(sourceDateTimeFormat.equalsIgnoreCase(targetDateTimeFormat)))
{
if (sourceDateTimeFormat.indexOf("/") != -1)
{
dateTimeStr.replace('/', '-');
}
else if (sourceDateTimeFormat.indexOf(".") != -1)
{
dateTimeStr.replace('.', '-');
}
date = new SimpleDateFormat(sourceDateTimeFormat).parse(dateTimeStr+((dateTimeStr.length() > 10 ) ? "" : " 00:00:00" ) );
SimpleDateFormat sdfOutput = new SimpleDateFormat( targetDateTimeFormat+" HH:mm:ss" );
retDateStr = sdfOutput.format(date);
}
else
{
retDateStr = dateTimeStr;
}
}
catch (Exception e)
{
System.out.println("Exception :SapSorderEJB :getValidDateTimeString :==>"+e.getMessage());
throw new ITMException(e);
}
//System.out.println("retDateStr :"+retDateStr);
return retDateStr;
}
private String getValidDateString(String dateStr, String sourceDateFormat, String targetDateFormat) throws ITMException
{
System.out.println("[SapSorderEJB]Converting dateStr :["+dateStr+"] From format :["+sourceDateFormat +"] To Format :["+targetDateFormat+"]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
Object date = null;
String retDateStr = "";
try
{
if (!(sourceDateFormat.equalsIgnoreCase(targetDateFormat)))
{
if (sourceDateFormat.indexOf("/") != -1)
{
dateStr.replace('/', '-');
}
else if (sourceDateFormat.indexOf(".") != -1)
{
dateStr.replace('.', '-');
}
date = new SimpleDateFormat(sourceDateFormat).parse(dateStr);
SimpleDateFormat sdfOutput = new SimpleDateFormat(targetDateFormat);
retDateStr = sdfOutput.format(date);
}
else
{
retDateStr = dateStr;
}
}
catch (Exception e)
{
System.out.println("Exception :SapSorderEJB :getValidDateString :==>"+e.getMessage());
throw new ITMException(e);
}
System.out.println("[SapSorderEJB]Converted Datestr :["+retDateStr+"]");
return retDateStr;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment